降低错误反向传播算法的学习率

时间:2017-10-22 08:52:17

标签: machine-learning neural-network backpropagation gradient-descent supervised-learning

这或多或少是一般性的问题,在我实现的反向传播算法中,我从一些&#34; big&#34;学习率,然后在我看到错误开始增长后减少它,而不是缩小范围。 我能够在错误增长(StateA)之后,或者在它即将增长之前(StateB,回滚到之前的#34;成功&#34;状态)< / p>

所以问题是从数学的角度来看哪个更好? 或者我是否需要执行两个并行测试,让我们尝试从StateA点学习,然后将StateB指向学习率降低并比较哪一个降低得更快?

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

1 个答案:

答案 0 :(得分:0)

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

  • 预定的piesewise常量学习率
  • 性能排程(看起来最接近你的)
  • 指数调度
  • 电力调度
  • ...

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