线性模型(1) —— 多元线性回归
提纲:
- 线性模型的基本形式
- 多元线性回归的损失函数
- 最小二乘法求多元线性回归的参数
- 最小二乘法和随机梯度下降的区别
- 疑问
- 学习和参考资料
1.线性模型的基本形式
线性模型是一种形式简单,易于建模,且可解释性很强的模型,它通过一个属性的线性组合来进行预测,其基本的形式为:
式(1)
转换成向量形式之后写成:
式(2)
为什么说其解释性很强呢,是因为模型的权值向量十分直观地表达了样本中每一个属性在预测中的重要度,打个比方,要预测今天是否会下雨,并且已经基于历史数据学习到了模型中的权重向量和截距b,则可以综合考虑各个属性来判断今天是否会下雨:
式(3)
2.多元线性回归的损失函数
在多元线性回归任务中,均方误差是比较常用的一个损失函数,学习的任务就是要基于均方误差最小化来对模型的参数进行求解,损失函数的形式为:
式(4)
其中,m为样本的数量,yi为样本的真实值,f(x)为预测值。
将式(4)中的截距b合并到w,使得新的权重向量增加多了一维,即:w=(w;b)(以下所有的w均是这种形式),相应的每个样本xi也增加了一维,变为xi=(x11,x12,x13···x1d,1)
于是损失函数可以写成以下形式:
式(5)
其中y是样本的标记向量,y=(y1,y2,y3···ym),X为样本矩阵。
3.最小二乘法求多元线性回归的参数
在学习模型的任务中,我们要做到的是让预测值尽量逼近真实值,做到误差最小,而均方误差就是表达这种误差的一种,所以我们要求解多元线性回归模型,就是要求解使均方误差最小化时所对应的参数:
式(6)
其中w*为模型对应的解,即使得均方误差函数最小化时的权重向量。
那么,我们应该如何求w*呢?在这里,我们可以用最小二乘法对模型的参数进行估计,具体做法是:损失函数对需要求解的参数进行求导,并且令其导数为0,求得相应的参数。
在这里,我们需要让式(5)对w求导,在求导之前,我们来看一下两个求导公式:
式(7)
式(8)
下图为详细的求导过程(字迹潦草~~请勿介意)
损失函数对参数进行求导之后,可以求得:
式(9)
令式(9)为零可得:
式(10)
以上即为参数w最优解的闭式解,但我们可以发现w*的计算涉及矩阵的求逆,这样的话就有一些限制了,只有在X^T*X为满秩矩阵或者正定矩阵时,才可以使用以上式子计算。但在现实任务中,X^T*X往往不是满秩矩阵,这样的话就会导致有多个解,并且这多个解都能使均方误差最小化,但并不是所有的解都适合于做预测任务,因为某些解可能会产生过拟合的问题。
4.最小二乘法和随机梯度下降的区别
在学习的过程中,自己有想过这两者的区别,当初大概只知道以下一些东西:
最小二乘法是最小化均方误差,当X^T*X为满秩矩阵时,可以直接求参数的闭式解,而随机梯度下降需要不断地迭代对参数进行更新,并且所求到的解不一定是全局最优解。
但写博客的时候去逛了逛知乎,https://www.zhihu.com/question/20822481 其中用户夏之晨的答案让我茅塞顿开······
5.疑问
线性模型可以依靠权重来判断特征的重要程度,但这个判断究竟有多准确?特征之间的共线性使得特征相互之间会共享一些信息,又怎么判断某个特征的重要程度不是其他特征共享给它的呢?
6.学习和参考资料
周志华老师的《机器学习》