0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

機(jī)器學(xué)習(xí)經(jīng)典損失函數(shù)比較

nlfO_thejiangme ? 來(lái)源:未知 ? 作者:胡薇 ? 2018-06-13 17:53 ? 次閱讀

所有的機(jī)器學(xué)習(xí)算法都或多或少的依賴于對(duì)目標(biāo)函數(shù)最大化或者最小化的過程。我們常常將最小化的函數(shù)稱為損失函數(shù),它主要用于衡量模型的預(yù)測(cè)能力。在尋找最小值的過程中,我們最常用的方法是梯度下降法,這種方法很像從山頂下降到山谷最低點(diǎn)的過程。

雖然損失函數(shù)描述了模型的優(yōu)劣為我們提供了優(yōu)化的方向,但卻不存在一個(gè)放之四海皆準(zhǔn)的損失函數(shù)。損失函數(shù)的選取依賴于參數(shù)的數(shù)量、局外點(diǎn)、機(jī)器學(xué)習(xí)算法、梯度下降的效率、導(dǎo)數(shù)求取的難易和預(yù)測(cè)的置信度等方面。這篇文章將介紹各種不同的損失函數(shù),并幫助我們理解每種函數(shù)的優(yōu)劣和適用范圍。

由于機(jī)器學(xué)習(xí)的任務(wù)不同,損失函數(shù)一般分為分類和回歸兩類,回歸會(huì)預(yù)測(cè)給出一個(gè)數(shù)值結(jié)果而分類則會(huì)給出一個(gè)標(biāo)簽。這篇文章主要集中于回歸損失函數(shù)的分析。

1.均方誤差、平方損失——L2損失

均方誤差(MSE)是回歸損失函數(shù)中最常用的誤差,它是預(yù)測(cè)值與目標(biāo)值之間差值的平方和,其公式如下所示:

下圖是均方根誤差值的曲線分布,其中最小值為預(yù)測(cè)值為目標(biāo)值的位置。我們可以看到隨著誤差的增加損失函數(shù)增加的更為迅猛。

2.平均絕對(duì)誤差——L1損失函數(shù)

平均絕對(duì)誤差(MAE)也是一種常用的回歸損失函數(shù),它是目標(biāo)值與預(yù)測(cè)值之差絕對(duì)值的和,表示了預(yù)測(cè)值的平均誤差幅度,而不需要考慮誤差的方向(注:平均偏差誤差MBE則是考慮的方向的誤差,是殘差的和),其公式如下所示:

平均絕對(duì)誤差和均方誤差(L1&L2)比較

通常來(lái)說,利用均方差更容易求解,但平方絕對(duì)誤差則對(duì)于局外點(diǎn)更魯棒,下面讓我們對(duì)這兩種損失函數(shù)進(jìn)行具體的分析。

無(wú)論哪一種機(jī)器學(xué)習(xí)模型,目標(biāo)都是找到能使目標(biāo)函數(shù)最小的點(diǎn)。在最小值處每一種損失函數(shù)都會(huì)得到最小值。但哪種是更好的指標(biāo)呢?讓我們用具體例子看一下,下圖是均方根誤差和平均絕對(duì)誤差的比較(其中均方根誤差的目的是與平均絕對(duì)誤差在量級(jí)上統(tǒng)一):

左邊的圖中預(yù)測(cè)值與目標(biāo)值很接近,誤差與方差都很小,而右邊的圖中由于局外點(diǎn)的存在使得誤差變得很大。

由于均方誤差(MSE)在誤差較大點(diǎn)時(shí)的損失遠(yuǎn)大于平均絕對(duì)誤差(MAE),它會(huì)給局外點(diǎn)賦予更大的權(quán)重,模型會(huì)致力減小局外點(diǎn)造成的誤差,從而使得模型的整體表現(xiàn)下降。

所以當(dāng)訓(xùn)練數(shù)據(jù)中含有較多的局外點(diǎn)時(shí),平均絕對(duì)誤差(MAE)更為有效。當(dāng)我們對(duì)所有觀測(cè)值進(jìn)行處理時(shí),如果利用MSE進(jìn)行優(yōu)化則我們會(huì)得到所有觀測(cè)的均值,而使用MAE則能得到所有觀測(cè)的中值。與均值相比,中值對(duì)于局外點(diǎn)的魯棒性更好,這就意味著平均絕對(duì)誤差對(duì)于局外點(diǎn)有著比均方誤差更好的魯棒性。

