SVM支持向量机系列理论(四) 软间隔支持向量机

4.1 软间隔SVM的经典问题

对于线性可分的数据集,可以使用线性可分支持向量机的方法,找出最优间隔的分离超平面。线性可分支持向量机的经典问题为:

m i n   w , b     1 2 | | w | | 2

                       
s . t .       y i ( w x i + b ) 1 ;         ( i = 1 , . . . , N )                  

但是,在实际应用中,我们数据集因为存在一些数据点使得数据集不是完全线性可分的。因此,引入了软间隔的SVM支持向量机

m i n   w , b , e     1 2 | | w | | 2 + C i = 1 N ξ i

                       
s . t .       y i ( w x i + b ) 1 ξ i ;

                                              ξ i 0 ; ( i = 1 , . . . , N )                           ( 1 )

  • 首先

在硬间隔的SVM中,我们加的约束是       y i ( w x i + b ) 1 ,其中 1 表示的是margin的位置.

现在       y i ( w x i + b ) 1 ξ i 表示现在的函数距离现在只需要大于等于 1 ξ i 就可以了。其中 ξ i 表示 i 样本偏离margin的距离。对于没有violation的样本, ξ i = 0 ,我们把 ξ i 称为 松弛变量

用下图来解释比较清楚:

这里写图片描述

图中有一个violate的点,它到 1 (也就是margin)的距离可以记为 ξ i ,这个距离可以代表violate margin的程度。软间隔SVM为了容忍这个点,只需把约束条件中改为 1 ξ i ,而不是限制在 1 处。


  • 然后

ξ i 代表violate margin的程度,我们希望 ξ i 越小越好,因此在目标函数中,我们希望最小化 i = 1 N ξ i

  • 最后
    • 参数 C 代表了追求最大 margin 和 margin violation的一个tradeoff。
    • 当 C 设置比较大时,代表我追求违反margin的情形越少越好,边界瘦一点没关系(理解:dual 问题中, 0 < a < c ,当C为无穷大,等价于硬间隔)

4.2 软间隔SVM的对偶问题

4.2.1 软间隔SVM的对偶问题学习算法

(1) 选择惩罚参数 C > 0 , 构造对偶问题并求解关于 α 的 最优解 α = ( α 1 ,   . . . ,   α N )

软间隔SVM的对偶问题,仅仅是在约束条件上,对拉格朗日系数 α i 添加了一个上限,也就是调和系数 C,soft- margin- dual 问题可以表示为:

m i n α         1 2 j = 1 N α i α j y i y j ( x i x j ) i = 1 N α i

                       
s . t .         i = 1 N α i y i = 0

                        0 α i C , i = 1 , 2 , . . . , N                   ( 2 )

(2) 计算 w , b ,与硬间隔时的公式也完全一样.

其中, w 是输入 x 的线性组合:

w = i = 1 N   α i y i   x i

算好 w 后,从 α = ( α 1 ,   . . . ,   α N ) 中挑选一个 α j , 0 < α j < C ,并按下式求出 b .

b = y j i = 1 N α i y i ( x i x j )

因此,b的解并不是唯一的,实际上计算时,可以取说有符合条件的样本点上的平均值。


注:

证明过程其实与前面基本相同。先把soft-margin经典问题转为关于拉格朗日函数的无约束问题,则对偶问题是先对拉格朗日函数 L ( w , b , ξ , α , β ) 的极大极小化问题。

这里的拉格朗日函数是:

L ( w , b , ξ , α , β ) = 1 2 | | w | | 2 + C i = 1 N ξ i + i = 1 N α i g i ( x ) i = 1 N β i ξ i

                                    = 1 2 | | w | | 2 + C i = 1 N ξ i + i = 1 N α i ( 1 ξ i y i ( w x i + b ) ) i = 1 N β i ξ i         ( 3 )

比较重要的KKT条件

  • 这里 L ξ 求偏导并令其为0会得到: C α i β i = 0 ,这一结果代入(3)后将带有 ξ 的项全部去除,因此,目标函数变为和硬间隔时的一样。
  • w , b 的获取用到了互补松弛条件
    • α i ( y i ( w x i + b ) 1 + ξ i ) = 0
    • β i ξ i = 0 ( C α i β i )

4.3 软间隔SVM的支持向量

软间隔的支持向量 x i 存在四种类型的点:

  • 在间隔边界上: 0 < α i < C , 此时必有 ξ i = 0 (互补松弛条件 β i ξ i = 0 )
  • 在margin和超平面之间: α i = C , 0 < ξ i < 1
  • 在超平面上: α i = C , 0 < ξ i = 1
  • 在超平面误分类一侧: α i = C , ξ i > 1

理解: ξ i 表示偏离边界的多少


4.4 实用的工具

  • 对于线性的软间隔SVM:LIBLINER
  • 非线性:LIBSVM

猜你喜欢

转载自blog.csdn.net/promisejia/article/details/81391434