SVM(一):线性支持向量机

1.1 问题定义

(1) 划分超平面

二维样本空间中,划分平面可以表示为: w 1 x 1 + w 2 x 2 + b = 0 w_1x_1+w_2x_2+b=0

在高维样本空间中,划分超平面定义如下: w T x + b = 0 \boldsymbol w^T \boldsymbol x + b = 0
其中, w = ( w 1 , w 2 , . . . , w d ) \boldsymbol w = (w_1,w_2,...,w_d) 为法向量,决定了超平面的方向; b b 为位移,决定了超平面与原点之间的距离。

设空间中任一点 x \boldsymbol x 在超平面的投影为 x \boldsymbol x' ,则 x = x + λ w \boldsymbol x= \boldsymbol x′+ \lambda \boldsymbol w

w T x + b = w T ( x + λ w ) + b = w T x + b + λ w w T = λ w T w \boldsymbol w^T \boldsymbol x +b = \boldsymbol w^T (\boldsymbol x'+\lambda w) + b = \boldsymbol w^T \boldsymbol x' +b + \lambda \boldsymbol w \boldsymbol w^T = \lambda \boldsymbol w^T \boldsymbol w
在这里插入图片描述

(2) 点到超平面的距离

样本空间中任意点 x \boldsymbol x 到超平面的距离为
γ = x x = λ w = λ w 2 w = w T x + b w \begin{aligned} \gamma & = ||\boldsymbol x - \boldsymbol x'|| \\ & = ||\lambda \boldsymbol w|| \\ & = \frac {\lambda {||\boldsymbol w||}^2}{||\boldsymbol w||} \\ & = \frac{|\boldsymbol w^{T} \boldsymbol x+b|}{|| \boldsymbol w||} \end{aligned}

其中, w = i = 1 n w i 2 \left| \left| \boldsymbol w \right| \right|=\sqrt{\sum_{i=1}^{n}{w_{i}^{2}}} w w 的L2范数。

(3)支持向量、间隔

假设超平面能将训练样本正确分类,即对于 ( x i , y i ) D (\boldsymbol x_i,y_i) \in D
{ w T x i + b > 0 , y i = + 1 w T x i + b < 0 , y i = 1 \begin{cases} \boldsymbol w^T \boldsymbol x_i + b > 0, y_i=+1 & \\ \boldsymbol w^T \boldsymbol x_i + b < 0, y_i=-1 & \end{cases}

y i ( w T x i + b ) > 0      r > 0 , s . t . min y i ( w T x i + b ) = r \begin{aligned} & \Leftrightarrow y_i(\boldsymbol w^T \boldsymbol x_i + b)>0 \;\; \\ & \Leftrightarrow \exists r>0, s.t. \min y_i(\boldsymbol w^T \boldsymbol x_i + b)=r \end{aligned}

由于 w b \boldsymbol w 与 b 可任意缩放,令 r = 1 r=1
y i ( w T x i + b ) 1 { w T x i + b + 1 , y i = + 1 w T x i + b 1 , y i = 1 \begin{aligned} & \Leftrightarrow y_i(\boldsymbol w^T \boldsymbol x_i + b) \geq 1 \\ & \\ & \Leftrightarrow \begin{cases} \boldsymbol w^T \boldsymbol x_i + b \geq +1, y_i=+1 & \\ \boldsymbol w^T \boldsymbol x_i + b \leq -1, y_i=-1 & \end{cases} \end{aligned}

如下图所示,距离超平面最近的训练样本点是得上式等号成立,称为支持向量(Support vector)

支持向量到超平面的距离之和为 γ = 2 w \gamma = \frac{2}{|| \boldsymbol w||} ,称为间隔(margin)
在这里插入图片描述

(4)最优超平面

能将两类样本划分的超平面有无数多个,具有最大分类间隔的超平面,称为最优超平面
为找到具有最大间隔的划分超平面,需要 max w , b      1 w      s . t .      y i ( w T x i + b ) 1 ( i = 1 , 2 , . . . m ) \max_{\boldsymbol w,b} \;\; \frac{1}{||\boldsymbol w||} \;\; s.t. \;\; y_i(\boldsymbol w^T \boldsymbol x_i + b) \geq 1 (i =1,2,...m)

min w , b      1 2 w 2      s . t .      y i ( w T x i + b ) 1 ( i = 1 , 2 , . . . m ) \min_{\boldsymbol w,b} \;\; \frac{1}{2}||\boldsymbol w||^2 \;\; s.t. \;\; y_i(\boldsymbol w^T \boldsymbol x_i + b) \geq 1 (i =1,2,...m)

1.2 对偶问题

目标函数 1 2 w 2 2 \frac {1}{2}||\boldsymbol w||_2^2 是凸函数,同时约束条件不等式是仿射的,是一个凸二次规划(convex quadratic programming)问题,可以用优化计算包求解(适用于维度较低的情况)。

另一种更高效的办法是,通过拉格朗日函数(对每条约束添加拉格朗日乘子 α i 0 \alpha_i \geq 0 )将的优化目标转化为无约束的优化函数: L ( w , b , α ) = 1 2 w 2 + i = 1 m α i [ 1 y i ( w T x i + b ) ] (1) L(\boldsymbol w,b,\boldsymbol \alpha) = \frac{1}{2}||\boldsymbol w||^2 + \sum\limits_{i=1}^{m}\alpha_i [ 1 - y_i(\boldsymbol w^T \boldsymbol x_i + b)] \tag {1} 其中 α = ( α 1 , α 2 , . . . , α m ) \boldsymbol \alpha = (\alpha_1,\alpha_2,...,\alpha_m)

由于引入了朗格朗日乘子,优化目标变成: min w , b    max α i 0 L ( w , b , α ) (2) \min_{\boldsymbol w,b}\; \max_{\alpha_i \geq 0} L(\boldsymbol w,b,\boldsymbol \alpha) \tag {2}

该优化函数满足满足KTT条件,即
{ α i 0 1 y i f ( x i ) 0 α i ( y i f ( x i ) 1 ) = 0        f ( x i ) = w T x i + b (3) \begin{cases} \alpha_i \geq 0 \\ \\ 1-y_if(\boldsymbol x_i) \leq 0 \\ \\ \alpha_i(y_if(\boldsymbol x_i)-1)=0 \end{cases} \;\;\; f(\boldsymbol x_i) = \boldsymbol w^T \boldsymbol x_i + b \tag {3}

对于任意训练样本 ( x i , y i ) (\boldsymbol x_i,y_i) ,必有 α i = 0 \alpha_i=0 y i f ( x i ) = 1 y_if(\boldsymbol x_i)=1
α i = 0 \alpha_i=0 ,则该样本不会在求和式中出现,也就不会对 f ( x ) f(\boldsymbol x) 有任何影响;
α i > 0 \alpha_i>0 ,则必有 y i f ( x i ) = 1 y_if(\boldsymbol x_i)=1 ,该样本点在最大间隔边界上,是一个支持向量。

这显示出支持向量基的一个重要性质:最终模型仅与支持向量有关

因此,根据拉格朗日对偶条件,原问题的对偶问题如下:

max α i 0    min w , b    L ( w , b , α ) (4) \max_{\alpha_i \geq 0} \;\min_{\boldsymbol w,b}\; L(\boldsymbol w,b,\boldsymbol \alpha) \tag {4}

极大极小问题:先求优化函数对于 w w b b 的极小值,再求拉格朗日乘子 α \alpha 的极大值

L ( w , b , α ) L(\boldsymbol w,b,\boldsymbol \alpha) 关于 w \boldsymbol w b b 极小值可以通过对 w \boldsymbol w b b 分别求偏导得到:
L w = 0    w = i = 1 m α i y i x i (5) \frac{\partial L}{\partial \boldsymbol w} = 0 \;\Rightarrow \boldsymbol w = \sum\limits_{i=1}^{m}\alpha_iy_i \boldsymbol x_i \tag {5} L b = 0    i = 1 m α i y i = 0 (6) \frac{\partial L}{\partial b} = 0 \;\Rightarrow \sum\limits_{i=1}^{m}\alpha_iy_i = 0 \tag {6} w w 的值代入 L ( w , b , α ) L(\boldsymbol w,b,\boldsymbol \alpha)

min w , b    L ( w , b , α ) = i = 1 m α i 1 2 i = 1 m j = 1 m α i α j y i y j x i T x j s . t .    i = 1 m α i y i = 0 , α i 0 ,    i = 1 , 2 , . . . m (7) \begin{aligned}\min_{w,b}\; L(\boldsymbol w,b,\boldsymbol \alpha) & = \sum\limits_{i=1}^{m}\alpha_i - \frac{1}{2}\sum\limits_{i=1}^{m}\sum\limits_{j=1}^{m}\alpha_i\alpha_jy_iy_j\boldsymbol x_i^T \boldsymbol x_j \\ s.t. \; & \sum\limits_{i=1}^{m}\alpha_iy_i = 0, \\ & \alpha_i \geq 0, \; i=1,2,...m \end{aligned} \tag {7}

原问题最终转换为如下形式的对偶问题:
max α i 0      i = 1 m α i 1 2 i = 1 m j = 1 m α i α j y i y j x i T x j (8) \max_{\alpha_i \geq 0} \;\; \sum\limits_{i=1}^{m}\alpha_i - \frac{1}{2}\sum\limits_{i=1}^{m}\sum\limits_{j=1}^{m}\alpha_i\alpha_jy_iy_j\boldsymbol x_i^T \boldsymbol x_j \tag {8} s . t .    i = 1 m α i y i = 0 , α i 0 ,    i = 1 , 2 , . . . m s.t. \begin{aligned} \\ & \; \sum\limits_{i=1}^{m}\alpha_iy_i = 0, \\ & \alpha_i \geq 0, \; i=1,2,...m \end{aligned} 此时,优化函数仅有 α \boldsymbol \alpha 做为参数,可采用SMO(Sequential Minimal Optimization)求解。

1.3 问题求解

SMO算法则采用了一种启发式的方法,它每次只优化两个变量,将其他的变量都视为常数,将复杂的优化算法转化为一个简单的两变量优化问题.

由于 i = 1 m α i y i = 0 \sum\limits_{i=1}^{m}\alpha_iy_i = 0 .假如将 α 3 , α 4 , . . . , α m \alpha_3, \alpha_4, ..., \alpha_m 固定,那么 α 1 , α 2 \alpha_1, \alpha_2 之间的关系也确定了。初始化参数后,SMO不断执行以下两个步骤直至收敛:

  • 选取一对需更新的变量 α i \alpha_i α j \alpha_j
  • 固定 α i \alpha_i α j \alpha_j 以外的参数,求解获得更新后的 α i \alpha_i α j \alpha_j

解出最优化对应的 α \boldsymbol \alpha 的值 α \boldsymbol \alpha^* 后,可求出 w = i = 1 m α i y i x i w^{*} = \sum\limits_{i=1}^{m}\alpha_i^{*}y_i \boldsymbol x_i

对于任意支持向量 ( x s , y s ) (\boldsymbol x_s,y_s) 都有 y s f ( x s ) = 1 y_sf(\boldsymbol x_s)=1 ,即 y s ( i S α i y i x i T x s + b ) = 1 y_s(\sum\limits_{i \in S}\alpha_iy_i \boldsymbol x_i^T \boldsymbol x_s+b) = 1

S S 为所有支持向量的集合,即满足 α s > 0 \alpha_s > 0 对应的样本 ( x s , y s ) (\boldsymbol x_s,y_s) ,理论上可任意选取支持向量通过上式,求得 b b

一般采取一种更为鲁棒的方法,即计算出每个支持向量 ( x s , y s ) (\boldsymbol x_s, y_s) 对应的 b s b_s^{*} ,对其求平均值得到

b = 1 S i = 1 S ( 1 y s i S α i y i x i T x s ) b^{*} = \frac{1}{S}\sum\limits_{i=1}^{S}(\frac{1}{y_s} - \sum\limits_{i \in S}\alpha_iy_i\boldsymbol x_i^T \boldsymbol x_s)

最终得到分类超平面 w T x + b = 0 \boldsymbol w^{* T} \boldsymbol x + b^{*} = 0 ,分类决策函数为 f ( x ) = s i g n ( w T x + b ) f(\boldsymbol x) = sign(\boldsymbol w^{* T} \boldsymbol x + b^{*})

发布了14 篇原创文章 · 获赞 17 · 访问量 798

猜你喜欢

转载自blog.csdn.net/apr15/article/details/104763998