
機(jī)器學(xué)習(xí)中的損失函數(shù) (著重比較:hinge loss vs softmax loss)
1. 損失函數(shù)
損失函數(shù)(Loss function)是用來(lái)估量你模型的預(yù)測(cè)值f(x)
與真實(shí)值Y的不一致程度,它是一個(gè)非負(fù)實(shí)值函數(shù),通常用L(Y,f(x))
來(lái)表示。損失函數(shù)越小,模型的魯棒性就越好。損失函數(shù)是經(jīng)驗(yàn)風(fēng)險(xiǎn)函數(shù)的核心部分,也是結(jié)構(gòu)風(fēng)險(xiǎn)函數(shù)的重要組成部分。模型的風(fēng)險(xiǎn)結(jié)構(gòu)包括了風(fēng)險(xiǎn)項(xiàng)和正則項(xiàng),通常如下所示:
其中,前面的均值函數(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ù)
常見(jiàn)的損失誤差有五種:
1.鉸鏈損失(Hinge Loss):主要用于支持向量機(jī)(SVM) 中;
2.互熵?fù)p失 (Cross Entropy Loss,Softmax Loss ):用于Logistic 回歸與Softmax 分類(lèi)中;
3.平方損失(Square Loss):主要是最小二乘法(OLS)中;
4.指數(shù)損失(Exponential Loss):主要用于Adaboost 集成學(xué)習(xí)算法中;
5.其他損失(如0-1損失,絕對(duì)值損失)
2.1 Hinge loss
Hinge loss 的叫法來(lái)源于其損失函數(shù)的圖形,為一個(gè)折線,通用的函數(shù)表達(dá)式為:
表示如果被正確分類(lèi),損失是0,否則損失就是1?mi(w)。
在機(jī)器學(xué)習(xí)中,Hing 可以用來(lái)解間距最大化的問(wèn)題,最有代表性的就是SVM 問(wèn)題,最初的SVM 優(yōu)化函數(shù)如下:
將約束項(xiàng)進(jìn)行變形,則為:
則損失函數(shù)可以進(jìn)一步寫(xiě)為:
因此,SVM 的損失函數(shù)可以看作是 L2-norm 和 Hinge loss 之和。
2.2 Softmax Loss
有些人可能覺(jué)得邏輯回歸的損失函數(shù)就是平方損失,其實(shí)并不是。平方損失函數(shù)可以通過(guò)線性回歸在假設(shè)樣本是高斯分布的條件下推導(dǎo)得到,而邏輯回歸得到的并不是平方損失。在邏輯回歸的推導(dǎo)中,它假設(shè)樣本服從伯努利分布(0-1分布),然后求得滿足該分布的似然函數(shù),接著取對(duì)數(shù)求極值等等。而邏輯回歸并沒(méi)有求似然函數(shù)的極值,而是把極大化當(dāng)做是一種思想,進(jìn)而推導(dǎo)出它的經(jīng)驗(yàn)風(fēng)險(xiǎn)函數(shù)為:最小化負(fù)的似然函數(shù)(即maxF(y,f(x))→min?F(y,f(x)))
。從損失函數(shù)的視角來(lái)看,它就成了Softmax 損失函數(shù)了。
log損失函數(shù)的標(biāo)準(zhǔn)形式:
剛剛說(shuō)到,取對(duì)數(shù)是為了方便計(jì)算極大似然估計(jì),因?yàn)樵贛LE中,直接求導(dǎo)比較困難,所以通常都是先取對(duì)數(shù)再求導(dǎo)找極值點(diǎn)。損失函數(shù)L(Y,P(Y|X))表達(dá)的是樣本X在分類(lèi)Y的情況下,使概率P(Y|X)達(dá)到最大值(換言之,就是利用已知的樣本分布,找到最有可能(即最大概率)導(dǎo)致這種分布的參數(shù)值;或者說(shuō)什么樣的參數(shù)才能使我們觀測(cè)到目前這組數(shù)據(jù)的概率最大)。因?yàn)閘og函數(shù)是單調(diào)遞增的,所以logP(Y|X)也會(huì)達(dá)到最大值,因此在前面加上負(fù)號(hào)之后,最大化P(Y|X)就等價(jià)于最小化L了。
邏輯回歸的P(Y=y|x)
表達(dá)式如下(為了將類(lèi)別標(biāo)簽y統(tǒng)一為1和0
):
其中
2.3 Squared Loss
最小二乘法是線性回歸的一種,OLS將問(wèn)題轉(zhuǎn)化成了一個(gè)凸優(yōu)化問(wèn)題。在線性回歸中,它假設(shè)樣本和噪聲都服從高斯分布(中心極限定理),最后通過(guò)極大似然估計(jì)(MLE)可以推導(dǎo)出最小二乘式子。最小二乘的基本原則是:最優(yōu)擬合直線應(yīng)該是使各點(diǎ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)作為一項(xiàng)衡量指標(biāo),公式如下:
2.4 Exponentially Loss
損失函數(shù)的標(biāo)準(zhǔn)形式是:
exp-loss,主要應(yīng)用于 Boosting 算法中,在Adaboost 算法中,經(jīng)過(guò)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ù)比較的可視化圖像如下:
3. Hinge loss 與 Softmax loss
SVM和Softmax分類(lèi)器是最常用的兩個(gè)分類(lèi)器。
在Softmax分類(lèi)器中, 函數(shù)映射f(xi,W)
保持不變,但將這些評(píng)分值看做每個(gè)分類(lèi)未歸一化的對(duì)數(shù)概率,且將折葉損失替換為交叉熵?fù)p失(cross-entropy loss),公式如下:
或等價(jià)的
表示分類(lèi)評(píng)分向量f中的第i
個(gè)元素,和SVM一樣,整個(gè)數(shù)據(jù)集的損失值是數(shù)據(jù)集中所有樣本數(shù)據(jù)的損失值Li的均值和正則化損失之和。
概率論解釋:
解釋為給定數(shù)據(jù)xi
,W參數(shù),分配給正確分類(lèi)標(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é)果,通過(guò)這個(gè)技巧可以提高計(jì)算中的數(shù)值穩(wěn)定性.通常將C設(shè)為:
該技巧就是將向量f中的數(shù)值進(jìn)行平移,使得最大值為0。
準(zhǔn)確地說(shuō),SVM分類(lèi)器使用的是鉸鏈損失(hinge loss),有時(shí)候又被稱(chēng)為最大邊界損失(max-margin loss)。Softmax分類(lèi)器使用的是交叉熵?fù)p失(corss-entropy loss)。Softmax分類(lèi)器的命名是從softmax函數(shù)那里得來(lái)的,softmax函數(shù)將原始分類(lèi)評(píng)分變成正的歸一化數(shù)值,所有數(shù)值和為1,這樣處理后交叉熵?fù)p失才能應(yīng)用。
Example:圖像識(shí)別
針對(duì)給出的圖像,SVM分類(lèi)器可能給你的是一個(gè)[?2.85,0.86,0.28]
對(duì)應(yīng)分類(lèi)“貓”,“狗”,“船”,而softmax分類(lèi)器可以計(jì)算出這三個(gè)標(biāo)簽的”可能性“是[0.,0160.631,0.353]
,這就讓你能看出對(duì)于不同分類(lèi)準(zhǔn)確性的把握。
這里Hinge Loss計(jì)算公式為:
這里Δ是一個(gè)閾值,表示即使誤分類(lèi),但是沒(méi)有達(dá)到閾值,也不存在損失 。上面的公式把錯(cuò)誤類(lèi)別(j≠yi)都遍歷一遍,求值加和。
設(shè)xi
的正確類(lèi)別是”船”,閾值Δ=1
,則對(duì)應(yīng)的Hinge loss 為:
下圖是對(duì)Δ的理解,藍(lán)色表示正確的類(lèi)別,Δ表示一個(gè)安全范圍,就算是有其他的得分,只要沒(méi)有到達(dá)紅色的Δ范圍內(nèi),,對(duì)損失函數(shù)都沒(méi)有影響。這就保證了SVM 算法的解的稀疏性。
而Softmax 損失則是對(duì)向量fyi
指數(shù)正規(guī)化得到概率,再求對(duì)數(shù)即可。
4.總結(jié)
機(jī)器學(xué)習(xí)作為一種優(yōu)化方法,學(xué)習(xí)目標(biāo)就是找到優(yōu)化的目標(biāo)函數(shù)——損失函數(shù)和正則項(xiàng)的組合;有了目標(biāo)函數(shù)的“正確的打開(kāi)方式”,才能通過(guò)合適的機(jī)器學(xué)習(xí)算法求解優(yōu)化。
不同機(jī)器學(xué)習(xí)方法的損失函數(shù)有差異,合理理解各種損失優(yōu)化函數(shù)的的特點(diǎn)更有利于我們對(duì)相關(guān)算法的理解。
數(shù)據(jù)分析咨詢(xún)請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實(shí)戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無(wú)論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢(xún)效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫(kù)管理中,“大表” 始終是性能優(yōu)化繞不開(kāi)的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫(kù)表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動(dòng)態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開(kāi)始提取前,需先判斷 TIF 文件的類(lèi)型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價(jià)值的專(zhuān)業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫(kù)表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實(shí)戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫(kù))處理 Excel 數(shù)據(jù)時(shí),“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗(yàn)與 t 檢驗(yàn):差異、適用場(chǎng)景與實(shí)踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)領(lǐng)域,假設(shè)檢驗(yàn)是驗(yàn)證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專(zhuān)業(yè)操盤(pán)手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計(jì)劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計(jì)劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對(duì)象的 text 與 content:區(qū)別、場(chǎng)景與實(shí)踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請(qǐng)求開(kāi)發(fā)時(shí)(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價(jià)值的核心操盤(pán)手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫(kù)表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請(qǐng)求工具對(duì)比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請(qǐng)求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)的科學(xué)計(jì)數(shù)法問(wèn)題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)時(shí)的科學(xué)計(jì)數(shù)法問(wèn)題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價(jià)值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營(yíng)問(wèn)題、提升執(zhí)行效率的核心手段,其價(jià)值 ...
2025-09-12用 SQL 驗(yàn)證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實(shí)戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過(guò)程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計(jì)” 與 “用戶體驗(yàn) ...
2025-09-11塔吉特百貨孕婦營(yíng)銷(xiāo)案例:數(shù)據(jù)驅(qū)動(dòng)下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見(jiàn)頂” 的當(dāng)下,精準(zhǔn)營(yíng)銷(xiāo)成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價(jià)值 在數(shù)據(jù)驅(qū)動(dòng)決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類(lèi)分析:從操作實(shí)踐到業(yè)務(wù)價(jià)值挖掘 在數(shù)據(jù)分析場(chǎng)景中,聚類(lèi)分析作為 “無(wú)監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計(jì)模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價(jià)值導(dǎo)向 統(tǒng)計(jì)模型作為數(shù)據(jù)分析的核心工具,并非簡(jiǎn)單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10