機(jī)器學(xué)習(xí)(5)——代價函數(shù)誤差分析

代價函數(shù)簡介

??代價函數(shù)(Cost Function),通常也被稱為損失函數(shù)(Loss Function)。這類函數(shù)是機(jī)器學(xué)習(xí)乃至整個數(shù)據(jù)科學(xué)學(xué)科中最為重要的一類函數(shù)模型钓账,它直觀的將數(shù)據(jù)的擬合程度呈現(xiàn)在我們面前。對于機(jī)器學(xué)習(xí)的目標(biāo)蛛壳,無非也就是最小化誤差甫题,也就是讓代價函數(shù)最小化。訓(xùn)練模型的過程就是優(yōu)化代價函數(shù)的過程瓶您,代價函數(shù)對每個參數(shù)的偏導(dǎo)數(shù)就是梯度下降中提到的梯度,防止過擬合時添加的正則化項也是加在代價函數(shù)后面的。因此我覺得有必要花點(diǎn)時間進(jìn)行討論一番呀袱。
??我們先做一個代價函數(shù)的簡單的定義贸毕,代價函數(shù):假定有樣本數(shù)據(jù)(x_i,y_i),函數(shù)模型為f夜赵,參數(shù)為\omega明棍。擬合曲線用f(\omega^Tx)表示。代價函數(shù)是一個有點(diǎn)抽象的東西寇僧,理論上能反應(yīng)擬合函數(shù)f(\omega^Tx)與真實值y差異的函數(shù)都可以用來作為我們的代價函數(shù)摊腋。通常代價函數(shù)寫成C(\theta),不過我們一般會進(jìn)行求均值,寫成J(\theta)嘁傀。代價函數(shù)是一個關(guān)于\theta的函數(shù)兴蒸,這點(diǎn)很好理解,因為我們知道细办,對于給定的算法橙凳,誤差期望應(yīng)該是一定的,但是擬合函數(shù)參數(shù)的變化卻會影響誤差笑撞。算法在尋找最優(yōu)參數(shù)的過程岛啸,我們記為:
\underset{\theta}{min}J(\theta)

幾種常見的代價函數(shù)

??平均絕對誤差(L1誤差函數(shù)): 平均絕對誤差(MAE)其實就是類似統(tǒng)計學(xué)中的標(biāo)準(zhǔn)差,它的具體公式如下:
MAE=\frac{\sum_{m=0}^m{\left |y-y_i \right |}}{m}
??它的圖像:

MAE.png

??均方誤差函數(shù)(L2誤差函數(shù)): 均方誤差函數(shù)(MSE)也就是我們熟知的方差,它廣泛的運(yùn)用在一些線性問題上茴肥,下式中底的2坚踩,是為了方便求導(dǎo)約去,并無實際意義炉爆,它的公式如下:
MSE=\frac{\sum_{m=0}^m(y-y_i)^2}{2m}

??它的圖像:
MSE.png

