机器学习SVM(1-5)

支持向量机(SVM)的思想是在特征空间中寻找最优的超平面,将不同类别的样本分开,并且使得超平面到最近的样本点的距离最大化。

由于博客限制字数,本文章的下篇在这里一文看懂SVM(6-10)

1 . SVM分类的基本思想

1.1 线性分类器

Alt

在上面这一张图片中,我们欲选择一条直线来将两类样本分开,我们选择哪一条直线最合适呢,这就引出了我们今天所要讲的SVM,根据我们的直觉,我们选出来的这条直线到正负样本点的距离越大,则说明我们选的直线就越好。

1.2 支撑平面和支撑向量

Alt

我们需要找到这样一个距离(margin)并且使它距离两个类别的最近样本最远,SVM 就是尝试寻找一个最优的决策边界,这个决策边界叫做支撑平面,而落在支撑平面上面的样本点我们叫做支撑向量,那么我们要求得最大的margin,就要先把他表示出来。

1.3 margin的表示及目标函数

SVM 想要的就是找到各类样本点到超平面的距离最远,也就是找到最大间隔超平面。任意超平面可以用下面这个线性方程来描述:
w 1 x 1 + w 2 x 2 + ⋅ ⋅ ⋅ + b = 0 w_1x_1+w_2x_2+\cdot \cdot \cdot +b=0 w1x1+w2x2++b=0
我们分别在两个正负超平面上面选取两个点m,n,则正负超平面的表示为:
w 1 X 1 m + w 2 X 2 m + b = 1 w_1X_{1m}+w_2X_{2m}+b=1 w1X1m+w2X2m+b=1

w 1 X 1 n + w 2 X 2 n + b = − 1 w_1X_{1n}+w_2X_{2n}+b=-1 w1X1n+w2X2n+b=1

上面两个式子相减得到
w 1 ( x 1 m − x 1 n ) + w 2 ( x 2 m − x 2 n ) = 2 w_1\left(x_{1m}-x_{1n}\right)+w_2\left(x_{2m}-x_{2n}\right)=2 w1(x1mx1n)+w2(x2mx2n)=2
变形得到
w ⃗ ⋅ ( x ⃗ m − x ⃗ n ) = 2 (1) \vec{w}\cdot \left(\vec{x}_m-\vec{x}_n \right)=2\tag{1} w (x mx n)=2(1)
Alt

然后再在决策超平面上面选取两个点p,o
w 1 X 1 o + w 2 X 2 o + b = 0 w_1X_{1o}+w_2X_{2o}+b=0 w1X1o+w2X2o+b=0

w 1 X 1 p + w 2 X 2 p + b = 0 w_1X_{1p}+w_2X_{2p}+b=0 w1X1p+w2X2p+b=0

上面两个式子相减得到
w 1 ( x 1 o − x 1 p ) + w 2 ( x 2 o − x 2 p ) = 0 w_1\left(x_{1o}-x_{1p}\right)+w_2\left(x_{2o}-x_{2p}\right)=0 w1(x1ox1p)+w2(x2ox2p)=0
变形得到
w ⃗ ⋅ ( x ⃗ o − x ⃗ p ) = 0 (2) \vec{w}\cdot \left(\vec{x}_o-\vec{x}_p \right)=0\tag{2} w (x ox p)=0(2)
两个向量点乘为0,说明两向量垂直,如图:

Alt

也就是说w向量与决策超平面垂直,我们回到公式(1),则可以得到
∥ x ⃗ m − x ⃗ n ∥ ∗ cos ⁡ Θ ∗ ∥ w ⃗ ∥ = 2 (3) \left\| \vec{x}_m-\vec{x}_n \right\| *\cos \varTheta *\left\| \vec{w}\right\|=2\tag{3} x mx ncosΘw =2(3)
而由图片一可以得到
∥ x ⃗ m − x ⃗ n ∥ ∗ cos ⁡ Θ = L (4) \left\| \vec{x}_m-\vec{x}_n \right\| *\cos \varTheta=L\tag{4} x mx ncosΘ=L(4)
由公式3和4可以得到
L ∗ ∥ w ⃗ ∥ = 2 L*\left\| \vec{w}\right\|=2 Lw =2
所以
L = 2 ∥ w ⃗ ∥ L=\frac{2}{\left\| \vec{w}\right\|} L=w 2
L就是我们所要求的margin.

其中
∥ w ∥ = ( w 1 ) 2 + . . . + ( w n ) 2 \left\|w \right\|=\sqrt{\left(w_1 \right)^2+...+\left(w_n \right)^2} w=(w1)2+...+(wn)2
为了方便计算不妨我们把根号去掉也就得到了
max ⁡ L = 2 ∥ w ⃗ ∥ 2 \max L=\frac{2}{\left\|\vec{w}\right\|^2} maxL=w 22
等同于我们要求的目标函数为
min ⁡ ∥ w ⃗ ∥ 2 2 (一) \min\frac{\left\|\vec{w}\right\|^2}{2}\tag{一} min2w 2()

1.4 SVM的约束条件

Alt

