在训练神经网络时,一般情况下学习率都会随着训练而变化,这主要是由于,在神经网络训练的后期,如果学习率过高,会造成loss的振荡,但是如果学习率减小的过快,又会造成收敛变慢的情况。因此,如何调整学习率也是一个值得讨论的问题。目前,比较常见的学习率退火方式有如下三种:
随步数衰减
比较常见的随步数衰减方式是每经过5个epoch学习率减小为一半,或者每经过20个epoch学习率减小为原来的十分之一。或者还有一种常见的经验做法,当发现验证集的loss停止下降的趋势时,将学习率固定的缩小一定的比例,如一半。
在实际应用中,随步数衰减的方法应用最为广泛。
指数衰减
指数衰减可以用如下的数学公式表示, α=α0e−ktα=α0e−kt,其中,t表示迭代次数,而α0,kα0,k是超参数
1/t衰减
1/t衰减可以用如下的数学公式表示,α=α0/(1+kt)α=α0/(1+kt)
与指数衰减的公式定义一致,t表示迭代次数,而α0,kα0,k是超参数
事实上,如果计算资源足够多,或者对训练的时间没有要求,可以把学习率设为一个较小的数值,这样总能在缓慢的训练中,最终达到收敛。
本文探讨了神经网络训练中学习率的调整策略,包括随步数衰减、指数衰减及1/t衰减三种常见方法,并分析了它们的应用场景。
2万+

被折叠的 条评论
为什么被折叠?



