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

本博客转载自微信公众号炼丹笔记 ,作者时晴。旨在于整理笔记,不作他用。有一些公式太长无法复制,所以有所缺失。需要的话可直接阅读原文

本文介绍目前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

01 分段常数衰减

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

图片

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

02 指数衰减

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

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

图片

03 自然指数衰减

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

在这里插入图片描述

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

图片

04 多项式衰减

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

在这里插入图片描述

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

  1. 降到最低学习率后,到训练结束可以一直使用最低学习率进行更新;

  2. 另一个是再次将学习率调高,使用decay_steps的倍数,取第一个大于global_steps的结果,即:

    在这里插入图片描述

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

图片

05 倒数衰减

倒数衰减的数学公式为:

在这里插入图片描述

图片

06 余弦衰减

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

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

图片

07 循环学习率衰减

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

图片

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

08 线性余弦衰减

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

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

图片

09 噪声线性余弦衰减

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

图片

参考文献

图片

  1. tensorflow learning schedule之分段常数衰减用法

  2. An Overview of Deep Learning Optimization Methods and Learning Rate Attenuation Methods

  3. Tensorflow中learning rate decay的奇技淫巧

  4. TensorFlow使用记录 (三):Learning Rate Scheduling

  5. 深度学习中的固定学习率衰减策略总结

  6. https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/training/learning_rate_decay.py

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值