林轩田机器学习基石课程个人笔记-第九讲

67 阅读6分钟

前面主要学习了有关机器学习的基础知识,如VC维、误差衡量等,上一讲知道即使是在含有噪声的数据中,我们的学习也是可行的。这一讲开始学习第一个算法:线性回归,主要是从下面四个方面进行学习


在这里插入图片描述

之前的信用卡的例子中国,用户提交了一系列的数据后,如何根据用户数据给出具体的透支的额度呢?用分类的方法显然不能很好的解决这个问题,回归算法就是一个很好的选择。


在这里插入图片描述

如下图所示,用户的信息有年龄、年收入、工作年限和当前的债务,为了后面更好的采用数学的方式来进行阐述,我们使用 x i x_i xi​来表示用户的特征,对每个特征数据加权求和来得到一个加权和作为最后的 y y y,权重用 w i w_i wi​表示。


在这里插入图片描述

如果将数据用矩阵表示,假设就转换为如下的形式,类似之前的感知机算法中假设,但是没有取符号函数 s i g n ( x ) sign(x) sign(x)


在这里插入图片描述

那么这个假设在数据中是怎样表现的呢?例如在二维平面上,画好坐标轴后,将数据描点,得到的假设 h h h就是图中的蓝线;如果是在三维空间中, h ( x ) h(x) h(x)就是蓝色的超平面。我们将图中点到线(或面)的距离称为余数或是差距 (红线的长度)。


在这里插入图片描述

而线性回归算法的目标就是找到一个合适的 h ( x ) h(x) h(x)来减小各个点到 h ( x ) h(x) h(x)的差距。


在这里插入图片描述

那么如何表示这种差距嘞?这里最常用的就是上一讲提到过的平方误差( y ^ \hat{y} y^​表示通过假设得到的预测值)


在这里插入图片描述

将训练数据中得到的误差的平均值作为我们的 E i n E_in Ei​n,而将未知数据的误差值作为 E o u t E_out Eo​ut


在这里插入图片描述

接下来主要问题就转换成了如何在最小化 E i n ( H W ) E_{in}(H_W ) Ein​(HW​)?这和我们之前的学习的思路是一致的。如上面in-sample中 E i n E_in Ei​n的表达式所示,我们进行一系列的转换和矩阵表示,最后可以得到 E i n ( w ) = 1 N ∗ ∣ ∣ X W − Y ∣ ∣ 2 E_{in}(w)=\frac{1}{N} * ||XW-Y||^2 Ein​(w)=N1​∗∣∣XW−Y∣∣2,其中各个矩阵的形式图中已标出


在这里插入图片描述

目标就是如下表达式,其中 X X X和 y y y都是已知的,只有权重矩阵 W W W是需要去求的,如果能够得到想要的 W W W,那么 E i n E_in Ei​n就会足够小到我们的要求。


在这里插入图片描述

在这里表达式是连续可微的凸函数,如左下图所示,既然是凸函数,就可以使用求梯度为零(梯度为零是说在各个方向上都为零)的点来得到 W L I N W_{LIN} WLIN​.


在这里插入图片描述

再将表达式做一点变换


在这里插入图片描述

如果这里的 W W W是一维的情况,求偏导数为零的点是很容易的;如果 W W W是矩阵表示的,同样是求偏导数为零的点,可能有一点复杂而已。


在这里插入图片描述

所要做的就是使 ∇ E i n ( W ) = 0 \nabla Ein(W)=0 ∇Ein(W)=0


在这里插入图片描述

具体的计算过程可见之前写过的一篇线性回归.


在这里插入图片描述
最终,我们推导得到了权重向量 w = ( X T X ) − 1 X T y w=(X^TX)^{-1}X^Ty w=(XTX)−1XTy。其中 ( X T X ) − 1 X T y (X^TX)^{-1}X^Ty (XTX)−1XTy, 又称为伪逆矩阵(pseudoinverse),记为 x + x+ x+,维度是 ( d + 1 ) × N (d+1)\times N (d+1)×N。这样就得到了学习的最终结果,代入上面的假设就可以使 E i n E_in Ei​n足够的小。

但是,我们注意到,伪逆矩阵中有逆矩阵的计算,逆矩阵是否一定存在?一般情况下,只要满足样本数量 N N N远大于样本特征维度 d + 1 d+1 d+1,就能保证矩阵的逆是存在的,称之为非奇异矩阵。但是如果是奇异矩阵,不可逆怎么办呢?其实,大部分的计算逆矩阵的软件程序,都可以处理这个问题,也会计算出一个逆矩阵。所以,一般伪逆矩阵是可解的。

现在,可能有这样一个疑问,就是这种求解权重向量的方法是机器学习吗?或者说这种方法满足我们之前推导VC Bound,即是否泛化能力强 E i n ≈ E o u t E_{in}≈E_{out} Ein​≈Eout​?


在这里插入图片描述

有两种观点:

  • 不属于机器学习范畴。因为这种closed-form解的形式跟一般的机器学习算法不一样,而且在计算最小化误差的过程中没有用到迭代
  • 属于机器学习范畴。因为从结果上看, 都实现了最小化,而且实际上在计算逆矩阵的过程中,也用到了迭代

其实,只从结果来看,这种方法的确实现了机器学习的目的。下面通过介绍一种更简单的方法,证明linear regression问题是可以通过线下最小二乘法方法计算。


在这里插入图片描述

首先,我们根据平均误差的思想,把 E i n ( W l i n ) E_{in}(W_{lin}) Ein​(Wlin​)写成如图的形式,经过变换得到: E i n ( w L I N ) = 1 N ∥ ( I − X X + ) y ∥ 2 = 1 N ∥ ( I − H ) y ∥ 2 E_{i n}\left(w_{L I N}\right)=\frac{1}{N}\left\|\left(I-X X^{+}\right) y\right\|^{2}=\frac{1}{N}\|(I-H) y\|^{2} Ein​(wLIN​)=N1​∥∥​(I−XX+)y∥∥​2=N1​∥(I−H)y∥2
我们称 X X + XX^+ XX+为帽子矩阵,用 H H H表示。下面从几何图形的角度来介绍帽子矩阵 H H H的物理意义


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

之前介绍的Linear Classification问题使用的Error Measure方法用的是0/1 error,那么Linear Regression的squared error是否能够应用到Linear Classification问题?


在这里插入图片描述

下图展示了两种错误的关系,一般情况下,squared error曲线在0/1 error曲线之上。


在这里插入图片描述

根据之前的VC理论, E o u t E_{out} Eout​的上界满足:


在这里插入图片描述

从图中可以看出,用 e r r s q r err_{sqr} errsqr​代替 e r r 0 / 1 err_{0/1} err0/1​, E o u t E_{out} Eout​仍然有上界,只不过是上界变得宽松了。也就是说用线性回归方法仍然可以解决线性分类问题,效果不会太差。二元分类问题得到了一个更宽松的上界,但是也是一种更有效率的求解方式。


在这里插入图片描述

线性回归

最后总结一下,这一讲我们主要介绍了Linear Regression。首先从问题出发,想要找到一条直线拟合实际数据值;然后利用最小二乘法,用解析形式推导了权重 w w w的解;接着用图形的形式得到 E o u t − E i n ≈ 2 ( N + 1 ) / N E_{out}-E_{in}≈2(N+1)/N Eout​−Ein​≈2(N+1)/N,证明了linear regression是可以进行机器学习的;最后,证明linear regressin这种方法可以用在binary classification上,虽然上界变宽松了,但是仍然能得到不错的结果。