損失函數(shù) 、代價(jià)函數(shù)、目標(biāo)函數(shù)

1 基本概念

損失函數(shù)(loss function):計(jì)算的是一個(gè)樣本的誤差。它是用來估量你模型的預(yù)測(cè)值 f(x)與真實(shí)值 Y的不一致程度,通常用 L(Y,f(x))來表示。

代價(jià)函數(shù)(cost function):是整個(gè)訓(xùn)練集上所有樣本誤差的平均。本質(zhì)上看,和損失函數(shù)是同一個(gè)東西。

目標(biāo)函數(shù):代價(jià)函數(shù) + 正則化項(xiàng)。

三者具體區(qū)別與聯(lián)系

損失函數(shù)越小,模型的魯棒性就越好。

目標(biāo)函數(shù)包括了經(jīng)驗(yàn)風(fēng)險(xiǎn)項(xiàng)和結(jié)構(gòu)風(fēng)險(xiǎn)項(xiàng)(正則項(xiàng)),通常如下所示:

目標(biāo)函數(shù)通用表達(dá)式

其中,前面的均值函數(shù)表示的是經(jīng)驗(yàn)風(fēng)險(xiǎn)函數(shù),L代表的是損失函數(shù),后面的 Φ 是正則化項(xiàng)(regularizer)或者叫懲罰項(xiàng)(penalty term),它可以是L1,也可以是L2,或者其他的正則函數(shù)。整個(gè)式子表示的是找到使目標(biāo)函數(shù)最小時(shí)的θ值。

2. 常用損失函數(shù)

常見的損失誤差有五種。

1. 鉸鏈損失(Hinge Loss):主要用于支持向量機(jī)(SVM) 中;

2. 互熵(交叉熵)損失 (Cross Entropy Loss,Softmax Loss ):用于Logistic 回歸與Softmax 分類中;

3. 平方損失(Square Loss):主要是最小二乘法OLS)中;

4. 指數(shù)損失(Exponential Loss) :主要用于Adaboost 集成學(xué)習(xí)算法中;

5. 其他損失(如0-1損失,絕對(duì)值損失

2.1 鉸鏈損失 (Hinge loss)

Hinge loss 的叫法來源于其損失函數(shù)的圖形,通用的函數(shù)表達(dá)式為:

Hinge loss通用函數(shù)表達(dá)式

表示如果被正確分類,損失是0,否則損失就是 1?mi(w) 。

參考SVM的具體推導(dǎo)過程

在機(jī)器學(xué)習(xí)中,Hing 可以用來解間距最大化的問題,最有代表性的就是SVM 問題,最初的SVM 優(yōu)化函數(shù)如下:?

將約束項(xiàng)進(jìn)行變形,則為:?

則損失函數(shù)可以進(jìn)一步寫為:?

因此,?SVM 的損失函數(shù)可以看作是 L2-Norm 和 Hinge Loss 之和

2.2 互熵(?交叉熵?)損失 (Cross Entropy Loss,Softmax Loss)

有些人可能覺得邏輯回歸的損失函數(shù)就是平方損失,其實(shí)并不是。平方損失函數(shù)可以通過線性回歸在假設(shè)樣本是高斯分布的條件下推導(dǎo)得到,而邏輯回歸得到的并不是平方損失。

在邏輯回歸的推導(dǎo)中,它假設(shè)樣本服從伯努利分布(0-1分布),然后求得滿足該分布的似然函數(shù),接著取對(duì)數(shù)求極值等等。而邏輯回歸并沒有求似然函數(shù)的極值,而是把極大化當(dāng)做是一種思想,進(jìn)而推導(dǎo)出它的經(jīng)驗(yàn)風(fēng)險(xiǎn)函數(shù)為:最小化負(fù)似然函數(shù)(Negative Likelihood (LL))(即maxF(y,f(x))→min?F(y,f(x)))。從損失函數(shù)的視角來看,它就成了Softmax 損失函數(shù)了。

參考邏輯回歸具體推導(dǎo)過程

參考Softmax 回歸推導(dǎo)具體過程

互熵?fù)p失函數(shù)的通用的標(biāo)準(zhǔn)形式:?

互熵?fù)p失函數(shù)的通用的標(biāo)準(zhǔn)形式

取對(duì)數(shù)是為了方便計(jì)算極大似然估計(jì),因?yàn)樵贛LE中,直接求導(dǎo)比較困難,所以通常都是先取對(duì)數(shù)再求導(dǎo)找極值點(diǎn)。損失函數(shù)L(Y,P(Y|X)) 表達(dá)的是樣本X 在分類Y的情況下,使概率P(Y|X)達(dá)到最大值(換言之,就是利用已知的樣本分布,找到最有可能(即最大概率)導(dǎo)致這種分布的參數(shù)值;或者說什么樣的參數(shù)才能使我們觀測(cè)到目前這組數(shù)據(jù)的概率最大)。因?yàn)閘og函數(shù)是單調(diào)遞增的,所以logP(Y|X)也會(huì)達(dá)到最大值,因此在前面加上負(fù)號(hào)之后,最大化P(Y|X)就等價(jià)于最小化LL了。

