機器學習中的損失函數

着重介紹hige loss 和 softmax loss。html

svm回顧

\(C_1,C_2\)是要區分的兩個類別,經過分類函數執行時獲得的值與閾值的大小關係來決定類別歸屬,例如:
\[g(x) = g(w^Tx+b)\]算法

咱們取閾值爲0,此時\(f(x)=sgn[g(x)]\)就是最終的判別函數。對於同一個問題,有多個分類函數,哪個更好呢?因而引入了「分類間隔」的指標函數

函數間隔和幾何間隔

給定樣本\((x_i, y_i)\),函數間隔爲:
\[\gamma_i=y_i*(w^Tx_i+b)\]
\(y_i=1\)時,\(w^Tx_i+b\)應該是一個很大的正數,反之是一個大負數。所以函數間隔反映了模型的肯定度。學習

考慮w和b,若是同時加倍w和b,函數間隔也會加倍,但這對於求解問題是無心義的。所以咱們限制w和b,引入了歸一化條件,畢竟咱們求解的惟一的一對w和b。優化

幾何距離:點A到垂足的單位方向向量BA爲\(\frac{w}{||w||}\),假設\(A=x_i\),則\(B=x_i-\hat{\gamma}*\frac{w}{||w||}\),帶入\(w^Tx+b=0\)獲得:
\[\hat{\gamma} = \frac{w^Tx_i+b}{||w||}\]spa

\(\hat{\gamma}\)能夠看出就是二維平面中,點到直線的距離,高維下即是點到平面的距離。考慮正反例:
\[\hat{\gamma} = y_i*\{\frac{w^Tx_i+b}{||w||}\}\]orm

\(||w||=1\)時,幾何間隔也正是咱們想要的歸一化函數間隔。歸一化也解釋了函數間隔的實際意義。htm

最優間隔分類器

咱們的目標是找到一個超平面,使得裏超平面較近的點能有更大的間距,也就是咱們沒必要考慮全部的點,值關心離它最近的點能具備最大間距。blog

