[Datawhale X 李宏毅苹果书AI夏令营] 深度学习进阶 Task2

学习链接:https://linklearner.com/activity/16/15/45

参考资料:《深度学习详解》

自适应学习率

有时候,梯度下降时会遇到”来回震荡“的情况。

这就说明对应的学习率过大了。但如果我们学习率设置的过小,在需要快速下降的时候,又由于下降的慢、下降步数增多,导致浪费了计算资源。所以提出了自适应学习率(adaptive learning rate)的概念,使得梯度下降时,学习率随着学习进度的变化而变化,而不是一个恒定值。

AdaGrad

AdaGrad (Adaptive Gradient) 是典型的自适应学习率方法,根据梯度大小自动调整学习率。

左边式子中,\eta是学习率,\sigma^i_t是与梯度有关的参数,t代表迭代轮数为第t轮,i代表对应模型中的第i个需要学习的参数。在AdaGrad中,学习率的变化与当次梯度更新之前所有梯度的均方差有关。这样在学习过程中可以自动改变学习率。

RMSProp

RMSprop (Root Mean Squared propogation) 与AdaGrad相似,只不过计算\sigma^i_t的公式有所改变。他只关心当前以及上一次的梯度的加权平均,并且可以调节二者的权重。

Adam

Adam (Adaptive moment estimation) 是最常用的优化策略或优化器 (optimizer) 。可以直接调用Pytorch的Adam优化器。

学习率调度

AdaGrad优化存在一些问题,就是快接近终点时突然学习率”爆炸“了,会导致误差表面上的优化路径波动明显。如下图所示:

引入学习率调度 (learning rate scheduling) 可以解决这个问题。在学习率调度中,\eta是个随时间变化的量,因此可以将符号写为\eta_t

学习率衰减

最常见的调度策略是学习率衰减 (learning rate decay) ,也称学习率退火 (learning rate annealing)。随着参数不断更新,\eta_t会越来越小,从而不会出现快到终点时优化路径剧烈波动的问题。学习率退火的公式以及\eta_t随时间变化曲线如下:

采用退火策略后,就可以平稳到达梯度下降的终点了:

学习率预热

预热是让学习率先变大后边小,至于变到多大、变大的速度、变小的速度是超参数。残差网络 (ResNet) 是要用预热的。

Kaggle实践

分类结果跑出来了,但没找到提交地址。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值