??平滑平均絕對誤差(Huber損失): Huber損失相比于平方損失來說對于異常值不敏感堕虹,但它同樣保持了可微的特性卧晓。它基于絕對誤差但在誤差很小的時候變成了平方誤差芬首。我們可以使用超參數(shù)
\delta
來調(diào)節(jié)這一誤差的閾值。當(dāng)
\delta\rightarrow 0
它就退化成了MAE逼裆,而當(dāng)
\delta\rightarrow\infty
則退化為了MSE郁稍,其表達(dá)式如下,是一個連續(xù)可微的分段函數(shù):
L_\delta(y,f(x))=\left\{\begin{matrix} \frac{1}{2}(y-f(x))^2,&\left |y-f(x)\right|<\delta\\ \delta\left |y-f(x)\right|-\frac{1}{2}\delta^2,&otherwise \end{matrix}\right.

??它的圖像:
Huber.png

??對于Huber損失來說胜宇,
\delta
的選擇十分重要耀怜,它決定了模型處理異常值的行為。當(dāng)殘差大于
\delta
時使用L1損失桐愉,很小時則使用更為合適的L2損失來進(jìn)行優(yōu)化财破。
??Huber損失函數(shù)克服了MAE和MSE的缺點(diǎn),不僅可以保持損失函數(shù)具有連續(xù)的導(dǎo)數(shù)从诲,同時可以利用MSE梯度隨誤差減小的特性來得到更精確的最小值左痢,也對異常值具有更好的魯棒性。而Huber損失函數(shù)的良好表現(xiàn)得益于精心訓(xùn)練的超參數(shù)
\delta

??Log-Cosh損失函數(shù): Log-Cosh損失函數(shù)是一種比L2更為平滑的損失函數(shù)俊性,利用雙曲余弦來計算預(yù)測誤差:
L(y,y^p)=\sum_{i=1}^nlog(cosh(y_i^p-y_i))

??它的圖像:
Log-Cosh.png

??它的優(yōu)點(diǎn)在于對于很小的誤差來說
log(cosh(x))\approx\frac{x^2}{2}
略步,而對于很大的誤差則與
|x|-log2
很相近。這意味著log cosh損失函數(shù)可以在擁有MSE優(yōu)點(diǎn)的同時也不會受到異常值的太多影響定页。它擁有Huber的所有優(yōu)點(diǎn)趟薄,并且在每一個點(diǎn)都是二次可導(dǎo)的。
??但是Log-cosh損失并不是完美無缺的典徊,它還是會在很大誤差的情況下梯度和 hessian 變成了常數(shù)杭煎。
??交叉熵CrossEntropy代價函數(shù): 我們在之前已經(jīng)極為詳細(xì)的講述過交叉熵的概念了,交叉熵通常用于分類問題上的代價函數(shù)卒落,尤其在邏輯回歸岔帽,神經(jīng)網(wǎng)絡(luò)中使用的更多。
J(\omega)=-\frac{1}{m}[\sum_{i=1}^my^ilogh_\omega(x^i)+(1-y^i)log(1-f_\omega(x^i))]

一點(diǎn)比較:

??均方誤差(MSE)在誤差較大點(diǎn)時的損失遠(yuǎn)大于平均絕對誤差(MAE)导绷,它會給異常值賦予更大的權(quán)重犀勒,模型會全力減小異常值造成的誤差,從而使得模型的整體表現(xiàn)下降妥曲。
??所以當(dāng)訓(xùn)練數(shù)據(jù)中含有較多的異常值時贾费,平均絕對誤差(MAE)更為有效。當(dāng)我們對所有觀測值進(jìn)行處理時檐盟,如果利用MSE進(jìn)行優(yōu)化則我們會得到所有觀測的均值褂萧,而使用MAE則能得到所有觀測的中值。與均值相比葵萎,中值對于異常值的魯棒性更好导犹,這就意味著平均絕對誤差對于異常值有著比均方誤差更好的魯棒性。
??但MAE也存在一個問題羡忘,特別是對于神經(jīng)網(wǎng)絡(luò)來說谎痢,它的梯度在極值點(diǎn)處會有很大的躍變,及時很小的損失值也會長生很大的誤差卷雕,這很不利于學(xué)習(xí)過程节猿。為了解決這個問題,需要在解決極值點(diǎn)的過程中動態(tài)減小學(xué)習(xí)率漫雕。MSE在極值點(diǎn)卻有著良好的特性滨嘱,及時在固定學(xué)習(xí)率下也能收斂。MSE的梯度隨著損失函數(shù)的減小而減小浸间,這一特性使得它在最后的訓(xùn)練過程中能得到更精確的結(jié)果太雨。

??當(dāng)然還有很多的代價函數(shù),例如分位數(shù)損失等等魁蒜,我們在這里就不進(jìn)行一一展開講述了囊扳,感興趣的讀者可以自行了解煤墙。
??下一章,我們將仔細(xì)的講解如何通過梯度進(jìn)行最小化我們的代價函數(shù)宪拥。

Reference

5 Regression Loss Functions All Machine Learners Should Know
MachineLearning CostFunction

我的掘金:WarrenRyan

我的簡書:WarrenRyan

歡迎關(guān)注我的博客獲得第一時間更新 https://blog.tity.online

我的Github:StevenEco

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末仿野,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子她君,更是在濱河造成了極大的恐慌脚作,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缔刹,死亡現(xiàn)場離奇詭異球涛,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)校镐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進(jìn)店門亿扁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鸟廓,你說我怎么就攤上這事从祝。” “怎么了引谜?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵牍陌,是天一觀的道長。 經(jīng)常有香客問我员咽,道長毒涧,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任贝室,我火速辦了婚禮契讲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘滑频。我一直安慰自己捡偏,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布误趴。 她就那樣靜靜地躺著霹琼,像睡著了一般务傲。 火紅的嫁衣襯著肌膚如雪凉当。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天售葡,我揣著相機(jī)與錄音看杭,去河邊找鬼。 笑死挟伙,一個胖子當(dāng)著我的面吹牛楼雹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼贮缅,長吁一口氣:“原來是場噩夢啊……” “哼榨咐!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起谴供,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤块茁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后桂肌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體数焊,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年崎场,在試婚紗的時候發(fā)現(xiàn)自己被綠了佩耳。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡谭跨,死狀恐怖干厚,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情螃宙,我是刑警寧澤萍诱,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站污呼,受9級特大地震影響裕坊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜燕酷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一籍凝、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧苗缩,春花似錦饵蒂、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至泻肯,卻和暖如春渊迁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背灶挟。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工琉朽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人稚铣。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓箱叁,卻偏偏與公主長得像墅垮,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子耕漱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容

  • SpringCloud是一系列框架的有序集合算色。利用SpringBoot的開發(fā)模式簡化了分布式系統(tǒng)基礎(chǔ)設(shè)施的開發(fā),如...
    嘻嘻哈哈1155閱讀 610評論 1 1
  • 二寶出生第三天螟够,一天的生活就是不停的喂奶喂奶剃允,剛有母乳,醫(yī)生不讓給孩子喝奶粉齐鲤,就是讓孩子吸斥废,哎,女人是奶牛给郊,孩...
  • 劉同對我來說牡肉,一直是個特別的存在,我很喜歡他的書淆九,但是從來靜不下心讀完他的一本書统锤,只是喜歡摸著扉頁的感覺。一直以為...
    佑佑佑啊閱讀 192評論 0 0