\[\max \gamma \\ s.t.\ y_i(w^Tx_i+b)>\gamma,i=1,...,m \\ ||w||=1 \]
然而這個目標函數仍然不是凸函數,咱們把問題轉化一下,咱們取\(\gamma=1\),此時離超平面最近點的距離即爲\(\frac{1}{||w||}\),計算\(\frac{1}{||w||}\)的最大值至關於計算\(\frac{1}{2}||w||^2\)的最小值。(之因此採用這種形式,是爲了方便後面的求解過程ip

最終的優化方程以下:

\[\min \frac{1}{2} ||w||^2 \\ s.t.\ y_i(w^Tx_i+b)\geq1, i=i,...,m \]

只有線性約束,且是一個典型的二次規劃問題。核函數、鬆弛變量等問題這裏先不作涉及。

損失函數

模型的優化函數的一般形式如:

\[\theta^* = \arg \min_\theta \frac{1}{N}{}\sum_{i=1}^{N} L(y_i, f(x_i; \theta)) + \lambda\ \Phi(\theta)\]

前面是損失函數,後面是正則項。

經常使用的損失函數

  • 鉸鏈損失(Hinge Loss):主要用於支持向量機 SVM中;
  • 交叉熵損失(Cross Entropy Loss/Softmax Loss):用於邏輯迴歸問題;
  • 平方損失(Square Loss):用於最小二乘問題;
  • 指數損失(Exponential Loss):主要用於Adaboost集成學習算法中;
  • 其餘特定場景有奇效的loss

Hinge Loss

損失函數是一個折線,函數表達式爲:

\[L(x_i)=\max(0, 1-f(m_i,w))\]

若是類別正確,損失爲0,不然爲\(1-f(m_i,w)\)

在svm中,考慮鬆弛變量,優化函數爲:
\[ \underset{w,\zeta}{argmin} \frac{1}{2}||w||^2+ C\sum_i \zeta_i \\ st.\quad \forall y_iw^Tx_i \geq 1- \zeta_i \\ \zeta_i \geq 0 \]

約束進行變形得:\(\zeta_i \geq 1-y_iw^Tx_i\)

優化損失函數進一步可寫爲:
\[ \begin{aligned} J(w)&=\frac{1}{2}||w||^2 + C\sum_i max(0,1-y_iw^Tx_i) \\ &= \frac{1}{2}||w||^2 + C\sum_i max(0,1-m_i(w)) \\ &= \frac{1}{2}||w||^2 + C\sum_i L_{Hinge}(m_i) \end{aligned} \]

SVM的損失函數實質可看做是L2-norm和Hinge loss之和。

Softmax Loss

邏輯迴歸問題要求:\(P(Y|X)\)儘量的大,即最小化負的似然函數。

\[L=-log(P(Y|X))\]

邏輯迴歸的表達式爲:

\[ P(y=1|x;\theta) = h(x) \\ P(y=0|x;\theta) = 1-h(x) \]

\[p(y|x;\theta)=h(x)^y(1-h(x))^{(1-y)}\]

得:

\[ L(\theta) = \prod_{i=1}^n{h(x)^y(1-h(x))^{(1-y)}} \]

最大log似然函數爲:

\[ \begin{split} \ell(\theta)&=log(L(\theta)) \\ &= \sum_{i=1}^m{ylog(h(x)) + (1-y)log(1-h(x))} \end{split} \]

上式也是最小化交叉熵。

Squares Loss

損失函數:
\[L(Y, f(X)) =\sum_{i=1} ^n (Y-f(X))^2\]

Exponentially Loss

損失函數:

\[L(Y,f(X)) = \frac{1}{2} \sum_{i=1}^n \exp[-y_if(x_i)]\]

Adabooost 的目標式子就是指數損失,能夠參考https://en.wikipedia.org/wiki/AdaBoost

假設數據集 \(\{(x_1, y_1), \ldots, (x_N, y_N)\}\)\(x_i\)相應的標籤\(y_i \in \{-1, 1\}\), 已有的弱分類器組 \(\{k_1, \ldots, k_L\}\),它們的輸出爲 \(k_j(x_i) \in \{-1, 1\}\)\(m-1\)次迭代後,獲得boosted classifier:

\[C_{(m-1)}(x_i) = \alpha_1k_1(x_i) + \cdots + \alpha_{m-1}k_{m-1}(x_i)\]

第m次迭代後,咱們添加了新的弱分類器:

\[C_{m}(x_i) = C_{(m-1)}(x_i) + \alpha_m k_m(x_i)\]

爲了肯定新的弱分類器及其權重,定義損失函數
\[E = \sum_{i=1}^N e^{-y_i C_m(x_i)}\]

\(w_i^{(1)} = 1\) , \(w_i^{(m)} = e^{-y_i C_{m-1}(x_i)}\) for \(m > 1\), 則:
\[E = \sum_{i=1}^N w_i^{(m)}e^{-y_i\alpha_m k_m(x_i)}\]

咱們把數據分爲兩部分: (\(y_i k_m(x_i) = 1\))\(k_m\) 分類器區分正確和 \(y_i k_m(x_i) = -1\) 分類錯誤:

\[E = \sum_{y_i = k_m(x_i)} w_i^{(m)}e^{-\alpha_m} + \sum_{y_i \neq k_m(x_i)} w_i^{(m)}e^{\alpha_m}\]

\[= \sum_{i=1}^N w_i^{(m)}e^{-\alpha_m} + \sum_{y_i \neq k_m(x_i)} w_i^{(m)}(e^{\alpha_m}-e^{-\alpha_m})\]

由於只有右側項\(\sum_{y_i \neq k_m(x_i)} w_i^{(m)}\)依賴於\(k_m\),咱們最小化\(E\) 等價於最小化\(w_i^{(m)} = e^{-y_i C_{m-1}(x_i)}\)的權重。

計算\(\alpha_m\),求導:
\[\frac{d E}{d \alpha_m} = \frac{d (\sum_{y_i = k_m(x_i)} w_i^{(m)}e^{-\alpha_m} + \sum_{y_i \neq k_m(x_i)} w_i^{(m)}e^{\alpha_m}) }{d \alpha_m}\]

\[\alpha_m = \frac{1}{2}\ln\left(\frac{\sum_{y_i = k_m(x_i)} w_i^{(m)}}{\sum_{y_i \neq k_m(x_i)} w_i^{(m)}}\right)\]

弱分類器的加權錯誤率爲\(\epsilon_m = \sum_{y_i \neq k_m(x_i)} w_i^{(m)} / \sum_{i=1}^N w_i^{(m)}\)

因此:
\[\alpha_m = \frac{1}{2}\ln\left( \frac{1 - \epsilon_m}{\epsilon_m}\right)\]

相關文章
相關標籤/搜索