线性回归假设特征和结果满足线性关系。 其实线性关系的表达能力非常强大,每个特征
对结果的影响强弱可以有前面的参数体现,而且每个特征变量可以首先映射到一个函数,然
后再参与线性计算。这样就可以表达特征与结果之间的非线性关系。
我们用 X1, X2..Xn 去描述 feature 里面的分量,如n=2时估计函数表示为:
这里θ为学习器参数,令x0为1,则估计函数可表示为:
评估学习器模型的好坏需要评估参数θ的好坏,一般称这个函数为损失函数或错误函数J(θ)
如何调整θ以使得J(θ)取最小值就是我们评估的标准。取最小值的常见方法包括最小二乘法和梯度下降法。
最小二乘法与梯度下降法的关系?
最小二乘法的目标:求误差的最小平方和,对应有两种:线性和非线性。线性最小二乘的解是closed-form即而非线性最小二乘没有closed-form,通常用迭代法求解。
迭代法:即在每一步update未知量逐渐逼近解,可以用于各种各样的问题(包括最小二乘),比如求的不是误差的最小平方和而是最小立方和。
梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。高斯-牛顿法是另一种经常用于求解非线性最小二乘的迭代法(一定程度上可视为标准非线性最小二乘求解方法)。
还有一种叫做Levenberg-Marquardt的迭代法用于求解非线性最小二乘问题,就结合了梯度下降和高斯-牛顿法。
最小二乘法LMS
使用一些初始θ参数值,然后每次更新theta值使得J(theta)最小,可以使用梯度下降算法:
使用初始θ每次更新θ,式子中α为步长,不能太大也不能太小,太大的话可能会越过最低点,甚至可能无法收敛,下一次迭代又移动了一大步,越过一次,又越过一次,一次次越过最低点,直到你发现实际上离最低点越来越远,所以,如果α太大,它会导致无法收敛,甚至发散;α也不能太小,α太小的话,下降会很慢,示意图如下:
如果θ0一直为 0, 则theta1与J的函数为:
如果有θ0与θ1都不固定,则theta0、theta1、J 的函数为:
注意:如果是线性回归,则损失函数J(θ)的形状一定是碗状的,即只有一个最小值。
矩阵求导
推导过程参考https://wenku.baidu.com/view/cee1ff5e5727a5e9846a610a.html