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

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

一,最大边缘分类器

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

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

其中 ϕ ( x ) \boldsymbol{\phi}(\boldsymbol{x}) ϕ(x) 表⽰⼀个固定的特征空间变换,并且显式地写出了偏置参数 b b b 。训练数据集由 N N N 个输⼊向量 x 1 , … , x N \boldsymbol{x}_1,\dots,\boldsymbol{x}_N x1,,xN 组成,对应的⽬标值为 t 1 , … , t N t_1,\dots,t_N t1,,tN ,其中 t n ∈ { − 1 , 1 } t_n\in\{−1, 1\} tn{ 1,1} , 新的数据点 x \boldsymbol{x} x 根据 y ( x ) y(\boldsymbol{x}) y(x) 的符号进⾏分类。

现阶段,假设训练数据集在特征空间中是线性可分的,即根据定义,存在⾄少⼀个参数 w \boldsymbol{w} w b b b 的选择⽅式,使得对于 t n = + 1 t_n = +1 tn=+1 的点,函数(7.1)都满⾜ y ( x n ) > 0 y(\boldsymbol{x}_n)>0 y(xn)>0 ,对于 t n = − 1 t_n = −1 tn=1 的点,都有 y ( x n ) < 0 y(\boldsymbol{x}_n)<0 y(xn)<0 ,从⽽对于所有训练数据点,都有 t n y ( x n ) > 0 t_ny(\boldsymbol{x}_n)>0 tny(xn)>0

如果有多个能够精确分类训练数据点的解,那么应该尝试寻找泛化错误最⼩的那个解。 ⽀持向量机解决这个问题的⽅法是:引⼊边缘(margin 的概念,这个概念被定义为决策边界与任意样本之间的最⼩距离,如图7.1所⽰。
边缘
如图7.2,最⼤化边缘会⽣成对决策边界的⼀个特定的选择,这个决策边界的位置由数据点的⼀个⼦集确定,被称为⽀持向量,⽤圆圈表⽰。
⽀持向量
在⽀持向量机中,决策边界被选为使边缘最⼤化的那个决策边界。

x \boldsymbol{x} x 距离由 y ( x ) = 0 y(\boldsymbol{x})=0 y(x)=0 定义的超平⾯的垂直距离为 ∣ y ( x ) ∣ ∥ w ∥ \frac{|y(\boldsymbol{x})|}{\|\boldsymbol{w}\|} wy(x) ,其中 y ( x ) y(\boldsymbol{x}) y(x) 的函数形式由公式(7.1)给出,我们感兴趣的是那些能够正确分类所有数据点的解,即对于所有的 n n n 都有 t n y ( x n ) > 0 t_ny(\boldsymbol{x}_n)>0 tny(xn)>0 ,因此点 x n \boldsymbol{x}_n xn 距离决策⾯的距离为
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} wtny(xn)=wtn(wTϕ(xn)+b)(7.2)

边缘由数据集⾥垂直距离最近的点 x n \boldsymbol{x}_n xn 给出,希望最优化参数 w \boldsymbol{w} w b 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,bargmax{ w1nmin[tn(wTϕ(xn)+b)]}(7.3)

注意到如果进⾏重新标度 w → κ w \boldsymbol{w}\to\kappa\boldsymbol{w} wκw 以及 b → κ b b\to\kappa{b} bκb , 那么任意点 x n \boldsymbol{x}_n xn 距离决策⾯的距离 t n y ( x n ) ∥ w ∥ \frac{t_ny(\boldsymbol{x}_n)}{\|\boldsymbol{w}\|} wtny(xn) 不会发⽣改变。利用这个性质,对于距离决策⾯最近的点,令

t n ( w T ϕ ( x n ) + b ) = 1 t_n(\boldsymbol{w}^{T}\boldsymbol{\phi}(\boldsymbol{x}_n)+b)=1 tn(wTϕ(xn)+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 tn(wTϕ(xn)+b)1,n=1,N

这被称为决策超平⾯的标准表⽰。 对于使上式取得等号的数据点,我们说限制被激活active),对于其他的数据点,我们说限制未激活inactive)。根据定义,总会存在⾄少⼀个激活限制,因为总会有⼀个距离最近的点,并且⼀旦边缘被最⼤化,会有⾄少两个激活的限制。这样,最优化问题就简化为了最⼤化 ∥ w ∥ − 1 \|\boldsymbol{w}\|^{-1} w1 ,这等价于最⼩化 ∥ w ∥ 2 \|\boldsymbol{w}\|^2 w2 ,因此我们要在上述限制条件下,求解最优化问题

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

为了解决这个限制的最优化问题,引⼊拉格朗⽇乘数 a n ≥ 0 a_n\ge0 an0 。每个限制条件都对应着⼀个乘数 a n a_n an ,从⽽可得下⾯的拉格朗⽇函数

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} L(w,b,a)=21w2n=1Nan{ tn(wTϕ(xn)+b)1}(7.4)

其中 a = ( a 1 , … , a N ) T \boldsymbol{a} = (a_1,\dots,a_N)^{T} a=(a1,,aN)T 。令 L ( w , b , a ) L(\boldsymbol{w},b,\boldsymbol{a}) L(w,b,a) 关于 w \boldsymbol{w} w b 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 w=n=1Nantnϕ)(xn)n=1Nantn=0

使⽤这两个条件从 L ( w , b , a ) L(\boldsymbol{w},b,\boldsymbol{a}) L(w,b,a) 中消去 a \boldsymbol{a} a b b b ,就得到了最⼤化边缘问题的对偶表⽰(dual representation),其中要关于 a \boldsymbol{a} 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} L~(a)=n=1Nan21n=1Nm=1Nanamtntmk(xn,xm)(7.5)

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

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 an0,n=1,Nn=1Nantn=0

通过使⽤公式消去 w \boldsymbol{w} w y ( x ) y(\boldsymbol{x}) y(x) 可以根据参数 { a n } \{a_n\} { an} 和核函数表⽰,即

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} y(x)=n=1Nantnk(x,xn)+b(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 an0tny(xn)10an{ tny(xn)1}=0

因此对于每个数据点,要么 a n = 0 a_n = 0 an=0 ,要么 t n y ( x n ) = 1 t_n y(\boldsymbol{x}_n) = 1 tny(xn)=1 。任何使得 a n = 0 a_n = 0 an=0 的数据点都不会出现在公式(7.5)的求和式中,因此对新数据点的预测没有作⽤。剩下的数据点被称为⽀持向量support vector)。

解决了⼆次规划问题,找到了 a \boldsymbol{a} a 的值之后,注意到⽀持向量 x n \boldsymbol{x}_n xn 满⾜ t n y ( x n ) = 1 t_ny(\boldsymbol{x}_n)=1 tny(xn)=1,就可以确定阈值参数 b 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} tn(mSa

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值