【學(xué)習(xí)筆記】ML的核心-Loss Functions!

我寫這篇很大的原因是因?yàn)楦杏X對各種Loss Functions掌握的不夠。經(jīng)我各種翻閱和調(diào)查99%的博客都只告訴你這些個(gè)Loss Function是什么,在什么模型下用,他們卻不告訴你為什么,怎么來的。(我不會(huì)告訴你我是因?yàn)楸话⒗锏拿嬖嚬賳柫艘欢袻oss Function問成了個(gè)撲街仔才寫這篇文章的orz)

希望對大家有所幫助!

0. 本篇大綱

  1. Loss Function的定義

  2. Regression與Classification對Loss Function的選擇

  3. Regression中各種Loss Function的選擇

  4. Classification中各種Loss Function的選擇

  5. Credit

1. Loss Function定義

What it is?
  • Loss Function(損失函數(shù))是用來計(jì)算模型h(x)的預(yù)測值和(訓(xùn)練集中的)真實(shí)值y的不一致程度。
Why important?
  • 在機(jī)器學(xué)習(xí)的各種模型中Loss Function是一個(gè)有非凡意義的概念!通過訓(xùn)練使Loss Function的逐漸減小,模型h(x)和(訓(xùn)練集中)真實(shí)值y就越接近,模型的bias就越小,我們就能夠得到一個(gè)和訓(xùn)練集擬合程度越高的模型。(當(dāng)然擬合過頭overfit了,容易撲街= 。=)

2. Regression與Classification對Loss Function的選擇

Main Reasons(萬變不離其宗的理由): Loss Function(損失函數(shù))是用來計(jì)算模型h(x)的預(yù)測值和(訓(xùn)練集中的)真實(shí)值y的不一致程度。(重要的事情重復(fù)三遍X1)

1. Regression:

How to choose Loss for Regression?
1.png

Loss Function(損失函數(shù))是用來計(jì)算模型h(x)的預(yù)測值和(訓(xùn)練集中的)真實(shí)值y的不一致程度。(重要的事情重復(fù)三遍X2)

所以對于Regression來說,Loss Function是指每個(gè)真實(shí)值與其線性模型h(x)不一致程度之合。h(x)與真實(shí)值越接近,cost越小,h(x)與真實(shí)值越遠(yuǎn),cost越大。因此我們需要的cost function需要僅在=真實(shí)值的時(shí)候?yàn)?,越遠(yuǎn)離真實(shí)值越大(不論cost function是直的(MAE)還是彎的(MSE))。

通過使用這樣的Cost function和Loss Function,我們就可以很好的找出最能夠最好擬合一條符合真實(shí)值分布的線。

2.png

2. Classification:

How to choose Loss for Classification?
3.png
3.1.png

Loss Function(損失函數(shù))是用來計(jì)算模型h(x)的預(yù)測值和(訓(xùn)練集中的)真實(shí)值y的不一致程度。**(重要的事情重復(fù)三遍X3)

所以對于Classification而言,Loss Function是指每一個(gè)真實(shí)分類y與其模型對其分類h(x)的不一致程度之和。h(x)分對了類,cost小,h(x)分錯(cuò)了類,cost大。因?yàn)?strong>我們需要cost function需要在分對類盡可能接近0或者直接等于0(當(dāng)y=1的時(shí)候, h(x)>1的部分,當(dāng)y=0的時(shí)候,h(x)<0的部分),分的不對的時(shí)候盡可能大(不論cost function是彎的(Log Loss)還是直的(Hinge Loss))。

通過使用這樣的Cost function和Loss Function,我們就可以很好的找出最能夠最好擬合一條符合真實(shí)值分布的線。

4.png

3. Regression VS Classification

Why MAE or MSE can not be used in Classification?
5.png

(credit:What are the main reasons not to use MSE as a cost function for Logistic Regression?

從上面這張圖(y=1時(shí)各種cost function,x軸為z=θx)中我們很顯然可以看出,MSE這個(gè)cost function僅在=真實(shí)值的時(shí)候?yàn)?,也就是僅僅在h(x)=1的時(shí)候cost=0。當(dāng)h(x)>1的時(shí)候,cost增加了,然而在classification的定義中,h(x)>1的時(shí)候仍然是分為1這個(gè)類中的。cost根本不需要增加,也不能增加!由此說明MAE和MSE這種Loss Function是不適用于Classification的問題的。

What if I used MSE in Classification?
6.png

(credit: 吳恩達(dá) 機(jī)器學(xué)習(xí)課程的某頁P(yáng)PT)

正如上圖,如果在Classification中使用MAE,它的Loss Function是非凹(convex)的,但在Classification中使用Log Regression,它的Loss Function是convex的。(具體證明可以用Loss Function的二階導(dǎo)恒大于等于0證明,大家可以上網(wǎng)搜一下)

What if I used Hinge Loss in Regression?
7.png

當(dāng)我們對Regression使用Hinge Loss:

