统计学习方法(机器学习)——7.2、支持向量机(线性支持向量机与软间隔最大化)

支持向量机SVM

接上文:线性可分支持向量机与硬间隔最大化

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

线性SVM

        线性可分问题SVM学习方法,对线性不可分训练数据是不适用的,因为此时上文中的不等式约束并不能都成立。需要修改硬间隔最大化,使其成为软间隔最大化
        假设给定一个特征空间上的的训练数据集
T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1, y_1),(x_2,y_2),...,(x_N,y_N)\} T={(x1,y1),(x2,y2),...,(xN,yN)}
再假设训练数据集不是线性可分的。通常情况是,训练数据中有一些特异点(噪声点),将这些点除去后,剩下的大部分样本点组成的集合是线性可分的。
        线性不可分意味着某些样本点 ( x i , y i ) (x_i,y_i) (xi,yi)不能满足函数间隔大于等于1的约束条件,即上文中的式(14)。为了解决这个问题,可以对每个样本点 ( x i , y i ) (x_i,y_i) (xi,yi)引入一个松弛变量 ξ ≥ 0 \xi \geq 0 ξ0,使得函数间隔加上松弛变量大于等于1。这样,约束条件变为:
s . t .          y i ( w ⋅ x i + b ) ≥ 1 − ξ i s.t. \;\;\;\; y_i(w·x_i+b) \geq 1-\xi_i s.t.yi(wxi+b)1ξi
同时,对每个松弛变量 ξ i \xi_i ξi,支付一个代价 ξ i \xi_i ξi。目标函数由原来的 1 2 ∣ ∣ w ∣ ∣ 2 \frac12||w||^2 21w2变成
1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i (1) \frac12||w||^2 + C\sum_{i=1}^N\xi_i \tag {1} 21w2+Ci=1Nξi(1)
这里, C > 0 C>0 C>0称为惩罚参数,一般由应用问题决定。 C C C值大的时候对误分类的惩罚增大, C C C值小的时候对误分类的惩罚减小。最小化目标函数(1)包含两层含义:

  • 使 1 2 ∣ ∣ w ∣ ∣ 2 \frac12||w||^2 21w2尽量小即间隔尽量大
  • 同时使误分类点的个数尽量小

C是调和二者的系数。

        线性不可分的SVM学习问题变成如下凸二次规划问题(原始问题):
min ⁡ w , b , ξ          1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i (2) \min_{w,b,\xi}\;\;\;\;\frac12||w||^2 + C\sum_{i=1}^N\xi_i \tag 2 w,b,ξmin21w2+Ci=1Nξi(2)
s . t .          y i ( w ⋅ x i + b ) ≥ 1 − ξ i ,        i = 1 , 2 , . . . , N (3) s.t. \;\;\;\; y_i(w·x_i+b) \geq 1-\xi_i,\;\;\;i=1,2,...,N \tag{3} s.t.yi(wxi+b)1ξi,i=1,2,...,N(3)
                 ξ i ≥ 0 ,        i = 1 , 2 , . . . , N (4) \;\;\;\;\;\;\;\; \xi_i \geq 0,\;\;\;i=1,2,...,N \tag{4} ξi0,i=1,2,...,N(4)
        如果求出来约束最优化问题(2)~(4)的解 w ∗ , b ∗ w^*,b^* w,b,就可以得到最大间隔分离超平面 w ∗ ⋅ x + b ∗ = 0 w^*·x+b^*=0 wx+b=0及分类决策函数 f ( x ) = s i g n ( w ∗ ⋅ x + b ∗ ) f(x)=sign(w^*·x+b^*) f(x)=sign(wx+b),即训练样本线性不可分时的线性SVM。 显然,线性SVM是包含线性可分SVM的。

定义 线性SVM
        对于给定线性不可分训练数据集,通过求解凸二次规划问题,即软间隔最大化问题(2)~(4),得到的分离超平面为:
w ∗ ⋅ x + b ∗ = 0 (5) w^*·x+b^*=0 \tag5 wx+b=0(5)
以及相应的分类决策函数
f ( x ) = s i g n ( w ∗ ⋅ x + b ∗ ) (6) f(x)=sign(w^*·x+b^*) \tag6 f(x)=sign(wx+b)(6)
称为线性SVM。


学习的对偶算法

        原始问题(2)~(4)的对偶问题是
min ⁡ α        1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i (7) \min_{\alpha} \;\;\; \frac12\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i·x_j)-\sum_{i=1}^N\alpha_i\tag {7} αmin21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi(7)
s . t .          ∑ i = 1 N α i y i = 0 (8) s.t. \;\;\;\;\sum_{i=1}^N\alpha_iy_i=0 \tag{8} s.t.i=1Nαiyi=0(8)
0 ≤ α i ≤ C ,        i = 1 , 2 , . . . , N (9) 0 \leq\alpha_i\leq C,\;\;\;i=1,2,...,N \tag{9} 0αiC,i=1,2,...,N(9)
        通过求解对偶问题而得到原始问题的解,进而确定分离超平面和决策函数。


