【機器學習基礎】最大邊緣分類器

本系列爲《模式識別與機器學習》的讀書筆記。

一,最大邊緣分類器

考察線性模型的⼆分類問題,線性模型的形式爲

y ( x ) = w T ϕ ( x ) + b (7.1) y(\boldsymbol{x})=\boldsymbol{w}^{T}\boldsymbol{\phi}(\boldsymbol{x})+b\tag{7.1}

其中 ϕ ( x ) \boldsymbol{\phi}(\boldsymbol{x}) 表⽰⼀個固定的特徵空間變換,並且顯式地寫出了偏置參數 b b 。訓練數據集由 N N 個輸⼊向量 x 1 , , x N \boldsymbol{x}_1,\dots,\boldsymbol{x}_N 組成,對應的⽬標值爲 t 1 , , t N t_1,\dots,t_N ,其中 t n { 1 , 1 } t_n\in\{−1, 1\} , 新的數據點 x \boldsymbol{x} 根據 y ( x ) y(\boldsymbol{x}) 的符號進⾏分類。

現階段,假設訓練數據集在特徵空間中是線性可分的,即根據定義,存在⾄少⼀個參數 w \boldsymbol{w} b b 的選擇⽅式,使得對於 t n = + 1 t_n = +1 的點,函數(7.1)都滿⾜ y ( x n ) > 0 y(\boldsymbol{x}_n)>0 ,對於 t n = 1 t_n = −1 的點,都有 y ( x n ) < 0 y(\boldsymbol{x}_n)<0 ,從⽽對於所有訓練數據點,都有 t n y ( x n ) > 0 t_ny(\boldsymbol{x}_n)>0

如果有多個能夠精確分類訓練數據點的解,那麼應該嘗試尋找泛化錯誤最⼩的那個解。 ⽀持向量機解決這個問題的⽅法是:引⼊邊緣(margin 的概念,這個概念被定義爲決策邊界與任意樣本之間的最⼩距離,如圖7.1所⽰。
邊緣
如圖7.2,最⼤化邊緣會⽣成對決策邊界的⼀個特定的選擇,這個決策邊界的位置由數據點的⼀個⼦集確定,被稱爲⽀持向量,⽤圓圈表⽰。
⽀持向量
在⽀持向量機中,決策邊界被選爲使邊緣最⼤化的那個決策邊界。

x \boldsymbol{x} 距離由 y ( x ) = 0 y(\boldsymbol{x})=0 定義的超平⾯的垂直距離爲 y ( x ) w \frac{|y(\boldsymbol{x})|}{\|\boldsymbol{w}\|} ,其中 y ( x ) y(\boldsymbol{x}) 的函數形式由公式(7.1)給出,我們感興趣的是那些能夠正確分類所有數據點的解,即對於所有的 n n 都有 t n y ( x n ) > 0 t_ny(\boldsymbol{x}_n)>0 ,因此點 x n \boldsymbol{x}_n 距離決策⾯的距離爲
t n y ( x n ) w = t n ( w T ϕ ( x n ) + b ) w (7.2) \frac{t_ny(\boldsymbol{x}_n)}{\|\boldsymbol{w}\|}=\frac{t_n(\boldsymbol{w}^{T}\boldsymbol{\phi}(\boldsymbol{x}_n)+b)}{\|\boldsymbol{w}\|}\tag{7.2}

邊緣由數據集⾥垂直距離最近的點 x n \boldsymbol{x}_n 給出,希望最優化參數 w \boldsymbol{w} b b ,使得這個距離能夠最⼤化。因此最⼤邊緣解可以通過下式得到:

arg max w , b { 1 w min n [ t n ( w T ϕ ( x n ) + b ) ] } (7.3) \underset{\boldsymbol{w}, b}{\arg \max}\left\{\frac{1}{\|\boldsymbol{w}\|} \min _{n}\left[t_{n}\left(\boldsymbol{w}^{T} \boldsymbol{\phi}\left(\boldsymbol{x}_{n}\right)+b\right)\right]\right\}\tag{7.3}

注意到如果進⾏重新標度 w κ w \boldsymbol{w}\to\kappa\boldsymbol{w} 以及 b κ b b\to\kappa{b} , 那麼任意點 x n \boldsymbol{x}_n 距離決策⾯的距離 t n y ( x n ) w \frac{t_ny(\boldsymbol{x}_n)}{\|\boldsymbol{w}\|} 不會發⽣改變。利用這個性質,對於距離決策⾯最近的點,令

t n ( w T ϕ ( x n ) + b ) = 1 t_n(\boldsymbol{w}^{T}\boldsymbol{\phi}(\boldsymbol{x}_n)+b)=1

在這種情況下,所有的數據點會滿⾜限制

t n ( w T ϕ ( x n ) + b ) 1 , n = 1 , N t_n(\boldsymbol{w}^{T}\boldsymbol{\phi}(\boldsymbol{x}_n)+b)\ge1, n=1\dots,N

這被稱爲決策超平⾯的標準表⽰。 對於使上式取得等號的數據點,我們說限制被激活active),對於其他的數據點,我們說限制未激活inactive)。根據定義,總會存在⾄少⼀個激活限制,因爲總會有⼀個距離最近的點,並且⼀旦邊緣被最⼤化,會有⾄少兩個激活的限制。這樣,最優化問題就簡化爲了最⼤化 w 1 \|\boldsymbol{w}\|^{-1} ,這等價於最⼩化 w 2 \|\boldsymbol{w}\|^2 ,因此我們要在上述限制條件下,求解最優化問題

