SVM上篇
支持向量机(SVM)的思想是在特征空间中寻找最优的超平面,将不同类别的样本分开,并且使得超平面到最近的样本点的距离最大化。
由于博客限制字数,本文章的下篇在这里一文看懂SVM(6-10)
1 . SVM分类的基本思想
1.1 线性分类器
在上面这一张图片中,我们欲选择一条直线来将两类样本分开,我们选择哪一条直线最合适呢,这就引出了我们今天所要讲的SVM,根据我们的直觉,我们选出来的这条直线到正负样本点的距离越大,则说明我们选的直线就越好。
1.2 支撑平面和支撑向量
我们需要找到这样一个距离(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(x1m−x1n)+w2(x2m−x2n)=2
变形得到
w
⃗
⋅
(
x
⃗
m
−
x
⃗
n
)
=
2
(1)
\vec{w}\cdot \left(\vec{x}_m-\vec{x}_n \right)=2\tag{1}
w⋅(xm−xn)=2(1)
然后再在决策超平面上面选取两个点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(x1o−x1p)+w2(x2o−x2p)=0
变形得到
w
⃗
⋅
(
x
⃗
o
−
x
⃗
p
)
=
0
(2)
\vec{w}\cdot \left(\vec{x}_o-\vec{x}_p \right)=0\tag{2}
w⋅(xo−xp)=0(2)
两个向量点乘为0,说明两向量垂直,如图:
也就是说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}
∥xm−xn∥∗cosΘ∗∥w∥=2(3)
而由图片一可以得到
∥
x
⃗
m
−
x
⃗
n
∥
∗
cos
Θ
=
L
(4)
\left\| \vec{x}_m-\vec{x}_n \right\| *\cos \varTheta=L\tag{4}
∥xm−xn∥∗cosΘ=L(4)
由公式3和4可以得到
L
∗
∥
w
⃗
∥
=
2
L*\left\| \vec{w}\right\|=2
L∗∥w∥=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{一}
min2∥w∥2(一)
1.4 SVM的约束条件
在正超平面的之外的点(绿点)都属于正类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⋅xi+b⩾1(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∗(wi⋅xi+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⋅xi+b⩽−1(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∗(wi⋅xi+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∗(wi⋅xi+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
min2∥w∥2s.t.yi∗(wi⋅xi+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}
{∂xi∂L(x,λ)=0 i=1,2,...n∂λi∂L(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)=min2∥w∥2s.t.yi∗(wi⋅xi+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∗(wi⋅xi+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)=2∥w∥2+i=1∑nλi∗[pi2−yi∗(w⋅xi+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)=pi2−yi∗(w⋅xi+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\
∂w∂L=0 ,∂b∂L=0 ,∂λi∂L=0 ,∂pi∂L=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=1∑nλiyixi=0(1)
− ∑ i = 1 n λ i y i = 0 (2) -\sum_{i=1}^n{\lambda _i}y_i=0\tag{2} −i=1∑nλ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+pi2−yi∗(wi⋅xi+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∗(wi⋅xi+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∗(wi⋅xi+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∗(wi⋅xi+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∗(wi⋅xi+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∗(wi⋅xi+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∗(wi⋅xi+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 pi2−yi∗(w⋅xi+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=1∑nλiyixi=0(I)
− ∑ i = 1 n λ i y i = 0 (II) -\sum_{i=1}^n{\lambda _i}y_i=0\tag{II} −i=1∑nλ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∗(wi⋅xi+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∗(wi⋅xi+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∗(wi⋅xi+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∗(wi⋅xi+b)−1>0,此时
λ
i
\lambda_i
λi=0,我们的原目标 函数是为了求解
min
∥
w
⃗
∥
2
2
\min\frac{\left\|\vec{w}\right\|^2}{2}
min2∥w∥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}
2∥w∥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)=2∥w∥2+i=1∑nλi∗[pi2−yi∗(w⋅xi+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λi∗pi2>=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)=2∥w∥2+i=1∑nλi∗[−yi∗(w⋅xi+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)=2∥w∥2−i=1∑nλi∗[yi∗(w⋅xi+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⋅xi+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)=21∥w∥2
上面的式子是先对拉格朗日函数求最大值(对
λ
\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[2∥w∥2+∑i=1nαi∗[−yi∗(w⋅xi+b)+1]]
首先对模型求导
∂
L
∂
w
=
0
,
∂
L
∂
b
=
0
\frac{\partial L}{\partial w}=0\ ,\frac{\partial L}{\partial b}=0\
∂w∂L=0 ,∂b∂L=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=1∑nαiyixi=0−i=1∑nα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=1∑nαiyixii=1∑nα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=1∑nαi−21i=1∑nj=1∑nαiαjyiyj(xi⋅xj)]
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=1∑nα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(21∥w∥2+Ci=1∑mξ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∗(wT⋅xi+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} 21∥w∥2+C∑i=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,ξ,α,β)=21∥w∥2+Ci=1∑nξi+i=1∑nαi(1−ξi−yi(wT⋅xi+b))+i=1∑nβ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−ξi−yi(wT⋅xi+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,ξ,α,β)=21∥w∥2+i=1∑nαi(1−yi(wT⋅xi+b))(4)
然后对公式(4)中的w和b求导得到
∂
L
∂
w
=
0
,
∂
L
∂
b
=
0
\frac{\partial L}{\partial w}=0\ ,\frac{\partial L}{\partial b}=0\
∂w∂L=0 ,∂b∂L=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=1∑nαiyixi=0−i=1∑nα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=1∑nαi−21i=1∑nj=1∑nαiαjyiyj(xi⋅xj)]s.t.i=1∑nα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(21∥w∥2+Ci=1∑mξ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,bmin21∥w∥2+Ci=1∑ml0/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,1−z)
如下图
这些替代损失的数学性质比较好,一般都是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(21∥w∥2+C∑i=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=1∑nαiyixi=0(I)
− ∑ i = 1 n α i y i = 0 (II) -\sum_{i=1}^n{\alpha _i}y_i=0\tag{II} −i=1∑nα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∗(wi⋅xi+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−ξi−yi∗(wi⋅xi+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−ξi−yi∗(wi⋅xi+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∗(wi⋅xi+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−ξi−yi∗(wi⋅xi+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∗(wi⋅xi+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∗(wi⋅xi+b)=1,代表落在了正负超平面之上。
注:上面所说的正负超平面表达式与样本标签的关系为 y i ∗ ( w ⃗ i ⋅ x ⃗ i + b ) = 1 y_i*\left( \vec{w}_i\cdot \vec{x}_i+b \right)=1 yi∗(wi⋅xi+b)=1。(soft SVM那里也说过)