前言:損失函數是機器學習裏最基礎也是最爲關鍵的一個要素,經過對損失函數的定義、優化,就能夠衍生到咱們如今經常使用的機器學習等算法中算法
正文:機器學習
首先咱們假設要預測一個公司某商品的銷售量:函數
X:門店數 Y:銷量工具
咱們會發現銷量隨着門店數上升而上升。因而咱們就想要知道大概門店和銷量的關係是怎麼樣的呢?學習
咱們根據圖上的點描述出一條直線:優化
彷佛這個直線差很少能說明門店數X和Y得關係了:咱們假設直線的方程爲Y=a0+a1X(a爲常數係數)。假設a0=10 a1=3 那麼Y=10+3X(公式1)spa
Xblog |
公式Yci |
實際Y數學 |
差值 |
1 |
13 |
13 |
0 |
2 |
16 |
14 |
2 |
3 |
19 |
20 |
-1 |
4 |
22 |
21 |
1 |
5 |
25 |
25 |
0 |
6 |
28 |
30 |
-2 |
咱們但願咱們預測的公式與實際值差值越小越好,因此就定義了一種衡量模型好壞的方式,即損失函數(用來表現預測與實際數據的差距程度)。因而乎咱們就會想到這個方程的損失函數能夠用絕對損失函數表示:
公式Y-實際Y的絕對值,數學表達式:
上面的案例它的絕對損失函數求和計算求得爲:6
爲後續數學計算方便,咱們一般使用平方損失函數代替絕對損失函數:
公式Y-實際Y的平方,數學表達式:L(Y,f(X))=
上面的案例它的平方損失函數求和計算求得爲:10
以上爲公式1模型的損失值。
假設咱們再模擬一條新的直線:a0=8,a1=4
X |
公式Y |
實際Y |
差值 |
1 |
12 |
13 |
-1 |
2 |
16 |
14 |
2 |
3 |
20 |
20 |
0 |
4 |
24 |
21 |
3 |
5 |
28 |
25 |
3 |
6 |
32 |
30 |
2 |
公式2 Y=8+4X
絕對損失函數求和:11 平方損失函數求和:27
公式1 Y=10+3X
絕對損失函數求和:6 平方損失函數求和:10
從損失函數求和中,就能評估出公式1可以更好得預測門店銷售。
(1) 0-1損失函數(0-1 lossfunction):
(2) 平方損失函數(quadraticloss function)
(3) 絕對損失函數(absoluteloss function)
(4) 對數損失函數(logarithmicloss function)或對數似然損失函數(log-likelihood loss function)
損失函數越小,模型就越好。
總結:
損失函數能夠很好得反映模型與實際數據差距的工具,理解損失函數可以更好得對後續優化工具(梯度降低等)進行分析與理解。不少時候遇到複雜的問題,其實最難的一關是如何寫出損失函數。