Review
回顾在线性回归中函数最优化计算的过程中,需要对梯度进行计算,然后一步一步微调参数w和b,最后得到一个使loss最小的最优解。
![](https://img.haomeiwen.com/i4387271/9082d144123b38a7.png)
每次都是沿着法线的方向对结果进行微调修改参数
![](https://img.haomeiwen.com/i4387271/93a71df1cc04c86c.png)
Tip 1: Tuning your learning rates
如果学习率过大,就会在最低点上面来回动荡,永远都到不了最低点;
如果学习率过小,就会使收敛过慢,需要训练很久才能到达最优结果。
![](https://img.haomeiwen.com/i4387271/1cc5daabba8b96c6.png)
可以对学习率实时进行调整,一开始很大,然后逐渐减少。这个就是常规的方法,也称Vanilla Gradient dedcent
![](https://img.haomeiwen.com/i4387271/184901ab677a45ed.png)
更好的解决方案:Adagrad。
用前一次的学习率乘以vanilla参数然后再除以前面所有梯度的均方根。
![](https://img.haomeiwen.com/i4387271/cf33695369d9af8c.png)
![](https://img.haomeiwen.com/i4387271/52c94ce7f809dde9.png)
对Adagrag进行简化
![](https://img.haomeiwen.com/i4387271/bb77f75d7f6b97a4.png)
问题:在Adagrag中,分子和分母的变化方向是一样的,是否造成矛盾?
![](https://img.haomeiwen.com/i4387271/56088f97a744070a.png)
直观的理由是造成一种反差的效果:
- 当前面几步比较慢的时候,后面会根据前面的梯度下降的值计算出一个比较小的均方根,导致下一步比较大;
-
当前面几步比较快的时候,后面会根据前面的梯度下降的值计算出一个比较大的均方根,导致下一步比较小;
最优的梯度下降方法应该是接近最低点的时候梯度下降速度减慢,而不是一直保持一个线性的值。
Tip 2: Stochastic Gradient Descent
思想:只对一个随机的样品进行梯度下降——加快训练速度
![](https://img.haomeiwen.com/i4387271/2559570ac22e9ef3.png)
传统的梯度下降:一步要计算20个;随机梯度下降:一步计算一个,20步计算20个。
![](https://img.haomeiwen.com/i4387271/fb1c8a3f6b60b70a.png)
Tip 3: Feature Scaling
特征缩放:使不同的特征拥有一样的规模大小
![](https://img.haomeiwen.com/i4387271/592e92187af21deb.png)
原因:使梯度线偏向于一个圆形,更好的进行梯度下降
![](https://img.haomeiwen.com/i4387271/cbfde06db6c59a84.png)
缩放方法:使数据的平均值为0,方差为1
![](https://img.haomeiwen.com/i4387271/ed0360386bccbf3c.png)
为什么梯度下降方法有效?
梯度下降的目标:给定一个点,找到一个最“陡峭”的方向前进一步。如何找到这一个陡峭的方向?
![](https://img.haomeiwen.com/i4387271/0fc394c771e28178.png)
泰勒公式:
![](https://img.haomeiwen.com/i4387271/94a5dd8c4268cba8.png)
![](https://img.haomeiwen.com/i4387271/29bf3585b0fd77ca.png)
![](https://img.haomeiwen.com/i4387271/dcd9f55b2ad3602b.png)
圆圈的半径足够小,即学习率足够小,每次沿着梯度下降最快的方向走一步,就会找到圆圈内最小值
![](https://img.haomeiwen.com/i4387271/ebca53d39ebea465.png)
![](https://img.haomeiwen.com/i4387271/9f8eaef370364124.png)
两个参数的情况:
![](https://img.haomeiwen.com/i4387271/928f505b46f3a8e2.png)
![](https://img.haomeiwen.com/i4387271/c67544e65dcfab5c.png)
虽然Gradient Descent方法有效找到一个“最低点”,但是还是会存在很多的问题,我们会在以后的学习中去解决它们。
![](https://img.haomeiwen.com/i4387271/7360765caeea2502.png)
胶片来自于台湾大学李宏毅教授的《机器学习课程》,侵删!
网友评论