在正超平面的之外的点(绿点)都属于正类y=1,在负超平面的之外的点(黄点)都属于负类y=-1,所以
{ y i = 1 ( 5 ) w ⃗ ⋅ x ⃗ i + b ⩾ 1 ( 6 ) \begin{cases} y_i=1 & \left(5 \right)\\ \vec{w}\cdot \vec{x}_i+b \geqslant 1& \left(6 \right)\\ \end{cases} {yi=1w x i+b1(5)(6)
(5)(6)得
y i ∗ ( w ⃗ i ⋅ x ⃗ i + b ) ⩾ 1 (7) y_i*\left(\vec{w}_i\cdot \vec{x}_i+b \right)\geqslant 1\tag{7} yi(w ix i+b)1(7)
同理可得
{ y i = − 1 ( 8 ) w ⃗ ⋅ x ⃗ i + b ⩽ − 1 ( 9 ) \begin{cases} y_i=-1 & \left(8 \right)\\ \vec{w}\cdot \vec{x}_i+b \leqslant -1& \left(9 \right)\\ \end{cases} {yi=1w x i+b1(8)(9)
(8)
(9)得
y i ∗ ( w ⃗ i ⋅ x ⃗ i + b ) ⩾ 1 (10) y_i*\left(\vec{w}_i\cdot \vec{x}_i+b \right)\geqslant 1\tag{10} yi(w ix i+b)1(10)
综上 (7)和(10)得到约束条件
y i ∗ ( w ⃗ i ⋅ x ⃗ i + b ) ⩾ 1 (二) y_i*\left(\vec{w}_i\cdot \vec{x}_i+b \right)\geqslant 1\tag{二} yi(w ix i+b)1()

1.5 最优化问题

有了目标函数(一)和约束条件(二),我们就得到了最优化问题即
min ⁡ ∥ w ⃗ ∥ 2 2 s . t . y i ∗ ( w ⃗ i ⋅ x ⃗ i + b ) ⩾ 1 {\min\frac{\left\|\vec{w}\right\|^2}{2}}\hspace{1em}s.t.\hspace{1em}y_i*\left(\vec{w}_i\cdot \vec{x}_i+b \right)\geqslant 1 min2w 2s.t.yi(w ix i+b)1
在这个优化问题中我们要求的参数为w和b

2 . 构造拉格朗日乘数法

2.1 等式约束优化

之前我们使用拉格朗日乘数法是解决等式约束优化问题:
min ⁡   f ( x 1 , x 2 , . . . x n ) \min\text{\ }f\left( x_1,x_2,...x_n \right) min f(x1,x2,...xn)

  s . t .    h k ( x 1 , x 2 , . . . x l ) = 0     k = 1 , 2 , . . . l \ s.t.\ \ h_k\left( x_1,x_2,...x_l \right) =0\ \hspace{1em} \ k=1,2,...l  s.t.  hk(x1,x2,...xl)=0  k=1,2,...l

我们可以得到 L ( x , λ ) = f ( x ) + ∑ k = 1 l λ k h ( x k ) L\left( x,\lambda \right) =f\left( x \right) +\sum_{k=1}^l{\lambda _kh\left( x_k \right)} L(x,λ)=f(x)+k=1lλkh(xk),函数L称之为 Lagrange 函数,参数 λ \lambda λ称为 Lagrange 乘子,没有非负要求。一般情况下对各参数求导找到极值点即:
{ ∂ L ( x , λ ) ∂ x i = 0    i = 1 , 2 , . . . n ∂ L ( x , λ ) ∂ λ i = 0    i = 1 , 2 , . . . l \begin{cases} \frac{\partial L\left( x,\lambda \right)}{\partial x_i}=0\ \ i=1,2,...n & \\ \frac{\partial L\left( x,\lambda \right)}{\partial \lambda_i}=0\ \ i=1,2,...l& \\ \end{cases} {xiL(x,λ)=0  i=1,2,...nλiL(x,λ)=0  i=1,2,...l
具体是否为极值点需根据问题本身的具体情况检验。这个方程组称为等式约束的极值必要条件。

等式约束下的 Lagrange 乘数法引入了 l个 Lagrange 乘子,我们将 x与 λ \lambda λ 一视同仁,把 λ \lambda λ 也看作优化变量,共有 (n+l) 个优化变量。

2.2不等式约束优化

而我们现在面对的是不等式优化问题,针对这种情况其主要思想是将不等式约束条件转变为等式约束条件,引入松弛变量,将松弛变量也视为优化变量。

在这里插入图片描述

这里我们直接以上述目标函数(一)及约束条件(二)为例来说明
f ( w ) = min ⁡ ∥ w ⃗ ∥ 2 2 s . t . y i ∗ ( w ⃗ i ⋅ x ⃗ i + b ) ⩾ 1   i = 1 , 2 , . . . n ( n 为样本个数 ) {f(w)=\min\frac{\left\|\vec{w}\right\|^2}{2}}\hspace{1em}s.t.\hspace{1em}y_i*\left(\vec{w}_i\cdot \vec{x}_i+b \right)\geqslant 1 \ \\ i=1,2,...n(n为样本个数) f(w)=min2w 2s.t.yi(w ix i+b)1 i=1,2,...n(n为样本个数)
可以看到我们的约束条件是一个不等式,那么如何将不等式约束转化为等式等式约束呢?我们引入了松弛变量 p 2 p^2 p2,我们的约束条件也变为了

s . t .   g ( w , b ) = y i ∗ ( w ⃗ i ⋅ x ⃗ i + b ) − 1 = p 2 i = 1 , 2 , . . . , n ( n 为样本个数 ) s.t.\ g\left( w,b \right) =y_i*\left( \vec{w}_i\cdot \vec{x}_i+b \right) -1=p^2\\ i=1,2,...,n(n为样本个数) s.t. g(w,b)=yi(w ix i+b)1=p2i=1,2,...,n(n为样本个数)
所以拉格朗日函数变为
L ( w , b , λ i , p i ) = ∥ w ∥ 2 2 + ∑ i = 1 n λ i ∗ [ p i 2 − y i ∗ ( w ⃗ ⋅ x ⃗ i + b ) + 1 ]   i = 1 , 2 , . . . , n ( n 为样本个数 ) 其中 λ i > = 0 L\left( w,b,\lambda _i,p_i \right) =\frac{\lVert w \rVert ^2}{2}+\sum_{i=1}^n{\lambda _i}*\left[ p_i^2-y_i*\left( \vec{w}\cdot \vec{x}_i+b \right) +1 \right] \\\ i=1,2,...,n\left( n为样本个数 \right)\\ \\ 其中\lambda_i>=0 L(w,b,λi,pi)=2w2+i=1nλi[pi2yi(w x i+b)+1] i=1,2,...,n(n为样本个数)其中λi>=0
其中,值得注意的是,这里的 λ i \lambda_i λi应该是>=0的,为什么呢?下面将会讲解

这里令 g ( x ) = p i 2 − y i ∗ ( w ⃗ ⋅ x ⃗ i + b ) + 1 g\left( x \right) =p_{i}^{2}-y_i*\left( \vec{w}\cdot \vec{x}_i+b \right) +1 g(x)=pi2yi(w x i+b)+1这里保证g(x)<=0,这里可能看起来有一些别扭。

为了求上述方程的极值,我们分别对w,b, λ \lambda λ,p求偏导得到
∂ L ∂ w = 0  , ∂ L ∂ b = 0  , ∂ L ∂ λ i = 0  , ∂ L ∂ p i = 0   \frac{\partial L}{\partial w}=0\ ,\frac{\partial L}{\partial b}=0\ ,\frac{\partial L}{\partial \lambda_i}=0\ ,\frac{\partial L}{\partial p_i}=0\ wL=0 bL=0 λiL=0 piL=0 

w ⃗ − ∑ i = 1 n λ i y i x i = 0 (1) \vec{w}-\sum_{i=1}^n{\lambda _i}y_ix_i=0\tag{1} w i=1nλiyixi=0(1)

− ∑ i = 1 n λ i y i = 0 (2) -\sum_{i=1}^n{\lambda _i}y_i=0\tag{2} i=1nλiyi=0(2)

1 + p i 2 − y i ∗ ( w ⃗ i ⋅ x ⃗ i + b ) = 0 (3) 1 +p_i^2-y_i*\left( \vec{w}_i\cdot \vec{x}_i+b \right) =0\tag{3} 1+pi2yi(w ix i+b)=0(3)

2 λ i p i = 0 (4) 2\lambda _ip_i=0\tag{4} 2λipi=0(4)

将公式(4)变形得到 λ i p i 2 = 0 \lambda _ip_i^2=0 λipi2=0 (5)

将公式(3)等式左右两边同时乘以 λ \lambda λ得到
λ i ∗ [ y i ∗ ( w ⃗ i ⋅ x ⃗ i + b ) − 1 ] − λ p i 2 = 0 (6) \lambda_i*\left[ y_i*\left( \vec{w}_i\cdot \vec{x}_i+b \right) -1 \right]-\lambda p_i^2=0\tag{6} λi[yi(w ix i+b)1]λpi2=0(6)
将等式(5)带入到等式(6)中得到新的等式4
λ i ∗ [ y i ∗ ( w ⃗ i ⋅ x ⃗ i + b ) − 1 ] = 0 (new 4) \lambda_i*\left[ y_i*\left( \vec{w}_i\cdot \vec{x}_i+b \right) -1 \right]=0\tag{new 4} λi[yi(w ix i+b)1]=0(new 4)

根据约束条件(二)得知 y i ∗ ( w ⃗ i ⋅ x ⃗ i + b ) − 1 > = 0 y_i*\left( \vec{w}_i\cdot \vec{x}_i+b \right) -1 >=0 yi(w ix i+b)1>=0,若要想使等式(new 4)成立则,有两种可能,现在分别讨论。

第一种: y i ∗ ( w ⃗ i ⋅ x ⃗ i + b ) − 1 > 0 y_i*\left( \vec{w}_i\cdot \vec{x}_i+b \right) -1 >0 yi(w ix i+b)1>0 λ i = 0 \lambda_i=0 λi=0

第二种: y i ∗ ( w ⃗ i ⋅ x ⃗ i + b ) − 1 = 0 y_i*\left( \vec{w}_i\cdot \vec{x}_i+b \right) -1 =0 yi(w ix i+b)1=0 λ i ! = 0 \lambda_i!=0 λi!=0

对于第一种情况可以得知,对应的样本点不在正负超平面上面,此时的 λ i \lambda_i λi必须等于0

对于第二种情况可以得知,对应的样本点在正负超平面上面,此时的 λ i \lambda_i λi 可以不等于0

在不等于0 的情况下,是大于0还是小于0呢?

现在假设样本点违反约束条件(二),也就是 y i ∗ ( w ⃗ i ⋅ x ⃗ i + b ) − 1 < 0 y_i*\left( \vec{w}_i\cdot \vec{x}_i+b \right) -1<0 yi(w ix i+b)1<0 ,则 p i 2 − y i ∗ ( w ⃗ ⋅ x ⃗ i + b ) + 1 > = 0 p_i^2-y_i*\left( \vec{w}\cdot \vec{x}_i+b \right) +1>=0 pi2yi(w x i+b)+1>=0,此时若 λ i < 0 \lambda_i<0 λi<0,则整个拉格朗日函数将趋于无穷小,这相当于鼓励样本点违反约束条件而使拉格朗日方程获得更小值解,导致拉格朗日方程的最终结果与目标函数之间的差距越来越大,这显然不是我们的目的,所以综上 λ i > 0 \lambda_i>0 λi>0

综上 λ > = 0 \lambda>=0 λ>=0

2.3 SVM的kkt条件

现在基本把kkt条件讲完了,(关于kkt条件具体是怎么来的这里不详细解释)现在来整理一下:
w ⃗ − ∑ i = 1 n λ i y i x i = 0 (I) \vec{w}-\sum_{i=1}^n{\lambda _i}y_ix_i=0\tag{I} w i=1nλiyixi=0(I)

− ∑ i = 1 n λ i y i = 0 (II) -\sum_{i=1}^n{\lambda _i}y_i=0\tag{II} i=1nλiyi=0(II)

y i ∗ ( w ⃗ i ⋅ x ⃗ i + b ) ⩾ 1 (III) y_i*\left(\vec{w}_i\cdot \vec{x}_i+b \right)\geqslant 1\tag{III} yi(w ix i+b)1(III)

λ i ∗ [ y i ∗ ( w ⃗ i ⋅ x ⃗ i + b ) − 1 ] = 0 (IV) \lambda_i*\left[ y_i*\left( \vec{w}_i\cdot \vec{x}_i+b \right) -1 \right]=0\tag{IV} λi[yi(w ix i+b)1]=0(IV)

λ i > = 0 (V) \lambda_i>=0\tag{V} λi>=0(V)

公式(I)是对w求导得到的,公式(II)是对b求导得到的,公式(III)是约束条件,公式(IV)是之前分别对 λ i \lambda_i λi p i p_i pi求导,然后变形得到的,公式(V)是上面讨论得到的。

我们通过上面的kkt条件,可以发现什么呢,支撑向量 y i ∗ ( w ⃗ i ⋅ x ⃗ i + b ) − 1 = 0 y_i*\left( \vec{w}_i\cdot \vec{x}_i+b \right) -1=0 yi(w ix i+b)1=0,此时 λ i \lambda_i λi>0即可,而其他向量 y i ∗ ( w ⃗ i ⋅ x ⃗ i + b ) − 1 > 0 y_i*\left( \vec{w}_i\cdot \vec{x}_i+b \right) -1>0 yi(w ix i+b)1>0,此时 λ i \lambda_i λi=0,我们的原目标 函数是为了求解 min ⁡ ∥ w ⃗ ∥ 2 2 \min\frac{\left\|\vec{w}\right\|^2}{2} min2w 2,即求min L ( w , b , λ i , p i ) L\left( w,b,\lambda_i ,p_i \right) L(w,b,λi,pi),现在假设找到了最佳参数 λ i \lambda_i λi使得目标函数取得最小值q,即 ∥ w ⃗ ∥ 2 2 \frac{\left\|\vec{w}\right\|^2}{2} 2w 2=q,由拉格朗日公式
L ( w , b , λ i , p i ) = ∥ w ∥ 2 2 + ∑ i = 1 n λ i ∗ [ p i 2 − y i ∗ ( w ⃗ ⋅ x ⃗ i + b ) + 1 ]   i = 1 , 2 , . . . , n ( n 为样本个数 ) L\left( w,b,\lambda _i,p_i \right) =\frac{\lVert w \rVert ^2}{2}+\sum_{i=1}^n{\lambda _i}*\left[ p_i^2-y_i*\left( \vec{w}\cdot \vec{x}_i+b \right) +1 \right] \\\ i=1,2,...,n\left( n为样本个数 \right) L(w,b,λi,pi)=2w2+i=1nλi[pi2yi(w x i+b)+1] i=1,2,...,n(n为样本个数)
由于 ∑ i = 1 n λ i ∗ p i 2 > = 0 \sum_{i=1}^n{\lambda _i}*p_i^2>=0 i=1nλipi2>=0,为求得min L,我们令p=0,故我们将问题转化为
L ( w , b , λ i , p i ) = ∥ w ∥ 2 2 + ∑ i = 1 n λ i ∗ [ − y i ∗ ( w ⃗ ⋅ x ⃗ i + b ) + 1 ]   i = 1 , 2 , . . . , n ( n 为样本个数 ) (VI) L\left( w,b,\lambda _i,p_i \right) =\frac{\lVert w \rVert ^2}{2}+\sum_{i=1}^n{\lambda _i}*\left[-y_i*\left( \vec{w}\cdot \vec{x}_i+b \right) +1 \right] \\\ i=1,2,...,n\left( n为样本个数 \right)\tag{VI} L(w,b,λi,pi)=2w2+i=1nλi[yi(w x i+b)+1] i=1,2,...,n(n为样本个数)(VI)
等价于
L ( w , b , λ i , p i ) = ∥ w ∥ 2 2 − ∑ i = 1 n λ i ∗ [ y i ∗ ( w ⃗ ⋅ x ⃗ i + b ) − 1 ]   i = 1 , 2 , . . . , n ( n 为样本个数 ) (VII) L\left( w,b,\lambda _i,p_i \right) =\frac{\lVert w \rVert ^2}{2}-\sum_{i=1}^n{\lambda _i}*\left[y_i*\left( \vec{w}\cdot \vec{x}_i+b \right) -1 \right] \\\ i=1,2,...,n\left( n为样本个数 \right)\tag{VII} L(w,b,λi,pi)=2w2i=1nλi[yi(w x i+b)1] i=1,2,...,n(n为样本个数)(VII)
由kkt条件(V)得知, ∑ i = 1 n λ i ∗ ( − y i ∗ ( w ⃗ ⋅ x ⃗ i + b ) + 1 ) \sum_{i=1}^n{\lambda _i}*\left(-y_i*\left( \vec{w}\cdot \vec{x}_i+b \right) +1 \right) i=1nλi(yi(w x i+b)+1)<=0,所以 L ( w , b , λ i , p i ) L\left( w,b,\lambda_i ,p_i \right) L(w,b,λi,pi) <=q,我们的目的是找到最优的参数 λ \lambda λ使得拉格朗日函数的结果尽可能等于q,即目标转化为 L ( w , b , λ , x ) max ⁡   λ \underset{\max\text{\ }\lambda}{L\left( w,b,\lambda ,x \right)} max λL(w,b,λ,x)<=q。

3.对偶问题

3.1拉格朗日对偶问题

先回顾一下我们的原问题即
p ∗ = min ⁡ w , b θ p ( x ) = min ⁡ w , b max ⁡ λ L ( w , b , λ , x ) p^*=\min_{w,b}\theta _p\left( x \right) =\underset{w,b}{\min}\underset{\lambda}{\max}L\left( w,b,\lambda ,x \right) p=w,bminθp(x)=w,bminλmaxL(w,b,λ,x)
其中
θ p ( x ) = max ⁡ λ L ( w , b , λ , x ) = 1 2 ∥ w ∥ 2 \theta _p\left( x \right) =\underset{\lambda}{\max}L\left( w,b,\lambda ,x \right) =\frac{1}{2}\lVert w \rVert ^2 θp(x)=λmaxL(w,b,λ,x)=21w2
上面的式子是先对拉格朗日函数求最大值(对 λ \lambda λ)再求最小值对(w,b)

其对偶问题是
d ∗ = max ⁡ λ θ d ( λ ) = max ⁡ λ min ⁡ w , b L ( w , b , λ , x ) d^*=\max_{\lambda}\theta _d\left( \lambda \right) =\underset{\lambda}{\max}\underset{w,b}{\min}L\left( w,b,\lambda ,x \right) d=λmaxθd(λ)=λmaxw,bminL(w,b,λ,x)
其中
θ d ( λ ) = min ⁡ w , b L ( w , b , λ , x ) \theta _d\left( \lambda \right) =\underset{ w,b}{\min}L\left( w,b,\lambda ,x \right) θd(λ)=w,bminL(w,b,λ,x)
上面的式子是先对拉格朗日函数求最小值(对w,b)再求最大值对( λ \lambda λ)

3.2为什么引入对偶问题而不直接求解呢

因为原始优化的目标函数f(x)的优化(原问题的求解),不一定是凸优化问题,因此求导等于0有可能是局部最优解;但是对偶问题的目标函数 θ ( λ ) \theta\left(\lambda\right) θ(λ),的优化,属于凸优化,解具有唯一性。(关于凸函数优化这里不详细讲)

4.利用拉格朗日对偶求解SVM参数

这里把参数 λ \lambda λ换成了 α \alpha α,因为我想用我老师PPT上面的图片,写公式实在是太累了

对偶问题: d ∗ = max ⁡ α θ d ( λ ) = max ⁡ α min ⁡ w , b L ( w , b , α , x ) d^*=\max_{\alpha}\theta _d\left( \lambda \right) =\underset{\alpha}{\max}\underset{w,b}{\min}L\left( w,b,\alpha ,x \right) d=maxαθd(λ)=αmaxw,bminL(w,b,α,x)= max ⁡ α θ d ( α ) = max ⁡ α min ⁡ w , b [ ∥ w ∥ 2 2 + ∑ i = 1 n α i ∗ [ − y i ∗ ( w ⃗ ⋅ x ⃗ i + b ) + 1 ] ] \max_{\alpha}\theta _d\left( \alpha \right) =\underset{\alpha}{\max}\underset{w,b}{\min}\left[\frac{\lVert w \rVert ^2}{2}+\sum_{i=1}^n{\alpha _i}*\left[-y_i*\left( \vec{w}\cdot \vec{x}_i+b \right) +1 \right]\right] maxαθd(α)=αmaxw,bmin[2w2+i=1nαi[yi(w x i+b)+1]]

首先对模型求导
∂ L ∂ w = 0  , ∂ L ∂ b = 0   \frac{\partial L}{\partial w}=0\ ,\frac{\partial L}{\partial b}=0\ wL=0 bL=0 
得到:

w ⃗ − ∑ i = 1 n α i y i x i = 0 − ∑ i = 1 n α i y i = 0 \vec{w}-\sum_{i=1}^n{\alpha _i}y_ix_i=0\\ -\sum_{i=1}^n{\alpha _i}y_i=0 w i=1nαiyixi=0i=1nαiyi=0

可得到:
w ∗ = ∑ i = 1 n α i y i x i ∑ i = 1 n α i y i = 0 w^*=\sum_{i=1}^n{\alpha ^i}y^ix^i\\ \sum_{i=1}^n{\alpha ^iy^i=0} w=i=1nαiyixii=1nαiyi=0
将上述化简结果带入到对偶问题当中可以求解,推导过程如下:

在这里插入图片描述

现在我们得到了 θ d ( α ) \theta _d\left( \alpha \right) θd(α),即下一步应该求解 max ⁡ α θ d ( α ) \max_{\alpha}\theta _d\left( \alpha \right) maxαθd(α),即转化为:
max ⁡ α [ ∑ j = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j ( x i ⋅ x j ) ] \underset{\alpha}{\max}\left[ \sum_{j=1}^n{\alpha _i-\frac{1}{2}}\sum_{i=1}^n{\sum_{j=1}^n{\alpha _i\alpha _jy_iy_j\left( x_i\cdot x_j \right)}} \right] αmax[j=1nαi21i=1nj=1nαiαjyiyj(xixj)]

s . t . ∑ i = 1 n α i y i = 0   ,   α i > = 0 s.t.\sum_{i=1}^n{\alpha _iy_i}=0\ ,\ \alpha _i>=0 s.t.i=1nαiyi=0 , αi>=0

我们可以看出来这是一个二次规划问题,问题规模正比于训练样本数,我们常用 SMO(Sequential Minimal Optimization) 算法求解。

SMO(Sequential Minimal Optimization),序列最小优化算法,其核心思想非常简单:每次只优化一个参数,其他参数先固定住,仅求当前这个优化参数的极值。我们来看一下 SMO 算法在 SVM 中的应用。SMO会在第七部分讲解,这里先算到这里)

5.soft SVM

5.1 解决实际问题

现实中,很难确定合适的核函数使得训练样本在特征空间中线性可分,同时一个线性可分的结果也很难断定是否是有过拟合造成的,所以引入“软间隔”的概念,允许支持向量机在一些样本上不满足约束.但请注意,我们的正负超平面与hard SVM相同。
在这里插入图片描述

5.2优化目标以及求解

增加软间隔之后我们的优化目标变为
min ⁡ w ( 1 2 ∥ w ∥ 2 + C ∑ i = 1 m ξ i ) , C > = 0 \underset{w}{\min}\left(\frac{1}{2}\lVert w \rVert ^2+C\sum_{i=1}^m{\xi _i}\right),\hspace{1em}C>=0 wmin(21w2+Ci=1mξi)C>=0

s . t . y i ∗ ( w T ⋅ x i + b ) > = 1 − ξ i   , ξ i > = 0       i = 1 , 2 , . . . , m s.t.\hspace{1em} y_i*\left( w^T\cdot x_i+b \right) >=1-\xi _i\ ,\\\xi _i>=0\ \ \ \\\,i=1,2,...,m s.t.yi(wTxi+b)>=1ξi ,ξi>=0   i=1,2,...,m

最小目标函数的含义:在使得支撑平面间隔最大的同时,也希望使得错分点到其真实支撑平面的距离越小

显然现在是对 1 2 ∥ w ∥ 2 + C ∑ i = 1 m ξ i \frac{1}{2}\lVert w \rVert ^2+C\sum_{i=1}^m{\xi _i} 21w2+Ci=1mξi,这个整体求最小值,根据实际的意义,我们会发现当w越小,正负超平面之间的距离(margin)就会越大,而margin越大,样本错分的概率就越大, ξ i \xi_i ξi就会越大,相反,当w越大,正负超平面之间的距离(margin)就会越小,而margin越小,样本错分的概率就越小, ξ i \xi_i ξi就会越小,显然w和, ξ i \xi_i ξi是相互制约的,我们需要找到一个平衡位置,使得两者之和达到最小,这就是新的优化问题。

其中C是一个大于0的常数,可以理解为错误样本的惩罚程度,若C为无穷大, ξ \xi ξ必然无穷小,如此一来soft SVM就又变成了线性可分SVM;当C为有限值的时候,才会允许部分样本不遵循约束条件

构造拉格朗日函数:
min ⁡ w , b , ξ max ⁡ α , β L ( b , w , ξ , α , β ) = 1 2 ∥ w ∥ 2 + C ∑ i = 1 n ξ i + ∑ i = 1 n α i ( 1 − ξ i − y i ( w T ⋅ x i + b ) ) + ∑ i = 1 n β i ( − ξ i ) (1) \underset{w,b,\xi}{\min}\underset{\alpha ,\beta}{\max}L\left( b,w,\xi ,\alpha ,\beta \right) =\frac{1}{2}\lVert w \rVert ^2+C\sum_{i=1}^n{\xi _i}+\sum_{i=1}^n{\alpha _i}\left( 1-\xi _i-y_i\left( w^T\cdot x_i+b \right) \right) +\sum_{i=1}^n{\beta _i}\left( -\xi _i \right)\tag{1} w,b,ξminα,βmaxL(b,w,ξ,α,β)=21w2+Ci=1nξi+i=1nαi(1ξiyi(wTxi+b))+i=1nβi(ξi)(1)
有同学可能会有疑惑,为什么这里 ξ i \xi_i ξi前面要加负号,因为我们要保证这里小于等于0,同理 1 − ξ i − y i ( w T ⋅ x i + b ) 1-\xi _i-y_i\left( w^T\cdot x_i+b \right) 1ξiyi(wTxi+b)也是小于等于0的,因为 ξ i \xi_i ξi本身是大于等于0的,所以要在其前面加一个负号。

根据强对偶性,转化为对偶问题,
max ⁡ α , β min ⁡ w , b , ξ L ( b , w , ξ , α , β ) (2) \underset{\alpha ,\beta}{\max}\underset{w,b,\xi}{\min}L\left( b,w,\xi ,\alpha ,\beta \right)\tag{2} α,βmaxw,b,ξminL(b,w,ξ,α,β)(2)
ξ i \xi_i ξi求导得到:

C − α i − β i = 0 C-\alpha_i-\beta_i=0 Cαiβi=0
则得到
β i = C − α i (3) \beta_i=C-\alpha_i\tag{3} βi=Cαi(3)
将公式(3)带入公式(2)中得到
max ⁡ α , β min ⁡ w , b L ( b , w , ξ , α , β ) = 1 2 ∥ w ∥ 2 + ∑ i = 1 n α i ( 1 − y i ( w T ⋅ x i + b ) ) (4) \underset{\alpha ,\beta}{\max}\underset{w,b}{\min}L\left( b,w,\xi ,\alpha ,\beta \right) =\frac{1}{2}\lVert w \rVert ^2+\sum_{i=1}^n{\alpha _i}\left( 1-y_i\left( w^T\cdot x_i+b \right) \right)\tag{4} α,βmaxw,bminL(b,w,ξ,α,β)=21w2+i=1nαi(1yi(wTxi+b))(4)
然后对公式(4)中的w和b求导得到
∂ L ∂ w = 0  , ∂ L ∂ b = 0   \frac{\partial L}{\partial w}=0\ ,\frac{\partial L}{\partial b}=0\ wL=0 bL=0 

w ⃗ − ∑ i = 1 n α i y i x i = 0 − ∑ i = 1 n α i y i = 0 (5) \vec{w}-\sum_{i=1}^n{\alpha _i}y_ix_i=0\tag{5}\\ -\sum_{i=1}^n{\alpha _i}y_i=0 w i=1nαiyixi=0i=1nαiyi=0(5)

将等式(5)中的关系带入到对偶方程当中得到:
max ⁡ α [ ∑ j = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j ( x i ⋅ x j ) ] s . t . ∑ i = 1 n α i y i = 0   ,   0 < = α i < = C \underset{\alpha}{\max}\left[ \sum_{j=1}^n{\alpha _i-\frac{1}{2}}\sum_{i=1}^n{\sum_{j=1}^n{\alpha _i\alpha _jy_iy_j\left( x_i\cdot x_j \right)}} \right]\\ s.t.\sum_{i=1}^n{\alpha _iy_i}=0\ ,\ 0<=\alpha _i<=C αmax[j=1nαi21i=1nj=1nαiαjyiyj(xixj)]s.t.i=1nαiyi=0 , 0<=αi<=C
利用SMO算法就可以求解 α \alpha α

5.3 损失的表示

min ⁡ w ( 1 2 ∥ w ∥ 2 + C ∑ i = 1 m ξ i ) , C > = 0 \underset{w}{\min}\left(\frac{1}{2}\lVert w \rVert ^2+C\sum_{i=1}^m{\xi _i}\right),\hspace{1em}C>=0 wmin(21w2+Ci=1mξi)C>=0

其中 ξ \xi ξ的值可以由0/1损失计算,或者用0/1损失的替代损失来计算

5.3.1 0/1损失

min ⁡ w , b 1 2 ∥ w ∥ 2 + C ∑ i = 1 m l 0 / 1 ( y i ( w T ϕ ( x i ) + b ) − 1 ) \underset{w,b}{\min}\frac{1}{2}\lVert w \rVert ^2+C\sum_{i=1}^m{l_{0/1}\left( y_i\left( w^T\phi \left( x_i \right) +b \right) -1 \right)} w,bmin21w2+Ci=1ml0/1(yi(wTϕ(xi)+b)1)

z ( x ) = y i ( w T ϕ ( x i ) + b ) − 1 z(x)=y_i\left( w^T\phi \left( x_i \right) +b \right) -1 z(x)=yi(wTϕ(xi)+b)1,则:

0/1损失函数为:
{   1 i f z ( x ) < 0 0 o t h e r w i s e \begin{cases} \ 1& if \hspace{1em} z(x)<0 \\ 0 & otherwise\\ \end{cases} { 10ifz(x)<0otherwise
存在的问题就是0/1损失函数非凸,非连续,不易优化。

5.3.2 0/1损失的替代损失

分别是
l exp ⁡ ( z ) = exp ⁡ ( − z ) l log ⁡ ( z ) = log ⁡ ( 1 + exp ⁡ ( − z ) ) l h i n g e ( z ) = max ⁡ ( 0 , 1 − z ) l_{\exp}\left( z \right) =\exp \left( -z \right) \\ l_{\log}\left( z \right) =\log \left( 1+\exp \left( -z \right) \right) \\ l_{hinge}\left( z \right) =\max \left( 0,1-z \right) lexp(z)=exp(z)llog(z)=log(1+exp(z))lhinge(z)=max(0,1z)
如下图

在这里插入图片描述

这些替代损失的数学性质比较好,一般都是0/1损失的上界。

5.4 与SVM 比较

在结果上面,求到这里之后会发现soft SVM与hard SVM的结果一样只是这里的参数 α i \alpha_i αi不仅要大于等于0而且要小于等于C

这里我们定义了一个惩罚系数,也就是 min ⁡ w ( 1 2 ∥ w ∥ 2 + C ∑ i = 1 m ξ i ) \underset{w}{\min}\left(\frac{1}{2}\lVert w \rVert ^2+C\sum_{i=1}^m{\xi _i}\right) wmin(21w2+Ci=1mξi)当中的C,其中C>=0,C的实际意义为:对样本损失值 ξ i \xi_i ξi的容忍度,C越大,若想要使最终的函数越小,就必须使得 ξ i \xi_i ξi小,也就是说对损失值得容忍度小,换言之,这是一个很严格的分类,反之C越小,反而对 ξ i \xi_i ξi的大小没有太严格,这就是一个对样本数据不严格的分类。当C趋于正无穷大时, ξ \xi ξ就会趋于0,这时候优化问题就变成了hard SVM了。

5.5 soft SVM 的 kkt 条件

w ⃗ − ∑ i = 1 n α i y i x i = 0 (I) \vec{w}-\sum_{i=1}^n{\alpha _i}y_ix_i=0\tag{I} w i=1nαiyixi=0(I)

− ∑ i = 1 n α i y i = 0 (II) -\sum_{i=1}^n{\alpha _i}y_i=0\tag{II} i=1nαiyi=0(II)

y i ∗ ( w ⃗ i ⋅ x ⃗ i + b ) ⩾ 1 − ξ i (III) y_i*\left(\vec{w}_i\cdot \vec{x}_i+b \right)\geqslant 1-\xi_i\tag{III} yi(w ix i+b)1ξi(III)

α i ∗ [ 1 − ξ i − y i ∗ ( w ⃗ i ⋅ x ⃗ i + b ) ] = 0 (IV) \alpha_i*\left[ 1-\xi_i-y_i*\left( \vec{w}_i\cdot \vec{x}_i+b \right) \right]=0\tag{IV} αi[1ξiyi(w ix i+b)]=0(IV)

0 = < α i < = C (V) 0=<\alpha_i<=C\tag{V} 0=<αi<=C(V)

β i ξ i = 0 (VI) \beta_i\xi_i=0\tag{VI} βiξi=0(VI)

以上就是soft SVM的kkt条件,基本上和hard SVM差不多

5.6 α \alpha α ξ \xi ξ 与样本点所在位置的关系

由公式(VI)和公式(3)可得
( C − α i ) ξ i = 0 (VII) (C-\alpha_i)\xi_i=0\tag{VII} (Cαi)ξi=0(VII)
α i \alpha_i αi=0,由公式(VII)得, ξ i \xi_i ξi=0,由公式(IV)得, 1 − ξ i − y i ∗ ( w ⃗ i ⋅ x ⃗ i + b ) 1-\xi_i-y_i*\left( \vec{w}_i\cdot \vec{x}_i+b \right) 1ξiyi(w ix i+b) <=0,则 y i ∗ ( w ⃗ i ⋅ x ⃗ i + b ) > = 1 − ξ i y_i*\left( \vec{w}_i\cdot \vec{x}_i+b \right)>=1-\xi_i yi(w ix i+b)>=1ξi。样本点落在正负超平面的外面,代表着分类正确的样本点

α i \alpha_i αi=C,由公式(VII)得, ξ i \xi_i ξi可以不为0,由公式(IV)得, 1 − ξ i − y i ∗ ( w ⃗ i ⋅ x ⃗ i + b ) 1-\xi_i-y_i*\left( \vec{w}_i\cdot \vec{x}_i+b \right) 1ξiyi(w ix i+b) =0,则 y i ∗ ( w ⃗ i ⋅ x ⃗ i + b ) = 1 − ξ i y_i*\left( \vec{w}_i\cdot \vec{x}_i+b \right)=1-\xi_i yi(w ix i+b)=1ξi,代表着样本点落在正负超平面之内,代表着分类错误的样本点

当0< α i \alpha_i αi<C,由公式(VII)得, ξ i \xi_i ξi=0,由公式(IV)得 y i ∗ ( w ⃗ i ⋅ x ⃗ i + b ) = 1 y_i*\left( \vec{w}_i\cdot \vec{x}_i+b \right)=1 yi(w ix i+b)=1,代表落在了正负超平面之上。

注:上面所说的正负超平面表达式与样本标签的关系为 y i ∗ ( w ⃗ i ⋅ x ⃗ i + b ) = 1 y_i*\left( \vec{w}_i\cdot \vec{x}_i+b \right)=1 yi(w ix i+b)=1。(soft SVM那里也说过)

由于博客限制字数,本文章的下篇在这里一文看懂SVM(6-10)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值