4、Normal Equation 的向量投影解法与几何和直觉解释
参考:https://zhuanlan.zhihu.com/p/269232332
在线性回归的正交方程 ( Normal Equation )推导一文中提到使用 向量投影 的方法一步就能推导出 正交方程。从向量投影的角度,体现 线性回归 的本质。
预备知识:向量投影

平面A由基向量 所张成(Span ),换言之,平面A是
的列空间。
是平面外的一点,
是
在平面上的投影,
,求
是
和
之间的距离 :
用人话来解释下: 构建了一个平面,平面内的任何向量,它俩均可通过 线性组合 构建出来,换言之,平面外的向量它俩就搞不定了。向量
在
构建的平面外,不论
如何组合都不可能组合出
,这个问题 无解。但是,可以组合出
在平面内的投影
,这是平面内最接近
的点,
是
和
之间的偏差。于是,问题就变成了:如何找到组合
,使
。
线性代数的初心是解决: ,在明显无解的情况下(方程数 > 变量数,超定),退而求其次,解一个可以解决的近似问题:
。
垂直于
----------------------------------------------------------------------------------------------------------------------------------------------
言归正传,回到线性回归的问题:
线性回归要解决的问题是:找到合适的 ,使
实际应用中,方程的数量(样本数)经常远大于变量 / 未知数的数量(特征数),例如以下数据情况:100条数据10个字段,意味着100个方程10个未知数,显然,这样的超定方程组是无解的(over determined ),所以我们不得不改变目标,寻找一个最“接近”的近似解 ,使得
,
是
在
的列空间的投影。
将 代入
,将
代入
,将
代入
,于是就得到 Normal Equation:
翻译成线性回归的语境:由于 不在
所张成的空间内,不论
如何进行线性组合,都不可能组合出
,但是,可以组合出
在平面内的投影
,线性回归的目标就是找到参数
,使
。
在理解了线性回归的投影本质后,使用向量投影公式,只需一步就可以得到Normal Equation: 。
也可以表示为: ,其中
,被成为伪逆矩阵。
---------------------------------------------------------------------------------------------------------------------------------------------------
最后从直觉的角度再来看一下 Normal Equation 和伪逆矩阵,方便记忆:
回顾我们的出发点 ,如果
可逆,两边同时乘以
,显然
。
但在机器学习中,经常面对的是 超定( Overdetermined )方程,方程数( 数据点的数量,行,记录 )大于未知数( 即特征数,列,字段 ),非方阵, 不可逆。
是对称矩阵,也称 Gram 矩阵,它是
的方阵,大概率可逆,因此,我们很自然的希望在方程两边同时乘以
,得到:
,再两边同时乘以
就能到 Normal Equation 。这个推导并不严谨,
可能不可逆,但可作为快速记忆公式的方法。
4、Normal Equation 的向量投影解法与几何和直觉解释的更多相关文章
- Linear regression with multiple variables(多特征的线型回归)算法实例_梯度下降解法(Gradient DesentMulti)以及正规方程解法(Normal Equation)
,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, , ...
- 5种方法推导Normal Equation
引言: Normal Equation 是最基础的最小二乘方法.在Andrew Ng的课程中给出了矩阵推到形式,本文将重点提供几种推导方式以便于全方位帮助Machine Learning用户学习. N ...
- coursera机器学习笔记-多元线性回归,normal equation
#对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...
- Normal Equation
一.Normal Equation 我们知道梯度下降在求解最优参数\(\theta\)过程中需要合适的\(\alpha\),并且需要进行多次迭代,那么有没有经过简单的数学计算就得到参数\(\theta ...
- machine learning (7)---normal equation相对于gradient descent而言求解linear regression问题的另一种方式
Normal equation: 一种用来linear regression问题的求解Θ的方法,另一种可以是gradient descent 仅适用于linear regression问题的求解,对其 ...
- Normal Equation Algorithm
和梯度下降法一样,Normal Equation(正规方程法)算法也是一种线性回归算法(Linear Regression Algorithm).与梯度下降法通过一步步计算来逐步靠近最佳θ值不同,No ...
- normal equation(正规方程)
normal equation(正规方程) 正规方程是通过求解下面的方程来找出使得代价函数最小的参数的: \[ \frac{\partial}{\partial\theta_j}J\left(\the ...
- (三)用Normal Equation拟合Liner Regression模型
继续考虑Liner Regression的问题,把它写成如下的矩阵形式,然后即可得到θ的Normal Equation. Normal Equation: θ=(XTX)-1XTy 当X可逆时,(XT ...
- 【转】Derivation of the Normal Equation for linear regression
I was going through the Coursera "Machine Learning" course, and in the section on multivar ...
- 机器学习入门:Linear Regression与Normal Equation -2017年8月23日22:11:50
本文会讲到: (1)另一种线性回归方法:Normal Equation: (2)Gradient Descent与Normal Equation的优缺点: 前面我们通过Gradient Desce ...
随机推荐
- MATLAB人工神经网络ANN代码
本文介绍基于MATLAB实现人工神经网络(ANN)回归的详细代码与操作. 目录 1 分解代码 1.1 循环准备 1.2 神经网络构建 1.3 数据处理 1.4 模型训练参数配置 1.5 神经网络实 ...
- bbs大作业
1.项目开发基本流程 1.需求分析 2.架构设计 3.分组开发 4.提交测试 5.交付上线 2.项目流程 仿造博客园项目(核心:文章的增删改查) 1.表分析: 1.1用户表 1.2个人站点表 1.3文 ...
- Vue18 过滤器
1 简介 过滤器(filter)是输送介质管道上不可缺少的一种装置,大白话,就是把一些不必要的东西过滤掉,过滤器实质不改变原始数据,只是对数据进行加工处理后返回过滤后的数据再进行调用处理,我们也可以理 ...
- spring-in-action_day01
前景说明:SpringInAction主要致力于SpringBoot为基础的讲解,尽可能多的使用SpringBoot,可以减少显行的配置,如xml配置,可以更加的专注于功能的实现. 第一章:主要讲了如 ...
- Google Guice 用户指南 - Ⅰ:概览
译者:kefate 原文:https://github.com/google/guice/wiki/Overview 大家好,我是kefate.今天开始我将会把Google Guice的官方文档陆续翻 ...
- 高效字符串匹配算法——BM 算法详解(C++)
定义 BM 算法是由 Boyer 和 Moore 两人提出的一种高效的字符串匹配算法,被认为是一种亚线性算法(即平均的时间复杂度低于线性级别),其时间效率在一般情况下甚至比 KMP 还要快 3 ~ 5 ...
- 超详细!Jmeter性能测试
前言 性能测试是一个全栈工程师/架构师必会的技能之一,只有学会性能测试,才能根据得到的测试报告进行分析,找到系统性能的瓶颈所在,而这也是优化架构设计中重要的依据. 测试流程: 需求分析→环境搭建→测试 ...
- 【ASP.NET Core】标记帮助器——抽象层
标记帮助器,即 Tag Helpers.这个嘛,就直接翻译了,叫"标记帮助器",虽然不好听,但只能这样了.当然你翻译为"标记增强器"也行. 所谓标记帮助器,就是 ...
- Vue急速入门-5
vue-cli创建项目 前端工程化,项目>>>(vue-cli),创建处vue项目,单页面应用(spa) vue-cli创建项目开发,在项目中开发,最后上线,一定要编译 '纯粹的ht ...
- 配置项目请求地址和axios以及实现token过期无痛刷新
配置请求地址:config->index.js 一个项目里通常有一个config->index.js,该文件包含了当前项目的请求地址,以及项目的版本信息. // 请求地址 const AP ...