機器學習中的目標函數、損失函數、代價函數
6 人贊了文章
機器學習中的目標函數、損失函數、代價函數有什麼區別
首先給出結論:損失函數和代價函數是同一個東西,目標函數是一個與他們相關但更廣的概念,對於目標函數來說在有約束條件下的最小化就是損失函數(loss function)。
舉個例子解釋一下:
https://www.zhihu.com/question/52398145
損失函數綜述
損失函數(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函數作為激活函數的情景,因為它可以完美解決平方損失函數權重更新過慢的問題。
推薦閱讀:
※Oracle SQL 內置函數大全(2)
※掌握Match函數,如虎添翼
※Vlookup Text等6個excel函數合力算農曆(考慮閏月)
※OFFSET函數的應用(上)
※excel用TRANSPOSE函數實現行列轉置