学习率改变策略

本文详细介绍了Caffe框架中常见的学习率调整策略,包括fixed、step、exp、inv、multistep、poly和sigmoid等,分析了每种策略的特点及适用场景,通过对比不同策略下的学习率变化曲线,总结了它们在神经网络训练过程中的表现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习率在神经网络训练中可以说是最重要也是最难调的超参数,下面结合博文(https://blog.youkuaiyun.com/hacker_long/article/details/85054085)总结caffe中常见的学习率改变策略。

变化策略

caffe框架中的策略包括:fixed,step,exp,inv,multistep,poly,sigmoid。

  • fixed:
    即学习率固定,这个是最简单的学习率变化策略(不变),配置文件中只需要一个参数,实际中用得比较少,原因是:为了避免跳过全局最优,当参数状态越来越逼近全局最优点时,我们应该降低学习率。
lr_policy: "fixed"
base_lr: 0.01
  • step:
    在迭代固定的次数之后以一定的比例降低学习率,这个策略很常用,是一种离散的学习率变化策略简单且非常优秀。
lr_policy: "step"
base_lr: 0.01
stepsize: 10000
gamma: 0.1
  • multistep:
    在迭代预设的不同次数后以一定的比例降低学习率,这个策略也很常用,也是一种离散的学习率变化策略简单且非常优秀,与step不同的是学习率发生改变的迭代次数不均匀。
lr_policy: "multistep"
gamma: 0.5
stepvalue: 10000
stepvalue: 30000
stepvalue: 60000
  • exp:
    表达式为:new_lr = base_lr * (gamma^iter),它符合指数函数的变化规律,是一种连续的学习率变化策略
    这种策略的学习率衰减非常快,gamma越大学习率衰减越慢,在caffe中以iter为指数而iter通常非常大,所以学习率衰减仍然非常快。


    13298870-abcd24503801924c.jpg
    exp变化策略中学习率随迭代次数变化曲线
  • inv:
    表达式为:new_lr = base_lr * (1 + gamma * iter)^(-power),从表达式可看出,inv中参数gamma控制曲线的下降速率,而参数power控制曲线在饱和状态下学习率达到的最低值。


    13298870-8738f62d9c01fd8e.jpg
    inv变化策略中学习率随迭代次数变化曲线
  • poly:
    表达式为:new_lr = base_lr * (1 - iter / maxiter)^power,从表达式可以看出学习率曲线主要由power值控制。当power = 1时,学习率曲线为一条直线。当power < 1时,学习率曲线为凸状。当power > 1时,学习率曲线为凹状


    13298870-b2dcc3722894147f.jpg
    poly变化策略中学习率随迭代次数变化曲线
  • sigmoid:
    表达式为:new_lr = base_lr * (1 / (1 + exp(-gamma * (iter - stepsize)))),其中,参数gamma控制学习率变化速率,gamma < 0时学习率才会下降,但是caffe中不支持。


    13298870-10475a62b5eedfea.jpg
    poly变化策略中学习率随迭代次数变化曲线

各策略的表现

下图为各学习策略下学习率随迭代次数变化曲线(caffe中type = sigmoid不能进行学习率下降,所以不做对比)


13298870-005aa1611d1958a9.jpg
图片

在训练数据集大小9000,batchsize=64,可知10000次迭代时,epoch=64*10000/9000>70,在该学习率下应该已经充分训练了,实验结果如下(文中开头博主做的实验)。


13298870-245da01fd528553a.jpg
精确率曲线
13298870-25906836daf269bf.jpg
精确率曲线局部放大图片

总结

  • step、multistep两个方法的收敛效果最好,虽然他们最离散但并不影响收敛结果
  • 其次是exp、poly,这两个策略能取得和step、multistep相当的结果,但不见得比他们优秀
  • inv、fixed的收敛效果最差
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值