线性支持向量机(SVM)与软间隔最大化

之前的文章:线性可分硬间隔支持向量机
链接: 线性可分硬间隔支持向量机中所介绍的方法对于线性不可分的数据集并不适用,因为在求解凸二次规划问题时不能保证所有的约束条件都得到满足。
假设样本数据集是线性不可分的,训练数据中存在一些奇异点,将这些奇异点去除之后,剩余的大部分样本是线性可分的。
为了解决这个问题,对每一个样本点 ( x i , y i ) (x_i,y_i) 引入一个松弛变量 ξ i 0 \xi_i\geqslant0 ,使函数间隔加上松弛变量大于等于1.这样,约束条件就变为了
y i ( w x i + b ) 1 ξ i y_i(w\cdot x_i+b)\geqslant1-\xi_i
同时,对于每一个松弛变量 ξ i \xi_i 都支付一个代价 ξ i \xi_i ,于是,目标函数就变为了
1 2 w 2 + C i = 1 N ξ i \frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i
其中, C > 0 C>0 为惩罚系数。
于是,线性不可分的线性支持向量机的学习问题变味了如下的凸二次规划问题(原始问题):
min w , b , ξ 1 2 w 2 + C i = 1 N ξ i \min_{w,b,\xi}\frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i
s.t.
y i ( w x i + b ) 1 = ξ i , i = 1 , 2 , , N y_i(w\cdot x_i+b)\geqslant1=\xi_i, i=1,2,\cdots,N
ξ i 0 , i = 1 , 2 , , N \xi_i\geqslant0,i=1,2,\cdots,N
可以证明, w w\, 的解是唯一的,但是 b \,b\, 的解可能不唯一,而是存在一个区间。
设上述问题的解为 w w^* b b^* ,则可以得到分离超平面 w x + b = 0 w^*\cdot x+b=0 以及分类决策函数 f ( x ) = s i g n ( w x + b ) f(x)=sign(w^*\cdot x+b^*) ,并且把这样的模型称为线性支持向量机。
下面进行求解
写出上述目标函数的拉格朗日函数
L ( w , b , ξ , α , μ ) = 1 2 w 2 + C i = 1 N ξ i i = 1 N α i ( y i ( w x i + b ) 1 + ξ i ) i = 1 N μ i ξ i L(w,b,\xi,\alpha,\mu)=\frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i-\sum_{i=1}^N\alpha_i(y_i(w\cdot x_i+b)-1+\xi_i)-\sum_{i=1}^N\mu_i\xi_i
其中, α i 0 , μ i 0 \alpha_i\geqslant0,\mu_i\geqslant0
对偶问题为极大极小,首先求极小 min w , b , ξ L ( w , b , ξ , α , μ ) \min_{w,b,\xi}L(w,b,\xi,\alpha,\mu)
分别求 w , b , ξ w,b,\xi 的梯度得到:
w = i = 1 N α i y i x i w = \sum_{i=1}^Nα_iy_ix_i
i = 1 N α i y i = 0 \sum_{i=1}^Nα_iy_i=0
C α i μ i = 0 C-\alpha_i-\mu_i=0
带入之前的问题,可得到最终需要求解的问题
min α 1 2 i = 1 N j = 1 N α i α j y i y j ( x i x j ) i = 1 N α i \min_{\alpha}\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\sum_{i=1}^N\alpha_i
s.t.
i = 1 N α i y i = 0 \sum_{i=1}^N\alpha_iy_i = 0
0 α i C , i = 1 , 2 , , N 0\leqslant\alpha_i\leqslant C,i=1,2,\cdots,N
相比线性可分的模型,改变了约束条件。
α = ( α 1 , α 2 , , α N ) \alpha^*=(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*) 为对偶问题的一个解,若存在 α \alpha^* 的一个分量 α j \alpha^*_j 0 < α j < C 0<\alpha^*_j<C ,则原始问题的解 w , b w^*,b^* 可按下式求得
w = i = 1 N α i y i x i w^*=\sum_{i=1}^N\alpha_i^*y_ix_i
b = y i i = 1 N y i α i ( x i x j ) b^*=y_i-\sum_{i=1}^Ny_i\alpha_i^*(x_i\cdot x_j)
由此可求出:
i = 1 N α i y i ( x x i ) + b = 0 \sum_{i=1}^N\alpha_i^*y_i(x\cdot x_i)+b^*=0
分类决策函数为
f ( x ) = s i g n ( i = 1 N α i y i ( x x i ) + b ) f(x)=sign(\sum_{i=1}^N\alpha_i^*y_i(x\cdot x_i)+b^*)

发布了7 篇原创文章 · 获赞 7 · 访问量 4033

猜你喜欢

转载自blog.csdn.net/qq_39320588/article/details/104109984
今日推荐