我是神经网络的新手,为了掌握这个问题,我实施了一个基本的前馈MLP,我目前通过反向传播进行训练。我知道有更复杂和更好的方法可以做到这一点,但在Introduction to Machine Learning中他们建议用一两个技巧,基本的梯度下降对于从现实世界数据中学习是有效的。其中一个技巧是自适应学习率。
当错误变小时,想法是将学习率提高一个常数值 a ,当错误时,将学习率降低一小部分 b 变得更大。所以基本上学习率的变化取决于:
+(a)
如果我们正朝着正确的方向学习,
-(b * <learning rate>)
如果我们破坏了我们的学习。但是,在上面的书中,没有关于如何设置这些参数的建议。我不希望得到一个精确的建议,因为参数调整本身就是一个完整的主题,但至少只是暗示了它们的数量级。有什么想法吗?
谢谢你,
Tunnuz
答案 0 :(得分:6)
我没有看过神经网络的时间最长(10年以上),但在看到你的问题后,我想我会快速了解一下。我一直在互联网上看到与增加相关的数字( a )和减少( b )因素( 1.2 &amp; 0.5 )。
我已经成功地将这些价值观追踪到Martin Riedmiller和Heinrich Braun的RPROP algorithm(1992)。 Riedmiller和Braun对于明智的参数选择非常具体。
请参阅:RPROP: A Fast Adaptive Learning Algorithm
我希望这会有所帮助。