我是損失函數,用來表現預測數據與實際數據的差距而存在

損失函數定義

機器學習模型關於單個樣本的預測值與真實值的差稱爲損失。損失越小,模型越好,如果預測值與真實值相等,就是沒有損失。用於計算損失的函數稱爲損失函數。模型每一次預測的好壞用損失函數來度量。

機器通過損失函數進行學習。這是一種評估特定算法對給定數據建模程度的方法。如果預測值與實際結果偏離較遠,損失函數會得到一個非常大的值。在一些優化函數的輔助下,損失函數逐漸學會減少預測值的誤差。

通俗的講損失函數

衡量模型預測的好壞。
損失函數就是用來表現預測與實際數據的差距程度。

比如你做一個線性迴歸,實際值和你的 預測值肯定會有誤差,那麼我們找到一個函數表達這個誤差就是損失函數。

假設我們令真實值爲Y 預測值爲f(x) 損失函數爲L(Y,f(x))他們的關係就是下圖:
在這裏插入圖片描述
損失函數(loss function)是用來估量你模型的預測值f(x)與真實值Y的不一致程度,它是一個非負實值函數,通常使用L(Y, f(x))來表示,損失函數越小,模型的魯棒性就越好。

舉例

接下來,我們舉個例子來講解下損失函數:
首先我們假設要預測一個公司某商品的銷售量:

在這裏插入圖片描述
X:門店數 Y:銷量

我們會發現銷量隨着門店數上升而上升。於是我們就想要知道大概門店和銷量的關係是怎麼樣的呢?

我們根據圖上的點描述出一條直線:
在這裏插入圖片描述
似乎這個直線差不多能說明門店數X和Y得關係了:我們假設直線的方程爲Y=a0+a1X(a爲常數係數)。假設a0=10 a1=3 那麼Y=10+3X(公式1)
在這裏插入圖片描述
我們希望我們預測的公式與實際值差值越小越好,所以就定義了一種衡量模型好壞的方式,即損失函數(用來表現預測與實際數據的差距程度)。於是乎我們就會想到這個方程的損失函數可以用絕對損失函數表示:
公式Y-實際Y的絕對值,數學表達式:[1]

上面的案例它的絕對損失函數求和計算求得爲:6

爲後續數學計算方便,我們通常使用平方損失函數代替絕對損失函數:

公式Y-實際Y的平方,數學表達式:L(Y,f(X))= [1]

上面的案例它的平方損失函數求和計算求得爲:10

以上爲公式1模型的損失值。

假設我們再模擬一條新的直線:a0=8,a1=4
在這裏插入圖片描述
公式2 Y=8+4X

絕對損失函數求和:11 平方損失函數求和:27

公式1 Y=10+3X

絕對損失函數求和:6 平方損失函數求和:10

從損失函數求和中,就能評估出公式1能夠更好得預測門店銷售。

統計學習中常用的損失函數有以下幾種

(1)0-1損失函數(gold standard 標準式)

0-1損失是指,預測值和目標值不相等爲1,否則爲0:
在這裏插入圖片描述
該損失函數不考慮預測值和真實值的誤差程度,也就是說只要預測錯誤,預測錯誤差一點和差很多是一樣的。感知機就是用的這種損失函數,但是由於相等這個條件太過嚴格,我們可以放寬條件,即滿足|Y−f(X)|<T時認爲相等。
這種損失函數用在實際場景中比較少,更多的是用倆衡量其他損失函數的效果。

(2)絕對損失函數(absoluteloss function)

在這裏插入圖片描述

(3)平方損失函數(squared loss)

實際結果和觀測結果之間差距的平方和,一般用在線性迴歸中,可以理解爲最小二乘法:
在這裏插入圖片描述

(4)對數損失函數(logarithmic loss)

主要在邏輯迴歸中使用,樣本預測值和實際值的誤差符合高斯分佈,使用極大似然估計的方法,取對數得到損失函數:
在這裏插入圖片描述
損失函數L(Y,P(Y|X))L(Y,P(Y|X))是指樣本X在分類Y的情況下,使概率P(Y|X)達到最大值。
經典的對數損失函數包括entropy和softmax,一般在做分類問題的時候使用(而回歸時多用絕對值損失(拉普拉斯分佈時,μ值爲中位數)和平方損失(高斯分佈時,μ值爲均值))。

(5)指數損失函數(Exp-Loss)
在boosting算法中比較常見,比如Adaboosting中,標準形式是:
在這裏插入圖片描述
(6)鉸鏈損失函數(Hinge Loss)

鉸鏈損失函數主要用在SVM中,Hinge Loss的標準形式爲:
在這裏插入圖片描述
y是預測值,在-1到+1之間,t爲目標值(-1或+1)。其含義爲,y的值在-1和+1之間就可以了,並不鼓勵|y|>1|y|>1,即並不鼓勵分類器過度自信,讓某個正確分類的樣本的距離分割線超過1並不會有任何獎勵,從而使分類器可以更專注於整體的分類誤差。

邏輯迴歸的損失函數

線性迴歸的損失函數是平方損失。邏輯迴歸的損失函數是對數損失函數,定義如下:
在這裏插入圖片描述
其中:

  • (xy)ϵD 是包含很多有標籤樣本 (x,y) 的數據集。
  • “y”是有標籤樣本中的標籤。由於這是邏輯迴歸,因此“y”的每個值必須是 0 或 1。
  • “y’”是對於特徵集“x”的預測值(介於 0 和 1 之間)。

總結

損失函數越小,模型就越好。
損失函數可以很好得反映模型與實際數據差距的工具,理解損失函數能夠更好得對後續優化工具(梯度下降等)進行分析與理解。

在這裏插入圖片描述

借鑑了以下大佬的文章:
https://blog.csdn.net/l18930738887/article/details/50615029

https://blog.csdn.net/google19890102/article/details/50522945?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-4&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-4

https://blog.csdn.net/qq_24753293/article/details/78788844

https://blog.csdn.net/chkay399/article/details/81878157

https://developers.google.cn/machine-learning/crash-course/logistic-regression/model-training

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章