学习率优化方式

本文探讨了工业界常用的学习率策略,包括固定学习率、衰减学习率、warm up预热以及周期性学习率。重点介绍了各种衰减函数,如指数衰减、倒数衰减、分段常数衰减、自然指数衰减、阶梯型衰减和余弦衰减,并解释了warm up的重要性。最后提到了周期性学习率的概念,它允许学习率在预设范围内周期性变化,以提升模型性能。
摘要由CSDN通过智能技术生成

背景:调整学习率可能会对模型提升1~2%,当前我们采用的学习率比较简单粗暴,使用指定学习率,为了优化模型,现对学习率进行探索,希望对我们模型的指标结果有所提升

一、工业界学习率现存形式

1、指定学习率

固定学习率,只在模型训练的全过程中,学习率只采用某个固定值,如0.15,进行模型训练

2、指定学习率+衰减

指定学习率+衰减,顾名思义是,满足一定条件内,使用固定学习率,如0.15,达到条件后,采用衰减的形式

代码如下:

指定学习率+衰减

initial_learning_rate = 0.15

lr_schedule = tf.keras.optimizers.schedules.ExponentialDecay(

    initial_learning_rate,

    decay_steps=100000,

    decay_rate=0.8,

    staircase=True)

3、warm up

谈到warm之前,总结一下,学习率几种常见的衰减形式

3.1 衰减函数

  • 指数衰减

tf.train.exponential_decay()

lr_schedule = tf.keras.optimizers.schedules.ExponentialDecay

指数衰减 代码

lr_schedule = tf.keras.optimizers.schedules.ExponentialDecay(

        initial_learning_rate,

        decay_steps=100000, # 衰减周期,当staircase=True时,学习率在decay_steps内保持不变,即得到离散型学习率;

        decay_rate=0.8,#衰减率系数

        staircase=True) # 是否定义为离散型学习率,默认False

def decayed_learning_rate(step):

  return initial_learning_rate * decay_rate ^ (step / decay_steps)
  # 当为False时,需要加一个判断语句
  
  • 倒数衰减
tf.train.inverse_time_decay()

tf.keras.optimizers.schedules.InverseTimeDecay

倒数衰减代码

tf.keras.optimizers.schedules.InverseTimeDecay(

    initial_learning_rate, decay_steps, decay_rate, staircase=False, name=None

)


# staircase=False

def decayed_learning_rate(step):

  return initial_learning_rate / (1 + decay_rate * step / decay_step)
  • 分段常数衰减:

tf.train.piecewise_constant

tf.keras.optimizers.schedules.PiecewiseConstantDecay

分段常数衰减

# tf1.x系列

tf.train.piecewise_constant(

    x,

    boundaries, # 列表,表示分割的边界;

    values, # 列表,分段学习率的取值;

    name=None):

 

# parameter

global_step = tf.Variable(0, trainable=False)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值