MIT18.06课程笔记16:最小二乘法,线性回归

来源:互联网 发布:淘宝潮男秋装 编辑:程序博客网 时间:2024/06/05 17:46

课程简介

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+dy1)2+(cx2+dy2)2+...+(cxm+dym)2)

2. 换个角度看问题

最后需要最小化的目标函数其实是误差的平方和,此目标等效于最小化误差的距离(平方和开方)。
具体地设

e=[e1,e2,...,em]Tei=cxi+dyi,0<im

则目标函数为argminc,d(eTe),等价于argminc,d||e||
进一步,如果设
A=x1x2...xm121,b=y1y2...ym

则有
e=A[cd]b

目标则为
argminc,d||A[cd]b||

上诉公式都是非常直观的,就不多做介绍。
经过上诉转换之后,就可以把投射矩阵应用进来了。具体的,最小化||e||,其实就是要找到b̂ C(A),使得||b̂ b||最小。(C(A)是A的column space,具体定义请见MIT18.06课程笔记15:Projection Matrix投射矩阵)。而且这里的问题更简单,就只需要求x=[c,d]T即可(不需要求取投射后的向量b̂ 了)。
使用投射矩阵中的公式
[c,d]T=x=(ATA)1Ab

3. ATA的可逆性

我自己的思考:
1. 对于任意矩阵A,B,有range(AB)range(A), range(AB)range(B)。因为新生成的矩阵的每一列都在A的column space里面(例如AB的第一列就是A与B的第一列相乘的结果。同样因为(AB)T=BTAT,所以新生成矩阵的每一行都在BT的column space里面。
2. range(AB)可以小于min{range(A),range(B)}。例如A的column不是线性无关的,那么可以通过两种不同的方式生成同一个向量。那么有range(B)=2, range(A)>2, 而range(AB)=1

3.1. 命题

A是column independent的 ⇒ ATA是可逆的。

3.2. 反证法

ATA是不可逆的 <=> x0,ATAx=0
两边同时乘以xT,则有
x0,xTATAx=(Ax)T(Ax)=0,
进而x0,Ax=0。而已知A是column independent的,所以不存在x使得Ax=0。从而假设不成立。
从几何的角度也知假设不成立,Ax位于A的column space内,而ATAx=0则是再说AxAT的null space里面。具体地,就是说几个线性无关基向量的线性组合要和每个基向量都垂直。而满足这种情况的只有Ax=0

4. 线性代数求导的角度

对于2中转换为矩阵相乘的问题表述形式,可以通过对其求导求解。两个方法角度不同,结果相同。
具体地,目标是

argminc,deTe=argminc,d(Axb)T(Axb)error=(Axb)T(Axb)

errorx求导,可得AT2(Axb)=0, 进而x=(ATA)1Ab

0 0