前言
損失函數是一種將一個事件(再一個樣本空間中的一個元素)映射到一個表達與其事件相關的成本的實數上的一個函數,通常在最優化、統計學、機器學習等領域中有所應用,且在不同領域下應用的方式不同。
一個最佳化的問題是將損失函數最小化,即通過最小化損失函數求解和評估模型
在這里就只簡單記錄線性回歸問題中常用的均方誤差損失函數和分類問題中常用到的交叉熵損失函數
均方誤差損失函數
首先其具體形式為:
總的來說就是預測值與真實值之間的方差
注:
中的2的作用是為了簡化求導過程,損失函數的目的是為了最小化,所以除以2並不會影響最優化結果
至於損失函數是如何工作的,不妨去吳恩達機器學習中關於代價函數的講解中學習,視頻會比單純的文字加圖像更為清晰,視頻資源可自行上b站搜索《吳恩達機器學習》或點此跳轉
至於如何在損失函數中求出最小值所對應的參數,可通過梯度下降算法實現。
交叉熵損失函數
首先其中一種常見的形式為:
對應參數解釋同上。
簡單列舉幾個關於交叉熵的要點:
-
- 了解交叉熵首先要明白什么是信息量,即
- 交叉熵的公式可通過相對熵(KL散度)轉換而來,即
(其中p為真實值,q為預測值)
- 對於機器學習中關於損失函數的定義:
- 了解交叉熵首先要明白什么是信息量,即
a) 在單分類問題中,對應於一個batch的loss為:
b) 在多分類問題中,對應於一個batch的loss為:
上兩式中m為當前batch中的樣本量,n為類別數,且這里的單分類指圖像中只有一種類別,這里的多分類指圖像中有多個類別
注:這里log函數指的是ln函數
關於公式的推導過程及詳細講解這里推薦兩個講的非常詳細的文章
https://blog.csdn.net/red_stone1/article/details/80735068
https://blog.csdn.net/tsyccnh/article/details/79163834