定理
        设 α ∗ = ( α 1 ∗ , α 2 ∗ , . . . , α N ∗ ) T \alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*)^T α=(α1,α2,...,αN)T是对偶最优化问题(7)~(9)对 α \alpha α 的解,则存在下标 j j j,使得 0 < α j ∗ < C 0<\alpha_j^*<C 0<αj<C,并可按下式求得原始最优化问题(2)~(4)的解 w ∗ , b ∗ w^*,b^* w,b:
w ∗ = ∑ i = 1 N α i ∗ y i x i (10) w^* = \sum_{i=1}^N\alpha_i^*y_ix_i \tag{10} w=i=1Nαiyixi(10)
b ∗ = y j − ∑ i = 1 N α i ∗ y i ( x i ⋅ x j ) (11) b^* = y_j-\sum_{i=1}^N\alpha_i^*y_i(x_i·x_j) \tag{11} b=yji=1Nαiyi(xixj)(11)

        由定理可知,分离超平面可以写成
∑ i = 1 N α i ∗ y i ( x ⋅ x i ) + b ∗ = 0 (12) \sum_{i=1}^N\alpha_i^*y_i(x·x_i)+b^*=0 \tag{12} i=1Nαiyi(xxi)+b=0(12)
f ( x ) = s i g n ( ∑ i = 1 N α i ∗ y i ( x ⋅ x i ) + b ∗ ) (13) f(x)=sign \left(\sum_{i=1}^N\alpha_i^*y_i(x·x_i)+b^*\right) \tag{13} f(x)=sign(i=1Nαiyi(xxi)+b)(13)
式(24)称为线性SVM的对偶形式。


算法 线性可分SVM学习算法

输入:线性可分的训练集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y n = N ) ) } T=\{(x_1, y_1), (x_2, y_2), ..., (x_N, y_n=N))\} T={(x1,y1),(x2,y2),...,(xN,yn=N))},其中 X ∈ X = R n X\in \mathcal{X} =R^n XX=Rn y i ∈ Y = { + 1 , − 1 } ,      i = 1 , 2 , . . . , N y_i\in \mathcal{Y}=\{+1,-1\},\;\;i=1,2,...,N yiY={+1,1},i=1,2,...,N
输出:分离超平面和分类决策函数。

(1)选择惩罚参数 C > 0 C>0 C>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} \;\;\; \frac12\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i·x_j)-\sum_{i=1}^N\alpha_i αmin21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi
s . t .          ∑ i = 1 N α i y i = 0 s.t. \;\;\;\;\sum_{i=1}^N\alpha_iy_i=0 s.t.i=1Nαiyi=0
0 ≤ α i ≤ C ,        i = 1 , 2 , . . . , N 0 \leq\alpha_i\leq C,\;\;\;i=1,2,...,N 0αiC,i=1,2,...,N
求得最优解 α ∗ = ( α 1 ∗ , α 2 ∗ , . . . , α N ∗ ) T \alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*)^T α=(α1,α2,...,αN)T

(2)计算
w ∗ = ∑ i = 1 N α i ∗ y i x i w^* = \sum_{i=1}^N\alpha_i^*y_ix_i w=i=1Nαiyixi
并选择 α ∗ \alpha^* α的一个正分量 0 < α j ∗ < C 0<\alpha_j^*<C 0<αj<C,计算
b ∗ = y j − ∑ i = 1 N α i ∗ y i ( x i ⋅ x j ) b^* = y_j-\sum_{i=1}^N\alpha_i^*y_i(x_i·x_j) b=yji=1Nαiyi(xixj)

(3)求得分离超平面
w ∗ ⋅ x + b ∗ = 0 w^*·x+b^*=0 wx+b=0
分类决策函数:
f ( x ) = s i g n ( w ∗ ⋅ x + b ∗ ) f(x)=sign(w^*·x+b^*) f(x)=sign(wx+b)

        由于原始问题对 b b b的解并不唯一,在实际计算时可以取在所有符合条件的样本点上的平均值。


支持向量

        在线性不可分的情况下,将对偶问题(7)~(9)的解 α ∗ = ( α 1 ∗ , α 2 ∗ , . . . , α N ∗ ) T \alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*)^T α=(α1,α2,...,αN)T中对应于 α i ∗ > 0 \alpha_i^*>0 αi>0的样本点 ( x i , y i ) (x_i,y_i) (xi,yi)的实例 x i x_i xi称为支持向量(软间隔的支持向量)。如下图所示:
