着重介紹hige loss 和 softmax loss。
svm回顧
\(C_1,C_2\)是要區分的兩個類別,通過分類函數執行時得到的值與閾值的大小關系來決定類別歸屬,例如:
我們取閾值為0,此時\(f(x)=sgn[g(x)]\)就是最終的判別函數。對於同一個問題,有多個分類函數,哪一個更好呢?於是引入了“分類間隔”的指標
函數間隔和幾何間隔
給定樣本\((x_i, y_i)\),函數間隔為:
當\(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}\)可以看出就是二維平面中,點到直線的距離,高維下便是點到平面的距離。考慮正反例:
當\(||w||=1\)時,幾何間隔也正是我們想要的歸一化函數間隔。歸一化也解釋了函數間隔的實際意義。
最優間隔分類器
我們的目標是找到一個超平面,使得里超平面較近的點能有更大的間距,也就是我們不必考慮所有的點,值關心離它最近的點能具有最大間距。
然而這個目標函數仍然不是凸函數,我們把問題轉化一下,我們取\(\gamma=1\),此時離超平面最近點的距離即為\(\frac{1}{||w||}\),計算\(\frac{1}{||w||}\)的最大值相當於計算\(\frac{1}{2}||w||^2\)的最小值。(之所以采用這種形式,是為了方便后面的求解過程)
最終的優化方程如下:
只有線性約束,且是一個典型的二次規划問題。核函數、松弛變量等問題這里先不做涉及。
損失函數
模型的優化函數的通常形式如:
前面是損失函數,后面是正則項。
常用的損失函數
- 鉸鏈損失(Hinge Loss):主要用於支持向量機 SVM中;
- 交叉熵損失(Cross Entropy Loss/Softmax Loss):用於邏輯回歸問題;
- 平方損失(Square Loss):用於最小二乘問題;
- 指數損失(Exponential Loss):主要用於Adaboost集成學習算法中;
- 其他特定場景有奇效的loss
Hinge Loss
損失函數是一個折線,函數表達式為:
如果類別正確,損失為0,否則為\(1-f(m_i,w)\)。
在svm中,考慮松弛變量,優化函數為:
約束進行變形得:\(\zeta_i \geq 1-y_iw^Tx_i\)
優化損失函數進一步可寫為:
SVM的損失函數實質可看作是L2-norm和Hinge loss之和。
Softmax Loss
邏輯回歸問題要求:\(P(Y|X)\)盡可能的大,即最小化負的似然函數。
邏輯回歸的表達式為:
得:
最大log似然函數為:
上式也是最小化交叉熵。
Squares Loss
損失函數:
Exponentially Loss
損失函數:
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:
第m次迭代后,我們添加了新的弱分類器:
為了確定新的弱分類器及其權重,定義損失函數:
設\(w_i^{(1)} = 1\) , \(w_i^{(m)} = e^{-y_i C_{m-1}(x_i)}\) for \(m > 1\), 則:
我們把數據分為兩部分: (\(y_i k_m(x_i) = 1\))\(k_m\) 分類器區分正確和 \(y_i k_m(x_i) = -1\) 分類錯誤:
因為只有右側項\(\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\),求導:
弱分類器的加權錯誤率為\(\epsilon_m = \sum_{y_i \neq k_m(x_i)} w_i^{(m)} / \sum_{i=1}^N w_i^{(m)}\)
所以: