svm1

支持向量機(SVMSVM

1 導讀部分

  • SVMSVM是一種二分類模型
  • SVMSVM的基本模型是定義在特徵空間上的間隔最大的線性分類器
  • SVMSVM還包括核技巧,這使得它成爲非線性分類器
  • SVMSVM的學習策略是間隔最大化,可形式化爲一個求解凸二次規劃的問題,也等價於正則化的合頁損失函數的最小化問題
  • SVMSVM模型由簡至繁的分類:
    • 線性可分支持向量機:訓練數據線性可分,通過硬間隔最大化,學習一個線性的分類器
    • 線性支持向量機:訓練數據近似線性可分,通過軟間隔最大化,學習一個線性的分類器
    • 非線性支持向量機:訓練數據線性不可分,通過核技巧和軟間隔最大化,學習一個非線性的分類器

2 線性可分支持向量機與硬間隔最大化

一個特徵空間上的數據集:

  • T={(x1,y1),(x2,y2),,(xN,yN)}T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right)\right\},其中xiX=Rn,yiY={+1,1}x_{i} \in \mathcal{X}=\mathbf{R}^{n},y_{i} \in \mathcal{Y}=\{+1,-1\}i=1,2,,Ni=1,2, \cdots, Nxix_i是第ii個特徵向量,也稱爲實例,yiy_ixix_i的類別標記

  • y=+1y=+1時,稱xix_i爲正例;當y=1y=-1時,稱xix_i爲正例

  • (xi,yi)(x_i,y_i)爲樣本點,假設數據集是線性可分的

  • 分離超平面爲:wx+b=0w \cdot x+b=0,由法向量ww和截距bb決定,由(w,b)(w, b)表示;將特徵空間分爲兩部分:正類和負類

函數間隔和幾何間隔:

  • 函數間隔:

    • 給定數據集TT和超平面(w,b)(w, b),超平面(w,b)(w,b)和樣本點(xi,yi)(x_i,y_i)函數間隔爲:γ^i=yi(wxi+b)\hat{\gamma}_{i}=y_{i}\left(w \cdot x_{i}+b\right)
    • 函數間隔可以表示分類預測的正確性確信度
    • 定義超平面(w,b)(w,b)關於訓練數據集TT的函數間隔爲超平面(w,b)(w,b)關於TT中所有樣本點(xi,yi)(x_i,y_i)函數間隔之和最小值,即:γ^=mini=1,,Nγ^i\hat \gamma=\displaystyle \min_{i=1,\cdots,N}\hat\gamma_i
  • 幾何間隔:

    • 給定數據集TT和超平面(w,b)(w, b),超平面(w,b)(w,b)和樣本點(xi,yi)(x_i,y_i)幾何間隔爲:γi=yi(wwxi+bw)\gamma_{i}=y_{i}\left(\frac{w}{\|w\|} \cdot x_{i}+\frac{b}{\|w\|}\right)
    • 幾何間隔對法向量ww和截距bb做了規範化處理,同除wwL2L_2範數,是樣本點到超平面帶符號的距離
    • 定義超平面(w,b)(w,b)關於訓練數據集TT的函數間隔爲超平面(w,b)(w,b)關於TT中所有樣本點(xi,yi)(x_i,y_i)幾何間隔之和最小值,即:γ=mini=1,,Nγi\gamma=\displaystyle \min_{i=1,\cdots,N}\gamma_i
  • 函數間隔和幾何間隔的關係:γi=γ^iw\gamma_{i}=\frac{\hat{\gamma}_{i}}{\|w\|}γ=γ^w\gamma=\frac{\hat{\gamma}}{\|w\|}