arg min w , b 1 2 w 2 \underset{\boldsymbol{w},b}{\arg\min}\frac{1}{2}\|\boldsymbol{w}\|^{2}

爲了解決這個限制的最優化問題,引⼊拉格朗⽇乘數 a n 0 a_n\ge0 。每個限制條件都對應着⼀個乘數 a n a_n ,從⽽可得下⾯的拉格朗⽇函數

L ( w , b , a ) = 1 2 w 2 n = 1 N a n { t n ( w T ϕ ( x n ) + b ) 1 } (7.4) L(\boldsymbol{w},b,\boldsymbol{a})=\frac{1}{2}\|\boldsymbol{w}\|^{2}-\sum_{n=1}^{N}a_n\{t_n(\boldsymbol{w}^{T}\boldsymbol{\phi}(\boldsymbol{x}_n)+b)-1\}\tag{7.4}

其中 a = ( a 1 , , a N ) T \boldsymbol{a} = (a_1,\dots,a_N)^{T} 。令 L ( w , b , a ) L(\boldsymbol{w},b,\boldsymbol{a}) 關於 w \boldsymbol{w} b b 的導數等於零,有
w = n = 1 N a n t n ϕ ) ( x n ) n = 1 N a n t n = 0 \boldsymbol{w}=\sum_{n=1}^{N}a_nt_n\boldsymbol{\phi})(\boldsymbol{x}_n)\\ \sum_{n=1}^{N}a_nt_n=0

使⽤這兩個條件從 L ( w , b , a ) L(\boldsymbol{w},b,\boldsymbol{a}) 中消去 a \boldsymbol{a} b b ,就得到了最⼤化邊緣問題的對偶表⽰(dual representation),其中要關於 a \boldsymbol{a} 最⼤化

L ~ ( a ) = n = 1 N a n 1 2 n = 1 N m = 1 N a n a m t n t m k ( x n , x m ) (7.5) \tilde{L}(\boldsymbol{a})=\sum_{n=1}^{N}a_n-\frac{1}{2}\sum_{n=1}^{N}\sum_{m=1}^{N}a_na_mt_nt_mk(\boldsymbol{x}_n,\boldsymbol{x}_m)\tag{7.5}

其中 k ( x , x ) = ϕ ( x ) T ϕ ( x ) k(\boldsymbol{x},\boldsymbol{x}^{\prime})=\boldsymbol{\phi}(\boldsymbol{x})^{T}\boldsymbol{\phi}(\boldsymbol{x}^{\prime}) ,限制條件爲

a n 0 , n = 1 , N n = 1 N a n t n = 0 a_n\ge0,n=1\dots,N\\ \sum_{n=1}^{N}a_nt_n=0

通過使⽤公式消去 w \boldsymbol{w} y ( x ) y(\boldsymbol{x}) 可以根據參數 { a n } \{a_n\} 和核函數表⽰,即

y ( x ) = n = 1 N a n t n k ( x , x n ) + b (7.6) y(\boldsymbol{x})=\sum_{n=1}^{N}a_nt_nk(\boldsymbol{x},\boldsymbol{x}_n)+b\tag{7.6}

滿足如下性質:

a n 0 t n y ( x n ) 1 0 a n { t n y ( x n ) 1 } = 0 a_n\ge0\\ t_ny(\boldsymbol{x}_n)-1\ge0\\ a_n\{t_ny(\boldsymbol{x}_n)-1\}=0

因此對於每個數據點,要麼 a n = 0 a_n = 0 ,要麼 t n y ( x n ) = 1 t_n y(\boldsymbol{x}_n) = 1 。任何使得 a n = 0 a_n = 0 的數據點都不會出現在公式(7.5)的求和式中,因此對新數據點的預測沒有作⽤。剩下的數據點被稱爲⽀持向量support vector)。

