1. 程式人生 > >CS229筆記:支持向量機

CS229筆記:支持向量機

nal 非線性 比較 矩陣 兩個 有時 align 其中 tar

考慮一個分類問題,用\(1\)表示正類標簽,用\(-1\)表示負類標簽,引入假設函數\(h\)
\[ \begin{align*} g(z) &= \begin{cases} 1 & \text{if}\ z \ge 0\-1 & \text{otherwise}\\end{cases}\h_{w,b}(x) &= g(w^Tx + b) \end{align*} \]
其中\(w \in \mathbb{R}^{n}, b \in \mathbb{R}\)是模型參數,\((w,b)\)與此前的\(\theta\)並沒有本質區別,\(b\)相當於\(\theta_0\)

\(w\)相當於\([\theta_{1}, \theta_{2},\dots,\theta_{n}]^T\)\(w\)\(b\)構成\(n+1\)維的系數向量。給定\(w\)\(b\),我們得到一個分類面:
\[ w^Tx+b=0 \]

最優間隔分類器

函數間隔與幾何間隔

考慮一個樣本\((x^{(i)}, y^{(i)})\),我們可以定義該樣本在給定模型\((w,b)\)下的函數間距(functional margin):
\[ \hat\gamma^{(i)} = y^{(i)}(w^{T}x^{(i)}+b) \]
定義整個樣本集合的函數間距:
\[ \hat\gamma = \min_{i} \hat\gamma^{(i)} \]


定義函數間距基於這樣一種直覺:當\(y^{(i)} = 1\)時,\(w^{T}x^{(i)} + b\)越大,分類越準確;當\(y^{(i)} = -1\)時,\(w^{T}x^{(i)} + b\)越小,分類越準確。所以我們可以認為,\(\hat\gamma\)越大,分類結果越準確。

但是通過觀察,我們發現,令\(w\)\(b\)增大同樣的倍數,分類面不會改變,但樣本的函數間距會增大同樣的倍數,所以引入幾何間距(geometric margin),幾何間距表示樣本點到分類面的距離,這個距離帶符號,分類正確時,距離為正,分類錯誤時,距離為負,通過計算可以得到樣本\((x^{(i)},y^{(i)})\)

到分類面的距離:
\[ \gamma^{(i)} = y^{(i)}\left(\left(\frac{w}{\|w\|}\right)^Tx + \frac{b}{\|w\|}\right) \]
同樣的,可以定義整個樣本集合的幾何間距:
\[ \gamma = \min_{i} \gamma^{(i)} \]

最優間隔分類器

給定樣本集合\((x^{(i)}, y^{(i)})_{i=1}^{m}\),如何選擇\(w\)\(b\)

先考慮樣本集合線性可分的情況,也就是存在一組\((w,b)\)使得集合的幾何間距為正。

我們希望所有樣本到分類面的距離的最小值最大,也就是樣本集合的幾何間距\(\gamma\)最大,我們稱這樣得到的分類器為最優間隔分類器,給出優化問題:
\[ \begin{align*} \max_{w, b, \gamma}\quad&\gamma\s.t.\quad& y^{(i)}\left(\left(\frac{w}{\|w\|}\right)^Tx^{(i)} + \frac{b}{\|w\|}\right) \ge \gamma,\ i=1, \dots, m \end{align*} \]
在約束條件的兩端同時乘以\(\|w\|\),用\(\hat \gamma\)表示\(\|w\| \cdot \gamma\),得到另一個等價的問題:
\[ \begin{align*} \max_{w, b, \hat\gamma}\quad&\frac{\hat\gamma}{\|w\|}\s.t.\quad& y^{(i)}\left(w^Tx^{(i)} + b\right) \ge \hat\gamma,\ i=1, \dots, m \end{align*} \]
這個問題仍然難以解決,因為目標函數是非凸的。通過觀察,我們發現\(\hat\gamma\)實際上是樣本集合的函數間距,通過縮放\(w\)\(b\)來改變\(\hat\gamma\)並不會產生什麽實質影響,所以我們可以令\(\hat\gamma=1\),從而得到等價的優化問題:
\[ \begin{align*} \min_{w, b}\quad&\frac{1}{2}w^Tw\s.t.\quad& y^{(i)}\left(w^Tx^{(i)} + b\right) \ge 1,\ i=1, \dots, m \end{align*} \]
這個優化問題的約束條件是線性的,目標函數是凸函數,已經很容易解決了。目前我們得到的是一個線性分類器,而接下來我們引入拉格朗日對偶,可以將結果推廣到非線性的情況。

