再论最小二乘

标签(空格分隔): 机器学习


前面有写过一篇关于最小二乘与最大似然估计的博客点我点我,该博客从二者的本质不同进行了分析(一个是为了最好的拟合数据,一个是通过概率分布使时间最可能发生)

本篇博客将从目标函数求驻点及梯度下降的角度比较二者的不同。

最小二乘

目标函数

目标函数实际是从拟合中残差服从高斯分布推导出来的,但实际我们可以直接使用:
(J( heta) = frac{1}{2}(h_{ heta}(x^{(i)})-y^{(i)})^{2} = frac{1}{2}(X heta-y)^{T}(X heta-y))

解法一:直接求导

这是需要重点分析的,面试中有问到过。
(frac{partial J( heta)}{partial heta} = frac{partial frac{1}{2}( heta^{T}X^{T}-y^{T})(X heta-y)}{partial heta})
(=frac{partial frac{1}{2}( heta^{T}X^{T}X heta- heta^{T}X^{T}y-y^{T}X heta+y^{T}y)}{partial heta})
(=frac{1}{2}(2X^{T}X heta - X^{T}y - (y^{T}X)^{T}) = X^{T}X heta - X^{T}y)

求驻点,令偏导为0,则( heta = (X^{T}X)^{-1}X^{T}y)

加入扰动项

防止(X^{T}X)不可逆或过拟合,增加(lambda)扰动:

( heta = (X^{T}X + lambda I)^{-1}X^{T}y)

换个角度看扰动项

一般在求解回归的问题中,为防止过拟合我们会加入一个正则项,常用的正则项有L0-norm, L1-norm, L2-norm.(它们三者之间的区别与联系不作为本篇博客的重点,详细的解释见这篇博客:点我点我
假设我们使用L2-norm(因为好求导~),则目标函数变为:

$J'( heta) = frac{1}{2}(h_{ heta}(x^{(i)})-y^{(i)})^{2} + lambdasum_{j=1}^{n} heta_{j}^{2} ( )= frac{1}{2}(X heta-y)^{T}(X heta-y) + lambda heta^{T} heta$

然后对这个新的目标函数对( heta)求偏导,求驻点,得到:

( heta = (X^{T}X + lambda I)^{-1}X^{T}y)

与前面直接加入扰动项的做法是完全一致的!!怎么样,有木有很神奇!!(今年校招滴滴的笔试题最后一个简答题就是问这个知识点,后知后觉啊。。)

解法二:梯度下降

  • 随机初始化( heta)
  • 沿着负梯度方向迭代,更新后的( heta)使得(J( heta))更小;
  • ( heta_{j} = heta_{j} - alpha frac{partial J( heta)}{partial heta})

梯度方向

(frac{partial J( heta)}{partial heta_{j}} = frac{partial}{partial heta_{j}}frac{1}{2}(h_{ heta}(x) - y)^{2})
$ = (h_{ heta}(x) - y)frac{partial}{partial heta_{j}}(h_{ heta}(x) - y) ( ) = (h_{ heta}(x) - y)x_{j}$

原文地址:https://www.cnblogs.com/little-YTMM/p/5885856.html