by Microsoft
損失函數(shù)(loss function)是用來估量模型的預(yù)測值f(x)與真實(shí)值Y的不一致程度驳庭,它是一個(gè)非負(fù)實(shí)值函數(shù)网杆,通常使用L(Y,f(x))來表示。損失函數(shù)越小啤挎,模型的魯棒性就越好饲嗽。損失函數(shù)是經(jīng)驗(yàn)風(fēng)險(xiǎn)函數(shù)的核心部分炭玫,也是結(jié)構(gòu)風(fēng)險(xiǎn)函數(shù)的重要組成部分。模型的結(jié)構(gòu)風(fēng)險(xiǎn)函數(shù)包含了經(jīng)驗(yàn)風(fēng)險(xiǎn)項(xiàng)和正則項(xiàng)
前面的均值函數(shù)表示的是經(jīng)驗(yàn)風(fēng)險(xiǎn)函數(shù)貌虾,L代表損失函數(shù)吞加,后面的phi是正則化項(xiàng)或者叫懲罰項(xiàng)(penalty term)
一、log對數(shù)損失函數(shù)(邏輯回歸)
有些人可能覺得邏輯回歸的損失函數(shù)就是平方損失,其實(shí)并不是衔憨。平方損失函數(shù)可以通過線性回歸在假設(shè)樣本是高斯分布的條件下推導(dǎo)得到叶圃,而邏輯回歸得到的并不是平方損失。在邏輯回歸的推導(dǎo)中巫财,它假設(shè)樣本服從伯努利分布(0-1分布)盗似,然后求得滿足該分布的似然函數(shù)哩陕,接著取對數(shù)求極值等等平项。而邏輯回歸并沒有求似然函數(shù)的極值,而是把極大化當(dāng)做是一種思想悍及,進(jìn)而推導(dǎo)出它的經(jīng)驗(yàn)風(fēng)險(xiǎn)函數(shù)為:最小化負(fù)的似然函數(shù)(即max F(y, f(x)) —-> min -F(y, f(x)))闽瓢。從損失函數(shù)的視角來看,它就成了log損失函數(shù)了心赶。
log損失函數(shù)的標(biāo)準(zhǔn)形式:
剛剛說到扣讼,取對數(shù)是為了方便計(jì)算極大似然估計(jì),因?yàn)樵贛LE中缨叫,直接求導(dǎo)比較困難椭符,所以通常都是先取對數(shù)再求導(dǎo)找極值點(diǎn)。損失函數(shù)L(Y, P(Y|X))表達(dá)的是樣本X在分類Y的情況下耻姥,使概率P(Y|X)達(dá)到最大值(換言之销钝,就是利用已知的樣本分布,找到最有可能(即最大概率)導(dǎo)致這種分布的參數(shù)值琐簇;或者說什么樣的參數(shù)才能使我們觀測到目前這組數(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á)式如下(為了將類別標(biāo)簽y統(tǒng)一為1和0丈秩,下面將表達(dá)式分開表示):
將它帶入到上式盯捌,通過推導(dǎo)可以得到logistic的損失函數(shù)表達(dá)式,如下:
邏輯回歸最后得到的目標(biāo)式子如下:
上面是針對二分類而言的蘑秽。這里需要解釋一下:之所以有人認(rèn)為邏輯回歸是平方損失挽唉,是因?yàn)樵谑褂锰荻认陆祦砬笞顑?yōu)解的時(shí)候,它的迭代式子與平方損失求導(dǎo)后的式子非常相似筷狼,從而給人一種直觀上的錯(cuò)覺瓶籽。
二、平方損失函數(shù)(最小二乘法, Ordinary Least Squares )
最小二乘法是線性回歸的一種埂材,OLS將問題轉(zhuǎn)化成了一個(gè)凸優(yōu)化問題塑顺。在線性回歸中,它假設(shè)樣本和噪聲都服從高斯分布(為什么假設(shè)成高斯分布呢?其實(shí)這里隱藏了一個(gè)小知識(shí)點(diǎn)严拒,就是中心極限定理扬绪,最后通過極大似然估計(jì)(MLE)可以推導(dǎo)出最小二乘式子。最小二乘的基本原則是:最優(yōu)擬合直線應(yīng)該是使各點(diǎn)到回歸直線的距離和最小的直線裤唠,即平方和最小挤牛。換言之,OLS是基于距離的种蘸,而這個(gè)距離就是我們用的最多的歐幾里得距離墓赴。為什么它會(huì)選擇使用歐式距離作為誤差度量呢(即Mean squared error, MSE)航瞭,主要有以下幾個(gè)原因:
簡單诫硕,計(jì)算方便;
歐氏距離是一種很好的相似性度量標(biāo)準(zhǔn)刊侯;
在不同的表示域變換后特征性質(zhì)不變章办。
平方損失(Square loss)的標(biāo)準(zhǔn)形式如下:
當(dāng)樣本個(gè)數(shù)為n時(shí),損失函數(shù)變?yōu)?br>
Y-f(X)表示的是殘差滨彻,整個(gè)式子表示的是殘差的平方和藕届,而我們的目的就是最小化這個(gè)目標(biāo)函數(shù)值(注:該式子未加入正則項(xiàng)),也就是最小化殘差的平方和(residual sum of squares亭饵,RSS)休偶。
而在實(shí)際應(yīng)用中,通常會(huì)使用均方差(MSE)作為一項(xiàng)衡量指標(biāo)冬骚,公式如下:
上面提到了線性回歸椅贱,這里額外補(bǔ)充一句,我們通常說的線性有兩種情況只冻,一種是因變量y是自變量x的線性函數(shù)庇麦,一種是因變量y是參數(shù)αα的線性函數(shù)。在機(jī)器學(xué)習(xí)中喜德,通常指的都是后一種情況山橄。
三、指數(shù)損失函數(shù)(Adaboost)
學(xué)過Adaboost算法的人都知道舍悯,它是前向分步加法算法的特例航棱,是一個(gè)加和模型,損失函數(shù)就是指數(shù)函數(shù)萌衬。在Adaboost中饮醇,經(jīng)過m此迭代之后,可以得到fm(x):
Adaboost每次迭代時(shí)的目的是為了找到最小化下列式子時(shí)的參數(shù)α和G:
而指數(shù)損失函數(shù)(exp-loss)的標(biāo)準(zhǔn)形式如下
可以看出秕豫,Adaboost的目標(biāo)式子就是指數(shù)損失朴艰,在給定n個(gè)樣本的情況下观蓄,Adaboost的損失函數(shù)為:
幾種損失函數(shù)的可視化圖像
參數(shù)越多,模型越復(fù)雜祠墅,而越復(fù)雜的模型越容易過擬合侮穿。過擬合就是說模型在訓(xùn)練數(shù)據(jù)上的效果遠(yuǎn)遠(yuǎn)好于在測試集上的性能。此時(shí)可以考慮正則化毁嗦,通過設(shè)置正則項(xiàng)前面的hyper parameter亲茅,來權(quán)衡損失函數(shù)和正則項(xiàng),減小參數(shù)規(guī)模狗准,達(dá)到模型簡化的目的克锣,從而使模型具有更好的泛化能力。