拉格朗日對偶

考慮一個優化問題:
\[ \begin{align*} \tag{1} \min_{w}\quad &f(w)\\ s.t.\quad &g_i(w) \le 0, \ i = 1, \dots,k\&h_i(w) = 0, \ i = 1, \dots, l \end{align*} \]
定義拉格朗日函數
\[ L(w,\alpha,\beta) = f(w) + \sum_{i=1}^{k}\alpha_ig_i(w) + \sum_{i=1}^{l}\beta_ih_i(w) \]
考慮函數:
\[ \theta_{P}(w) = \max_{\alpha,\beta,\alpha_i \ge 0} L(w,\alpha,\beta) \]
\(\theta_{P}\)是關於\(w\)的函數,不難得到:
\[ \theta_{P}(w)= \begin{cases} f(w) &w\text{滿足問題1的約束時}\\infty &w\text{不滿足問題1的約束時} \end{cases} \]
考慮以下的優化問題:
\[ \min_{w} \theta_{P}(w) = \min_{w}\max_{\alpha,\beta,\alpha_i \ge 0} L(w,\alpha,\beta)\tag{2} \]
這一問題的答案顯然就是原問題的答案

現在考慮另一個函數
\[ \theta_{D}(\alpha,\beta) = \min_{w}L(w,\alpha,\beta) \]
以及優化問題:
\[ \max_{\alpha,\beta,\alpha_i \ge 0} \theta_{D}(\alpha,\beta) = \max_{\alpha,\beta,\alpha_i \ge 0} \min_{w} L(w,\alpha,\beta) \tag{3} \]
問題2和問題3的唯一區別就是\(\min\)\(\max\)的順序不同,我們稱問題2為原問題(primal problem),稱問題3為對偶問題(dual problem),有一個結論是:
\[ p^{*} = \min_{w}\max_{\alpha,\beta,\alpha_i \ge 0} L(w,\alpha,\beta) \le \max_{\alpha,\beta,\alpha_i \ge 0} \min_{w} L(w,\alpha,\beta) = d^{*} \]
假設\(f\)\(g_i\)是凸的,\(h_i\)是仿射函數(即\(h_i(w) = a_i^Tw + b_i\)),\(g_i\)是嚴格可行的(即存在\(w\),對所有的\(1 \le i \le k\),有\(g_i(w) \le 0\)),則存在\(w^{*}, \alpha^{*}, \beta^{*}\)\(w^{*}\)是原問題的解,\(\alpha^{*}, \beta^{*}\)是對偶問題的解,滿足\(p^{*} = d^{*} = L(w^{*}, \alpha^{*}, \beta^{*})\),且\(w^{*}, \alpha^{*}, \beta^{*}\)滿足KKT(Karush-Kuhn-Tucker conditions)條件:
\[ \begin{align*} \frac{\partial}{\partial w_i}L(w^{*}, \alpha^{*}, \beta^{*}) &= 0,\quad i=1,\dots,n\tag{4}\\frac{\partial}{\partial \beta_i}L(w^{*}, \alpha^{*}, \beta^{*}) &= 0,\quad i=1,\dots,l\tag{5}\\alpha_{i}^{*}g_{i}(w^{*}) &= 0,\quad i=1,\dots,k\tag{6}\g_{i}(w^{*}) &\le 0,\quad i=1,\dots,k\tag{7}\\alpha_i^* &\ge 0,\quad i=1,\dots,k\tag{8}\\end{align*} \]
式6表明,若\(g_{i}(w^*) < 0\),則\(\alpha_i^* = 0\),通常情況下,我們有\(\alpha_i^* = 0 \Leftrightarrow g_{i}(w^*) \neq 0\),這一條件也被稱為KKT互補條件,在最優間隔分類器中,我們把滿足$ g_{i}(w^*) = 0\(的向量\)x^{(i)}$成為支持向量