邏輯回歸的P(Y=y|x)表達(dá)式如下(為了將類別標(biāo)簽y統(tǒng)一為1 和0 ):

邏輯回歸損失函數(shù)具體推導(dǎo)過程 注意最后取負(fù)數(shù)

從上面的推導(dǎo)過程可以得出:互熵?fù)p失 (Cross Entropy Loss,Softmax Loss)的本質(zhì)是最大似然估計(jì)MLE。

2.3 平方損失(Square Loss)

最小二乘法是線性回歸的一種,OLS將問題轉(zhuǎn)化成了一個(gè)凸優(yōu)化問題。在線性回歸中,它假設(shè)樣本和噪聲都服從高斯分布(中心極限定理),最后通過極大似然估計(jì)(MLE)可以推導(dǎo)出最小二乘式子。最小二乘的基本原則是:最優(yōu)擬合直線應(yīng)該是使各點(diǎn)到回歸直線的距離和最小的直線,即平方和最小

平方損失(Square loss)通用的標(biāo)準(zhǔn)形式如下:?

平方損失(Square loss)通用的標(biāo)準(zhǔn)形式

當(dāng)樣本個(gè)數(shù)為n時(shí),此時(shí)的損失函數(shù)為:

Y?f(X) 表示殘差,整個(gè)式子表示的是殘差平方和 ,我們的目標(biāo)就是最小化這個(gè)目標(biāo)函數(shù)值,即最小化殘差的平方和。

在實(shí)際應(yīng)用中,我們使用均方差(MSE:mean square error)作為一項(xiàng)衡量指標(biāo),公式如下:

均方差MSE?

參考線性回歸推導(dǎo)過程

從上面的推導(dǎo)過程可以得出:平方損失(Square Loss)的本質(zhì)也是最大似然估計(jì)MLE。

面試中被問到的MSE和CE問題:

訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí),你經(jīng)常用哪一個(gè)?

這是一個(gè)小坑,先要區(qū)分問題是分類還是回歸!如果是回歸問題,用MSE,如果是分類問題,一般用CE。

為什么呢?

因?yàn)镸SE容易發(fā)生梯度消失問題,而CE消去了導(dǎo)致梯度錯(cuò)誤消失的因子,則不會(huì)。

2.4?指數(shù)損失(Exponential Loss)?

指數(shù)損失函數(shù)的通用標(biāo)準(zhǔn)形式是:?

exp-loss,主要應(yīng)用于 Boosting 算法中,在Adaboost 算法中,經(jīng)過 m 次迭代后,可以得到 fm(x):

Adaboost 每次迭代時(shí)的目的都是找到最小化下列式子的參數(shù)α和G:?

易知,Adabooost 的目標(biāo)式就是指數(shù)損失,在給定n個(gè)樣本的情況下,Adaboost 的損失函數(shù)為:

關(guān)于Adaboost的詳細(xì)推導(dǎo)介紹,可以參考Wikipedia:AdaBoost或者李航《統(tǒng)計(jì)學(xué)習(xí)方法》P145。

2.5 其他損失

0-1 損失函數(shù)?

絕對(duì)值損失函數(shù)?

上述幾種損失函數(shù)比較的可視化圖像如下:

損失函數(shù)比較

3 Hinge loss(SVM) 與 Softmax loss(Softmax)

SVM 和 Softmax 分類器是最常用的兩個(gè)分類器。?

SVM將輸出f(xi,W) 作為每個(gè)分類的評(píng)分;

與SVM 不同,Softmax 分類器可以理解為邏輯回歸分類器面對(duì)多個(gè)分類的一般話歸納。其輸出為歸一化的分類概率,更加直觀,且可以從概率上解釋。

在Softmax分類器中,函數(shù)映射f(xi,W)保持不變,但將這些評(píng)分值看做每個(gè)分類未歸一化的對(duì)數(shù)概率,且將鉸鏈損失(hinge loss)替換為 交叉熵?fù)p失(cross-entropy loss),公式如下:

或等價(jià)的:

等價(jià)變形

fj表示分類評(píng)分向量f中的第i 個(gè)元素,和SVM一樣,整個(gè)數(shù)據(jù)集的損失值是數(shù)據(jù)集中所有樣本數(shù)據(jù)的損失值Li的均值和正則化損失之和。

概率論解釋:?

解釋為給定數(shù)據(jù)xi和W參數(shù),分配給正確分類標(biāo)簽yi的歸一化概率。

實(shí)際操作注意事項(xiàng)——數(shù)值穩(wěn)定: 編程實(shí)現(xiàn)softmax函數(shù)計(jì)算的時(shí)候,中間項(xiàng)efyi和 ∑jefj因?yàn)榇嬖谥笖?shù)函數(shù),所以數(shù)值可能非常大,除以大數(shù)值可能導(dǎo)致數(shù)值計(jì)算的不穩(wěn)定,所以得學(xué)會(huì)歸一化技巧。若在公式的分子和分母同時(shí)乘以一個(gè)常數(shù)C,并把它變換到求和之中,就能得到一個(gè)等價(jià)公式:

