李宏毅-2021春-机器学习/深度学习学习笔记-Deep Learning【3】

三、Tips for Training: Adaptive Learning Rate
1、训练收敛了吗?

  可能会出现这样一种情况,明明训练的损失已经看上去收敛了,但是梯度还是在来回的波动,不用担心,可能其只是卡在了局部最优解的山谷里反复横跳而已;

2、如果不是局部最优解的话,为什么训练损失卡住了呢?

  可能是你的学习率(Learning Rate)调整的不好。太大,会来回横跳,太小,步伐会太慢,可能永远到不了终点;

3、自适应你的学习率

(1)目标:如果在某一个方向上梯度很大,我们希望学习率会小一点,反之,如果某个方向上梯度很小,我们会希望学习率会增大一些;

(2)原来的参数更新方法: θ i t + 1 ← θ i t − η g i t \theta^{t+1}_i \gets \theta^t_i-\eta g^t_i θit+1θitηgit

自适应的参数更新方法: θ i t + 1 ← θ i t − η σ i t g i t \theta^{t+1}_i \gets \theta^t_i-\frac{\eta}{\sigma^t_i} g^t_i θit+1θitσitηgit

(3) σ \sigma σ的计算方式 ① :Root Mean Square应用于Adagrad(不常用)

θ i 1 ← θ i 0 − η σ i 0 g i 0 σ i 0 = ( g i 0 ) 2 = ∣ g i 0 ∣ θ i 2 ← θ i 1 − η σ i 1 g i 1 σ i 1 = 1 2 [ ( g i 0 ) 2 + ( g i 1 ) 2 ] θ i 3 ← θ i 2 − η σ i 2 g i 2 σ i 2 = 1 3 [ ( g i 0 ) 2 + ( g i 1 ) 2 + ( g i 2 ) 2 ] ⋮ θ i t + 1 ← θ i t − η σ i t g i t σ i t = 1 t + 1 ∑ i = 0 t ( g i t ) 2 \qquad\theta^1_i \gets \theta^0_i-\frac{\eta}{\sigma^0_i} g^0_i \qquad \sigma^0_i=\sqrt{(g^0_i)^2}=|g^0_i| \\ \qquad \theta^2_i \gets \theta^1_i-\frac{\eta}{\sigma^1_i} g^1_i \qquad \sigma^1_i=\sqrt{\frac 12[(g^0_i)^2+(g^1_i)^2]} \\ \qquad \theta^3_i \gets \theta^2_i-\frac{\eta}{\sigma^2_i} g^2_i \qquad \sigma^2_i=\sqrt{\frac 13[(g^0_i)^2+(g^1_i)^2+(g^2_i)^2]} \\ \qquad\qquad\qquad\qquad\qquad \vdots \\ \qquad \theta^{t+1}_i \gets \theta^t_i-\frac{\eta}{\sigma^t_i} g^t_i \qquad \sigma^t_i=\sqrt{\frac {1}{t+1}\sum_{i=0}^t (g^t_i)^2} θi1θi0σi0ηgi0σi0=(gi0)2 =gi0θi2θi1σi1ηgi1σi1=21[(gi0)2+(gi1)2] θi3θi2σi2ηgi2σi2=31[(gi0)2+(gi1)2+(gi2)2] θit+1θitσitηgitσit=t+11i=0t(git)2

(4) σ \sigma σ的计算方式 ② :RMS Prop(其中 α \alpha α是一个超参数, 0 < α < 1 0<\alpha<1 0<α<1
θ i 1 ← θ i 0 − η σ i 0 g i 0 σ i 0 = ( g i 0 ) 2 = ∣ g i 0 ∣ θ i 2 ← θ i 1 − η σ i 1 g i 1 σ i 1 = α ( σ i 0 ) 2 + ( 1 − α ) ( g i 1 ) 2 θ i 3 ← θ i 2 − η σ i 2 g i 2 σ i 2 = α ( σ i 1 ) 2 + ( 1 − α ) ( g i 2 ) 2 ⋮ θ i t + 1 ← θ i t − η σ i t g i t σ i t = α ( σ i t − 1 ) 2 + ( 1 − α ) ( g i t ) 2 \qquad \theta^1_i \gets \theta^0_i-\frac{\eta}{\sigma^0_i} g^0_i \qquad \sigma^0_i=\sqrt{(g^0_i)^2}=|g^0_i| \\ \qquad \theta^2_i \gets \theta^1_i-\frac{\eta}{\sigma^1_i} g^1_i \qquad \sigma^1_i=\sqrt{\alpha(\sigma^0_i)^2+(1-\alpha)(g^1_i)^2} \\ \qquad \theta^3_i \gets \theta^2_i-\frac{\eta}{\sigma^2_i} g^2_i \qquad \sigma^2_i=\sqrt{\alpha(\sigma^1_i)^2+(1-\alpha)(g^2_i)^2} \\ \qquad\qquad\qquad\qquad\qquad \vdots \\ \qquad \theta^{t+1}_i \gets \theta^t_i-\frac{\eta}{\sigma^t_i} g^t_i \qquad \sigma^t_i=\sqrt{\alpha(\sigma^{t-1}_i)^2+(1-\alpha)(g^t_i)^2} θi1θi0σi0ηgi0σi0=(gi0)2 =gi0θi2θi1σi1ηgi1σi1=α(σi0)2+(1α)(gi1)2 θi3θi2σi2ηgi2σi2=α(σi1)2+(1α)(gi2)2 θit+1θitσitηgitσit=α(σit1)2+(1α)(git)2

(5)最常用的Optimization策略:Adma[1]=RMS Prop + Momentum!
θ i t + 1 ← θ i t − η t σ i t m i t \theta^{t+1}_i \gets \theta^t_i-\frac {\eta^t}{\sigma^t_i}\pmb{m^t_i} θit+1θitσitηtmitmitmit
(6)学习率调整策略:这里我们让 η \eta η也随着时间而改变而非定值

  • 法一(Learning Rate Decay):让 η t \eta^t ηt随着时间变小到0;
  • 法二(Warm up):让 η t \eta^t ηt先从0变大后到一个顶峰再随着时间减小到0;

[1] Kingma D P, Ba J. Adam: A method for stochastic optimization[J]. arXiv preprint arXiv:1412.6980, 2014.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值