機器學習之支持向量機

  1. 線性分類器中主要任務是在樣本空間中尋找一個超平面將不同類別的樣本分開。
    這些超平面有很多,一般來說,」正中間「的泛化性能最強,魯棒性最好。

  2. 間隔與支持向量
    劃分超平面可描述爲: ω T x + b = 0 \omega^Tx+b=0
    ω = ( ω 1 ; ω 2 ; ; ω d ) \omega=(\omega_1;\omega_2;\cdots;\omega_d) 爲法向量,決定方向;
    b b 爲位移量,決定超平面到原點的距離。
    任意點x到超平面 ( ω , b ) (\omega,b) 的距離爲 r = ω T x + b ω r=\frac{|\omega^Tx+b|}{||\omega||}
    假設超平面分類正確,那麼
    ( x i , y i ) D (x_i,y_i)\in D , y i = + 1 y_i=+1 ω T x i + b > 0 \omega^Tx_i+b>0 , y i = 1 y_i=-1 ω T x i + b < 0 \omega^Tx_i+b<0 ;令 ω T x i + b > = 1 \omega^Tx_i+b>=1 , y i = + 1 y_i=+1 ; ω T x i + b < = 1 \omega^Tx_i+b<=-1 , y i = 1 y_i=-1
    距離超平面最近的幾個訓練樣本點使得上式成立,稱爲支持向量。
    兩個異類支持向量到超平面的距離之和爲 γ = 2 ω \gamma=\frac{2}{||\omega||} ,稱爲間隔。

  3. SVM的基本型
    找到 ω \omega b b 滿足 y i ( ω T x i + b ) > = 1 y_i(\omega^Tx_i+b)>=1 , i = 1 , 2 , , m i=1,2,\cdots,m 使得間隔 γ = 2 ω \gamma=\frac{2}{||\omega||} 最大。
    這等價於:找到 ω \omega b b 滿足 y i ( ω T x i + b ) > = 1 y_i(\omega^Tx_i+b)>=1 , i = 1 , 2 , , m i=1,2,\cdots,m 使得 1 2 ω 2 \frac{1}{2}{||\omega||}^2 最小(式1)。

  4. 對偶問題
    對式1使用拉格朗日乘子法,得到其對偶問題。
    #1. L ( ω , b , α ) = 1 2 ω 2 + i = 1 m α i ( 1 y i ( ω T x i + b ) ) L(\omega,b,\alpha)=\frac{1}{2}||\omega||^2+\sum\limits_{i=1}^{m}\alpha_i(1-y_i(\omega^Tx_i+b))
    #2.令 L ( ω , b , α ) L(\omega,b,\alpha) ω \omega 和b的偏導等於零,即得: ω = i = 1 m α i y i x i \omega=\sum\limits_{i=1}^{m}\alpha_iy_ix_i i = 1 m α i y i = 0 ( ) \sum\limits^{m}_{i=1}\alpha_iy_i=0(*) #3.代回即得: L ( ω , b , α ) = i = 1 m α i 1 2 i = 1 m j = 1 m α i α j y i y j x i T x j L(\omega,b,\alpha)=\sum\limits_{i=1}^{m}\alpha_i-\frac{1}{2}\sum\limits_{i=1}^{m}\sum\limits_{j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_j #4.考慮(*)處約束,即得式1的對偶問題: max α         i = 1 m α i 1 2 i = 1 m j = 1 m α i α j y i y j x i T x j \max\limits_{\alpha}\,\,\,\,\,\,\,\sum\limits_{i=1}^{m}\alpha_i-\frac{1}{2}\sum\limits_{i=1}^{m}\sum\limits_{j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_j s.t. i = 1 m α i y i = 0 ( ) \sum\limits^{m}_{i=1}\alpha_iy_i=0(*) α i > = 0 \alpha_i>=0 .

  5. 解的稀疏性
    求出 α \alpha 後即得最終模型:
    f ( x ) = ω T x + b = i = 1 m α i y i x i T x + b f(x)=\omega^Tx+b=\sum\limits^{m}_{i=1}\alpha_iy_ix_i^Tx+b
    KKT條件: { α i > = 0 y i f ( x i ) > = 1 α i ( 1 y i f ( x i ) ) = 0 \left\{\begin{matrix} \alpha_i>=0\\ y_if(x_i)>=1\\\alpha_i(1-y_if(x_i))=0 \end{matrix}\right.
    即必有: α i = 0 \alpha_i=0 或者 y i f ( x i ) = 1 y_if(x_i)=1
    由此體現解的稀疏性:訓練完成後,最終模型只與支持向量有關。

  6. 特徵空間映射
    不存在一個超平面能將兩類樣本正確劃分時,可將樣本從原始空間映射到更高維度的特徵空間,使得樣本在這個特徵空間內線性可分。
    設樣本 x x 映射後的向量爲 ϕ ( x ) \phi(x) ,劃分超平面爲:
    f ( x ) = ω T ϕ ( x ) + b f(x)=\omega^T\phi(x)+b
    原始問題:找到 ω \omega b b 滿足 y i ( ω T ϕ ( x i ) + b ) > = 1 y_i(\omega^T\phi(x_i)+b)>=1 , i = 1 , 2 , , m i=1,2,\cdots,m 使得 1 2 ω 2 \frac{1}{2}{||\omega||}^2 最小
    對偶問題: max α         i = 1 m α i 1 2 i = 1 m j = 1 m α i α j y i y j ϕ ( x i ) T ϕ ( x j ) \max\limits_{\alpha}\,\,\,\,\,\,\,\sum\limits_{i=1}^{m}\alpha_i-\frac{1}{2}\sum\limits_{i=1}^{m}\sum\limits_{j=1}^{m}\alpha_i\alpha_jy_iy_j\phi(x_i)^T\phi(x_j) s.t. i = 1 m α i y i = 0 ( ) \sum\limits^{m}_{i=1}\alpha_iy_i=0(*) α i > = 0 \alpha_i>=0 .
    預測模型: f ( x ) = ω T ϕ ( x ) + b = i = 1 m α i y i ϕ ( x i ) T ϕ ( x ) + b f(x)=\omega^T\phi(x)+b=\sum\limits^{m}_{i=1}\alpha_iy_i\phi(x_i)^T\phi(x)+b

  7. 核函數
    設計核函數 k ( x i , x j ) = ϕ ( x i ) T ϕ ( x j ) k(x_i,x_j)=\phi(x_i)^T\phi(x_j) 解決內積 ϕ ( x i ) T ϕ ( x j ) \phi(x_i)^T\phi(x_j) 因維度過高計算困難的問題。
    只要一個對稱函數對應的矩陣半正定,這個函數就能作爲核函數使用。
    常用核函數:在這裏插入圖片描述文本數據常用線性核,情況不明時先嚐試高斯核。
    k 1 ( x i , x j ) k_1(x_i,x_j) , k 1 ( x i , x j ) k_1(x_i,x_j) 均爲核函數,那麼對任意正數 γ 1 \gamma_1 γ 1 \gamma_1 和任意函數 g ( x ) g(x) γ 1 k 1 ( x i , x j ) + γ 2 k 2 ( x i , x j ) \gamma_1k_1(x_i,x_j)+\gamma_2k_2(x_i,x_j) k 1 ( x i , x j ) k 1 ( x i , x j ) k_1(x_i,x_j)k_1(x_i,x_j) k ( x i , x j ) = g ( x i ) k 1 ( x i , x j ) g ( x j ) ) k(x_i,x_j)=g(x_i)k_1(x_i,x_j)g(x_j)) 均爲核函數。

  8. 軟間隔
    允許在一些樣本上不滿足約束
    優化目標:在最大化間隔的同時,讓不滿足約束 y i ( ω T x i + b ) > = 1 y_i(\omega^Tx_i+b)>=1 的樣本數儘可能少。
    min ω , b       1 2 ω 2 + C i = 1 m l 0 / 1 ( y i ( ω T x i + b ) 1 ) \min\limits_{\omega,b}\,\,\,\,\,\frac{1}{2}||\omega||^2+C\sum\limits_{i=1}^{m}l_{0/1}(y_i(\omega^Tx_i+b)-1)
    其中, l 0 / 1 ( z ) = { 1     i f z < 0 0     e l s e l_{0/1}(z)=\left\{\begin{matrix} 1\,\,\,if\,z<0\\ 0\,\,\,else \end{matrix}\right.
    非凸、不連續、不易優化
    替代損失函數: l h i n g e ( z ) = m a x ( 0 , 1 z ) l_{hinge}(z)=max(0,1-z) l e x p ( z ) = e x p ( z ) l_{exp}(z)=exp(-z) l l o g ( z ) = l o g ( 1 + e x p ( z ) ) l_{log}(z)=log(1+exp(-z))
    替代損失的一致性問題討論:
    原始問題: min ω , b       1 2 ω 2 + C i = 1 m m a x ( 0 , 1 y i ( ω T x i + b ) ) \min\limits_{\omega,b}\,\,\,\,\,\frac{1}{2}||\omega||^2+C\sum\limits_{i=1}^{m}max(0,1-y_i(\omega^Tx_i+b))
    引入鬆弛變量 ξ i \xi_i : min ω , b       1 2 ω 2 + C i = 1 m ξ i \min\limits_{\omega,b}\,\,\,\,\,\frac{1}{2}||\omega||^2+C\sum\limits_{i=1}^{m}\xi_i ,
    s.t. y i ( ω T x i + b ) > = 1 ξ i y_i(\omega^Tx_i+b)>=1-\xi_i ξ i > = 0 \xi_i>=0
    對偶問題: max α         i = 1 m α i 1 2 i = 1 m j = 1 m α i α j y i y j x i T x j \max\limits_{\alpha}\,\,\,\,\,\,\,\sum\limits_{i=1}^{m}\alpha_i-\frac{1}{2}\sum\limits_{i=1}^{m}\sum\limits_{j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_j s.t. i = 1 m α i y i = 0 \sum\limits^{m}_{i=1}\alpha_iy_i=0 0 α i < = C 0\leq\alpha_i<=C .
    最終模型仍只與支持向量有關。

  9. 支持向量迴歸(SVR)
    基本思路:允許模型輸出與實際輸出存在 2 ϵ 2\epsilon 的差別。
    使用 ϵ \epsilon 不敏感損失函數: l ϵ ( z ) = { 0     i f z ϵ z ϵ     e l s e l_\epsilon(z)=\left\{\begin{matrix} 0\,\,\,if\,z\leq|\epsilon|\\ |z|-\epsilon\,\,\,else \end{matrix}\right. ,表示落入 2 ϵ 2\epsilon 間隔段內的數據不計算損失。
    原始問題: min ω , b , ξ i , ξ i ^    1 2 ω 2 + C i = 1 m ( ξ i + ξ i ^ ) \min\limits_{\omega,b,\xi_i,\hat{\xi_i}}\,\,\frac{1}{2}||\omega||^2+C\sum\limits_{i=1}^{m}(\xi_i+\hat{\xi_i}) ,s.t. f ( x i ) y i ξ i + ϵ f(x_i)-y_i\leq\xi_i+\epsilon y i f ( x i ) ξ i ^ + ϵ y_i-f(x_i)\leq\hat{\xi_i}+\epsilon ξ i > = 0 \xi_i>=0 ξ i ^ > = 0 \hat{\xi_i}>=0
    對偶問題:在這裏插入圖片描述
    在這裏插入圖片描述
    KKT條件:
    在這裏插入圖片描述
    最終模型:
    f ( x ) = i = 1 m ( α i ^ α i ) x i T x + b f(x)=\sum\limits_{i=1}^{m}(\hat{\alpha_i}-\alpha_i)x_i^Tx+b
    在求得 α i \alpha_i 後,根據KKT條件,當 C α i 0 C-\alpha_i\neq 0 時,利用 α i ( f ( x i ) y i ϵ ) = 0 \alpha_i(f(x_i)-y_i-\epsilon)=0 求出 b b 。更魯棒的方法是找到所以 0 = < α i C 0=<\alpha_i\leq C α i \alpha_i 求出b後取平均值。

  10. 核方法
    表示定理:在這裏插入圖片描述 最常見的核方法是通過引入核函數(核化)將線性學習器拓展爲非線性學習器。