【机器学习基础】最大边缘分类器

本系列为《模式识别与机器学习》的读书笔记。

一,最大边缘分类器

考察线性模型的⼆分类问题,线性模型的形式为

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}

相关文章
相关标签/搜索