如果全局僅僅只用y=1的這半邊Hinge Loss,那么這個(gè)模型對<1的點(diǎn)是0容忍,>1的點(diǎn)是全部容忍,那么最終當(dāng)Loss Function=0時(shí),就會(huì)導(dǎo)致所有的點(diǎn)都在同一邊。

如果用了y=1和y=0兩邊的Hinge Loss,那么對分類對且距離大于1的點(diǎn)是容忍的,對其他的不容忍,這就會(huì)導(dǎo)致迭代到最后所有點(diǎn)離那條線就會(huì)太遠(yuǎn),這條線就不能很好的擬合所有的點(diǎn),不是一個(gè)很好的Regression的線,而是變成一條分類的線了。

8.png

3.Loss Function in Regression

(未完待續(xù))

4. Loss Function in Classification

Classification中經(jīng)典的Loss Functions大致有5種:

  1. Log Loss(Logist Regressionn)

  2. Focal Loss

  3. KL Divergence/Relative Entropy

  4. Exponential Loss(AdaBoost)

  5. Hinge Loss(SVM)

本文主要講Log Loss, Hinge Loss, Exponential Loss這3種Loss Function。

1. Log Loss

Log Loss要從Logistic Regression的基本的intuition講起。當(dāng)有一個(gè)二分類的問題時(shí),它的思想大致上是把一個(gè)線性回歸的結(jié)果映射到(0,1)這個(gè)區(qū)間范圍。當(dāng)這個(gè)線性回歸的結(jié)果映射在(0.5,1)分為一類,映射在(0,0.5)的時(shí)候分為另一類。

41.png

同圖上,我們對h(x)可以這樣認(rèn)為:h(x)代表的意義是在0和x給定的這個(gè)條件下,y取得1的概率,當(dāng)h(x)>0.5時(shí),分類為1,h(x)<0.5,分類為0。

由此我們可以通過條件概率的特有的屬性,通過求Maximum Likelihood Estimation來求得可以使得所見到的訓(xùn)練數(shù)據(jù)出現(xiàn)概率最大。然后log化,通過log函數(shù)特有的性質(zhì),使連乘變成連加。

42.png
43.png

這就是Log Loss來的思想,總結(jié)一下幾個(gè)點(diǎn):

1.基本intuition:將線性回歸映射到(0,1)區(qū)間

2.g/h(x)代表概率,>0.5分到y(tǒng)=1的類,<0.5分到y(tǒng)=0的類

3.通過條件概率特有屬性,通過MLE來求得訓(xùn)練數(shù)據(jù)出現(xiàn)概率最大

4.log化,連乘變連加,得出loss function,也得出每一個(gè)點(diǎn)的cost function

2. Hinge Loss

我在做國內(nèi)的面試的時(shí)候經(jīng)常被面試官考到讓我對Logistic Regression和SVM做比較。講道理來說,Logistic Regression和SVM的分類核心思想是完全不一樣的,這就導(dǎo)致了它們的Loss Function的不同。

SVM的核心思想是在幾何空間內(nèi)做一個(gè)劃分(h(x)),這個(gè)h(x)能使其兩邊的點(diǎn)盡可能有很大的區(qū)分度。所以Hinge Loss的每個(gè)點(diǎn)的cost function在分對且離線大于一定范圍(一般為1)的時(shí)候?yàn)?,其他時(shí)候?yàn)閏ost=z+1(y=1時(shí))或者cost=-z+1(y=-1時(shí))。

44.png

而它的loss function就是將這些cost function連加起來。

45.png

(SVM的Loss Function不完全是Hinge Loss,之后我會(huì)寫LR和SVM的比較中會(huì)寫到。)

總結(jié)一下:

1.基本intuition:每個(gè)點(diǎn)都要離分類器這條線盡可能遠(yuǎn)。

2.每個(gè)點(diǎn)cost function在分對類且離分類器為1時(shí),cost function等于0,其他時(shí)候?yàn)閥z+1。

3.連加起來得到總體的Loss Function。

3. Exponential Loss

exponential loss一般是用于Adaboost的情況的。(Adaboost我沒有很深入的了解,如果以后對其了解加深,可能會(huì)多寫一些?。?/p>

46.png

它的loss function是一堆cost function相加,每個(gè)cost function都是e的-zi次方。zi是分類器預(yù)測值加權(quán)和乘上分類器的標(biāo)簽。

總結(jié)一下:

1.每個(gè)點(diǎn)cost function是e的-zi次方,zi為分類器預(yù)測值加權(quán)和乘上分類器的標(biāo)簽。

2.連加起來得到的總和為Loss Function。

5. Credit

【深度學(xué)習(xí)】一文讀懂機(jī)器學(xué)習(xí)常用損失函數(shù)(Loss Function)

What are the main reasons not to use MSE as a cost function for Logistic Regression?

損失函數(shù)(Loss Function) -1

Loss Functions for Regression and Classification

Introduction to Boosting

5 Regression Loss Functions All Machine Learners Should Know

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

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

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