最優間隔分類器中的對偶問題

我們的優化問題是:
\[ \begin{align*} \min_{w, b}\quad&\frac{1}{2}w^Tw\s.t.\quad& y^{(i)}\left(w^Tx^{(i)} + b\right) \ge 1,\ i=1, \dots, m \end{align*} \]
問題中只有不等式約束,即:
\[ g_i(w,b) = 1 - y^{(i)}\left(w^Tx^{(i)} + b\right) \le 0,\ i = 1,\dots,m \]
拉格朗日函數為:
\[ L(w,b,\alpha) = \frac{1}{2}w^Tw - \sum_{i=1}^{m}\alpha_i\left(y^{(i)}\left(w^Tx^{(i)} + b\right) - 1\right) \]
由於:
\[ \theta_{D}(\alpha) = \min_{w,b}L(w,b,\alpha) \]
我們要令\(L(w,b,\alpha)\)相對於\(w\)\(b\)取最小值,就需要令:
\[ \begin{align*} \nabla_{w}L(w,b,\alpha) &= w - \sum_{i=1}^{m}\alpha_iy^{(i)}x^{(i)}\overset{\text{set}}{=}0 \Rightarrow w = \sum_{i=1}^{m}\alpha_iy^{(i)}x^{(i)}\\nabla_{b}L(w,b,\alpha) &= -\sum_{i=1}^{m}\alpha_iy^{(i)}\overset{\text{set}}{=}0 \end{align*} \]
所以拉格朗日函數可以重寫為:
\[ L(w,b,\alpha) = -\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy^{(i)}y^{(j)}\left<x^{(i)},x^{(j)}\right> + \sum_{i=1}^{m}\alpha_i = W(\alpha) \]
式中的\(\left<x^{(i)},x^{(j)}\right>\)表示\(x^{(i)}\)\(x^{(j)}\)的內積

對偶問題就是:
\[ \begin{align*} \max_{\alpha}\quad&W(\alpha) = -\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy^{(i)}y^{(j)}\left<x^{(i)},x^{(j)}\right> + \sum_{i=1}^{m}\alpha_i\s.t.\quad& \alpha_i \ge 0,\ i = 1,\dots,m\& \sum_{i}^{m} \alpha_i y^{(i)} = 0\\end{align*} \]
我們現在可以通過求解對偶問題來解決原問題,這個對偶問題是凸問題,更重要的是,算法中僅包含\(\left<x^{(i)},x^{(j)}\right>\),這對我們接下來引入核函數很重要。

假設我們得到了對偶問題的最優解\(\alpha^*\),就能得到\(w^*\)\(b^*\)
\[ \begin{align*} w^* &= \sum_{i=1}^{m}\alpha_iy^{(i)}x^{(i)}\b^* &= \frac{\min_{i:y^{(i)}=1}w^{*T}x^{(i)} + \max_{i:y^{(i)}=-1}w^{*T}x^{(i)}}{2} \end{align*} \]

對於一個新的測試數據\(x\),預測結果是:
\[ \begin{align*} h_{w,b}(x) &= g(w^{T}x + b) \&= g(\sum_{i=1}^{m}\alpha_iy^{(i)}\left<x^{(i)},x\right>+b) \end{align*} \]
預測的過程同樣只用到了向量內積,此外,由KKT互補條件可知,只有支持向量對應的\(\alpha_i\)非零,所以實際上只需要求\(x\)與支持向量的內積即可。

