学习率的优化

学习率既不能过大, 也不能过小 。为了更好地设置学习率,我们可以逐步减小己经设置好的学习率。
1.指数形式的衰减
  TensorFlow提供了train.exponential_ deccy() 函数,可以对学习率进行指数形式的衰减。
如果用 decayed_learning_rate代表每一轮优化时使用的学习率,learning_ rate 为事先预定义的初始学习 率, decay_rate为衰减系数, decay_ steps 为衰减速度,那么train . exponential_ decay() 函数按以下公式返回decayed_learning_rate 的值:
在这里插入图片描述
使用这个函数时,通常会将 learning_rate 设置为比较大的一个数(但是绝对要比1小 )来获得一个比较快的参数更新速度,然后随着法代的继续逐步减小学习率,这样会使模型在训练后期更加稳定。

#learning_rate是初始学习率, global step是当前训练进行的轮数,
#decay steps 是衰减速度,#decay_rate 是衰减系数, staircase 参数指定了衰减方式
exponential_decay(learning_rate,global_step,deca y_steps,decay_rate,staircase,name)

一般来说,初始学习率、衰减系数和衰减速度都是根据经验设置的,参数 staircase 用于选择不同的衰减方式。 staircase 默认值为 False ,这时的学习率会按照指数的形式连续衰减。(学习率连续衰减
当 staircase 的值被设置为 True 时, decay_steps 通常代表了迭代多少轮后再更新学习率参数,而这个迭代轮数也就是总训练样本数除以每一个 batch 中的训练样本数 。 这样做的结果是global_step/decay_steps 被取为近似值,最终的学习率成为一个阶梯函数( Staircase Function )。(学习率阶梯状衰减
上述两种学习率衰减形式如下:
在这里插入图片描述
  学习率如果连续衰减,那么不同的训练数据就会有不同的学习率。这样做稍有弊端,当学习率减小时,在相似的训练数据下参数更新的速度也会放慢,这就相当于减小了训练数据对模型训练结果的影响。
  对于阶梯衰减的学习率,为了使得训练数据集中的所有数据对模型训练有相等的作用(表现为学习率相等), 通常是将所有的训练数据都完整地过一遍再减小一次学习率
  (learning_rate=0.8, decay_rate=0.9, decay steps=100)代表初始学习率为 0.8,每训练 100 轮后学习率乘以 0.9 。
2. 反时限学习率衰减
  train . inverse
time_ decay()函数实现了反时限学习率衰减。

#函数原型
#inverse_time_decay(learnin_ rate, global_step, decay_steps,decay_rate,staircase,name)

将反时限衰减应用到学习率设置,计算公式:
在这里插入图片描述
3.自然指数学习率衰减
train.natural_ exp_ decay()函数实现了自然指数衰减学习率 。

#函数原型
#natural_exp_decay(learning_rate,global_step,decay_steps,decay_rate , staircase, name)

将自然指数衰减应用于学习率设置,计算公式:
在这里插入图片描述
在这里插入图片描述
4. 分片常数学习率衰减
train.piecewise_constant()函数实现了分片常数学习率衰减。

#函数原型
#piecewise_constant(x, boundaries, values, name)

例如, 前 5000 轮迭代使用 0.8 作为学习率, 5000 ~ 10000 轮使用 0.6 作为学习率, 以后使用 0.2 作为学习率,可以得到如下所示函数图像。
在这里插入图片描述
5. 多项式学习率衰减
多项式学习率衰减的特点是可以确定结束的学习率。 train.polynomial_decay()函数实现了多项式学习率衰减。

#函数原型
#polynomial_decay(learning_rate ,global_step,decay_steps,end_learning_rate, power,cycle, name)

这个函数会将多项式衰减应用于学习率的设置,使初始学习率learτiing_rate在给定的decay_steps中达到结束学习率end_ learning_ rate。参数 global_step 用来计算学习率的衰减速度。
在这里插入图片描述
如果将反时限多项式衰减应用到学习率设置,则计算公式为:
在这里插入图片描述
如果 cycle为 True ,则decay_steps 参数使用 decay_steps 的倍数 。具体公式如下(ceil 表示向上取整) :
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值