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


一.前言

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

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

 
二次代價損失函數:
交叉熵損失函數:
針對二分類來說,其中:
 
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函數的導數:
 
 
 
參考:
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM