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

Machine learning 误差反向传播算法中的学习率递减,machine-learning,neural-network,backpropagation,gradient-descent,supervised-learning,Machine Learning,Neural Network,Backpropagation,Gradient Descent,Supervised Learning,这或多或少是一个一般性的问题,在我的反向传播算法的实现中,我从一些“大”的学习率开始,然后在我看到错误开始增长后降低它,而不是缩小。 我可以在错误增长一点之后(StateA)或即将增长之前(StateB,某种程度上回滚到以前的“成功”状态)降低速率 所以问题是,从数学的角度来看,什么更好? 或者我需要执行两个并行测试,比如说,尝试从点StateA学习,然后从点StateB学习,两者的学习率都降低了,并比较哪一个降低得更快 顺便说一句,我没有尝试上一段的方法。只有在我写这个问题的时候,它才会出现在

这或多或少是一个一般性的问题,在我的反向传播算法的实现中,我从一些“大”的学习率开始,然后在我看到错误开始增长后降低它,而不是缩小。 我可以在错误增长一点之后(StateA)或即将增长之前(StateB,某种程度上回滚到以前的“成功”状态)降低速率

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


顺便说一句,我没有尝试上一段的方法。只有在我写这个问题的时候,它才会出现在我的脑海里。在当前的算法实现中,我继续从学习率下降的StateA学习,假设学习率的下降幅度很小,使我回到先前的方向,达到全局最小值,如果我偶然遇到的只是局部最小值,那么您所描述的是一组称为学习速率调度的技术之一。让您知道,有两种以上的技巧:

  • 预定的piesewise恒定学习率
  • 性能计划(看起来与您的最接近)
  • 指数调度
  • 电力调度
每种方法的精确性能在很大程度上取决于优化器(SGD、MONTORM、NAG、RMSProp、Adam等)和数据流形(即训练数据和目标函数)。但是,他们已经就深度学习问题进行了研究。例如,我建议您比较语音识别任务的各种技术。作者的结论是,指数调度表现最好。如果你对它背后的数学感兴趣,你肯定应该看看他们的学习