林轩田之机器学习课程笔记( how can machines learn之linear regression)(32之9)

欢迎转载,可以关注博客:http://blog.csdn.net/cqy_chen

概要

上节课我们讲到了对于任意的存在噪音以及错误的数据中,vc界是可以学习的。那么当我们需要预测的东西不是两个分类,而是一个实数呢?比如同样在信用卡授信中,现在的问题不是是否发放信用卡,而是发放多少?有的人发放5W,有的人10W,那么这个怎么来确定呢?
这就是本节课要讲的问题,回归问题。

线性回归问题

这里同样采用信用卡额度来举例。
回归问题比较直观的感受是,根据用户的特征,比如收入,年龄等。然后分别给一个权重,相乘相加得到一个数字。
这里写图片描述
这个很像PLA算法,只是PLA还需要取正负号,因为要进行分类。
形象化的图形如下:
这里写图片描述
因为我们需要保证预测的值和原始的值尽可能的接近,在X是一维的时候,就是使用一条直线去你和这些点。当X是二维的时候,就是采用这些平面去拟合这些点。这些红色的线就是实际的值和拟合的值的差,一般称为残差。当然我们希望这些残差越小越好, yy^ ,这里用 y 表示f产生的标记, y^ 表示最后 h 预测的标记。
一般在回归问题中会采用平方和的方式作为损失函数,如下:

err(y,y^)=(yy^)2

当然具体问题具体分析,还有的用RMSE 。这里再次强调损失函数是关系演算法如何在假设空间中选取假设的。

回到上面的问题,这个时候,采用均方误差的时候,计算如下:
这里写图片描述
现在的问题就是要如何最小化 Ein(w) ,这就是演算法要去解决的问题喽。

线性回归算法

回到上面,我们要如何最小化:

Ew=1Nn=1N(wTxnyn)2

这里稍微进行变化下:
这里写图片描述
这个时候损失函数就完全表示为矩阵的方式: Ein(w)=1N||Xwy||

那么这个时候损失函数是一个凸函数,对于凸函数,如果可导的话就可以直接求出来了。如下:
这里写图片描述
所以现在的问题就找到一个w使得 Ein 在改点处偏导为0。
那么如何求解呢?我们将上面的向量乘法改变下:
这里写图片描述
对于向量的求导大家可以参考:
https://pan.baidu.com/s/1pKY9qht
所以要使导数为0,那么就是

Ein(w)=2N(XTXwXTy)=0

得到: XTXw=XTy
X 一般是一个n×d的矩阵,那么得到 XTX 是一个 d×d 的矩阵。
所以如果 XTX 可逆的话,那么可以直接得到 w=XTX1XTy
如果不可逆的话,我们一般采用伪逆 X
一般我们定义伪逆
X=XTX1XT

关于伪逆可以参考:
https://en.wikipedia.org/wiki/Moore%E2%80%93Penrose_inverse
所以我们得到
w=Xy

问题推广

上面我们已经求解了线性回归的解,给人的感觉是一下求解了问题的解,不像PLA中一步步的求解。其实我们在求解伪逆的时候也是一步步求解的。像这样的机器学习算法称为闭式解。机器学习的最终目的是 Eout 比较小。那么我们来看看线性回归问题求得的闭式解会不会使得 Eout 变小呢?这里先从 Ein 出发。
下面的结论:表示 Ein 的平均和噪音以及自由度,资料量有关。
这里写图片描述
要证明上面的式子,首先进行替换。
这里写图片描述
这里称 XX 为帽子矩阵,因为它乘以y就使得 y>y^
那么我们看看这个帽子矩阵在空间上是怎么表现的呢
这里写图片描述
1)粉色的部分是由 X 的列向量展开的平面,维度最多是d+1
2)y^是在 X 的列向量展开的平面中。
3)要使得yy^最小,那么我们需要将 y 投影到由X的列向量展开的平面中。所以帽子矩阵的意义就是做一个变换,将 y>y^
4)而 IH 也是一个变换,将y投影到垂直的线中。
同时我们还可以证明

trace(IH)=N(d+1)

大致的说明下,由于将 y 投影到了最多是d+1维的空间中,那么还剩下N-(d+1)的自由度.

上面说明了没有噪音的情况,那么存在噪音的情况呢?
这里写图片描述

EoutEint2(d+1)Nvc

这个时候可以想象我们也将噪音的部分投影到垂直的直线上,就是也做一个 IH 的变换,其实就是 yy^ 。因为噪音的部分投影到直线上和 yy^ 是一样的嘛。
所以得到了
E¯¯¯in=noiselevel(1d+1N)E¯¯¯out=noiselevel(1+d+1N)

至于为什么 Eout 是做的加法呢?因为 Ein 是为了更加的拟合,导致会过多的考虑噪音,而在未知样本中,这就会反弹回来。
根据上面两个式子,我们得到学习曲线图。
这里写图片描述

在实际的工作中,在调完参数后,一般会绘画学习曲线来判断当前模型是过拟合还是欠拟合。 调参的话一般可以通过绘画验证曲线。
关于通过学习曲线可以参考:
https://www.cnblogs.com/nolonely/p/7382287.html

线性回归处理二分类问题

我们知道线性回归基本可以一步就解出来了,但是在PLA中我们却是一个NP难问题。
这里写图片描述
那么这里我们可不可以将线性回归的思想来解线性分类的问题。
假如我们将分类中的-1和+1直接看成数字呢?然后采用回归的方式?
这样是否可行呢?回归和分类问题最大的区别在于损失函数的不同,如下:
这里写图片描述
上面的图形证明,平方的错误一定比0/1的错误来的大。
根据vc维,我们在第七次课程中讲到的:
http://blog.csdn.net/cqy_chen/article/details/78888890
对于分类问题的 Eout ,有:
这里写图片描述
所以当我们直接采用了线性回归的解去解分类问题,一般来说还算ok。或者我们可以以线性回归问题的解作为分类问题的初始解,这样加速分类问题的求解速度。

欢迎转载,可以关注博客:http://blog.csdn.net/cqy_chen

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值