【机器学习基础】机器学习的损失函数小结
本文為機器學習基礎 第一篇
2020這個充滿變化的不平凡的一年過去了,孕育著希望和機遇的2021即將到來,在此祝愿所有朋友幸福美滿,蒸蒸日上,心想事成,歡喜如意,新年快樂!
最近比較忙,好長時間沒更新了,也感謝所有讀者們長期以來的支持,你們的一次次閱讀、分享和點贊是對我們精神上最大的鼓勵和認同!技術分享不但是一種和大家知識的交流,也是一種督促自己不斷進行學習的動力。通過閱讀的分享和整理,能使我們對所學的知識去理解得更為深刻,也能鍛煉邏輯思維的清晰度和論述敘說的準確性。所以,歡迎大家來投稿,記錄自己的學習歷程~
之前的預訓練語言模型專題連載了十八篇,記錄了當前比較熱門的一些PLM的進展,之后隨著學術界的發展和我們的閱讀,也會繼續擴充專題的規模。因為前段時間有在梳理機器學習基礎,所以本期想來重溫和整理一下,從損失函數開始,用三四篇文章來一起回顧機器學習的必要知識。雖然這個在網上講得已經很多了,但還是想在公眾號上搬運和匯總一下,新年第一篇,希望大家也能有所收獲~
什么是損失函數
機器學習,準確地說監督學習的本質是給定一系列訓練樣本(xi, yi),嘗試學習x -> y 的映射關系,使得給定一個新的x ,即便這個x不在訓練樣本中,也能夠使模型的輸出y^,盡量與真實的y接近。
損失函數是用來估量模型的輸出y^與真實值y之間的差距,給模型的優化指引方向。
常見的損失函數
讓我們來看一下常用的一些損失函數
0-1損失函數(Zero-One Loss)
??
若絕對值在T以下,損失函數為0,否則為1。它是一個非凸函數不太適用
合頁損失(Hinge Loss)
如果被分類正確,損失為0,否則損失就為
適用于 maximum-margin 的分類,支持向量機Support Vector Machine (SVM)模型的損失函數,本質上就是Hinge Loss + L2正則化
指數損失函數
對噪聲點,離群點非常敏感。
平均絕對誤差損失(Mean Absolute Error Loss)
計算預測值和目標值差的絕對值,也稱為MAE Loss, L1 Loss
平均平方誤差損失 (Mean Square Error Loss)
計算預測值和目標值差的平方,也稱均方誤差損失,MSE Loss,L2 Loss
機器學習、深度學習回歸任務中最常用的一種損失函數
交叉熵損失 (Cross Entropy Loss)
機器學習、深度學習分類任務中最常用的一種損失函數
Focal Loss
以交叉熵為基礎,使模型更關注較難的樣本,我們前幾期有介紹過這一損失函數
Triplet Loss
a: anchor,p: positive,n: negative
整體優化目標是拉近a, p的距離,拉遠a, n的距離,達成分類效果
為什么回歸任務常用均方誤差損失
我們可以發現,在深度學習的回歸任務中,常常會用到均方誤差損失函數,這是為什么呢?
一般在生活中,如果沒有系統誤差,那么我們對一個數值進行估計或測量,很多情況下估計值和真值之間的誤差是服從高斯分布的。我們一個模型對于目標標簽的估計也可以這么認為。我們可以假設高斯分布的均值為0,方差為1。第i個樣本的輸入為xi?, 模型的輸出為yi^, 而它的標簽為yi?, 那么我們估計的yi的條件概率密度函數如下圖所示。
對于所有樣本來說,我們可以計算出它的似然函數,我們對模型的訓練就是要極大化這個似然函數。
常用的做法是通過log來將比較難處理的連乘形式似然函數轉換成連加形式的對數似然函數,其單調性不變。
可以看到對數似然函數是負號的形式,而且第一項是一個常數,所以我們通過進一步的改寫將最大化以上的對數似然函數變化為最小化以下的負對數似然函數。
大家應該注意到了,這不就跟均方損失函數的形式幾乎一樣嗎?正是如此,最大化似然函數和最小化均方損失函數是等價的。所以,在回歸任務中,估計值和真值誤差服從高斯分布的假設下,我們以均方誤差作為損失函數來訓練模型是合理的。
為什么分類任務用交叉熵作為損失函數
交叉熵損失函數是我們在分類任務中經常用到的損失函數,我們可以來做類似的分析。我們將要求解的問題簡化為二分類,即我們使用一個模型來預測某個樣本是屬于分類0還是分類1,一般做法我們會去預測一個在0到1內的值yi^=p,如果大于0.5那么就是分類1,小于0.5就是分類0。
那么,在其中我們常常已經做了一個假設,即我們期望模型的輸出服從一個伯努利分布。模型的輸出就是預測分類為1的概率,即 P(y=1) = p, P(y=0) = 1 - p。我們將左邊這個式子改寫一下,在輸入為x時,P(y|x) = py?* ( 1 - p)(1-y)。對于所有的樣本來說,將p替換成模型的預測yi^,那么其似然函數如下:
我們優化模型的過程就是極大化我們的似然函數,讓模型的預測值出現的可能性最大。剛剛我們已經介紹過了,我們通過常規操作,可以將最大化似然函數的目標轉化為最小化負對數似然函數。
我們又能發現,這顯然就是我們的交叉熵損失函數。所以,本質上對分類任務的極大似然估計和最小化交叉熵損失函數是一致的。所以,只要服從伯努利分布的假設,我們使用交叉熵處理分類任務就是很合理的。
總結
以上是我們從分布假設的角度來解釋為什么回歸和分類任務常常使用均方誤差和交叉熵損失函數,其實我們還可以從任務的評價指標考慮來解釋目標函數的合理性。但是反過來從根源上想,正是因為不同的任務有不同的分布性質和評價指標,人們才會去設計相應的損失函數去進行優化。
未完待續
本期的機器學習知識就給大家分享到這里,感謝大家的閱讀和支持,下期我們還會帶來新的分享,敬請期待!
歡迎關注樸素人工智能,這里有很多最新最熱的論文閱讀分享,也有人工智能的基礎知識討論和整理,有問題或建議可以在公眾號下留言。
參考資料
1.https://zhuanlan.zhihu.com/p/58883095?utm_source=wechat_session&utm_medium=social&utm_oi=942087358187851776&utm_campaign=shareopn
2.https://zhuanlan.zhihu.com/p/97698386?utm_source=wechat_session&utm_medium=social&utm_oi=942087358187851776&utm_campaign=shareopn
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯 獲取本站知識星球優惠券,復制鏈接直接打開: https://t.zsxq.com/qFiUFMV 本站qq群704220115。加入微信群請掃碼:總結
以上是生活随笔為你收集整理的【机器学习基础】机器学习的损失函数小结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: edge浏览器运行不流畅怎么办 提高ed
- 下一篇: 【讨论】拿什么来维护原创作者的权益?