常见回归和分类损失函数比较
文章轉自知乎作者wdmad,更多內容建議閱讀原文:https://zhuanlan.zhihu.com/p/36431289
本博文屬于閱讀筆記,融合了個人觀點。
1. 損失函數
損失函數的一般表示為?L(y,f(x)),用以衡量真實值 y和預測值 f(x)之間不一致的程度,一般越小越好。為了便于不同損失函數的比較,常將其表示為單變量的函數,在回歸問題中這個變量為?[y-f(x)] :殘差表示,在分類問題中則為?yf(x) : 趨勢一致。
2.?回歸問題的損失函數
回歸問題中 y?和 f(x)皆為實數 R,因此用殘差?[y-f(x)]來度量二者的不一致程度。殘差 (的絕對值) 越大,則損失函數越大,學習出來的模型效果就越差(這里不考慮正則化問題)。
常見的回歸損失函數:
- 平方損失 (squared loss)?:
- 絕對值 (absolute loss)?:?
- Huber損失 (huber loss)?:?
規律總結:
3. 分類問題的損失函數
yf(x)被稱為margin,其作用類似于回歸問題中的y-f(x)。
二分類問題中的分類規則通常為:
可以看到如果?yf(x)>0,則樣本分類正確,?yf(x)<0則分類錯誤,而相應的分類決策邊界即為?f(x)=0。所以最小化損失函數也可以看作是最大化margin的過程,任何合格的分類損失函數都應該對margin<0的樣本施以較大的懲罰。
- 0-1損失 (zero-one loss):
0-1損失對每個錯分類點都施以相同的懲罰,這樣那些“錯的離譜“(即 margin→∞) 的點并不會收到大的關注,這在直覺上不是很合適。另外0-1損失不連續、非凸,優化困難,因而常使用其他的代理損失函數進行優化。
- Logistic loss:
ogistic Loss為Logistic Regression中使用的損失函數。
- Hinge loss:
hinge loss為svm中使用的損失函數,hinge loss使得?yf(x)>1的樣本損失皆為0,由此帶來了稀疏解,使得svm僅通過少量的支持向量就能確定最終超平面。
推導過程:
可以看到 svm 這個形式的損失函數是自帶參數w?的?L2正則的,而相比之下Logistic Regression的損失函數則沒有顯式的正則化項,需要另外添加。
- 指數損失(Exponential loss)
exponential loss為AdaBoost中使用的損失函數,使用exponential loss能比較方便地利用加法模型推導出AdaBoost算法 。然而其和squared loss一樣,對異常點敏感,不夠robust。
- modified Huber loss
modified huber loss結合了hinge loss和logistic loss的優點,既能在?yf(x)>1時產生稀疏解提高訓練效率,又能進行概率估計。另外其對于??yf(x)<-1樣本的懲罰以線性增加,這意味著受異常點的干擾較少,比較robust。
總結
以上是生活随笔為你收集整理的常见回归和分类损失函数比较的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何成为好的程序员
- 下一篇: [多图]全球范围内Linux用户普及度数