解決了⼆次規劃問題,找到了 a \boldsymbol{a} 的值之後,注意到⽀持向量 x n \boldsymbol{x}_n 滿⾜ t n y ( x n ) = 1 t_ny(\boldsymbol{x}_n)=1 ,就可以確定閾值參數 b b 的值,可得
t n ( m S a m t m k ( x n , x m ) + b ) = 1 (7.7) t_n\left(\sum_{m\in{\mathcal{S}}}a_mt_mk(\boldsymbol{x}_n,\boldsymbol{x}_m)+b\right)=1\tag{7.7}

其中 S \mathcal{S} 表⽰⽀持向量的下標集合。 ⾸先乘以 t n t_n ,使⽤ t n 2 = 1 t_n^2=1 的性質,然後對於所有的⽀持向量,整理⽅程,解出 b b ,可得

b = 1 N S n S ( t n m S a m t m k ( x n , x m ) ) (7.8) b=\frac{1}{N_\mathcal{S}}\sum_{n\in{\mathcal{S}}}\left(t_n-\sum_{m\in{\mathcal{S}}}a_mt_mk(\boldsymbol{x}_n,\boldsymbol{x}_m)\right)\tag{7.8}

其中 N S N_\mathcal{S} 是⽀持向量的總數。

對於接下來的模型⽐較,可以將最⼤邊緣分類器⽤帶有簡單⼆次正則化項的最⼩化誤差函數表⽰,形式爲
n = 1 N E ( y ( x n ) t n 1 ) + λ w 2 \sum_{n=1}^{N}E_{\propto}(y(\boldsymbol{x}_n)t_n-1)+\lambda\|\boldsymbol{w}\|^{2}

其中 E ( z ) E_{\infty}(z) 是⼀個函數,當 z 0 z\ge0 時,函數值爲零,其他情況下函數值爲 \infty

如圖7.3,⼆維空間中來⾃兩個類別的⼈⼯⽣成數據的例⼦。圖中畫出了具有⾼斯核函數的⽀持向量機的得到的常數 y ( x n ) y(\boldsymbol{x}_n) 的輪廓線。同時給出的時決策邊界、邊緣邊界以及⽀持向量。
具有⾼斯核函數的⽀持向量機

二,重疊類分佈

在實際中,類條件分佈可能重疊,這種情況下對訓練數據的精確劃分會導致較差的泛化能⼒。

引⼊鬆弛變量slack variable ξ n 0 \xi_n\ge 0 ,其中 n = 1 , , N n = 1,\dots, N ,每個訓練數據點都有⼀個鬆弛變量Bennett, 1992; Cortes and Vapnik, 1995)。對於位於正確的邊緣邊界內部的點或者邊界上的點, ξ n = 0 \xi_n=0 ,對於其他點, ξ n = t n y ( x n ) \xi_n=|t_n−y(\boldsymbol{x}_n)| 。 因此,對於位於決策邊界 y ( x n ) = 0 y(\boldsymbol{x}n)=0 上的點, ξ n = 1 \xi_n=1 ,並且 ξ n > 1 \xi_n>1 的點就是被誤分類的點。 從而分類的限制條件爲
t n y ( x n ) 1 ξ n , n = 1 , , N t_ny(\boldsymbol{x}_n)\ge1-\xi_n,n=1,\dots,N

其中鬆弛變量被限制爲滿⾜ ξ n 0 \xi_n \ge 0 ξ n = 0 \xi_n = 0 的數據點被正確分類,要麼位於邊緣上,要麼在邊緣的正確⼀側。 0 < ξ n 1 0 < \xi_n\le 1 的點位於邊緣內部,但是在決策邊界的正確⼀側。 ξ n > 1 \xi_n > 1 的點位於決策邊界的錯誤⼀側,是被錯誤分類的點。這種⽅法有時被描述成放寬邊緣的硬限制,得到⼀個軟邊緣soft margin),並且允許⼀些訓練數據點被錯分。

如圖7.4,鬆弛變量 ξ n 0 \xi_n \ge 0 的說明。圓圈標記的數據點是⽀持向量。
鬆弛變量
現在的⽬標是最⼤化邊緣,同時以⼀種⽐較柔和的⽅式懲罰位於邊緣邊界錯誤⼀側的點。於是最⼩化
C n = 1 N ξ n + 1 2 w n 2 C\sum_{n=1}^{N}\xi_n+\frac{1}{2}\|\boldsymbol{w}_n\|^{2}

