再论最小二乘

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


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

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

最小二乘

目标函数

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

解法一:直接求导

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

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

加入扰动项

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

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

换个角度看扰动项

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

$J'(\theta) = \frac{1}{2}(h_{\theta}(x{(i)})-y)^{2} + \lambda\sum_{j=1}{n}\theta_{j} \( \)= \frac{1}{2}(X\theta-y)^{T}(X\theta-y) + \lambda \theta^{T}\theta$

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

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

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

解法二:梯度下降

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

梯度方向

\(\frac{\partial J(\theta)}{\partial\theta_{j}} = \frac{\partial}{\partial\theta_{j}}\frac{1}{2}(h_{\theta}(x) - y)^{2}\)
$ = (h_{\theta}(x) - y)\frac{\partial}{\partial\theta_{j}}(h_{\theta}(x) - y) \( \) = (h_{\theta}(x) - y)x_{j}$

posted @ 2016-09-19 17:06  江湖小妞  阅读(373)  评论(0编辑  收藏  举报