損失函數綜述
來自專欄 TensorFlowNews
歡迎大家關注我們的網站和系列教程:http://www.tensorflownews.com/,學習更多的機器學習、深度學習的知識!也可以搜索公眾號:磐創AI,關注我們的文章。
損失函數(loss function)又叫做代價函數(cost function),是用來評估模型的預測值與真實值不一致的程度,也是神經網路中優化的目標函數,神經網路訓練或者優化的過程就是最小化損失函數的過程,損失函數越小,說明模型的預測值就越接近真是值,模型的健壯性也就越好。
常見的損失函數有以下幾種:
(1) 0-1損失函數(0-1 lossfunction):
0-1損失函數是最為簡單的一種損失函數,多適用於分類問題中,如果預測值與目標值不相等,說明預測錯誤,輸出值為1;如果預測值與目標值相同,說明預測正確,輸出為0,言外之意沒有損失。其數學公式可表示為:
由於0-1損失函數過於理想化、嚴格化,且數學性質不是很好,難以優化,所以在實際問題中,我們經常會用以下的損失函數進行代替。
(2)感知損失函數(Perceptron Loss):
感知損失函數是對0-1損失函數的改進,它並不會像0-1損失函數那樣嚴格,哪怕預測值為0.99,真實值為1,都會認為是錯誤的;而是給一個誤差區間,只要在誤差區間內,就認為是正確的。其數學公式可表示為:(3)平方損失函數(quadratic loss function):
顧名思義,平方損失函數是指預測值與真實值差值的平方。損失越大,說明預測值與真實值的差值越大。平方損失函數多用於線性回歸任務中,其數學公式為:
接下來,我們延伸到樣本個數為N的情況,此時的平方損失函數為:
(4)Hinge損失函數(hinge loss function):
Hinge損失函數通常適用於二分類的場景中,可以用來解決間隔最大化的問題,常應用於著名的SVM演算法中。其數學公式為:
其中在上式中,t是目標值{-1,+1},y為預測值的輸出,取值範圍在(-1,1)之間。
(5)對數損失函數(Log Loss):
對數損失函數也是常見的一種損失函數,常用於邏輯回歸問題中,其標準形式為:
上式中,y為已知分類的類別,x為樣本值,我們需要讓概率p(y|x)達到最大值,也就是說我們要求一個參數值,使得輸出的目前這組數據的概率值最大。因為概率P(Y|X)的取值範圍為[0,1],log(x)函數在區間[0,1]的取值為負數,所以為了保證損失值為正數要在log函數前加負號。
(6)交叉熵損失函數(cross-entropy loss function):
交叉熵損失函數本質上也是一種對數損失函數,常用於多分類問題中。其數學公式為:
注意:公式中的x表示樣本,y代表預測的輸出,a為實際輸出,n表示樣本總數量。交叉熵損失函數常用於當sigmoid函數作為激活函數的情景,因為它可以完美解決平方損失函數權重更新過慢的問題。
以上為大家介紹了較為常見的一些損失函數以及使用場景。接下來的文章中會結合經典的實例——MNIST手寫數字識別,為大家講解如何在深度學習實際的項目中運用激活函數、損失函數。
最後,對深度學習感興趣,熱愛Tensorflow的小夥伴,歡迎關注我們的網站!http://www.tensorflownews.com。我們的公眾號:磐創AI。
——————————————————廣告——————————————————
七月在線機器學習集訓營火熱報名中,掃描下方二維碼,添加客服人員微信,可領取免費試聽課程和課程優惠券:
推薦閱讀:
TAG:深度學習DeepLearning | 機器學習 | 神經網路 |