支援向量機
一、線性模型
找一個平面,向上或向下評選移動該平面,使之擦過一些向量,將距離 \(d\) 定義為此平面的優化量度,使 \(d\) 儘可能的大,\(d\) 叫做間距(margin),擦過的向量叫做支援向量(support vectors),即$ B_8$ 和 \(A_5\)。
設空間有 \(N\) 個向量 \(x_1,x_2,...x_N\),它們要麼屬於 \(c_1\) 類,要麼屬於 \(c_2\) 類。即,
- 優化問題
最小化(Minimize): \(\frac{1}{2}||\omega||^2\)
限制條件(Subject to):\(y_i[\omega^Tx_i+b]\geq 1(i=1,2,...N)\)
那麼優化問題為什麼要最小化 \(\frac{1}{2}||\omega||^2\) 呢?首先先了解兩個“事實”。
(1)若 \(\omega^T+b=0\) 表示一個平面,那麼 \(a\omega^T+ab=0\) 在 \(a\in R^+\)(正實數) 的情況下表示的平面是同一個平面。
(2)點 \((x_0,y_0)\) 到平面 \(\omega_1x+\omega_2y+b=0\) 的距離 \(s=\frac{|\omega_1x_0+\omega_2y_0+b|}{\sqrt{\omega_1^2+\omega_2^2}}\),那麼根據推廣可知,向量 \(x_0\) 到超平面 \(\omega^Tx+b=0\) 的距離為 \(d=\frac{\omega^Tx_0+b}{||\omega||}(||\omega||=\sqrt{\omega_x^2+\omega_2^2+...+\omega_N^2})\)。
我們可以用 \(a\) 去縮放 \((\omega,b)\rightarrow (a\omega,ab)\) ,使得 \(|\omega_*^Tx_0+b_*|=1\),那麼此時,間隔 \(d=\frac{1}{||\omega||}\) ,我們的目的是使得 \(d\) 儘可能的大,那麼根據距離公式,可以使 \(||\omega||^2\) 最小化(\(\frac{1}{2}\) 是為了求導方便,沒有實際意義)以達到目的。
擴充套件:上述優化問題是凸優化問題(也叫二次規劃),特點是要麼無解,要麼只有一個極值。定義為
(1)目標函式是二次項。
(2)限制條件是一次項。
二、非線性模型
線上性不可分的情況下,優化問題可以寫成:
最小化:\(\frac{1}{2}||\omega||+C\sum_{i=1}^{N}\delta_i\)
限制條件:(1)\(\delta_i\geq0\);(2)\(y_i[\omega^Tx_i+b]\geq 1-\delta_i(i=1,2,...,N)\)
注意:
(1)\(C\)是常數,是事先設定好的,為了平衡權重。\(\omega,b,\delta_i(i=1,2,...,N)\) 為待求變數。
(2)此優化問題(也是凸優化)對任意點集,無論是否線性可分都有解。
支援向量機處理非線性情況是通過將向量 \(x\) 對映到高維空間,再用線性方式去分開。通俗的說,在低緯空間線性不可分,那麼在高維有很大的概率能夠線性可分。例如異或問題是線性不可分的。
設 \(A=\left[\begin{matrix} 0\\ 0 \end{matrix} \right] \in c_1 ,\quad B=\left[\begin{matrix} 1\\ 1 \end{matrix} \right] \in c_1 ,\quad C=\left[\begin{matrix} 1\\ 0 \end{matrix} \right] \in c_2 ,\quad D=\left[\begin{matrix} 0\\ 1 \end{matrix} \right] \in c_2\) ,讓 \(x\) 通過 \(\varphi(x)\) 變換對映到高維空間。即
那麼
那麼可以找到一組解使其線性可分,即
代入式子可得如下式子,顯然線性可分。
當 \(\varphi(x)\) 接近無限維度時,線性可分的概率會接近到1,對於此問題,只需要修改 SVM
中 \(x\) 為\(\varphi(x)\) 即可。
最小化:\(\frac{1}{2}||\omega||+C\sum_{i=1}^{N}\delta_i\)
限制條件:(1)\(\delta_i\geq0\);(2)\(y_i[\omega^T\varphi(x_i)+b]\geq 1-\delta_i(i=1,2,...,N)\)
\(\varphi(x)\) 這會是一個非常複雜的式子。其實我們不需要知道 \(\varphi(x)\) 的顯示錶達也可以計算。我們只需要知道一個核函式(kernel function),即 \(k(x_1,x_2)=\varphi(x_1)^T\varphi(x_2)\) 就可以了。
- 常用的核函式有如下:
名稱 | 表示式 |
---|---|
線性核 | \(k(x_i,x_j)=x_i^Tx_j\) |
多項式核 | \(k(x_i,x_j)=(x_i^Tx_j)^d\) |
高斯核 | $k(x_i,x_j)=exp(-\frac{ |
sigmoid核 | \(k(x_i,x_j)=tanh(\beta x^T_ix_j +\theta)\) |
\(Mercer's \quad Theorem\) :核函式 \(k(x_1,x_2)\) 可拆分為 \(\varphi(x_1)^T \varphi(x_2)\) 的充分條件為:對任意函式 \(\varphi(x)\) 滿足 :
\[(1)\quad k(x_1,x_2)=k(x_2,x_1)(交換律) \quad;\quad(2)\quad \forall c_i,x_i(x=1...N),\sum_{i=1}^{N}\sum_{j=1}^{N}c_ic_jk(x_i,x_j) \geq 0(半正定性) \]
- 原問題(Prime Problem)與對偶問題(Dual Problem)
(1)原問題:
最小化(Minimize): \(f(\omega)\)
限制條件(Subject to): \(g_i(\omega) \le 0(i=1,2...K) \quad ;\quad h_i(\omega)=0(i=1,2,...M)\)
(2)對偶問題:
定義:\(L(\omega,\alpha,\beta) = f(w)+\sum_{i=1}^{K}\alpha_ig_i(\omega)+\sum_{i=1}^{M}\beta_i h_i(\omega)=f(\omega)+\alpha^Tg(\omega)+\beta^Th(\omega)\)
最大化(Maximize): \(\theta(\alpha,\beta) = inf_{定義域內所有的\omega}L(\omega,\alpha,\beta)\)
\((inf即求最小值,該式是在\alpha,\beta 固定下,遍歷\omega,求最小值)\)
限制條件(Subject to): $\alpha_i \ge 0(i=1,2,...K) $
(3)定理1:如果 \(\omega^*\) 是原問題的解,而 \(\alpha^*,\beta^*\) 是其對偶問題的解,則有 \(f(\omega^*) \ge \theta(\alpha^*,\beta^*)\)
證明:
\[\begin{aligned} \theta(\alpha^*,\beta^*) & = inf_{定義域內所有的\omega}L(\omega^*,\alpha^*,\beta^*)\\ &\le L(\omega^*,\alpha^*,\beta^*) \\ &=f(\omega^*)+\underbrace{\alpha^{*T}}_{\ge0} \underbrace{g(\omega^*)}_{\le0}+\beta^{*T}\underbrace{h(\omega^*)}_{=0} \\ &\le f(\omega^*) \end{aligned} \]\(G = f(\omega^*) - \theta(\alpha^*,\beta^*) \ge0\) 叫原問題與對偶問題的間距(Duality Gap)。
注意:如果 \(f(\omega^*) = \theta(\alpha^*,\beta^*)\),必能推出對於所有的 \(i=1-K,\alpha_i^* = 0 或 g_i^*(\omega^*)=0\) ,此為 \(KKT\) 條件。
(4)定理2(強對偶定理):如果 \(g(\omega) = A\omega +b,h(\omega) = C\omega+d,f(\omega)\) 為凸函式,則 \(f(\omega^*) = \theta(\alpha^*,\beta^*)\),即間距為0。
凸函式定義是\(\forall \omega_1,\omega_2\),有 \(f(\lambda\omega_1+(1-\lambda)\omega_2)\le\lambda f(\omega_1)+(1-\lambda)f(\omega_2) \quad \lambda\in[0,1]\)
- 支援向量機(原問題與對偶問題)
(1)原問題
最小化:\(\frac{1}{2}||\omega||-C\sum_{i=1}^{N}\delta_i\)
限制條件:(1)\(\delta_i\le0\);(2)\(1+\delta_i-y_i\omega^T\varphi(x_i)+y_ib\le 0(i=1,2,...,N)\)
(2)對偶問題
最大化 \(\theta(\alpha,\beta) = inf_{所有 \omega,\delta_i,b}\frac{1}{2}||\omega||^2-C\sum_{i=1}^{N}\delta_i+\sum_{i=1}^N\beta_i\delta_i+\sum_{i=1}^N\alpha_i[1+\delta_i-y_i\omega^T\varphi(x_i)+y_ib]\)
限制條件:(1)\(\alpha_i\ge0(i=1,2,...,N)\);(2)\(\beta_i\ge0(i=1,2,...,N)\)
現在的待求引數是 \(\omega ,\delta_i ,b\),對其求偏導,並等於0處取得最優值。
\[\begin{aligned} &\frac{\partial \theta}{\partial \omega} = \omega-\sum_{i=1}^{N}\alpha_i\varphi(x_i)y_i=0\Longrightarrow \omega=\sum_{i=1}^{N}\alpha_i\varphi(x_i)y_i \qquad (1) \\ &\frac{\partial \theta}{\partial \delta_i}=-C+\beta_i+\alpha_i=0\Longrightarrow \alpha_i+\beta_i=C \qquad (2) \\ &\frac{\partial \theta}{\partial b} = -\sum_{i=1}^N\alpha_iy_i=0\Longrightarrow\sum_{i=1}^N\alpha_iy_i =0\qquad(3) \end{aligned} \]
把(1)(2)(3)代入後的對偶問題為
最大化:
\(\theta(\alpha,\beta)=\sum_{i=1}^N-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^{N}y_iy_j\alpha_i\alpha_j\varphi(x_i)^T\varphi(x_j)=\sum_{i=1}^N-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^{N}y_iy_j\alpha_i\alpha_jk(x_i,x_j)\)
限制條件:
(1)\(0\le\alpha_i\le C(因為\beta_i\ge0且\beta_i=C-\alpha_i,所以 \alpha_i \le C,i=1,2,...,N)\);
(2)\(\sum_{i=1}^{N}\alpha_iy_i=0(i=1,2,...,N)\)
這也是一個二次規劃問題,解此問題時,由於 \(\varphi(x_i)^T\varphi(x_j)=k(x_i,x_j)\),我們只需要知道核函式,不需要知道 \(\varphi(x)\) 的具體表達。現在我們計算 \(\omega^T\varphi(x_i) +b\)。
首先計算 \(\omega^T \varphi(x_i)\),根據(1)式子可得 \(\omega^T \varphi(x_i) = \sum_{j=1}^{N}y_j\alpha_j\varphi(x_j)^T\varphi(x_i)=\sum_{j=1}^{N}y_j\alpha_jk(x_j,x_i)\)
然後算 \(b\),根據KKT條件,對於所有 \(i(i=1,2...N)\) 有 \(\alpha_i[1+\delta_i-y_i\omega^T\varphi(x_i)+y_ib] = 0\) 且 \(\beta_i\delta_i = 0 \Longrightarrow(C-\alpha_i)\delta_i = 0\),如果對於某一個 \(i,\alpha_i \not=0,且\alpha_i \not=C\),則必有 \(\delta_i=0(由\beta_i\not=0推出)\),\(1+\delta_i-y_i\omega^T\varphi(x_i)+y_ib=0(由\alpha_i\not=0推出)\),因此 \(b\) 的值為
\[b=\frac{1-y_i\omega^T\varphi(x_i)}{y_i} =\frac{1-y_i\sum_{j=1}^N\varphi_jy_jk(x_i,x_j)}{y_i} \]
最後,我們可以對測試樣本 \(x\) 進行判斷,即