《統計學習方法》--支持向量機

《統計學習方法》第七章–支持向量機

支持向量機概述

支持向量機是一種二類分類模型,它的基本模型是定義在特徵空間上的間隔最大的線性分類器。支持向量機由簡至繁依次可分爲:線性可分支持向量機,線性支持向量機,非線性支持向量機。當數據線性可分時,通過硬間隔最大化的約束來學習一個分類器,稱爲線性可分支持向量機;當數據近似線性可分時,通過軟間隔最大化的約束來學習一個分類器,稱爲線性支持向量機;當數據線性不可分時通過使用核技巧及軟間隔最大化,學習非線性支持向量機。故此,支持向量機可以簡化的描述爲通過訓練數據集來尋找一個能夠將數據正確分類的超平面,此分離超平面滿足數據集中的數據點距此超平面的間隔(軟間隔/硬間隔)最大化。

基礎前提

函數間隔和幾何間隔

間隔最大化是貫穿於整個支持向量機模型的最核心的部分。一般來說,一個點距離分離超平面的遠近可以表示分類預測的確信程度,在分離超平面確定的情況下,若一個點離超平面越遠則分類正確的可信度越高。故此,支持向量機尋求間隔最大化的意義在於分離超平面不僅可以正確分類數據點,而且對於最難分的實例(距離超平面最近的點)也有較大的分類可信度,因此該模型再對未知數據分類時應該也具有較好的性能。

函數間隔

對於給定的訓練數據集TT和超平面(ω,b)(\omega,b)

定義超平面(ω,b)(\omega,b)關於樣本點(xi,yi)(x_i,y_i)的函數間隔爲γi^=yi(ωxi+b)\hat{\gamma_i}=y_i(\omega\cdot x_i+b)
定義超平面(ω,b)(\omega,b)關於訓練數據集TT的函數間隔爲超平面(ω,b)(\omega,b)關於TT中所有樣本點(xi,yi)(x_i,y_i)的函數間隔最小值,即γ^=mini=1,2,..,Nγi^\hat{\gamma}=\min_{i=1,2,..,N}\hat{\gamma_i}

幾何間隔

由於函數間隔在當ω\omegabb成比例的改變時候,得到的分離超平面並沒有變化,但是函數間隔卻也成比例的改變,故此自然想到應該對其進行規範化處理,令ω=1||\omega||=1,這樣就得到了幾何間隔的定義。

對於給定的訓練數據集TT和超平面(ω,b)(\omega,b)

定義超平面(ω,b)(\omega,b)關於樣本點(xi,y)i(x_i,y_)i的幾何間隔爲γi=yi(ωωxi+bω)\gamma_i=y_i(\frac{\omega}{||\omega||}\cdot x_i+\frac{b}{||\omega||})
定義超平面(ω,b)(\omega,b)關於訓練數據集TT的幾何間隔爲超平面(ω,b)(\omega,b)關於TT中所有樣本點(xi,yi)(x_i,y_i)的幾何間隔最小值,即γ=min1,2,...,Nγi\gamma=\min_{1,2,...,N}\gamma_i

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

給定線性可分訓練數據集,通過間隔最大化(幾何間隔最大化)或等價的求解相應的凸二次規劃問題得到的分離超平面爲ωx+b=0\omega^*\cdot x+b^*=0,相應的分類決策函數爲f(x)=sign(ωx+b)f(x)=sign(\omega^*\cdot x+b^*)。線性可分支持向量機可以表述爲下列形式:maxω,bγ\max_{\omega,b}\gamma s.t.yi(ωωxi+bω)γ,i=1,2...,Ns.t. y_i(\frac{\omega}{||\omega||}\cdot x_i+\frac{b}{||\omega||})\geq\gamma,i=1,2...,N即轉化爲了一個約束最優化問題。依據函數間隔和幾何間隔的關係及約束最優化的求解方式,可以將上述求解最大值的問題轉化爲求解最小值的問題,即:minω,b12ω2\min_{\omega,b}\frac{1}{2}||\omega||^2 s.t.yi(ωxi+b)11,i=1,2...,Ns.t. y_i(\omega\cdot x_i+b)-1\geq 1,i=1,2...,N

故此可以有線性可分支持向量機算法爲:

輸入:線性可分訓練數據集T={(x1,y2),(x2,y2),...,(xN,yN)}T=\{(x_1,y_2),(x_2,y_2),...,(x_N,y_N)\},其中xiX=Rn,yiY={+1,1},i=1,2,...,Nx_i\in X=R^n,y_i\in Y=\{+1,-1\},i=1,2,...,N

輸出:最大間隔分離超平面及分類決策函數

(1) 構造並求解約束最優化問題:minω,b12ω2\min_{\omega,b}\frac{1}{2}||\omega||^2 s.t.yi(ωxi+b)11,i=1,2...,Ns.t. y_i(\omega\cdot x_i+b)-1\geq 1,i=1,2...,N得到最優解ω\omega^*,bb^*
(2) 由此得到分離超平面:ωx+b=0\omega^* \cdot x+b^* = 0,分類決策函數f(x)=sign(ωx+b)f(x)=sign(\omega^* \cdot x+b^*)