在这里插入图片描述
        软间隔的支持向量 x i x_i xi或者在间隔边界上,或者在间隔边界与分离超平面之间,或者在分离超平面误分一侧。

  • α ∗ < C , 则 ξ i = 0 \alpha^*<C,则\xi_i=0 α<Cξi=0,支持向量 x i x_i xi恰好落在间隔边界上;
  • α ∗ = C , 0 < ξ i < 1 \alpha^*=C,0<\xi_i<1 α=C0<ξi<1,则分类正确,支持向量 x i x_i xi在间隔边界与分离超平面之间;
  • α ∗ = C , ξ i = 1 \alpha^*=C,\xi_i=1 α=Cξi=1,则支持向量 x i x_i xi在分离超平面上;
  • α ∗ = C , ξ i > 1 \alpha^*=C,\xi_i>1 α=Cξi>1,则支持向量 x i x_i xi位于分离超平面误分一侧。

合页损失函数

        线性SVM学习还有另外一种解释,就是最小化以下目标函数:
∑ i = 1 N [ 1 − y i ( w ⋅ x i + b ) ] + + λ ∣ ∣ w ∣ ∣ 2 (14) \sum_{i=1}^N \left[1-y_i(w·x_i+b)\right]_++\lambda||w||^2 \tag{14} i=1N[1yi(wxi+b)]++λw2(14)
目标函数的第1项是经验损失或经验风险,函数
L ( y ( w ⋅ x + b ) ) = [ 1 − y i ( w ⋅ x i + b ) ] + (15) L(y(w·x+b))=\left[1-y_i(w·x_i+b)\right]_+ \tag{15} L(y(wx+b))=[1yi(wxi+b)]+(15)
称为合页损失函数(hinge loss function)。下标“+”表示以下取正值的函数:
[ z ] + = { z z > 0 0 z ≤ 0 (16) [z]_+=\begin{cases} z & z>0 \\ 0 & z \leq 0 \end{cases} \tag{16} [z]+={z0z>0z0(16)
这就是说,当样本点 ( x i , y i ) (x_i,y_i) (xi,yi)被正确分类且函数间隔(确信度) y i ( w ⋅ x i + b ) y_i(w·x_i+b) yi(wxi+b)大于1时,损失是0,否则损失是 1 − y i ( w ⋅ x i + b ) 1-y_i(w·x_i+b) 1yi(wxi+b)。目标函数的第2项是系数为 λ \lambda λ w w w L 2 L_2 L2 范数,是正则化项。


定理
        线性SVM原始最优化问题:
min ⁡ w , b , ξ          1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i \min_{w,b,\xi}\;\;\;\;\frac12||w||^2 + C\sum_{i=1}^N\xi_i w,b,ξmin21w2+Ci=1Nξi
s . t .          y i ( w ⋅ x i + b ) ≥ 1 − ξ i ,        i = 1 , 2 , . . . , N s.t. \;\;\;\; y_i(w·x_i+b) \geq 1-\xi_i,\;\;\;i=1,2,...,N s.t.yi(wxi+b)1ξi,i=1,2,...,N
                 ξ i ≥ 0 ,        i = 1 , 2 , . . . , N \;\;\;\;\;\;\;\; \xi_i \geq 0,\;\;\;i=1,2,...,N ξi0,i=1,2,...,N
等价于最优化问题
min ⁡ w , b          ∑ i = 1 N [ 1 − y i ( w ⋅ x i + b ) ] + + λ ∣ ∣ w ∣ ∣ 2 \min_{w,b}\;\;\;\;\sum_{i=1}^N \left[1-y_i(w·x_i+b)\right]_++\lambda||w||^2 w,bmini=1N[1yi(wxi+b)]++λw2


        合页损失函数的图形如下所示,横轴是函数间隔 ( y ( w ⋅ x + b ) (y(w·x+b) (y(wx+b),纵轴是损失。由于函数形状像一个合页,所以称为合页损失函数。
        图中还画出了0-1损失函数,可以认为它是二类分类问题真正的损失函数,而合页损失函数是0-1损失函数的上界。由于0-1损失函数不是连续可导的,直接优化由其构成的目标函数比较困难,可以认为线性SVM是优化0-1损失函数的上界(合页损失函数)构成的目标函数。这时的上界损失函数又称为代理损失函数。
在这里插入图片描述
        上图中虚线显示的是感知机的损失函数 [ y i ( w ⋅ x i + b ) ] + \left[y_i(w·x_i+b)\right]_+ [yi(wxi+b)]+。这时,当样本点 ( x i , y i ) (x_i,y_i) (xi,yi)被正确分类时,损失是0,否则损失是 − y i ( w ⋅ x i + b ) -y_i(w·x_i+b) yi(wxi+b)。相比之下,合页损失函数不仅要分类正确,而且确信度足够高时损失才是0。也就是说,合页损失函数对学习有更高的要求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值