0

我是深度学习领域的初学者。我正在尝试开发一种使用VGG 16架构的CNN,并为最后一层开发了一些图层。使用RMSprop时梯度爆炸

通过使用RMSprop(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涅斯捷罗夫,我的网络更新停留期间稳定。)

+0

当梯度爆炸,尝试的第一件事就是以降低学习率。 –

回答

0

你应该尽量把你的学习速度在0.001。

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

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

+0

无论我学习率如何,它给我看起来像梯度爆炸一样的结果。但是,我使用批量标准化解决了这个问题。批量标准化似乎是复杂或深度神经网络的必要工具之一。现在我正在尝试使用亚当,看起来亚当在损失方面给出了更好的结果。感谢您的回答。 – hjung