再论最小二乘
标签(空格分隔): 机器学习
前面有写过一篇关于最小二乘与最大似然估计的博客点我点我,该博客从二者的本质不同进行了分析(一个是为了最好的拟合数据,一个是通过概率分布使时间最可能发生)
本篇博客将从目标函数求驻点及梯度下降的角度比较二者的不同。
最小二乘
目标函数
目标函数实际是从拟合中残差服从高斯分布推导出来的,但实际我们可以直接使用:
\(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}$