9.类神经网络训练不起来怎么办(三)Adaptive Learning Rate

9 类神经网络训练不起来怎么办(三)自动调整学习率

自动调整学习速率:Adaptive Learning Rate

critical point 不一定是我们训练过程中最大的阻碍

往往在训练一个network时,我们会把它的loss记录下来,通常随着参数update的次数增加loss会减小,最后就卡住了,多数时候,大家就会猜说是不是走到了critical point,因为gradient = 0 ,没法更新参数。但你真的确认过,当loss无法在下降的时候,gradient 真的很小吗

比如下面这个例子,当训练终止的时候,loss几乎已经不动了,gradient 却在反复振荡。
可能是现在的gradient在error surface 山谷的的两个谷壁间反复振荡,这时loss不会再下降,但gradient却不是最小。(步幅太大,没法掉下去)

image-20210412094111234

如果gradient descend 所有的参数都设同样的learning rate 会出现下面的情况:步幅过大,无法得到较小的loss,步幅过小无法逼近local minima的点。(如下图右下角所示)

image-20210412102026769

当我们遇到更复杂的error surface ,真的要training一个 deep network 的时候,gradient descend 或许是你唯一可以依赖的工具

但这么简单的问题(上图) gradient descend 都做不好,更难的问题它又怎么可能做好呢?

所以我们需要更好的gradient descend 的版本 – learning rate 为每一个参数定制化

一个大的原则是:如果某一方向上坡度很大,我们其实希望learning rate 可以小一点;

如果某一方向上坡度很小,我们可以让learning rate 大一点

改进方案:修改学习率
image-20210412103128420

具体参数处理如下:

image-20210412103254691

这一招被用在adagrad中。

坡度缓的时候,gradient 比较小,而 σ 是gradient的平方和取平均再开根号。

所以 gradient 小 算出来的 σ 就小, σ 小 learning rate 就大。(下图右上角)

坡度陡峭的时候,正好相反,gradient 比较大,σ 就比较大,learning rate 就比较小。(下图右下角)

image-20210412173239050

但这并不是今天要学的最终版本,因为就算是同一个参数,他需要的learning rate 也会随着时间而改变

所以一个就有了一个新的招数:RMS Prop
新增一个hyper parameter: α

image-20210412175013116

新增的参数 α 是一个hyper parameter,需要自己调它。

以第二步𝜽 i2 ← 𝜽 i1为例:
如果 α 趋于0,就代表说我觉得gi1相较于之前算出的gradient 比较重要;

如果 α 趋于1 ,就代表说我觉得现在算出来的 gi1比较不重要,之前的算出来的gradient比较重要。

由 α 决定 gi1在整个σi1里面占多大的影响力。用 RMSProp 就可以动态调整 σ 这一项。

如下:当滚到下坡的时候(第三个点位)gradient 变大,如果用 RMSProp 然后 α 设小一点,就是让刚看到的gradient影响比较大的话,就可以很快的让你的 σ 值变大,也就可以很快的让你的步伐变小(踩一个刹车,避免飞出去)。

image-20210412182721570

目前最常用的 optimization 的策略就是 **Adam:**RMSProp + Momentum

image-20210412183011880

在一开始这个简单的 error surface 我们 train不起来,那加上 Adaptive Learning Rate 以后呢?

如下图右下角所示,快走到终点的时候发什么一些神奇的事情,因为它是把所有的 gradient 累计,初始的地方很大,后来很小,累计到一定程度后,step(左下红框部分)就变得很大,然后就暴走喷出去了

喷出去以后没关系,有办法修正回来,因为喷出去以后就走到了gradient比较大的地方, σ 又慢慢变大,步伐就慢慢变小(左右振荡力度变小)又回到中间的峡谷。

image-20210412190635094

解决的暴走的方法:Learning Rate Scheduling

Learning Rate Scheduling:让 η 与时间有关。随着时间增加 让 η 越来越小,因为越更新离终点越近。

image-20210412194857190

另一个方法:Warm Up

详见paper链接

image-20210412201535556

最后给出今天optimization的完整版本:
(其中momentum 之前讲过)
image-20210412201719377

接下来探讨的方向:路不好走,我们就直接将山炸平!(神罗天征,哈哈哈)链接在文末!

image-20210412202050362

李宏毅2021春机器学习笔记 --11.类神经网络训练不起来怎么办(五)批次标准化(Batch Normalization)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

与 或

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值