之前我們假設樣本是線性可分的,但是有時候並非如此,我們可能需要將原始的特征映射到另一個特征空間才能使數據變得線性可分,通常用\(\phi\)表示特征映射,我們處理的特征就從\(x\)變成了\(\phi(x)\),對於前文的分類器,我們需要將\(\left<x^{(i)}, x^{(j)}\right>\)替換為\(\left<\phi(x^{(i)}), \phi(x^{(j)})\right>\)

\(\phi(x)\)的維度可能非常高,計算\(\phi(x)\)的開銷也就會非常大,因此我們希望能構造一種函數\(K\),使得:
\[ K(x^{(i)}, x^{(j)}) = \left<\phi(x^{(i)}), \phi(x^{(j)})\right> \]

兩種常見的核

多項式核:\(K(x,z) = (x^Tz + c)^d\),假設\(x, y \in \mathbb{R}^n\),則\(K(x,z)\)對應的是兩個\(\sum_{i=0}^{d}C_{n+i-1}^{i}=C_ {n+d}^{d}\)維向量的內積,而計算\(K(x,z)\)只需要\(O(n)\)的時間

高斯核:\(K(x,z) = \exp(-\frac{\|x-z\|^2}{2\sigma^2})\),對於高斯核的構建,有一種比較直觀的想法是,\(x\)\(z\)很相近,\(K(x,z)\)的值就大,否則\(K(x,z)\)的值就小。

Mercer定理

給定\(K(x,z)\)\(K\)是一個合法的核(即存在\(\phi\)使得\(K(x,z) = \left<\phi(x), \phi(z)\right>\))當且僅當對於任意的\(\{x^{(1)}, \dots, x^{(m)}\}\)\(m \lt \infty\)),核矩陣\(K \in \R^{m\times m}\)是半正定的,其中核矩陣\(K\)定義為\(K_{i,j} = K(x^{(i)}, x^{(j)})\)

核技巧

核並不是只能用於SVM,只要能將一個算法描述成特征向量內積的形式,就可以使用核函數代替映射後的特征的內積

不可分、正則

通過特征映射,原本線性不可分的數據在映射特征空間中可能變得線性可分,但這並不是絕對的,數據不可分的情況還是會出現,此外,有時會訓練數據中可能會有一些異常值,這些都會是訓練出的分類器性能不佳。

所以我們考慮加正則:
\[ \begin{align*} \min_{w,b,\xi}\quad&\frac{1}{2}\|w\|^2 + C \sum_{i=1}^m\xi_i\s.t.\quad&y^{(i)}(w^{T}x^{(i)}+b) \ge 1 - \xi_i\&\xi_i \ge 0 \end{align*} \]
拉格朗日函數為:
\[ L(w,b,\xi,\alpha,r) = \frac{1}{2}w^Tw + C\sum_{i=1}^{m}\xi_i - \sum_{i=1}^{m}\alpha_i\left[y^{(i)}\left(w^Tx^{(i)} + b\right) - 1 + \xi_i\right] - \sum_{i=1}^{m}r_i\xi_i \]
求出對偶問題:
\[ \begin{align*} \max_{\alpha}\quad&W(\alpha) = -\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy^{(i)}y^{(j)}\left<x^{(i)},x^{(j)}\right> + \sum_{i=1}^{m}\alpha_i\s.t.\quad& 0 \le \alpha_i \le C,\ i = 1,\dots,m\& \sum_{i}^{m} \alpha_i y^{(i)} = 0\\end{align*} \]
與不加正則的情況相比,唯一的區別約束條件從\(\alpha_i \ge 0\)改為了\(0 \le \alpha \le C\),在推導過程中,我們能夠得到\(\alpha_i + \xi_i = C\),所以我們有:
\[ \begin{align*} \alpha_i = 0 &\Rightarrow y^{(i)}(w^{T}x^{(i)}+b) \ge 1\\alpha_i = C &\Rightarrow y^{(i)}(w^{T}x^{(i)}+b) \le 1\0 \lt \alpha_i \lt C &\Rightarrow y^{(i)}(w^{T}x^{(i)}+b) = 1 \end{align*} \]

SMO算法

SMO算法用來解決對偶問題,這裏不展開了。

CS229筆記:支持向量機