林轩田之机器学习课程笔记( how can machines learn之linear regression)(32之9)
欢迎转载,可以关注博客:http://blog.****.net/cqy_chen
概要
上节课我们讲到了对于任意的存在噪音以及错误的数据中,vc界是可以学习的。那么当我们需要预测的东西不是两个分类,而是一个实数呢?比如同样在信用卡授信中,现在的问题不是是否发放信用卡,而是发放多少?有的人发放5W,有的人10W,那么这个怎么来确定呢?
这就是本节课要讲的问题,回归问题。
线性回归问题
这里同样采用信用卡额度来举例。
回归问题比较直观的感受是,根据用户的特征,比如收入,年龄等。然后分别给一个权重,相乘相加得到一个数字。
这个很像PLA算法,只是PLA还需要取正负号,因为要进行分类。
形象化的图形如下:
因为我们需要保证预测的值和原始的值尽可能的接近,在X是一维的时候,就是使用一条直线去你和这些点。当X是二维的时候,就是采用这些平面去拟合这些点。这些红色的线就是实际的值和拟合的值的差,一般称为残差。当然我们希望这些残差越小越好,
一般在回归问题中会采用平方和的方式作为损失函数,如下:
当然具体问题具体分析,还有的用RMSE 。这里再次强调损失函数是关系演算法如何在假设空间中选取假设的。
回到上面的问题,这个时候,采用均方误差的时候,计算如下:
现在的问题就是要如何最小化
线性回归算法
回到上面,我们要如何最小化:
这里稍微进行变化下:
这个时候损失函数就完全表示为矩阵的方式:
那么这个时候损失函数是一个凸函数,对于凸函数,如果可导的话就可以直接求出来了。如下:
所以现在的问题就找到一个w使得
那么如何求解呢?我们将上面的向量乘法改变下:
对于向量的求导大家可以参考:
https://pan.baidu.com/s/1pKY9qht
所以要使导数为0,那么就是
得到:
所以如果
如果不可逆的话,我们一般采用伪逆
一般我们定义伪逆
关于伪逆可以参考:
https://en.wikipedia.org/wiki/Moore%E2%80%93Penrose_inverse
所以我们得到
问题推广
上面我们已经求解了线性回归的解,给人的感觉是一下求解了问题的解,不像PLA中一步步的求解。其实我们在求解伪逆的时候也是一步步求解的。像这样的机器学习算法称为闭式解。机器学习的最终目的是
下面的结论:表示
要证明上面的式子,首先进行替换。
这里称
那么我们看看这个帽子矩阵在空间上是怎么表现的呢
1)粉色的部分是由
2)
3)要使得
4)而
同时我们还可以证明
大致的说明下,由于将
上面说明了没有噪音的情况,那么存在噪音的情况呢?
这个时候可以想象我们也将噪音的部分投影到垂直的直线上,就是也做一个
所以得到了
至于为什么
根据上面两个式子,我们得到学习曲线图。
在实际的工作中,在调完参数后,一般会绘画学习曲线来判断当前模型是过拟合还是欠拟合。 调参的话一般可以通过绘画验证曲线。
关于通过学习曲线可以参考:
https://www.cnblogs.com/nolonely/p/7382287.html
线性回归处理二分类问题
我们知道线性回归基本可以一步就解出来了,但是在PLA中我们却是一个NP难问题。
那么这里我们可不可以将线性回归的思想来解线性分类的问题。
假如我们将分类中的-1和+1直接看成数字呢?然后采用回归的方式?
这样是否可行呢?回归和分类问题最大的区别在于损失函数的不同,如下:
上面的图形证明,平方的错误一定比0/1的错误来的大。
根据vc维,我们在第七次课程中讲到的:
http://blog.****.net/cqy_chen/article/details/78888890
对于分类问题的
所以当我们直接采用了线性回归的解去解分类问题,一般来说还算ok。或者我们可以以线性回归问题的解作为分类问题的初始解,这样加速分类问题的求解速度。
欢迎转载,可以关注博客:http://blog.****.net/cqy_chen