但MAE也存在一個(gè)問題,特別是對(duì)于神經(jīng)網(wǎng)絡(luò)來(lái)說,它的梯度在極值點(diǎn)處會(huì)有很大的躍變,及時(shí)很小的損失值也會(huì)長(zhǎng)生很大的誤差,這不利于學(xué)習(xí)過程。為了解決這個(gè)問題,需要在解決極值點(diǎn)的過程中動(dòng)態(tài)減小學(xué)習(xí)率。MSE在極值點(diǎn)卻有著良好的特性,及時(shí)在固定學(xué)習(xí)率下也能收斂。MSE的梯度隨著損失函數(shù)的減小而減小,這一特性使得它在最后的訓(xùn)練過程中能得到更精確的結(jié)果。

在實(shí)際訓(xùn)練過程中,如果局外點(diǎn)對(duì)于實(shí)際業(yè)務(wù)十分重要需要進(jìn)行檢測(cè),MSE是更好的選擇,而如果在局外點(diǎn)極有可能是壞點(diǎn)的情況下MAE則會(huì)帶來(lái)更好的結(jié)果。(注:L1和L2一般情況下與MAE和MSE性質(zhì)相同)

總結(jié):L1損失對(duì)于局外點(diǎn)更魯棒,但它的導(dǎo)數(shù)不連續(xù)使得尋找最優(yōu)解的過程低效;L2損失對(duì)于局外點(diǎn)敏感,但在優(yōu)化過程中更為穩(wěn)定和準(zhǔn)確。

但現(xiàn)實(shí)中還存在兩種損失都很難處理的問題。例如某個(gè)任務(wù)中90%的數(shù)據(jù)都符合目標(biāo)值——150,而其余的10%數(shù)據(jù)取值則在0-30之間。那么利用MAE優(yōu)化的模型將會(huì)得到150的預(yù)測(cè)值而忽略的剩下的10%(傾向于中值);而對(duì)于MSE來(lái)說由于局外點(diǎn)會(huì)帶來(lái)很大的損失,將使得模型傾向于在0-30的方向取值。這兩種結(jié)果在實(shí)際的業(yè)務(wù)場(chǎng)景中都是我們不希望看到的。

那怎么辦呢?

讓我們來(lái)看看其他的損失函數(shù)吧!

3.Huber損失——平滑平均絕對(duì)誤差

Huber損失相比于平方損失來(lái)說對(duì)于局外點(diǎn)不敏感,但它同樣保持了可微的特性。它基于絕對(duì)誤差但在誤差很小的時(shí)候變成了平方誤差。我們可以使用超參數(shù)δ來(lái)調(diào)節(jié)這一誤差的閾值。當(dāng)δ趨向于0時(shí)它就退化成了MAE,而當(dāng)δ趨向于無(wú)窮時(shí)則退化為了MSE,其表達(dá)式如下,是一個(gè)連續(xù)可微的分段函數(shù):

對(duì)于Huber損失來(lái)說,δ的選擇十分重要,它決定了模型處理局外點(diǎn)的行為。當(dāng)殘差大于δ時(shí)使用L1損失,很小時(shí)則使用更為合適的L2損失來(lái)進(jìn)行優(yōu)化。

Huber損失函數(shù)克服了MAE和MSE的缺點(diǎn),不僅可以保持損失函數(shù)具有連續(xù)的導(dǎo)數(shù),同時(shí)可以利用MSE梯度隨誤差減小的特性來(lái)得到更精確的最小值,也對(duì)局外點(diǎn)具有更好的魯棒性。

但Huber損失函數(shù)的良好表現(xiàn)得益于精心訓(xùn)練的超參數(shù)δ。

4.Log-Cosh損失函數(shù)

對(duì)數(shù)雙曲余弦是一種比L2更為平滑的損失函數(shù),利用雙曲余弦來(lái)計(jì)算預(yù)測(cè)誤差:

其優(yōu)點(diǎn)在于對(duì)于很小的誤差來(lái)說log(cosh(x))與(x**2)/2很相近,而對(duì)于很大的誤差則與abs(x)-log2很相近。這意味著logcosh損失函數(shù)可以在擁有MSE優(yōu)點(diǎn)的同時(shí)也不會(huì)受到局外點(diǎn)的太多影響。它擁有Huber的所有優(yōu)點(diǎn),并且在每一個(gè)點(diǎn)都是二次可導(dǎo)的。二次可導(dǎo)在很多機(jī)器學(xué)習(xí)模型中是十分必要的,例如使用牛頓法的XGBoost優(yōu)化模型(Hessian矩陣)。

