李宏毅ML-自动调整学习速率

自动调整学习速率

1. RMS and Adagrad

在下面有两幅图,如第一幅图所示,随着 iteration 的增加,loss 在不断减少,最后趋近于 0,训练卡住不动了,很多人以为肯定是遇到了 critical point…
其实不然,如第二幅图所示,gradient 还是有起有伏的,并没有完全等于 0,只是在训练过程中,小球在两个峡谷的谷壁之间来回跳动,并没有落到谷底之中…
在这里插入图片描述
那么下面这张图背后的模型又是怎样训练出来的呢?下面这个模型需要特别的技巧才能将其训练出来。
但是在大多数的模型训练过程中,很多时候 loss 等于 0 但 gradient 还是很大,所以遇到 critical point 的几率还是较小的。

在这里插入图片描述
假如 critical point 也遇不到了,性能较好的模型依旧很难训练出来。
如下图所示,loss 相当于一个凸函数,要使 loss 逐渐变小最后趋近于 0,相当于在解一个凸优化的问题。
当 learning rate = 1 0 − 2 10^{-2} 102 时,设置得太过大了,以至于直接喷了出去;
当 learning rate = 1 0 − 7 10^{-7} 107 时,设置得太过小了,以至于始终走不到使得 loss 最小的点。
在这里插入图片描述
因此我们要给每一个不同的未知参数,单独设置学习率。
在坡度比较陡的时候,学习率设置小一点,在坡度比较平缓的时候,学习率设置大一点。
引入的参数 σ \sigma σ 是求 gradient 的 root mean square.
在这里插入图片描述
在这里插入图片描述
这也就是 Adagrad 优化算法。
在这里插入图片描述

2. RMSProp and Adam

刚刚的 error surface 是一个凸函数,梯度是在不断减小的,但如果遇到了如下这样比较复杂的情形时,梯度一会增加一会减小,我们就希望学习率能够动态的自适应。
在这里插入图片描述
在计算梯度的 RMS 时,多引入了一个超参数 α \alpha α,如果 α \alpha α 比较小,说明当前点的梯度占比多,反之,则说明前一个点的梯度占比较多。
在这里插入图片描述
这种对梯度的有权重地求 RMS 叫RMSProp.
在这里插入图片描述
RMSProp + Momentum 相结合起来使用,就变成了 Adam 优化算法。
在这里插入图片描述
让学习率根据 error surface 的变化而自适应,使用 Adagrad 优化算法后,发现 Loss 不断地走到了最小点。
在这里插入图片描述

3. Learning rate scheduling

在上面的模型训练过程中,虽然最后训练结果是好的,loss 减少到最小,但在做 optimization 的最后几步,突然喷了出去,是因为小球快滚到谷底了,连续较小的梯度和,使得学习率变得太大,以至于喷了出去。
在这里我们引入学习率调度,随着模型在不断地训练,当越来越接近目的地的时候,我们要减少学习率,以避免出现乱喷现象。
在这里插入图片描述

3. 总结

为了让 optimization 做得更好,我们由最开始的梯度下降公式,让学习率自适应,引入了 RMS,变成了 Adagrad 优化算法;然后为了应对更复杂的 error surface,引入了 RMSProp,再结合 Momentum,变成了 Adam 优化算法;最后为了应对 last few steps 的乱喷现象,引入了学习率调度,也就变成了如下图中的公式。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值