梯度下降

 梯度下降

1. 作用

常用于递归性逼近最小偏差模型 更新权重

(寻找最小的那个损失值,从而可以反推出对应的学习参数b和w)

2. 加速训练的方法

SGD

momentum

惯性


梯度下降_第1张图片


AdaGrad


梯度下降_第2张图片

这种方法是在学习率上面动手脚, 使得每一个参数更新都会有自己与众不同的学习率, 他的作用和 momentum 类似, 不过不是给喝醉酒的人安排另一个下坡, 而是给他一双不好走路的鞋子, 使得他一摇晃着走路就脚疼, 鞋子成为了走弯路的阻力, 逼着他往前直着走.  

RMSProp


梯度下降_第3张图片

有了 momentum 的惯性原则 , 加上 adagrad 的对错误方向的阻力, 我们就能合并成这样. 让 RMSProp同时具备他们两种方法的优势.

Adam


梯度下降_第4张图片

计算m 时有 momentum 下坡的属性, 计算 v 时有 adagrad 阻力的属性, 然后再更新参数时 把 m 和 V 都考虑进去. 实验证明, 大多数时候, 使用 adam 都能又快又好的达到目标, 迅速收敛. 所以说, 在加速神经网络训练的时候, 一个下坡, 一双破鞋子, 功不可没.

参数:

Alpha/learning_rate: 学习率或步长因子,它控制了权重的更新比率(如 0.001)。较大的值(如 0.3)在学习率更新前会有更快的初始学习,而较小的值(如 1.0E-5)会令训练收敛到更好的性能。

Beta1: 一阶矩估计的指数衰减率

Beta2: 二阶矩估计的指数衰减率

Epsilon:防止除以0

Adam 论文建议的参数设定:

测试机器学习问题比较好的默认参数设定为:alpha=0.001、beta1=0.9、beta2=0.999 和 epsilon=10E−8。

比较

梯度下降_第5张图片

加速神经网络训练 (Speed Up Training) - Tensorflow | 莫烦Python

你可能感兴趣的:(梯度下降)