日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习中的损失函数 (着重比较:hinge loss vs softmax loss)

發(fā)布時間:2023/12/13 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习中的损失函数 (着重比较:hinge loss vs softmax loss) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

https://blog.csdn.net/u010976453/article/details/78488279

1. 損失函數(shù)

損失函數(shù)(Loss function)是用來估量你模型的預(yù)測值?f(x)f(x)?與真實值?YY?的不一致程度,它是一個非負(fù)實值函數(shù),通常用?L(Y,f(x))L(Y,f(x))?來表示。損失函數(shù)越小,模型的魯棒性就越好。損失函數(shù)是經(jīng)驗風(fēng)險函數(shù)的核心部分,也是結(jié)構(gòu)風(fēng)險函數(shù)的重要組成部分。模型的風(fēng)險結(jié)構(gòu)包括了風(fēng)險項和正則項,通常如下所示:?

θ?=argminθ1Ni=1NL(yi,f(xi;θ))+λ?Φ(θ)θ?=arg?minθ1N∑i=1NL(yi,f(xi;θ))+λ?Φ(θ)


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

?

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

常見的損失誤差有五種:?
1.?鉸鏈損失(Hinge Loss):主要用于支持向量機(SVM) 中;?
2.?互熵?fù)p失 (Cross Entropy Loss,Softmax Loss ):用于Logistic 回歸與Softmax 分類中;?
3.?平方損失(Square Loss):主要是最小二乘法(OLS)中;?
4.?指數(shù)損失(Exponential Loss)?:主要用于Adaboost 集成學(xué)習(xí)算法中;?
5.?其他損失(如0-1損失,絕對值損失)

2.1 Hinge loss

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

?

L(mi)=max(0,1?mi(w))L(mi)=max(0,1?mi(w))


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

?

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

argminw,ζ12||w||2+Ciζist.?yiwTxi1?ζiζi0argminw,ζ12||w||2+C∑iζist.?yiwTxi≥1?ζiζi≥0


將約束項進行變形,則為:?

ζi1?yiwTxiζi≥1?yiwTxi


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

J(w)=12||w||2+Cimax(0,1?yiwTxi)=12||w||2+Cimax(0,1?mi(w))=12||w||2+CiLHinge(mi)J(w)=12||w||2+C∑imax(0,1?yiwTxi)=12||w||2+C∑imax(0,1?mi(w))=12||w||2+C∑iLHinge(mi)


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

?

2.2 Softmax Loss

有些人可能覺得邏輯回歸的損失函數(shù)就是平方損失,其實并不是。平方損失函數(shù)可以通過線性回歸在假設(shè)樣本是高斯分布的條件下推導(dǎo)得到,而邏輯回歸得到的并不是平方損失。在邏輯回歸的推導(dǎo)中,它假設(shè)樣本服從伯努利分布(0-1分布),然后求得滿足該分布的似然函數(shù),接著取對數(shù)求極值等等。而邏輯回歸并沒有求似然函數(shù)的極值,而是把極大化當(dāng)做是一種思想,進而推導(dǎo)出它的經(jīng)驗風(fēng)險函數(shù)為:最小化負(fù)的似然函數(shù)(即maxF(y,f(x))min?F(y,f(x)))maxF(y,f(x))→min?F(y,f(x)))。從損失函數(shù)的視角來看,它就成了Softmax 損失函數(shù)了。

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

L(Y,P(Y|X))=?logP(Y|X)L(Y,P(Y|X))=?log?P(Y|X)


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

?

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

其中?

hθ(x)=11+exp(?f(x))hθ(x)=11+exp?(?f(x))

?

2.3 Squared Loss

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

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

L(Y,f(X))=(Y?f(X))2L(Y,f(X))=(Y?f(X))2

?

當(dāng)樣本個數(shù)為nn時,此時的損失函數(shù)為:?

L(Y,f(X))=i=1n(Y?f(X))2L(Y,f(X))=∑i=1n(Y?f(X))2


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

?

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

MSE=1ni=1n(Yi~?Yi)2MSE=1n∑i=1n(Yi~?Yi)2

?

2.4 Exponentially Loss

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

L(Y,f(X))=exp[?Yf(X)]L(Y,f(X))=exp?[?Yf(X)]


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