間隔最大化:

  • 支持向量機學習:正確分類訓練數據集+找到幾何間隔最大的分離超平面(以獲得比較好的泛化能力),這個超平面是唯一

  • 求函數間隔最大化的超平面:
    maxw,bγ s.t. yi(wwxi+bw)γ,i=1,2,,N \begin{array}{ll}{\displaystyle\max _{w, b}} & {\gamma} \\ {\text { s.t. }} & {y_{i}\left(\frac{w}{\|w\|} \cdot x_{i}+\frac{b}{\|w\|}\right) \geqslant \gamma, \quad i=1,2, \cdots, N}\end{array}

  • 求幾何間隔最大化的超平面:
    maxw,bγ^w s.t. yi(wxi+b)γ^,i=1,2,,N \begin{array}{cl}{\displaystyle\max _{w, b}} & {\frac{\hat{\gamma}}{\|w\|}} \\ {\text { s.t. }} & {y_{i}\left(w \cdot x_{i}+b\right) \geqslant \hat{\gamma}, \quad i=1,2, \cdots, N}\end{array}

  • 該優化問題與幾何間隔γ^\hat{\gamma}的取值無關,故等價優化問題爲:
    minw,b12w2 s.t. yi(wxi+b)10,i=1,2,,N \color{red} \begin{array}{ll}{\displaystyle\min _{w, b}} & {\frac{1}{2}\|w\|^{2}} \\ {\text { s.t. }} & {y_{i}\left(w \cdot x_{i}+b\right)-1 \geqslant 0, \quad i=1,2, \cdots, N}\end{array}
    這是一個凸二次規劃問題,這個式子是SVM的原始最優化問題

  • 求得最優解:w,bw^{*}, b^{*},得分離超平面:wx+b=0w^{*} \cdot x+b^{*}=0,得分類超平面:f(x)=sign(wx+b)f(x)=\operatorname{sign}\left(w^{*} \cdot x+b^{*}\right)

  • 最大間隔分離超平面的存在唯一性可證明

支持向量和間隔邊界:

  • 支持向量對應於:yi(wxi+b)1=0y_i(w\cdot x_i+b)-1 = 0

  • 對應於兩個超平面:

    對應yi=+1y_i=+1正例點,支持向量在超平面:H1:wx+b=1H_{1}: w \cdot x+b=1

    對應yi=1y_i=-1負例點,支持向量在超平面:H2:wx+b=1H_{2}: w \cdot x+b=-1

  • H1,H2H_1,H_2上的點稱爲支持向量分離超平面位於H1,H2H_1,H_2中央,H1,H2H_1,H_2稱爲間隔邊界

  • H1,H2H_1,H_2之間的距離稱爲間隔,等於:2w\frac{2}{\|w\|}

  • 在確定分離超平面時只有支持向量起着決定作用,所以將這種分類模型稱爲支持向量機

  • 7.17.1的解法,PythonPython程序實現爲:

    from scipy import optimize
    import numpy as np
    
    fun = lambda x: ((x[0]) ** 2 + (x[1]) ** 2)/2
    cons = ({'type': 'ineq', 'fun': lambda x: 3 * x[0] + 3 * x[1] + x[2] - 1},
            {'type': 'ineq', 'fun': lambda x: 4 * x[0] + 3 * x[1] + x[2] - 1},
            {'type': 'ineq', 'fun': lambda x: -x[0] - x[1] - x[2] - 1})
    res = optimize.minimize(fun, np.ones(3), method='SLSQP', constraints=cons)
    res
    

