符号:
C : 代價函數
w:weight
b:bias
η:學習速率
在使用平方差作代價函數時:

其中a是預測結果
,
即
其用鍊式法則來求權重和偏置的偏導數就有(這裡求導過程我就不寫了,畢竟從 "宏觀" 上來了解一個問題我覺得會更重要。如果想去了解完整的過程可以去參考其他資料,如這本書,有中文版的,可以在網上找到):
sigmoid函數圖像如下:
而梯度下降更新規則為:
由 sigmoid 函數的圖像我們可以知道,當 z 很小 ( 遠小于0 ) 或者 z 很大 ( 遠大于0 ) 時,σ′(z) 趨于 0,是以代價函數對于 w 和 b 的偏導數就會很小。是以 w 和 b 就會産生的變化很小,故,學習緩慢。
而使用交叉熵作代價函數時:
其用鍊式法則來求權重和偏置的偏導數就有:
式中沒有 σ′(z) ,其實σ′(z) 在鍊式求導時被約去了,是以不會出現學習緩慢的問題 (除非在最後結果收斂的時候) 。它告訴我們權重學習的速度受到 σ(z) − y,也就是輸出中的誤差的控制。更大的誤差,會有更快的學習速度。這是我們直覺上期待的結果。
注:使用平方差會出現這樣的情況:在結果未收斂時就有一段 Epoch 學習緩慢,Cost 下降緩慢
而對應使用交叉熵:不會出現上述情況
擴充一下:其實還有一種組合方式也可以防止我們遇到學習緩慢的問題:
具有對數似然代價的柔性最大值輸出層
具有對數似然代價的柔性最大值輸出層和一個具有交叉熵代價的 S 型輸出層效果差不多,有興趣的朋友可以自己去了解一下,這裡就不闡述了。
完!