這個問題之前也遇到過,沒有深究,最近一位網友向我詢問此事,我總結如下:
首先我們要知道反向傳播的流程:
1、概念:
前項傳播:
反向傳播:
反向傳播的思想其實就是,對於每一個訓練實例,將它傳入神經網絡,計算它的輸出;然後測量網絡的輸出誤差(即期望輸出和實際輸出之間的差異),並計算出上一個隱藏層中各神經元爲該輸出結果貢獻了多少的誤差;反覆一直從後一層計算到前一層,直到算法到達初始的輸入層爲止。此反向傳遞過程有效地測量網絡中所有連接權重的誤差梯度,最後通過在每一個隱藏層中應用梯度下降算法來優化該層的參數(反向傳播算法的名稱也因此而來)。
權重更新方式是發生在反向更新階段,過程:,對於神經元A來說,wi更新的方向和後幾項都有關係,先看超參數,他是人爲規定的,默認值,所以學習率可以不考慮;再看最後兩位乘積項,這個對於神經元A來說,它是神經元A的誤差表示,在某一次反向傳播也是不變的,也不考慮,所以w值的更新方向只與值有關,這個值是上一層神經元的輸入值,即經過了sigmod函數激活過,所以肯定是正值,那麼可以得出結論:在某一次反向傳播時,對於神經元A來說,w1、w2..改變的方向是統一的,或正或負。如果你的最優值是需要w1增加,w2減少,那麼只能走z字形才能實現。
參考資料:
https://zhuanlan.zhihu.com/p/32714733
https://zhuanlan.zhihu.com/p/25110450
https://liam.page/2018/04/17/zero-centered-active-function/