fm(x)=fm?1(x)+αmGm(x)fm(x)=fm?1(x)+αmGm(x)


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

argminα,G=i=1Nexp[?yi(fm?1(xi)+αG(xi))]arg?minα,G=∑i=1Nexp?[?yi(fm?1(xi)+αG(xi))]


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

L(Y,f(X))=12i=1nexp[?yif(xI)]L(Y,f(X))=12∑i=1nexp?[?yif(xI)]


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

?

2.5 其他損失

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

L(Y,f(X))={01ifYf(X)ifY=f(X)L(Y,f(X))={0ifY≠f(X)1ifY=f(X)


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

L(Y,f(X))=|Y?f(X)|L(Y,f(X))=|Y?f(X)|

?


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

3. Hinge loss 與 Softmax loss

SVM和Softmax分類器是最常用的兩個分類器。

  • SVM將輸出?f(xi,W)f(xi,W)?作為每個分類的評分(沒有規(guī)定的標(biāo)準(zhǔn),難以直接解釋);
  • 與SVM 不同,Softmax 分類器可以理解為邏輯回歸分類器面對多個分類的一般話歸納,其輸出(歸一化的分類概率)更加直觀,且可以從概率上解釋。
  • 在Softmax分類器中, 函數(shù)映射f(xi,W)f(xi,W)?保持不變,但將這些評分值看做每個分類未歸一化的對數(shù)概率,且將折葉損失替換為交叉熵?fù)p失(cross-entropy loss),公式如下:

    ?

    Li=?log(efyijefj)Li=?log?(efyi∑jefj)


    或等價的?

    Li=?fyi+logjfjLi=?fyi+log?∑jfj

    ?

    fjfj?表示分類評分向量ff?中的第ii?個元素,和SVM一樣,整個數(shù)據(jù)集的損失值是數(shù)據(jù)集中所有樣本數(shù)據(jù)的損失值Li的均值和正則化損失之和。

    概率論解釋:?

    P(yi|xi,W)=efyijefjP(yi|xi,W)=efyi∑jefj

    ?

    解釋為給定數(shù)據(jù)xixi?,?WW?參數(shù),分配給正確分類標(biāo)簽yiyi?的歸一化概率。

    實際操作注意事項——數(shù)值穩(wěn)定: 編程實現(xiàn)softmax函數(shù)計算的時候,中間項efyiefyi?和?jefj∑jefj?因為存在指數(shù)函數(shù),所以數(shù)值可能非常大,除以大數(shù)值可能導(dǎo)致數(shù)值計算的不穩(wěn)定,所以得學(xué)會歸一化技巧.若在公式的分子和分母同時乘以一個常數(shù)CC?,并把它變換到求和之中,就能得到一個等價公式:?

    P(yi|xi,W)=CefyiCjefj=efyi+logCjefj+logCP(yi|xi,W)=CefyiC∑jefj=efyi+log?C∑jefj+log?C

    ?

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

    logC=?maxfjlog?C=?maxfj

    ?

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

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

    Example:圖像識別

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

    這里Hinge Loss計算公式為:?

    Li=jyimax(0,f(xi,W)j?f(xi,W))yi+ΔLi=∑j≠yimax(0,f(xi,W)j?f(xi,W))yi+Δ


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

    ?

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

    Li=max(0,?2.85?0.28+1)+max(0,0.86?0.28+1)=1.58Li=max(0,?2.85?0.28+1)+max(0,0.86?0.28+1)=1.58


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

    ?

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

    Li=?log(efyijefj)=?log(0.353)1.04Li=?log?(efyi∑jefj)=?log?(0.353)≈1.04

    ?

    4.總結(jié)

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

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


    參考文獻

    1. CS231n 課程?
    2. 聊聊機器學(xué)習(xí)中的損失函數(shù)?
    3. 知乎專欄-智能單元?
    4. 機器學(xué)習(xí)-損失函數(shù)

    轉(zhuǎn)載于:https://www.cnblogs.com/DjangoBlog/p/8691941.html

    總結(jié)

    以上是生活随笔為你收集整理的机器学习中的损失函数 (着重比较:hinge loss vs softmax loss)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。