其中參數 C > 0 C>0 控制了鬆弛變量懲罰與邊緣之間的折中。由於任何被誤分類的數據點都有 ξ n > 1 \xi_n>1 ,因此 n ξ n \sum_{n}\xi_n 是誤分類數據點數量的上界。於是,參數 C C 類似於(作⽤相反的)正則化係數,因爲它控制了最⼩化訓練誤差與模型複雜度之間的折中。

現在想要在限制條件以及 ξ n 0 \xi_n \ge 0 的條件下最⼩化式,對應的拉格朗⽇函數爲
L ( w , b , ξ , a , μ ) = 1 2 w 2 + C n = 1 N ξ n n = 1 N a n { t n y ( x n ) 1 + ξ n } n = 1 N μ n ξ n (7.9) L(\boldsymbol{w},b,\boldsymbol{\xi},\boldsymbol{a},\boldsymbol{\mu})=\frac{1}{2}\|\boldsymbol{w}\|^{2}+C\sum_{n=1}^{N}\xi_n-\sum_{n=1}^{N}a_n\{t_ny(\boldsymbol{x}_n)-1+\xi_n\}-\sum_{n=1}^{N}\mu_n\xi_n\tag{7.9}

其中 { a n 0 } \{a_n \ge 0\} { μ n 0 } \{\mu_n \ge 0\} 是拉格朗⽇乘數。對應的 KKT 條件爲

a n 0 t n y ( x n ) 1 + ξ n 0 a n ( t n y ( x n ) 1 + ξ n ) = 0 μ n 0 ξ n 0 μ n ξ n = 0 a_n\ge0\\ t_ny(\boldsymbol{x}_n)-1+\xi_n\ge0\\ a_n(t_ny(\boldsymbol{x}_n)-1+\xi_n)=0\\ \mu_n\ge0\\ \xi_n\ge0\\ \mu_n\xi_n=0

其中 n = 1 , , N n = 1,\dots, N

現在對 w \boldsymbol{w} , b b { ξ n } \{\xi_n\} 進⾏最優化,有
L w = 0 w = n = 1 N a n t n ϕ ( x n ) L b = 0 n = 1 N a n t n = 0 L ξ n = 0 a n = C μ n (7.10) \frac{\partial{L}}{\partial\boldsymbol{w}}=0\Rightarrow\boldsymbol{w}=\sum_{n=1}^{N}a_nt_n\boldsymbol{\phi}(\boldsymbol{x}_n)\\ \frac{\partial{L}}{\partial{b}}=0\Rightarrow\sum_{n=1}^{N}a_nt_n=0\\ \frac{\partial{L}}{\partial{\xi_n}}=0\Rightarrow{a_n}=C-\mu_n\tag{7.10}

從而,

L ~ ( a ) = n = 1 N a n 1 2 n = 1 N m = 1 N a n a m t n t m k ( x n , x m ) (7.11) \tilde{L}(\boldsymbol{a})=\sum_{n=1}^{N}a_n-\frac{1}{2}\sum_{n=1}^{N}\sum_{m=1}^{N}a_na_mt_nt_mk(\boldsymbol{x}_n,\boldsymbol{x}_m)\tag{7.11}

關於對偶變量 { a n } \{a_n\} 最⼤化公式(7.11)時必須要滿⾜以下限制

0 a n C n = 1 N a n t n = 0 0\le{a_n}\le{C}\\ \sum_{n=1}^{N}a_nt_n=0

其中 n = 1 , , N n = 1,\dots, N 。 第一個公式被稱爲盒限制box constraint)。

對於數據點的⼀個⼦集,有 a n = 0 a_n = 0 ,在這種情況下這些數據點對於預測模型沒有貢獻;剩餘的數據點組成了⽀持向量。這些數據點滿⾜ a n > 0 a_n > 0 ,必須滿⾜
t n y ( x n ) = 1 ξ n m k(xn,xm)(7.11)

關於對偶變量 { a n } \{a_n\} 最⼤化公式(7.11)時必須要滿⾜以下限制

0 a n C n = 1 N a n t n = 0 0\le{a_n}\le{C}\\ \sum_{n=1}^{N}a_nt_n=0

其中 n = 1 , , N n = 1,\dots, N 。 第一個公式被稱爲盒限制box constraint)。

對於數據點的⼀個⼦集,有 a n = 0 a_n = 0 ,在這種情況下這些數據點對於預測模型沒有貢獻;剩餘的數據點組成了⽀持向量。這些數據點滿⾜ a n > 0 a_n > 0 ,必須滿⾜
t n y ( x n ) = 1 ξ n (7.12) t_ny(\boldsymbol{x}_n)=1-\xi_n\tag{7.12}

相關文章
相關標籤/搜索