机器学习基石9--Linear Regression

一、引入线性回归问题

          Linear Regression是常见的一种机器学习算法。这里引入信用卡的例子,解决给用户发放信用卡额度的问题,【额度问题】这是一个回归问题。

                           

我们把用户的年龄、年收入等描述为特征存进X, x_{0}是常数项,W_{i}为权重。我们写成向量形式 :h(x) = W^T X,看起来非常像perceptron,不同的是 这里没用符号函数 sign。perceptron: h(x) = sign(W^TX)

我们另用户的特征集为d维的X, 加上常数项,维度变为d+1,得到hypothesis:

h(x) = w^T X           [预测函数取值是在整个实数空间]

                       

参照上图,可以看出我们使用线性回归的目标就是找出一条直线(对应一维空间)、一个平面(对应二维空间)或超平面(更高维的空间),使样本点更接近它,使得残差residuals最小化。使用最小二乘法进行错误测量,最小二乘法目标是计算最小误差的平方和对应的权重w,也就是我们之前介绍回归问题用square error。

                      

线性最小二乘法的解是closeed-form,即得到 X = (A^TA)^{-1} A^Ty。即我们直接得到了权重w的结果。更直观的写法如下:

(X^TX)w = X^Ty      又称为正规方程。

w = (X^TX)^{-1}X^Ty        我们将权重矩阵w直接求解出来。

最小二乘法:

                  它通过最小化误差平方和,寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间的误差的平方和最小。最小二乘法也是一种优化方法,求得目标函数的最优值。

 

二、线性回归算法的处理

样本数据误差E_{in}(w) 是权重w的函数,我们已经知道了X和y,那么我们算法的目标就是找到合适的w使得E_{in}最小。该如何计算呢?

下面应用矩阵转换的思想

                       

向量的内积符合交换律W^TX_n = X_n^TW

这里还用到了范数的概念

\left \| X \right \|_1 = \sum_{i=1}^{n}\left | x_i \right |    L1范数、                  \left \| X \right \|_2 = (\sum_{i=1}^{n}x_i)^{1/2}L2范数

所以我们才能大胆地将累加形式写成范数形式。

我们的目标即为:

                        

我们可以通过求偏导来寻找最小值点。

然后我们根据梯度下降的思想, 对E_{in}(w)进行矩阵求偏导:

                       

上面的式子我们来具体算一下:(其中Xw是一个列向量、y也是一个列向量,因此Xw-y仍然是一个列向量,注意:列向量的平方为其模的平方,而列向量模的平方则为其内积,所以也可以表示为向量的转置乘上向量的形式)。

                       \left \| Xw - y \right \|^2 = (Xw - y)^T(Xw - y)

                                           = (w^TX^T - y^T)(Xw - y)

                                           = w^TX^TXw - w^TX^Ty - y^TXw + y^Ty向量的交换律【y^TXw = (Xw)^Ty = w^TX^Ty 

                                           = w^TX^TXw - w^TX^Ty - {\color{Red} w^TX^Ty} + y^Ty 

                                           = w^TX^TXw - 2w^TX^Ty + y^Ty

                         

一些矩阵求导公式:

\frac{\partial w^TAw}{w} = 2w^TA (A^T = A = X^TX) here    

                = 2A^Tw = 2Aw

\frac{\partial 2w^Tb}{\partial w} = b^T = b              b = X^Ty = b^T = y^TX

更多公式:

               对向量求导

               矩阵求导、几种重要的矩阵及常用的矩阵求导公式

最后可以计算出权重矩阵w:

                      

我们推导得出了权重向量w = (X^TX)^{-1}X^Ty ,这是之前提到的closed-form(最接近)解。其中,(X^TX)^{-1}X^T又称为伪逆矩阵pseudo-inverse,记为X^+,维度是(d+1) \ast N,即是该矩阵不可逆,一般计算机会处理这个问题。

(X^TX)^{-1}X^T

三、关于泛化问题

           之前的计算给我们一种一下子计算出来结果,一步登天的感觉,这还是机器学习吗?好像没看到他学习的过程。之前所说的机器学习,好像要随着我们所看的资料数据有所进步,E_{in}(我们训练是产生的误差),E_{out}(我们测试时产生的误差)有没有进步,他直接给了我们一个w,这就是结果了,结束了?当然不能说没给你一步一步看到,你就说人家没学到东西,他只是在偷偷的一步一步学习,只是没让你看到而已。

                          

我们可以拿考试类比,一般只要他最后考试结果表现好,这中间就发生了学习,过程没让你看到罢了。

下面我们来证明可以通过最小二乘法来计算得到较好的E_{in}E_{out}

                            

       现在我们看的是 \bar{E_{in}}(平均误差),即E_{in}的平均,我们在最糟糕的样本数据D的情况下进行求解,E_{in(W_{LIN} w.r.t. \boldsymbol{D})}E_{out}的推导同样可以由类似方式推出。其中,上式中的 I (identity)是单位矩阵。

                                       W_{LIN} = X^+y             X^+ = (X^TX)^{-1}X^Ty

                                       E_{in}(w_{LIN}) = \frac{1}{N}||y - \hat{y}||^2 = \frac{1}{N}\sum_{i=0}^{N}(y - \hat{y})   

