使用RMSprop时梯度爆炸

时间:2017-04-16 11:55:27

标签: neural-network deep-learning conv-neural-network gradient-descent

我是深度学习领域的初学者。我正在尝试开发一个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时,我的网络在更新期间保持稳定。)

1 个答案:

答案 0 :(得分:0)

您应该尝试将学习率设为0.001。

只是一个问题,为什么你没有使用Adam Optimizer,它似乎是很多情况下最好的优化器? (它甚至部分受到你使用的RMSProp的启发)

如果您对SGD优化感兴趣,我建议您阅读本文,这对我有很大帮助:http://sebastianruder.com/optimizing-gradient-descent/