误差反向传播算法中的递减学习率

Decrement learning rate in error back propagation algorithm

这或多或少是一般性问题,在我的反向传播算法的实现中,我从一些 "big" 学习率开始,然后在我看到错误开始增长后降低它,而不是缩小。 我可以在错误增长一点之后 (StateA) 或就在它即将增长之前(StateB,有点回滚到以前的 "successful" 状态)

所以问题是从数学的角度来看什么更好? 或者我是否需要执行两个并行测试,比方说尝试从点 StateA 学习,然后点 StateB 两者都降低了学习率并比较哪个下降得更快?

顺便说一句,我没有尝试上一段中的方法。它只是在我写这个问题时突然出现在脑海中。在当前的算法实现中,我继续从 StateA 学习,学习率降低,假设学习率的降低相当小,如果我不小心只遇到局部最小值,我会回到之前的方向到全局最小值

您描述的是称为学习率调度 的技术集合之一。只是想让你知道,有两种以上的技术:

  • 预先确定的分段常量学习率
  • 演出安排(看起来最接近你的)
  • 指数调度
  • 电源调度
  • ...

每一个的确切性能在很大程度上取决于优化器(SGD、Momentum、NAG、RMSProp、Adam 等)和数据流形(即训练数据和 objective 函数)。但是他们已经针对深度学习问题进行了研究。例如,我建议您 this paper by Andrew Senior at al 比较语音识别任务的各种技术。作者的结论是 指数调度 表现最好。如果你对它背后的数学感兴趣,你一定要看看他们的研究。