2.1.4 对梯度消失和梯度爆炸的近似解决方案
生活随笔
收集整理的這篇文章主要介紹了
2.1.4 对梯度消失和梯度爆炸的近似解决方案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
梯度消失與梯度爆炸
如圖所示
對于一個層數比較深的網絡,如100層,如果w的參數設置的比1大,最后迭代訓練的結果是wlwl,將會是一個非常大的數,反之如果w的參數設置的比1小,經過迭代訓練之后結果會變得非常小。這種現象就稱之為梯度消失與梯度爆炸,這對于神經網絡的深度有很大的挑戰。
神經網絡的權重初始化
針對這一個問題,我們有一個不完善的解決辦法。但他可以幫助我們更謹慎的為神經網絡選擇隨機初始化參數。
我們先來看一下只有一個神經元的情況。
如圖左側所示,z是由很多的w組成的,我們希望n越大,w的值越小。其中最合理的方法就是設置為
wi=1nwi=1n
其中n表示神經元輸出特征數量。
寫成代碼的形式就是
wi = np.random.randn(shape)*np.sqrt(1/n)如果你用的ReLu函數的話,那么把1/n改成2/n就可以了。方差設置為2/n效果會更好。
我們通過這樣的零均值和歸一化處理,雖然沒能夠解決實際問題,但是這個w的范圍設置的更合理了。w不會比1大很多,也不會比1小很多,所以梯度爆炸和消失的程度得到了一定的緩解。
右圖顯式的是其他函數權重的初始化方式,也是在論文中提出來的,目前還在處于探索階段。
總結
以上是生活随笔為你收集整理的2.1.4 对梯度消失和梯度爆炸的近似解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2.1.3 正则化(归一化)的用处以及何
- 下一篇: 2.1.5 梯度检验