神经网络十大学习率衰减提效策略

神经网络十大学习率衰减提效策略!

v2-a7416f82290119464db27839ea43d82b_b.jpg

目前越来越多非结构化问题的出现,神经网络也扮演着愈加重要的作用。一个好的神经网络对于最终任务的预测至关重要,但要得到一个好的神经网络则需要考虑众多的因素,本文我们重点介绍神经网络中调参重学习率衰减的调节策略。本文介绍目前tensorflow中的9大学习率衰减策略。

exponential_decay = learning_rate_decay.exponential_decay
piecewise_constant = learning_rate_decay.piecewise_constant
polynomial_decay = learning_rate_decay.polynomial_decay
natural_exp_decay = learning_rate_decay.natural_exp_decay
inverse_time_decay = learning_rate_decay.inverse_time_decay
cosine_decay = learning_rate_decay.cosine_decay
cosine_decay_restarts = learning_rate_decay.cosine_decay_restarts
linear_cosine_decay = learning_rate_decay.linear_cosine_decay
noisy_linear_cosine_decay = learning_rate_decay.noisy_linear_cosine_decay

v2-b8fcd5c60003d4cc2c79ce44361d0207_b.jpg

在对应区间置中不同的学习率的常数值,一般初始学习率会大一些,后面越来越小,要根据样本量的大小设置区间的间隔大小,样本量越大,区间间隔要小一点。在真正的网络训练中,需要操作人员根据具体任务对学习率具体设置。下图即为分段常数衰减的学习率变化图,横坐标代表训练次数,纵坐标代表学习率。

v2-600a8740d5b7d18242a762e0ccf1e210_b.jpg

该方法有助于针对不同任务进行精细地调参,在任意步长后下降任意数值的learning rate。

v2-b82489a0230fc1291f41cc96495fc7d3_b.jpg

指数衰减的方式,学习率的大小和训练次数指数相关,指数衰减简单直接,收敛速度快,是最常用的学习率衰减方式,其数学公式为:

v2-4935dffed536e4e2b4a1b838863a2d6c_b.jpg

如下图所示,红色的为学习率随训练次数的指数衰减方式,蓝色的即为分段常数衰减 。

v2-df1598e794d83224da7954a57e18f90b_b.jpg

v2-6fdad175f551cba7675ec0b73408f7d1_b.jpg

自然指数衰减和指数衰减方式相似,不同的在于它的衰减底数是e,所以它的收敛的速度更快,一般用于相对比较容易训练的网络,便于较快的收敛,其更新公式为:

v2-4de718071676fe9385f414b46c00363d_b.jpg

和分段常数以及指数衰减相比,其中绿色的是自然指数衰减。

v2-72b2542195879687bd511b9a7e1468ef_b.jpg

v2-0f0964e4b5f7850881c6e5b7b028df43_b.jpg

多项式衰减的方式进行更新学习率,需要给定初始学习率和最低学习率,然后按照给定的衰减方式将学习率从初始值衰减到最低值,其更新规则即为:

v2-9b1969d6eb3a5b5f70b1406b07e21f1a_b.jpg

此处需要注意有两个机制:

  1. 降到最低学习率后,到训练结束可以一直使用最低学习率进行更新;
  2. 另一个是再次将学习率调高,使用decay_steps的倍数,取第一个大于global_steps的结果,即:

v2-1bd6ca4a0647da0f001b0a348aceff69_b.jpg

可以用它来防止神经网络在训练的后期由于学习率过小而导致的网络一直在某个局部最小值附近震荡,在后期增大学习率跳出局部极小值。

v2-8fcbb2bdc2bb198f231878a20f540cc0_b.jpg

v2-d031f20bb1cd8316272aafbcb3ee3c40_b.jpg

倒数衰减的数学公式为:

v2-7b173188597145e76c287f8fe3338280_b.jpg

v2-b7a0127384d7b84da94c6542db738f41_b.jpg

v2-07d9c89c8c1ceda9f8d6b17d2805e2c0_b.jpg

顾名思义,就是采用余弦方式进行学习率的衰减。其更新机制如下:

v2-64ea8557f760931120ca4368869dd926_b.jpg

其中alpha可以看作是baseline,保证学习率不会低于某个值。不同alpha的影响如下:

v2-8ef91eca2099ac47ca4f7b7c52d4e7d7_b.jpg

v2-771bb0ee762e7b391f2ba3d4e3a7992b_b.jpg

学习率以循环周期进行衰减。是循环学习率的cycle版本。

v2-9566ddc90fb98c3306ee52709886a801_b.jpg

余弦函数式的下降模拟了大lr找潜力区域然后小lr快速收敛的过程,加之restart带来的cycle效果,有涨1-2个点的可能。

v2-b69f7687e0b7dd5726e94c622944a004_b.jpg

线性余弦衰减方式是基于余弦方式的衰减策略,其数学公式为:

v2-2ce59c1f7a84ecf0943fdd4974cc2b7d_b.jpg

线性余弦衰减一般应用领域是增强学习领域

v2-e16aab81a895886b1aa8d21116cc8de3_b.jpg

v2-41307c8b2c9f5fb24c4cf735fffd3c0e_b.jpg

在线性余弦衰减的基础上,加入了噪声。就得到了噪声线性余弦衰减。噪声线性余弦衰减提升了学习率寻找最优值的随机性和可能性。

v2-d6c29ddecf68076503e7bcc14f5e1599_b.jpg

v2-a869f750105ded2c989a7da2dddfb6b5_b.jpg

v2-ec7b0e81a8b039cc81fec306a64d2189_b.jpg

大家还可以依据自己的想法自定义学习率衰减策略,例如可以依据验证集合的表现,来更新学习率,如果验证集合上评估指标在不断变好,则保持lr,否则降低学习率。

v2-76999d998e470eef7af32d434442337c_b.jpg

v2-ec8ce60d0f69420d8bc13b6cd5f3bb44_b.jpg

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值