均方誤差和交叉熵損失函數比較
阿新 • • 發佈:2018-09-15
誤差 針對 很多 部分 spa ror 反向傳播 激活 能夠 三.收斂速度比較
兩個函數反向傳播梯度比較
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
一.前言
在做神經網絡的訓練學習過程中,一開始,經常是喜歡用二次代價函數來做損失函數,因為比較通俗易懂,後面在大部分的項目實踐中卻很少用到二次代價函數作為損失函數,而是用交叉熵作為損失函數。為什麽?一直在思考這個問題,這兩者有什麽區別,那個更好?下面通過數學的角度來解釋下。 思考:我們希望我們損失函數能夠做到,當我們預測的值跟目標值越遠時,在修改參數時候,減去一個更大的值,做到更加快速的下降。二.兩種代價函數的表達式
二次代價損失函數: 交叉熵損失函數: 針對二分類來說,其中: 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
均方誤差和交叉熵損失函數比較