但是Log-cosh損失并不是完美無(wú)缺的,它還是會(huì)在很大誤差的情況下梯度和hessian變成了常數(shù)。

5.分位數(shù)損失(Quantile Loss)

在大多數(shù)真實(shí)世界的預(yù)測(cè)問題中,我們常常希望得到我們預(yù)測(cè)結(jié)果的不確定度。通過預(yù)測(cè)出一個(gè)取值區(qū)間而不是一個(gè)個(gè)具體的取值點(diǎn)對(duì)于具體業(yè)務(wù)流程中的決策至關(guān)重要。

分位數(shù)損失函數(shù)在我們需要預(yù)測(cè)結(jié)果的取值區(qū)間時(shí)是一個(gè)特別有用的工具。通常情況下我們利用最小二乘回歸來(lái)預(yù)測(cè)取值區(qū)間主要基于這樣的假設(shè):取值殘差的方差是常數(shù)。但很多時(shí)候?qū)τ诰€性模型是不滿足的。這時(shí)候就需要分位數(shù)損失函數(shù)和分位數(shù)回歸來(lái)拯救回歸模型了。它對(duì)于預(yù)測(cè)的區(qū)間十分敏感,即使在非常數(shù)非均勻分布的殘差下也能保持良好的性能。下面讓我們用兩個(gè)例子看看分位數(shù)損失在異方差數(shù)據(jù)下的回歸表現(xiàn)。

上圖是兩種不同的數(shù)據(jù)分布,其中左圖是殘差的方差為常數(shù)的情況,而右圖則是殘差的方差變化的情況。我們利用正常的最小二乘對(duì)上述兩種情況進(jìn)行了估計(jì),其中橙色線為建模的結(jié)果。但是我們卻無(wú)法得到取值的區(qū)間范圍,這時(shí)候就需要分位數(shù)損失函數(shù)來(lái)提供。

上圖中上下兩條虛線基于0.05和0.95的分位數(shù)損失得到的取值區(qū)間。從圖中可以清晰地看到建模后預(yù)測(cè)值得取值范圍。分位數(shù)回歸的目標(biāo)在于估計(jì)給定預(yù)測(cè)值的條件分位數(shù)。實(shí)際上分位數(shù)回歸就是平均絕對(duì)誤差的一種拓展(當(dāng)分位數(shù)為第50個(gè)百分位時(shí)其值就是平均絕對(duì)誤差)

分位數(shù)值得選擇在于我們是否希望讓正的或者負(fù)的誤差發(fā)揮更大的價(jià)值。損失函數(shù)會(huì)基于分位數(shù)γ對(duì)過擬合和欠擬合的施加不同的懲罰。例如選取γ為0.25時(shí)意味著將要懲罰更多的過擬合而盡量保持稍小于中值的預(yù)測(cè)值。γ的取值通常在0-1之間,圖中描述了不同分位數(shù)下的損失函數(shù)情況,明顯可以看到對(duì)于正負(fù)誤差不平衡的狀態(tài)。

我們可以利用分位數(shù)損失函數(shù)來(lái)計(jì)算出神經(jīng)網(wǎng)絡(luò)或者樹狀模型的區(qū)間。下圖是計(jì)算出基于梯度提升樹回歸器的取值區(qū)間。90%的預(yù)測(cè)值起上下邊界分別是用γ值為0.95和0.05計(jì)算得到的。

在文章的最后,我們利用sinc(x)模擬的數(shù)據(jù)來(lái)對(duì)不同損失函數(shù)的性能進(jìn)行了比較。在原始數(shù)據(jù)的基礎(chǔ)上加入而高斯噪聲和脈沖噪聲(為了描述魯棒性)。下圖是GBM回歸器利用不同的損失函數(shù)得到的結(jié)果,其中ABCD圖分別是MSE,MAE,Huber,Quantile損失函數(shù)的結(jié)果:

我們可以看到MAE損失函數(shù)的預(yù)測(cè)值受到?jīng)_擊噪聲的影響更小,而MSE則有一定的偏差;Huber損失函數(shù)對(duì)于超參數(shù)的選取不敏感,同時(shí)分位數(shù)損失在對(duì)應(yīng)的置信區(qū)間內(nèi)給出了較好的估計(jì)結(jié)果。