線性支持向量機與軟間隔最大化

當數據集線性不可分時表明對於數據集中的一些實例,上述約束方法中的約束不等式不能都成立,即存在一些實例,無法滿足函數間隔大於等於1的約束要求。爲了解決這個問題,可以對每個樣本點引入一個鬆弛變量ζi0\zeta_i\geq0,使得函數間隔加上鬆弛變量大於等於1,即約束條件放寬爲:yi(ωxi+b)1ζiy_i(\omega\cdot x_i+b)\geq 1-\zeta_i,同時對每個鬆弛變量支付一個代價ζi\zeta_i。目標函數則變爲12ω2+Ci=1Nζi\frac{1}{2}||\omega||^2+C \sum_{i=1}^{N}\zeta_i,這裏C>0C>0稱爲懲罰參數,CC值大時對誤分類的懲罰增大,CC值小時對誤分類的懲罰小。故由此可得到線性支持向量機算法的原始表達形式爲:minω,b,ζ12ω2+Ci=1Nζi\min_{\omega,b,\zeta} \frac{1}{2}||\omega||^2+C\sum_{i=1}^N\zeta_i s.t.yi(ωxi+b)1ζi,i=1,2,...,Ns.t. y_i(\omega\cdot x_i+b)\geq 1-\zeta_i,i=1,2,...,N ζi0,i=1,2,...,N\zeta_i\geq 0,i=1,2,...,N這樣根據原始問題求解得到ω\omega^*,bb^*即可得到分離超平面以及分類決策函數

非線性支持向量機與核函數

對於線性分類問題,線性支持向量機是一種非常有效的方法。但是有時要解決的是非線性問題,此時就需要收盤每個非線性支持向量機,其重點在於利用核技巧。核技巧不僅應用於支持向量機,而且也可以應用於其他統計學問題中。核技巧就是通過首先使用一個變換將原空間的數據映射到新的空間,然後在新空間裏用線性分類學習方法從訓練數據中學習分類模型。

核技巧的基本想法是通過一個非線性變換將輸入空間(歐式空間RnR^n或離散集合)對應於一個特徵空間(希爾伯特空間H\mathrm{H}),使得在輸入空間RnR^n中的超曲面模型對應於特徵空間H\mathrm{H}中的超平面模型(支持向量機)。這樣,分類問題的學習任務通過在特徵空間中求解線性支持向量機就可以完成。

核函數

χ\chi是輸入空間(歐式空間RnR^n的子集或離散集合),又設H\mathrm{H}爲特徵空間(希爾伯特空間),如果存在一個從χ\chiH\mathrm{H}的映射ϕ(x):χH\phi(x):\chi \to \mathrm{H}使得對所有x,zχx,z\in\chi,函數K(x,z)K(x,z)滿足條件K(x,z)=ϕ(x)ϕ(z)K(x,z)=\phi(x)\cdot\phi(z)則稱K(x,z)K(x,z)爲核函數,ϕ(x)\phi(x)爲映射函數,式中ϕ(x)ϕ(z)\phi(x)\cdot\phi(z)ϕ(x)\phi(x)ϕ(z)\phi(z)的內積

非線性支持向量機

從非線性分類訓練集,通過核函數與軟間隔最大化學習得到的分類決策函數f(x)=sign(i=1NαiyiK(x,xi)+b)f(x)=sign(\sum_{i=1}^N\alpha_i^*y_iK(x,x_i)+b^ *)稱爲非線性支持向量機,K(x,z)K(x,z)是正定核函數

輸入:訓練數據集T={(x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}其中xiχ=Rn,yiY={1,+1},i=1,2,...,Nx_i\in\chi=R^n,y_i\in Y=\{-1,+1\},i=1,2,...,N

輸出:分類決策函數

(1) 選取適當的核函數K(x,z)K(x,z)和適當的參數CC,構造並求解最優化問題minα12i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαi\min_\alpha \frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_j y_iy_jK(x_i,x_j)-\sum_{i=1}^N\alpha_i s.t.i=1Nαiyi=0s.t. \sum_{i=1}^N\alpha_iy_i=0 0αiC,i=1,2,...,N0\leq\alpha_i\leq C,i=1,2,...,N求出最優解α=(α1,α2,...,αN)T\alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*)^T
(2) 選擇α\alpha^*的一個正分量0<αj<C0<\alpha_j^*<C,計算b=yji=1NαiyiK(xi,xj)b^*=y_j-\sum_{i=1}^N\alpha_i^ *y_iK(x_i,x_j)
(3) 構造決策函數:f(x)=sign(i=1NαiyiK(x,xi)+b)f(x)=sign(\sum_{i=1}^N\alpha_i^*y_iK(x,x_i)+b^ *)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章