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