C的值可自由選擇,不會(huì)影響計(jì)算結(jié)果,通過這個(gè)技巧可以提高計(jì)算中的數(shù)值穩(wěn)定性。通常將C設(shè)為:

歸一化技巧提高計(jì)算中的數(shù)值穩(wěn)定性

該技巧就是將向量f中的數(shù)值進(jìn)行平移,使得最大值為0。

準(zhǔn)確地說,SVM分類器使用的是鉸鏈損失(hinge loss),有時(shí)候又被稱為最大邊界損失(max-margin loss)。Softmax分類器使用的是交叉熵?fù)p失(corss-entropy loss)。Softmax分類器的命名是從softmax函數(shù)那里得來的,Softmax函數(shù)將原始分類評(píng)分變成正的歸一化數(shù)值,所有數(shù)值和為1,這樣處理后交叉熵?fù)p失才能應(yīng)用。

舉例:圖像識(shí)別

針對(duì)給出的圖像,SVM分類器可能給你的是一個(gè)[?2.85, 0.86, 0.28]對(duì)應(yīng)分類“貓”,“狗”,“船”,而softmax分類器可以計(jì)算出這三個(gè)標(biāo)簽的”可能性“是[0.016, 0.631, 0.353],這就讓你能看出對(duì)于不同分類準(zhǔn)確性的把握。

這里Hinge Loss計(jì)算公式為:

Hinge Loss

這里 Δ是一個(gè)閾值,表示即使誤分類,但是沒有達(dá)到閾值,也不存在損失 。上面的公式把錯(cuò)誤類別 (j≠yi) 都遍歷一遍,求值加和。

設(shè) xi 的正確類別是”船”,閾值 Δ=1? ,則對(duì)應(yīng)的Hinge loss 為:

下圖是對(duì)Δ的理解,藍(lán)色表示正確的類別,Δ表示一個(gè)安全范圍,就算是有其他的得分,只要沒有到達(dá)紅色的Δ范圍內(nèi),,對(duì)損失函數(shù)都沒有影響。這就保證了SVM 算法的解的稀疏性。

而Softmax 損失則是對(duì)向量?fyi 指數(shù)正規(guī)化得到概率,再求對(duì)數(shù)即可。?

3.1 SVM 和 LR的聯(lián)系與區(qū)別(擴(kuò)充)

聯(lián)系:

1、SVM和LR都可以處理分類問題,且一般都用于處理線性二分類問題,在改進(jìn)后都可以處理多分類問題。

2、兩個(gè)方法都可以增加不同的正則化項(xiàng),如L1、L2等。所以在很多實(shí)驗(yàn)中,兩種算法的結(jié)果是很接近的。

區(qū)別:

1、從目標(biāo)函數(shù)來看,區(qū)別在于邏輯回歸采用的是?cross entropyloss,SVM采用的是hinge loss,這兩個(gè)損失函數(shù)的目的都是增加對(duì)分類影響較大的數(shù)據(jù)點(diǎn)的權(quán)重,減少與分類關(guān)系較小的數(shù)據(jù)點(diǎn)的權(quán)重。

2、SVM的處理方法是只考慮support vectors,也就是和分類最相關(guān)的少數(shù)點(diǎn),去學(xué)習(xí)分類器。而邏輯回歸是通過非線性映射,大大減小了離分類平面較遠(yuǎn)的點(diǎn)的權(quán)重,相對(duì)提升了與分類最相關(guān)的數(shù)據(jù)點(diǎn)的權(quán)重。

3、邏輯回歸相對(duì)來說模型更簡(jiǎn)單,好理解,特別是大規(guī)模線性分類時(shí)比較方便。而SVM的理解和優(yōu)化相對(duì)來說復(fù)雜一些,SVM轉(zhuǎn)化為對(duì)偶問題后,分類只需要計(jì)算與少數(shù)幾個(gè)支持向量的距離,這個(gè)在進(jìn)行復(fù)雜核函數(shù)計(jì)算時(shí)優(yōu)勢(shì)很明顯,能夠大大簡(jiǎn)化模型和計(jì)算。

4 總結(jié)

機(jī)器學(xué)習(xí)作為一種優(yōu)化方法,學(xué)習(xí)目標(biāo)就是找到優(yōu)化的目標(biāo)函數(shù)——損失函數(shù)正則項(xiàng)的組合;有了目標(biāo)函數(shù)的“正確的打開方式”,才能通過合適的機(jī)器學(xué)習(xí)算法求解優(yōu)化。

不同機(jī)器學(xué)習(xí)方法的損失函數(shù)有差異,合理理解各種損失優(yōu)化函數(shù)的的特點(diǎn)更有利于我們對(duì)相關(guān)算法的理解。

5 參考

機(jī)器學(xué)習(xí)中的目標(biāo)函數(shù)、損失函數(shù)、代價(jià)函數(shù)有什么區(qū)別 ?https://www.zhihu.com/question/52398145/answer/209358209

機(jī)器學(xué)習(xí)中的損失函數(shù) (著重比較:hinge loss vs softmax loss)https://blog.csdn.net/u010976453/article/details/78488279

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容