l线性回归,梯度下降和正规方程

线性回归:顾名思义,就是学得一个线性模型以尽可能准确地来预测输出。对一个线性模型,重要的是,假设,代价函数,和如何最小化最小化函数三点。

l线性回归,梯度下降和正规方程

上图是线性回归的一般形式,θ代表参数,x代表特征。假设x0=1后则可以写成矩阵形式。

代价函数J(θ),通常采用均方误差

l线性回归,梯度下降和正规方程

一些表达式还会再除以一个m(样本数),可能是为了控制参数范围,因为如果样本数m够大,那么J(θ)也会不小,所以除以m控制范围,其中1/2为了之后求导和2约掉,总之都是为了之后的运算方便。至于为什么采用最小二乘法,是有概率上的解释的。我们假设真实值y(i)=h(x)+e(i),其中e(i)为误差项,可以理解为是我们模型无法考虑到的一些特征。并且假设误差项是独立同分布且服从正态分布。而h(x)实际上可以理解成一个数,所以y(i)也服从正态分布。这样我们就可以得到y(i)的概率密度分布,并将其转化为参数θ的似然性,之后求取最大似然,最后发现求最大似然就是在最小化J(θ),具体推导如下图。

l线性回归,梯度下降和正规方程

所以我们求解最大似然就是要最小化J(θ)。

自然而然,接下来的问题就是解决如何最小化J(θ)。常用的方法有两种,梯度下降(gradient descent)和正规方程(normal equation)。首先介绍梯度下降,为了更好地理解最小化J(θ),可以记住一维和二维情况下J(θ)的图形,如下。

l线性回归,梯度下降和正规方程l线性回归,梯度下降和正规方程

直观上理解就是找最低点。给出梯度下降的迭代形式

l线性回归,梯度下降和正规方程

值得注意的有三点:

1.以一维为例,J(θ)求导是斜率,距离最低点越远则斜率越大,迭代时下降的越快,越近斜率减小则越慢,到了局部最低点则不会变化了。

2.learning rate:过小时迭代速度会很慢,过大时则会左右跳跃导致不能收敛。

3.所有θ要同时更新

l线性回归,梯度下降和正规方程

4.batch gradient descent (批次梯度下降)和stochastic gradient descent(随机梯度下降):简单地说就是每一次迭代的时候前者利用了整个样本,而后者每一次迭代的时候只利用了一个样本。所以当样本很大的时候,后者更具有优势,但是后者通常不会收敛到最小值,而是会在其附近徘徊。此外,后者还能帮助跳出局部最小从而达到全局最小。

然后是正规方程,这里就直接给出最终的形式,目前知道怎么用就行,网上也有很多的推导。下面有个偷懒的记法。

l线性回归,梯度下降和正规方程

l线性回归,梯度下降和正规方程

其中

l线性回归,梯度下降和正规方程l线性回归,梯度下降和正规方程

l线性回归,梯度下降和正规方程

这里有一点,X'X可能是不可逆的,我们可以加入扰动,如l线性回归,梯度下降和正规方程

这样就能保证其可逆,解释下为什么。因为X'X一定是半正定的,U'X'XU=(XU)'XU>=0,所以X'X+λI正定。所以一定可逆。半正定矩阵特征值均不小于零,正定矩阵均大于零。有趣的是,这样操作能防止过拟合,因为这相当于引入了一个L2正则化。L2正则化即在损失函数J(θ)后加上一个惩罚因子,以线性回归为例:    

l线性回归,梯度下降和正规方程

写成矩阵形式J(θ)=(Xθ-Y)'(Xθ-Y)+λθ'θ,将J(θ)对θ求导就可得到θ的解析式。