損失函數(shù)(loss function)是用來估量你模型的預測值f(x)與真實值Y的不一致程度,它是一個非負實值函數(shù),通常使用L(Y, f(x))來表示,損失函數(shù)越小,模型的魯棒性就越好。損失函數(shù)是經(jīng)驗風險函數(shù)的核心部分,也是結(jié)構(gòu)風險函數(shù)重要組成部分。模型的結(jié)構(gòu)風險函數(shù)包括了經(jīng)驗風險項和正則項,通常可以表示成如下式子:
其中,前面的均值函數(shù)表示的是經(jīng)驗風險函數(shù),L代表的是損失函數(shù),后面的Φ是正則化項(regularizer)或者叫懲罰項(penalty term),它可以是L1,也可以是L2,或者其他的正則函數(shù)。整個式子表示的意思是找到使目標函數(shù)最小時的θ值。下面主要列出幾種常見的損失函數(shù)。
1、對數(shù)損失函數(shù)
Log損失函數(shù)的標準形式:
損失函數(shù)L(Y, P(Y|X))表達的是樣本X在分類Y的情況下,使概率P(Y|X)達到最大值(換言之,就是利用已知的樣本分布,找到最有可能(即最大概率)導致這種分布的參數(shù)值;或者說什么樣的參數(shù)才能使我們觀測到目前這組數(shù)據(jù)的概率最大)。因為log函數(shù)是單調(diào)遞增的,所以logP(Y|X)也會達到最大值,因此在前面加上負號之后,最大化P(Y|X)就等價于最小化L了。
邏輯回歸的P(Y=y|x)表達式如下:
將上面的公式合并在一起,可得到第i個樣本正確預測的概率:
上式是對一個樣本進行建模的數(shù)據(jù)表達。對于所有的樣本,假設每條樣本生成過程獨立,在整個樣本空間中(N個樣本)的概率分布為:
將上式代入到對數(shù)損失函數(shù)中,得到最終的損失函數(shù)為:
2、平方損失函數(shù)
平方損失(Square loss)的標準形式如下:
當樣本個數(shù)為n時,此時的損失函數(shù)變?yōu)椋?/p>
Y-f(X)表示的是殘差,整個式子表示的是殘差的平方和,而我們的目的就是最小化這個目標函數(shù)值(注:該式子未加入正則項),也就是最小化殘差的平方和(residual sum of squares,RSS)。
而在實際應用中,通常會使用均方差(MSE)作為一項衡量指標,公式如下:
3、指數(shù)損失函數(shù)
學過Adaboost算法的人都知道,它是前向分步加法算法的特例,是一個加和模型,損失函數(shù)就是指數(shù)函數(shù)。在Adaboost中,經(jīng)過m此迭代之后,可以得到:
Adaboost每次迭代時的目的是為了找到最小化下列式子時的參數(shù)α和G:
而指數(shù)損失函數(shù)(exp-loss)的標準形式如下:
可以看出,Adaboost的目標式子就是指數(shù)損失,在給定n個樣本的情況下,Adaboost的損失函數(shù)為:
4、合葉損失函數(shù)-SVM
首先我們來看什么是合頁損失函數(shù)(hinge loss function):
下標”+”表示以下取正值的函數(shù),我們用z表示中括號中的部分:
也就是說,數(shù)據(jù)點如果被正確分類,損失為0,如果沒有被正確分類,損失為z。
合頁損失函數(shù)如下圖所示:
5、其他損失函數(shù)
除了以上這幾種損失函數(shù),常用的還有:
0-1損失函數(shù):
絕對值損失函數(shù):
6、各算法的損失函數(shù)整理(部分無正則項,不定期更新中)
線性回歸
邏輯回歸
決策樹
SVM
AdaBoost
參考文章:https://plushunter.github.io/2017/07/08/機器學習算法系列(24):損失函數(shù)/
http://blog.csdn.net/shenxiaoming77/article/details/51614601