希望小伙伴們能從這篇文章中更深入地理解損失函數(shù),并在未來(lái)的工作中選擇合適的函數(shù)來(lái)更好更快地完成工作任務(wù)。

最后,附上本文中幾種損失函數(shù)的簡(jiǎn)圖,回味一番:

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4365

    瀏覽量

    63965
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8482

    瀏覽量

    133929

原文標(biāo)題:機(jī)器學(xué)習(xí)里必備的五種回歸損失函數(shù)

文章出處:【微信號(hào):thejiangmen,微信公眾號(hào):將門創(chuàng)投】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 0人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    機(jī)器學(xué)習(xí)經(jīng)典算法與應(yīng)用

    關(guān)于數(shù)據(jù)機(jī)器學(xué)習(xí)就是喂入算法和數(shù)據(jù),讓算法從數(shù)據(jù)中尋找一種相應(yīng)的關(guān)系。Iris鳶尾花數(shù)據(jù)集是一個(gè)經(jīng)典數(shù)據(jù)集,在統(tǒng)計(jì)學(xué)習(xí)機(jī)器
    的頭像 發(fā)表于 06-27 08:27 ?1906次閱讀
    <b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>的<b class='flag-5'>經(jīng)典</b>算法與應(yīng)用

    TensorFlow損失函數(shù)(定義和使用)詳解

    了如何實(shí)現(xiàn)不同類型的損失函數(shù)。那么根據(jù)手頭的回歸任務(wù),你可以選擇相應(yīng)的損失函數(shù)或設(shè)計(jì)自己的損失函數(shù)
    發(fā)表于 07-28 14:38

    機(jī)器學(xué)習(xí)簡(jiǎn)介與經(jīng)典機(jī)器學(xué)習(xí)算法人才培養(yǎng)

    上課時(shí)間安排:2022年05月27日 — 2022年05月30日No.1 第一天一、機(jī)器學(xué)習(xí)簡(jiǎn)介與經(jīng)典機(jī)器學(xué)習(xí)算法介紹什么是
    發(fā)表于 04-28 18:56

    機(jī)器學(xué)習(xí)中,損失函數(shù)一般要怎么選擇?

    機(jī)器學(xué)習(xí)中,損失函數(shù)一般要怎么選擇?
    發(fā)表于 08-25 09:11

    如何使用Arm CMSIS-DSP實(shí)現(xiàn)經(jīng)典機(jī)器學(xué)習(xí)庫(kù)

    和循環(huán),而那很難解釋它們是如何達(dá)到它們的結(jié)論。 機(jī)器學(xué)習(xí)領(lǐng)域包括神經(jīng)網(wǎng)絡(luò)以外的技術(shù)。其他技術(shù)可能以不同的名稱使用,例如統(tǒng)計(jì)機(jī)器 學(xué)習(xí)。在本指南中,我們使用
    發(fā)表于 08-02 07:12

    神經(jīng)網(wǎng)絡(luò)中的損失函數(shù)層和Optimizers圖文解讀

    對(duì)于許多機(jī)器學(xué)習(xí)算法來(lái)說,最終要解決的問題往往是最小化一個(gè)函數(shù),我們通常稱這個(gè)函數(shù)損失函數(shù)。在
    的頭像 發(fā)表于 11-30 16:09 ?8392次閱讀

    機(jī)器學(xué)習(xí)實(shí)用指南:訓(xùn)練和損失函數(shù)

    這個(gè)損失函數(shù)是合理的,因?yàn)楫?dāng) $t$ 接近 0 時(shí),$-log(t)$ 變得非常大,所以如果模型估計(jì)一個(gè)正例概率接近于 0,那么損失函數(shù)將會(huì)很大,同時(shí)如果模型估計(jì)一個(gè)負(fù)例的概率接近 1
    的頭像 發(fā)表于 06-29 15:02 ?8766次閱讀
    <b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>實(shí)用指南:訓(xùn)練和<b class='flag-5'>損失</b><b class='flag-5'>函數(shù)</b>

    機(jī)器學(xué)習(xí)的logistic函數(shù)和softmax函數(shù)總結(jié)

    本文簡(jiǎn)單總結(jié)了機(jī)器學(xué)習(xí)最常見的兩個(gè)函數(shù),logistic函數(shù)和softmax函數(shù)。首先介紹兩者的定義和應(yīng)用,最后對(duì)兩者的聯(lián)系和區(qū)別進(jìn)行了總結(jié)
    的頭像 發(fā)表于 12-30 09:04 ?1w次閱讀
    <b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>的logistic<b class='flag-5'>函數(shù)</b>和softmax<b class='flag-5'>函數(shù)</b>總結(jié)

    計(jì)算機(jī)視覺的損失函數(shù)是什么?

    損失函數(shù)在模型的性能中起著關(guān)鍵作用。選擇正確的損失函數(shù)可以幫助你的模型學(xué)習(xí)如何將注意力集中在數(shù)據(jù)中的正確特征集合上,從而獲得最優(yōu)和更快的收斂
    的頭像 發(fā)表于 03-13 16:30 ?3756次閱讀
    計(jì)算機(jī)視覺的<b class='flag-5'>損失</b><b class='flag-5'>函數(shù)</b>是什么?

    機(jī)器學(xué)習(xí)和深度學(xué)習(xí)中分類與回歸常用的幾種損失函數(shù)

    本文將介紹機(jī)器學(xué)習(xí)、深度學(xué)習(xí)中分類與回歸常用的幾種損失函數(shù),包括均方差損失 Mean Squar
    的頭像 發(fā)表于 10-09 16:36 ?6458次閱讀
    <b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>和深度<b class='flag-5'>學(xué)習(xí)</b>中分類與回歸常用的幾種<b class='flag-5'>損失</b><b class='flag-5'>函數(shù)</b>

    表示學(xué)習(xí)中7大損失函數(shù)的發(fā)展歷程及設(shè)計(jì)思路

    表示學(xué)習(xí)的目的是將原始數(shù)據(jù)轉(zhuǎn)換成更好的表達(dá),以提升下游任務(wù)的效果。在表示學(xué)習(xí)中,損失函數(shù)的設(shè)計(jì)一直是被研究的熱點(diǎn)。損失指導(dǎo)著整個(gè)表示
    的頭像 發(fā)表于 07-08 14:23 ?2584次閱讀

    機(jī)器學(xué)習(xí)找一個(gè)好用的函數(shù)的原因是什么

    (1)機(jī)器學(xué)習(xí)經(jīng)典的“支持向量機(jī)(SVM)”的主要提出者弗拉基米爾·萬(wàn)普尼克(Vladimir Vapnik),在其著作《統(tǒng)計(jì)學(xué)習(xí)理論的本質(zhì)》中這樣定義
    的頭像 發(fā)表于 11-02 16:15 ?1037次閱讀

    機(jī)器學(xué)習(xí)經(jīng)典算法與應(yīng)用

    ? 一、機(jī)器學(xué)習(xí)基礎(chǔ)概念 ? 關(guān)于數(shù)據(jù) ? 機(jī)器學(xué)習(xí)就是喂入算法和數(shù)據(jù),讓算法從數(shù)據(jù)中尋找一種相應(yīng)的關(guān)系。 ? Iris 鳶尾花數(shù)據(jù)集是一個(gè)經(jīng)典
    的頭像 發(fā)表于 05-28 11:29 ?1599次閱讀
    <b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>的<b class='flag-5'>經(jīng)典</b>算法與應(yīng)用

    訓(xùn)練深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的常用5個(gè)損失函數(shù)

    被稱為損失函數(shù)。損失函數(shù)的選擇與神經(jīng)網(wǎng)絡(luò)模型從示例中學(xué)習(xí)的特定預(yù)測(cè)建模問題(例如分類或回歸)有關(guān)。在本文中我們將介紹常用的一些
    的頭像 發(fā)表于 10-19 11:17 ?1018次閱讀
    訓(xùn)練深度<b class='flag-5'>學(xué)習(xí)</b>神經(jīng)網(wǎng)絡(luò)的常用5個(gè)<b class='flag-5'>損失</b><b class='flag-5'>函數(shù)</b>

    RNN的損失函數(shù)與優(yōu)化算法解析

    RNN的損失函數(shù) RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))在處理序列數(shù)據(jù)的過程中,損失函數(shù)(Loss Function)扮演著重要的角色,它可以測(cè)量模型在訓(xùn)練中的表現(xiàn),并推動(dòng)模型朝著正確的方向
    的頭像 發(fā)表于 11-15 10:16 ?1116次閱讀

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品