东阳的学习记录,坚持就是胜利!
文章目录
- 什么是梯度
- 梯度下降
- 选择合适的学习率
- 自适应的学习率
- Adagrad
- 矛盾吗??
- 反差
- 随机梯度下降
- 示意图
- 特征缩放(Feature Scaling)
- 怎么做特征缩放
- 梯度下降的数学原理
- 思考题
- 如何实现梯度下降
- 怎么确定红色圈内的最低点
- 泰勒公式
- 牛顿法是把二次项也考虑进来的
- 梯度下降的问题
什么是梯度
梯度就是数学上的导数概念。
Gradient: Loss的法线方向
梯度下降
选择合适的学习率
- 学习率过小,参数更新的太慢,导致训练时间长
- 学习率过大,导致无法收敛,在最优解附近震荡
将参数变化和loss图像可视化
自适应的学习率
通常的做法:随着迭代轮数的增加,增大学习率。
- 在训练开始时,选择一个比较大的学习率,能帮助模型更快收敛;
- 再经过多次迭代后 ,将学习率调小,这样可以避免在最优解附近震荡;
- eg:
学习率的选择并不能一刀切:
- 对于不同的参数需要设置不同的学习率
Adagrad
将每个参数的学习率除以过去各个时间该参数的平方和。
矛盾吗??
反差
使用这样的学习率,可以突出改参数与之前的反差。
由下图可以看到,最好的学习率等于
在实际应用中,为了减少运算,通常使用过去参数的平方和来代替。
随机梯度下降
使训练更快
-
传统的梯度下降:
传统的梯度下降,每次更新参数都需要考虑所有样本。 -
随机梯度下降:
考虑一个样本进行梯度下降
示意图
如下图所示,随机梯度下降法,对每一个样本都进行一次梯度下降,假设有20个样本,那么在传统方法只进行了一次参数更新时,随机梯度下降方法已经进行了20次。大大缩短训练时长。
特征缩放(Feature Scaling)
通过特征缩放,使得不同的特征,有着同样的缩放比例。
gradient下降的方向并不是指向最低点,但是当特征等高线为圆时是指向最低点的,可以使训练更快。
怎么做特征缩放
- 归一化
梯度下降的数学原理
思考题
每次更新参数后,Loss一定会变小吗?这里老师举了一个我的世界的例子。(并不一定)
如何实现梯度下降
在当前参数周围画一个很小的红色圈圈,在该红色圈圈内找到最低点。
怎么确定红色圈内的最低点
泰勒公式
即需要找到sita1, sita2的值使得L最小。
其中u, v是对应的偏微分大小。其中红色圈圈的半径需要足够小!!!(这个半径与学习率有关,所以需要学习率不能过大)
牛顿法是把二次项也考虑进来的
目前该方法并不普及,虽然可以提高参数更新的准确率,但是计算代价很高。
梯度下降的问题
- 可能是局部最优解(local minima),也可能并不是局部最优解(saddle point)。