我们称XX^+为帽子矩阵,用 H 来表示。  ----{XX^+乘上一个 y 得到 \hat{y} ,得到的\hat{y}戴上了帽子}

下面从几何图形上来理解帽子矩阵 H 的物理意义。

                            

解释上面的含义:

 \hat{y} = Xw_{LIN} 在没有进行线性回归之前 X可能乘上任何 w ,【线性回归是找到最佳的w】。那么上面粉色的空间就是有X乘上不同权重得到的,根据w的取值,预测结果也将被限制在粉色空间中。而向量\hat{y}就是粉色空间中的一个向量,代表预测的一种结果。y则是样本数据的实际输出值。

     我们这里机器学习的目的就是找到一个\hat{y},使得它非常接近真实的y,我们就只要将y在粉色的空间上做垂直投影即可,投影得到的\hat{y}即为在粉色空间上最接近y的向量。这样也能使平均误差最小。

 \hat{y} = Hy可以知道 H是将 y 投影到 \hat{y} 的一种操作。

 y - \hat{y}可以看出垂直于粉色区域,(I-H)y = y - \hat{y}    那么 I-H 则是将y投影到 y - \hat{y},即垂直于粉色区域的操作,这样我们找的是实际值\hat{y}到真实值y的垂直距离,也就是最小距离。这样 HI-H都有了相联系的物理意义。

      这里又用到了迹,trace(I-H).

 || A || = [tr{(A'A)}]^{1/2}     则 || A ||^2 = [tr{(A'A)}]=tr{I} =d   (I\in R^d)  d为A的维数 

           

 

在有noise的情况下:

                            

上图中的 

E_{in}(w_{LIN}) = \frac{1}{N}||y-\hat{y}||^2 =\frac{1}{N}||(I-H)noise||^2 = {\color{Red} \frac{1}{N}trace(I-H)||noise||^2} = \frac{1}{N}(N-(d+1))||noise||^2

结果为:

\bar{E_{in}} = noiselevel*(1-\frac{d+1}{N})

那么我们类似的得到

\bar{E_{out}} = noiselevel*(1 + \frac{d+1}{N})

两者形式上只差了\frac{d+1}{N}项,我们可以这样理解,\bar{E_{in}}是我们看得到的样本误差,我们会把预测往noise那边偏一点,让\bar{E_{in}}更好看,所以减去\frac{d+1}{N}项。不过,新的样本数据 \bar{E_{out}}则是我们看不到的,可能在noise反方向,那么\bar{E_{out}}就应该加上\frac{d+1}{N}项了。

二者的学习曲线如下:

                              

因此,当 N 足够大的时候\bar{E_{in}}\bar{E_{out}}逐渐接近,满足\bar{E_{in}}\approx\bar{E_{out}},而且数值保持在noise level。也证明了当N足够大的时候,这种线性最小二乘法是可以进行机器学习的。

 

四、用线性回归来解决线性分类问题

      线性分类使用的错误衡量方式是0/1 error,线性回归给使用的square error(方差错误),那么square error是否能够应用到线性回归中?

       首先,我们要知道关于错误衡量(或者可以说是代价函数),有了错误衡量,我们就能知道当前的g(hypothesis)好还是不好,并能够修正算法,得到更好的g,使得它与目标函数更接近。可以认为,错误衡量能够帮助我们找到我们的目标函数

                        

     我们可以将线性回归应用在线性分类的数据集上,他同样能够有效地解决问题。返回g(x) = sign(W_{LIN}^TX)

     我们来看一下二者的错误衡量关系:

                          

       上图我们可以看出 在对数据集的错误衡量上 err_{0/1} \leq err_{sqr}

        之前的VC Bound的理论我们推导过:

                                              E_{in}(g) - \sqrt{\frac{8}{N}ln(\frac{4(2N)^{d_{vc}}}{\delta })} \leq E_{out}(g) \leq E_{in}(g) + \sqrt{\frac{8}{N}ln(\frac{4(2N)^{d_{vc}}}{\delta })}

\sqrt{...} :称为模型复杂度的惩罚项, 也即可以写为:\Omega(N,H,\delta )

         所以,我们可以得出 

           classification E_{out}(w) \leq ^{vc} classification E_{in}(w) + \sqrt{...}  \leq regression E_{in}(w) + \sqrt{...}

                           

       从上面可以看出,用err_{sqr}代替err_{0/1}E_{out}仍然有界,只不过他的上届变得更加松弛罢了,对此我们知道,线性回归方法仍然可以用于解决线性分类问题,至于效果则不一定会变得比较差。分类问题得到了一个更加松弛的上界,也算是一种更有效率的求解方式。  

文章部分参考:台湾大学林轩田机器学习基石课程学习笔记9 -- Linear Regression

注明:

文章中所有的图片均来自台湾大学林轩田《机器学习基石》课程以及参考链接文章

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值