1. 程式人生 > >均方誤差和交叉熵損失函數比較

均方誤差和交叉熵損失函數比較

誤差 針對 很多 部分 spa ror 反向傳播 激活 能夠

一.前言

在做神經網絡的訓練學習過程中,一開始,經常是喜歡用二次代價函數來做損失函數,因為比較通俗易懂,後面在大部分的項目實踐中卻很少用到二次代價函數作為損失函數,而是用交叉熵作為損失函數。為什麽?一直在思考這個問題,這兩者有什麽區別,那個更好?下面通過數學的角度來解釋下。 思考:我們希望我們損失函數能夠做到,當我們預測的值跟目標值越遠時,在修改參數時候,減去一個更大的值,做到更加快速的下降。

二.兩種代價函數的表達式

二次代價損失函數: 技術分享圖片 技術分享圖片 交叉熵損失函數: 技術分享圖片 技術分享圖片 針對二分類來說,其中: 技術分享圖片 技術分享圖片 ai第Xi個樣本經過前向傳播之後到達最後一個節點的值

三.收斂速度比較

兩個函數反向傳播梯度比較 1.二次代價函數 為了方便只取一個樣本,那麽損失為: 技術分享圖片 技術分享圖片 那麽w,b的梯度為: 技術分享圖片 技術分享圖片 技術分享圖片 2.交叉熵 為了方便只取一個樣本,損失為: 技術分享圖片 技術分享圖片 計算w,b的梯度: 技術分享圖片 技術分享圖片 技術分享圖片 分析和結論 由此可看出,在做後向傳播時 1.對於square mean在更新w,b時候,w,b的梯度跟激活函數的梯度成正比,激活函數梯度越大,w,b調整就越快,訓練收斂就越快,但是Simoid函數在值非常高時候,梯度是很小的,比較平緩。 2.對於cross entropy在更新w,b時候,w,b的梯度跟激活函數的梯度沒有關系了,bz已經表抵消掉了,其中bz-y表示的是預測值跟實際值差距,如果差距越大,那麽w,b調整就越快,收斂就越快。

四.兩個損失函數的函數圖像

square mean: 技術分享圖片 技術分享圖片 交叉熵: 技術分享圖片 技術分享圖片 (這兩個圖是從吳恩達課程中截取出來的)可以看出,二次代價函數存在很多局部最小點,而交叉熵就不會。 附錄: simoid函數的導數: 技術分享圖片 技術分享圖片 參考: 1.https://blog.csdn.net/qikaihuting/article/details/78518263 2.https://stackoverflow.com/questions/36515202/why-is-the-cross-entropy-method-preferred-over-mean-squared-error-in-what-cases

均方誤差和交叉熵損失函數比較