學習的對偶問題:

  • 對偶問題往往更容易求解;自然引入核函數,進而推廣到非線性分類問題

  • 針對每個不等式約束,定義拉格朗日乘子αi0\alpha_i\ge0,定義拉格朗日函數:
    KaTeX parse error: No such environment: align at position 19: …olor{red}\begin{̲a̲l̲i̲g̲n̲}̲ L(w,b,\alpha)&…
    其中α=(α1,α2,,αN)T\alpha=(\alpha_1,\alpha_2,\dots,\alpha_N)^T拉格朗日乘子向量

  • 原始問題是極小極大問題,根據拉格朗日對偶性,原始問題的對偶問題是極大極小問題
    maxαminw,bL(w,b,α) \max\limits_\alpha\min\limits_{w,b}L(w,b,\alpha)

  • minw,bL(w,b,α)\displaystyle \min _{w, b} L(w, b, \alpha)
    wL(w,b,α)=wi=1Nαiyixi=0bL(w,b,α)=i=1Nαiyi=0 \begin{array}{l}{\nabla_{w} L(w, b, \alpha)=w-\displaystyle \sum_{i=1}^{N} \alpha_{i} y_{i} x_{i}=0} \\ {\nabla_{b} L(w, b, \alpha)=\displaystyle \sum_{i=1}^{N} \alpha_{i} y_{i}=0}\end{array}

    得:
    w=i=1Nαiyixii=1Nαiyi=0 \begin{array}{l}{w=\displaystyle \sum_{i=1}^{N} \alpha_{i} y_{i} x_{i}} \\ {\displaystyle \sum_{i=1}^{N} \alpha_{i} y_{i}=0}\end{array}
    代入L(w,b,α)L(w,b,\alpha)後得:
    L(w,b,α)=12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαiyi((j=1Nαjyjxj)xi+b)+i=1Nαi=12i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi \begin{aligned} L(w, b, \alpha) &=\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{N} \alpha_{i} y_{i}\left(\left(\sum_{j=1}^{N} \alpha_{j} y_{j} x_{j}\right) \cdot x_{i}+b\right)+\sum_{i=1}^{N} \alpha_{i} \\ &=-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i} \end{aligned}

    即:
    minw,bL(w,b,α)=12i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi \min _{w, b} L(w, b, \alpha)=-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i}

  • minw,bL(w,b,α)\displaystyle \min _{w, b} L(w, b, \alpha)α\alpha的極大,既是對偶問題:
    maxα12i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi s.t. i=1Nαiyi=0αi0,i=1,2,,N \begin{array}{cl}{\displaystyle \max _{\alpha}} & {-\frac{1}{2} \displaystyle\sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i}} \\ {\text { s.t. }} & \displaystyle{\sum_{i=1}^{N} \alpha_{i} y_{i}=0} \\ {} & {\alpha_{i} \geqslant 0, \quad i=1,2, \cdots, N}\end{array}

    目標函數轉化爲最小:
    minα12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi s.t. i=1Nαiyi=0αi0,i=1,2,,N \color{red}\begin{array}{cl}\displaystyle {\min _{\alpha}} & {\frac{1}{2} \displaystyle\sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{N} \alpha_{i}} \\ {\text { s.t. }} & \displaystyle {\sum_{i=1}^{N} \alpha_{i} y_{i}=0} \\ {} & {\alpha_{i} \geqslant 0, \quad i=1,2, \cdots, N}\end{array}

  • 根據上不等式可求得α=(α1,α2,,αN)T\alpha^{*}=\left(\alpha_{1}^{*}, \alpha_{2}^{*}, \cdots, \alpha_{N}^{*}\right)^{\mathrm{T}},進一步求得:w,bw^{*}, b^{*}
    w=i=1Nαiyixib=yji=1Nαiyi(xixj) \color{red}\begin{aligned} w^{*} &=\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} x_{i} \\ b^{*}=& y_{j}-\sum_{i=1}^{N} \alpha_{i}^{*} y_{i}\left(x_{i} \cdot x_{j}\right) \end{aligned}
    分離超平面爲:
    i=1Nαiyi(xxi)+b=0 \color{red} \sum_{i=1}^{N} \alpha_{i}^{*} y_{i}\left(x \cdot x_{i}\right)+b^{*}=0
    線性可分支持向量機的對偶形式,分類決策函數:
    f(x)=sign(i=1Nαiyi(xxi)+b) \color{red}f(x)=\operatorname{sign}\left(\sum_{i=1}^{N} \alpha_{i}^{*} y_{i}\left(x \cdot x_{i}\right)+b^{*}\right)

定義:訓練數據集中對應於αi>0\alpha_{i}^{*}>0的樣本點(xi,yi)\left(x_{i}, y_{i}\right)的實例點xiRnx_{i} \in \mathbf{R}^{n}稱爲支持向量

KKTKKT互補條件可知:αi(yi(wxi+b)1)=0,i=1,2,,N\alpha_{i}^{*}\left(y_{i}\left(w^{*} \cdot x_{i}+b^{*}\right)-1\right)=0, \quad i=1,2, \cdots, N

對於αi>0\alpha_{i}^{*}>0的樣本點(xi,yi)\left(x_{i}, y_{i}\right),有:yi(wxi+b)1=0y_{i}\left(w^{*} \cdot x_{i}+b^{*}\right)-1=0

或者:wxi+b=±1w^{*} \cdot x_{i}+b^{*}=\pm 1

即:樣本點(xi,yi)\left(x_{i}, y_{i}\right)一定在間隔邊界上

發佈了85 篇原創文章 · 獲贊 36 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章