统计学习方法 学习笔记(五):支持向量机(下)
通過支持向量機(上)和支持向量機(中)的介紹,對支持向量機應該有點感性的認識啦!在這個學習筆記中,來繼續探尋帶核函數的支持向量機(解決如下圖所示的問題)
對解線性分類問題,線性分類支持向量機是一種非常有效的方法。但是,有時分類問題是非線性的,這時可以使用非線性支持向量機。
?
核技巧:
? ? 如上圖所示,設原空間為$\mathcal{X} \subset R^2, x = (x^{(1)},x^{(2)})^T \in \mathcal{X}$,新空間為$\mathcal{Z} \subset R^2, z = (z^{(1)},z^{(2)})^T \in \mathcal{Z}$,定義從原空間到新空間的變換(映射):
$$z = \phi (x) = ((x^{(1)})^2,(x^{(2)})^2)^T$$
經過變換$z=\phi (x)$,原空間$ \mathcal{X} \subset R^2 $變換為新空間$ \mathcal{Z} \subset R^2$,原空間中的點相應地變換為新空間中的點,原空間中的橢圓:
$$w_{1}(x^{(1)})^2 +w_{2}(x^{(2)})^2 + b = 0$$
變換成為新空間中的直線:
$$w_{1}z^{(1)} + w_{2}z^{(2)} + b = 0 $$
在變換后的新空間里,直線$w_{1}z^{(1)} + w_{2}z^{(2)} + b = 0$可以將變換后的正負實例點正確分開。這樣,原空間的非線性可分問題就變成了新空間的線性可分問題。
? ? 上面的例子說明,用線性分類方法求解非線性分類問題分為兩步:首先使用一個變換將原空間的數據映射到新空間;然后在新空間里用線性分類學習方法從訓練數據中學習分類模型。核技巧就屬于這樣的方法。
? ? 核技巧應用到支持向量機,其基本想法就是通過一個非線性變換將輸入空間對應一個特征空間,使得在輸入空間$R^n$中的超曲面模型對應于特征空間$\mathcal{H}$中的超平面模型(支持向量機)。這樣,分類問題的學習任務通過在特征空間中求解線性支持向量機就可以完成。
? ? 核函數的定義:
? ? 設$\mathcal{X}$是輸入空間(歐式空間$R^n$的子集或離散集合),又設$\mathcal{H}$為特征空間(希爾伯特空間),如果存在一個從$\mathcal{X}$到$\mathcal{H}$的映射:
$$\phi (x): \mathcal{X} \rightarrow \mathcal{H}$$
使得對所有$x,z \in \mathcal{X}$,函數$K(x,z)$滿足條件:
$$K(x,z) = \phi (x)\cdot \phi (z)$$
則稱$K(x,z)$為核函數,$\phi (x)$為映射函數,式中$\phi (x)\cdot \phi (z) $為$\phi (x)$和$\phi (z)$的內積。
? ? 核技巧的想法是,在學習與預測中只定義核函數$K(x,z)$,而不顯示地定義映射函數$\phi$。通常,直接計算$K(x,z)$比較容易,而通過$\phi (x)$和$\phi (z)$計算$K(x,z)$并不容易。注意,$\phi$是輸入空間$R^n$到特征空間$\mathcal{H}$的映射,特征空間$\mathcal{H}$一般是高維的,甚至是無窮維的。
核技巧在支持向量機中的應用:
? ? 在線性支持向量機的對偶問題中,無論是目標函數還是決策函數(分離超平面)都只涉及輸入實例與實例之間的內積。在對偶問題的目標函數中內積$x_i\cdot x_j$可以用核函數$K(x_i,x_j) = \phi (x_i) \cdot \phi (x_j)$ 來代替。此時對偶問題:
$$W(\alpha) = \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_jK(x_i,x_j) - \sum_{i=1}^{N}\alpha_i$$
同樣,分類決策函數中的內積也可以用核函數代替,而分類決策函數式為:
$$f(x) = sign(\sum_{i=1}^{N_s}\alpha_{i}^{*}y_i\phi (x_i)\cdot \phi (x) + b^{*}) = sign(\sum_{i=1}^{N_s}\alpha_{i}^{*}y_iK(x_i,x) + b^{*})$$
這等價于經過映射函數$\phi$將原來的輸入空間變換到一個新的特征空間,將輸入空間中的內積$x_i\cdot x_j$變換為特征空間中的內積$\phi (x_i)\cdot \phi (x_j)$,在新的特征空間里從訓練樣本中學習線性支持向量機。當映射函數是非線性函數時,學習到的含有核函數的支持向量機是非線性分類模型。
? ? 也就是說,在核函數$K(x,z)$給定的條件下,可以利用線性分類問題的方法求解非線性分類問題的支持向量機。學習是隱式地在特征空間進行的,不需要顯示地定義特征空間和映射函數。這樣的技巧稱為核技巧,它是巧妙地利用線性分類學習方法與核函數解決非線性問題的技術。在實際應用中,往往依賴領域知識直接選擇核函數。下面介紹兩種核函數:
常用核函數:
(1)多項式核函數(polynomial kernel function):
$$K(x,z) = (x\cdot z + 1)^p$$
對應的支持向量機是一個$p$次多項式分類器。在此情形下,分類決策函數成為:
$$f(x) = sign(\sum_{i=1}^{N_s}\alpha_{i}^{*}y_i(x_i\cdot x + 1)^p + b^{*})$$
(2)高斯核函數(Gaussian kernel function)
$$K(x,z) = exp(- \frac{||x-z||^2{2\sigma^{2}}})$$
對應的支持向量機是高斯徑向基函數(radial basis function)分類器。在此情形下,分類決策函數成為:
$$f(x) = sign(\sum_{i=1}^{N_s}\alpha_{i}^{*}y_iexp(- \frac{||x-z||^2}{2\sigma^{2}}) + b^*)$$
?
非線性支持向量機學習算法:
? ? 輸入:訓練數據集$T = \{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}$,其中$x_i \in \mathcal{X} = R^n, y_i \in \mathcal{Y} = {-1,+1},i=1,2,...,N$;
? ? 輸出:分類決策函數
? ? (1)選取適當的核函數$K(x,z)$和適當的參數$C$,構造并求解最優化問題:
$$\min_{\alpha} \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_jK(x_i,x_j) - \sum_{i=1}^{N}\alpha_i$$
$$s.t.? ? \sum_{i=1}^{N}\alpha_iy_i = 0$$
$$ 0 \leq \alpha_i \leq C, i=1,2,...,N$$
求得最優解$\alpha^{*} = (\alpha_{1}^{*},\alpha_{2}^{*},...,\alpha_{N}^{*})^T$
? ? (2)選擇$\alpha^{*}$的一個正分量$0<\alpha_{j}^{*}<C$,計算
$$b^{*} = y_j - \sum_{i=1}^{N}\alpha_{i}^{*}y_iK(x_i\cdot x_j)$$
? ? (3)構造決策函數:
$$f(x) = sign(\sum_{i=1}^{N}\alpha_{i}^{*}y_iK(x\cdot x_i) + b^{*})$$
當$K(x,z)$是正定核函數時,上述目標函數是凸二次規劃問題,解是存在的。對偶算法的實現請參考序列最小最優化算法。
轉載于:https://www.cnblogs.com/double-lin/p/10420515.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的统计学习方法 学习笔记(五):支持向量机(下)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java.lang.IllegalSta
- 下一篇: img=img%3e128 matlab