我是深度学习领域的初学者。我正在尝试开发一个CNN,它使用VGG 16架构作为底层,并且我为最后的顶层开发了一些层。
使用Rrprop更新网络一次,其中lr = 0.01,alpha = 0.99,eps = 1e-6,激活值通过网络变得越来越大。例如,对于conv2,值从0.xx变为十位数。这导致最后一层的NaN。
似乎RMSprop会更改某些参数值,例如,从x * 1e-3更改为x * 1e-2(或1e-2到1e-1)。
然而,我想知道这些微小的变化是否确实会导致深度学习中的问题,如第二段所述。人们称这种现象为梯度爆炸吗?
(最后说明,当我使用SGD Nesterov时,我的网络在更新期间保持稳定。)
答案 0 :(得分:0)
您应该尝试将学习率设为0.001。
只是一个问题,为什么你没有使用Adam Optimizer,它似乎是很多情况下最好的优化器? (它甚至部分受到你使用的RMSProp的启发)
如果您对SGD优化感兴趣,我建议您阅读本文,这对我有很大帮助:http://sebastianruder.com/optimizing-gradient-descent/