我是神经网络的新手,为了掌握这个问题,我实现了一个基本的前馈MLP,我目前通过反向传播来训练它。我知道有更复杂和更好的方法可以做到这一点,但在《机器学习入门》中,他们建议使用一两个技巧,基本的梯度下降可以有效地从现实世界的数据中学习。其中一个技巧是适应性学习率。
其思想是当误差变小时,将学习率增加一个常数a,当误差增大时,将学习率降低一个分数b。所以基本上学习率变化是由:
决定的+(a)
如果我们在正确的方向学习,和
-(b * <learning rate>)
如果我们正在破坏我们的学习。然而,在上面的书中没有关于如何设置这些参数的建议。因为参数调优本身就是一个完整的主题,所以我不希望得到一个精确的建议,但至少是一个量级上的提示。什么好主意吗?谢谢,
Tunnuz
我已经很长时间(10年以上)没有研究神经网络了,但是在看到你的问题之后,我想我应该快速地研究一下。我一直在网上看到相同的数字,关于增加因子(a)和减少因子(b) (1.2 &0.5 )。
我已经设法将这些值追溯到Martin Riedmiller和Heinrich Braun的RPROP算法(1992)。Riedmiller和Braun对合理参数的选择非常具体。
参见:RPROP:一种快速自适应学习算法