本文主要是介绍MIT18.06课程笔记16:最小二乘法,线性回归,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
课程简介
18.06是Gilbert Strang教授在MIT开的线性代数公开课,课程视频以及相关资料请见https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/index.htm。
自己思考的部分使用斜体表示。
课程笔记
关于投射矩阵的内容请参考MIT18.06课程笔记15:Projection Matrix投射矩阵。此部分是投射矩阵的具体应用。
1. 线性回归问题简介
简单叙述:给定一系列的数据点(例如{ (x1,y1),(x2,y2)... },其中x表示特征向量,y表示目标值),求取一个线性函数(例如一维直线就是 y=cx+d )拟合数据点,即使得函数值的误差的平方和最小。
具体到一维情况就是最小二乘法:
数据集是{ (x1,y1),(x2,y2)...(xm,ym) }。
线性函数为 y=cx+d 。
求 argminc,d((cx1+d−y1)2+(cx2+d−y2)2+...+(cxm+d−ym)2) 。
2. 换个角度看问题
最后需要最小化的目标函数其实是误差的平方和,此目标等效于最小化误差的距离(平方和开方)。
具体地设
则目标函数为 argminc,d(eTe) ,等价于 argminc,d||e|| 。
进一步,如果设
则有
目标则为
上诉公式都是非常直观的,就不多做介绍。
经过上诉转换之后,就可以把投射矩阵应用进来了。具体的,最小化 ||e|| ,其实就是要找到 b̂ ∈C(A) ,使得 ||b̂ −b|| 最小。(C(A)是A的column space,具体定义请见 MIT18.06课程笔记15:Projection Matrix投射矩阵)。而且这里的问题更简单,就只需要求 x=[c,d]T 即可(不需要求取投射后的向量 b̂ 了)。
使用投射矩阵中的公式
3. ATA 的可逆性
我自己的思考:
1. 对于任意矩阵 A,B ,有 range(A∗B)≤range(A) , range(A∗B)≤range(B) 。因为新生成的矩阵的每一列都在A的column space里面(例如 A∗B 的第一列就是A与B的第一列相乘的结果。同样因为 (A∗B)T=BT∗AT ,所以新生成矩阵的每一行都在 BT 的column space里面。
2. range(A∗B) 可以小于 min{range(A),range(B)} 。例如A的column不是线性无关的,那么可以通过两种不同的方式生成同一个向量。那么有 range(B)=2 , range(A)>2 , 而 range(A∗B)=1 。
3.1. 命题
A 是column independent的 ⇒
3.2. 反证法
ATA 是不可逆的 <=> ∃x≠0,ATAx=0 ,
两边同时乘以 xT ,则有
∃x≠0,xTATAx=(Ax)T(Ax)=0 ,
进而 ∃x≠0,Ax=0 。而已知A是column independent的,所以不存在x使得 Ax=0 。从而假设不成立。
从几何的角度也知假设不成立, Ax 位于A的column space内,而 ATAx=0 则是再说 Ax 在 AT 的null space里面。具体地,就是说几个线性无关基向量的线性组合要和每个基向量都垂直。而满足这种情况的只有 Ax=0 。
4. 线性代数求导的角度
对于2中转换为矩阵相乘的问题表述形式,可以通过对其求导求解。两个方法角度不同,结果相同。
具体地,目标是
error 对 x 求导,可得
这篇关于MIT18.06课程笔记16:最小二乘法,线性回归的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!