文章目录
支持向量机内容特别多,为了方便阅读,分成三个部分。
第二部分:07_支持向量机2_统计学习方法,讲解非支持向量机。
第三部分:07_支持向量机3_统计学习方法,讲解SMO。
一、支持向量机的介绍
最近在学习李航的统计学习方法,今天学习到支持向量机,看过一遍,第一节看懂没啥大问题,后面越来越看不懂了,主要是公式太多然后还涉及到一些新的数学知识。然后就上优快云和博客园找博客,很多都和书上的差不多。当然也找到了几篇讲解全面的,看文末参考资料。但对于介绍支持向量机,还是李航的统计学习方法的第一段来得实在。
支持向量机(support vector machines,SVM)是一种二分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;支持向量机还包括核技巧,这使它成为实质上的非线性分类器。支持向量机及的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。支持向量机的学习算法是求解凸二次规划的最优化算法。
支持向量机学习方法包含构建由简至繁的模型:线性可分支持向量机、线性支持向量机及非线性支持向量机。简单模型是复杂模型的基础,也是复杂模型的特殊情况。
- 线性可分支持向量机,又称为硬间隔支持向量机:训练数据线性可分时,通过硬间隔最大化,学习一个线性的分类器;
- 线性支持向量机,又称为软间隔支持向量机:训练数据近似线性可分时,通过软间隔最大化,学习一个线性的分类器;
- 非线性支持向量机,当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。
趣味解说支持向量机:
在很久以前的情人节,一位大侠要去救他的爱人,但天空中的魔鬼和他玩了一个游戏。
魔鬼在桌子上似乎有规律放了两种颜色的球,说:“你用一根棍分开它们?要求:尽量在放更多球之后,仍然适用。”
于是大侠这样放,干的不错?也就是我们的感知机模型。
然后魔鬼,又在桌上放了更多的球,似乎有一个球站错了阵营。显然,大侠需要对棍做出调整。
SVM就是试图把棍放在最佳位置,好让在棍的两边有尽可能大的间隙。这个间隙就是球到棍的距离。也就是我们的线性可分支持向量机。
现在好了,即使魔鬼放了更多的球,棍仍然是一个好的分界线。
魔鬼看到大侠已经学会了一个trick(方法、招式),于是魔鬼给了大侠一个新的挑战。
现在,大侠没有棍可以很好帮他分开两种球了,现在怎么办呢?当然像所有武侠片中一样大侠桌子一拍,球飞到空中。然后,凭借大侠的轻功,大侠抓起一张纸,插到了两种球的中间。也就是我们的核技巧。
现在,从空中的魔鬼的角度看这些球,这些球看起来像是被一条曲线分开了。也就是我们的线性不可分支持向量机。
再之后,无聊的大人们,把这些球叫做data,把棍子叫做classifier, 找到最大间隙的trick叫做optimization,拍桌子叫做kernelling, 那张纸叫做hyperplane。
二、支持向量机模型
模型就是分离超平面,与感知机那个超平面用来分离数据的超平面意义一样,不一样的是这里的分离超平面约束更多,使得分离超平面唯一且效果会更好。另外一点就是可以处理线性不可分的情形,使用核技巧对数据增加维度(特征空间不一定是升维),维度增加到一定程度总能找到分离超平面。当然核技巧也可以应用到感知机模型。
加了一个约束条件就是“分类间隔”最大化,使得分离超平面唯一且是最好的。
下面从最简单的线性可分支持向量机进行说明。
1、何为分类间隔
(1)函数间隔
在分离超平面 w x + b = 0 wx + b = 0 wx+b=0确定的情况下, ∣ w x + b ∣ |wx+b| ∣wx+b∣能够相对地表示点 x x x距离超平面的远近。很多地方直接说成是距离,其实不对的,就看二维平面也是说不通的,但是可以相对地表示远近。不过后文为了简便还是直接说成距离。而 w x + b wx+b wx+b的符号与类标记 y y y的符号是否一致能够表示分类是否正确。所以可用量 y ( w x + b ) y(wx+b) y(wx+b)来表示分类的正确性及确信度,这就是函数间隔。
对于给定的训练数据集T和超平面
(
w
,
b
)
(w,b)
(w,b),定义超平面
(
w
,
b
)
(w,b)
(w,b)关于样本点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)的函数间隔为:
(1)
γ
^
i
=
y
i
(
w
x
i
+
b
)
\hat{\gamma}_i = y_i(wx_i + b) \tag{1}
γ^i=yi(wxi+b)(1)
定义超平面
(
w
,
b
)
(w,b)
(w,b)关于训练数据集T的函数间隔为超平面
(
w
,
b
)
(w,b)
(w,b)关于T中所有样本点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)的函数间隔之最小值,即:
(2)
γ
^
=
m
i
n
i
=
1
,
⋯
 
,
N
γ
^
i
\hat{\gamma} = min_{i=1,\cdots,N}\space{\hat{\gamma}_i} \tag{2}
γ^=mini=1,⋯,N γ^i(2)
在分离超平面 w x + b = 0 wx + b = 0 wx+b=0确定的情况下,函数间隔可以表示分类预测的正确性及确信度。但是选择分离超平面时,只有函数间隔还远不够。因为只要成倍的改变w和b,函数间隔就会成倍变大或者变小,但此时分离超平面其实没有变化,这就使得在寻找最大化的分类间隔时不能用函数间隔来度量。这就需要我们把分离超平面的法向量w约束起来,如规范化, ∣ ∣ w ∣ ∣ = 1 ||w|| = 1 ∣∣w∣∣=1,使得超平面只对应一个间隔。那么将引出另外一个定义——几何间隔。
(2)几何间隔
对于给定的训练数据集T和超平面
(
w
,
b
)
(w,b)
(w,b),定义超平面
(
w
,
b
)
(w,b)
(w,b)关于样本点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)的几何间隔为:
(3)
γ
i
=
y
i
(
w
∣
∣
w
∣
∣
x
i
+
b
∣
∣
w
∣
∣
)
{\gamma}_i = y_i(\dfrac{w}{||w||}x_i + \dfrac{b}{||w||}) \tag{3}
γi=yi(∣∣w∣∣wxi+∣∣w∣∣b)(3)
定义超平面
(
w
,
b
)
(w,b)
(w,b)关于训练数据集T的几何间隔为超平面
(
w
,
b
)
(w,b)
(w,b)关于T中所有样本点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)的几何间隔之最小值,即:
(4)
γ
=
m
i
n
i
=
1
,
⋯
 
,
N
γ
i
{\gamma} = min_{i=1,\cdots,N}\space{{\gamma}_i} \tag{4}
γ=mini=1,⋯,N γi(4)
超平面
(
w
,
b
)
(w,b)
(w,b)关于样本点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)的几何间隔一般是实例点到超平面的带符号的距离,当样本点被超平面正确分类时就是实例点到超平面的距离。
模型的约束是“分类间隔”最大化,此时的几何间隔即可以用来作为分类间隔。
2、分类间隔最大化
支持向量机的策略就是最大化分类间隔,即最大化几何间隔。即下面的约束最优化问题:
max
w
,
b
γ
s
.
t
.
y
i
(
w
∣
∣
w
∣
∣
x
i
+
b
∣
∣
w
∣
∣
)
≥
γ
,
i
=
1
,
2
,
⋯
 
,
N
\begin{aligned} \max_{w,b}\space\space & \gamma \\ s.t. \space\space\space & y_i\left(\dfrac{w}{||w||}x_i + \dfrac{b}{||w||}\right) \geq \gamma,\space i = 1,2,\cdots ,N \end{aligned}
w,bmax s.t. γyi(∣∣w∣∣wxi+∣∣w∣∣b)≥γ, i=1,2,⋯,N
函数间隔和几何间隔的关系:
(5)
γ
i
=
γ
^
i
∣
∣
w
∣
∣
{\gamma}_i = \dfrac{\hat{\gamma}_i}{||w||}\tag{5}
γi=∣∣w∣∣γ^i(5)
(6)
γ
=
γ
^
∣
∣
w
∣
∣
{\gamma} = \dfrac{\hat{\gamma}}{||w||}\tag{6}
γ=∣∣w∣∣γ^(6)
则最优化问题等价为:
max
w
,
b
γ
^
∣
∣
w
∣
∣
s
.
t
.
y
i
(
w
x
i
+
b
)
≥
γ
^
,
i
=
1
,
2
,
⋯
 
,
N
\begin{aligned} \max_{w,b}\space\space & \dfrac{\hat{\gamma}}{||w||} \\ s.t. \space\space\space\space & y_i\left({w}x_i + {b}\right) \geq \hat{\gamma},\space i = 1,2,\cdots ,N \end{aligned}
w,bmax s.t. ∣∣w∣∣γ^yi(wxi+b)≥γ^, i=1,2,⋯,N
做两点变换,但不影响最优化问题:
- 取 γ ^ = 1 {\hat{\gamma}} = 1 γ^=1,因为对于任何一个超平面都可以使得其函数间隔为1,只要对w和b做相应的放大和缩小就行,另外取1可以使得计算最简单,当然不能为了简单取0;
- 最大化 1 ∣ ∣ w ∣ ∣ \dfrac{1}{||w||} ∣∣w∣∣1和最小化 1 2 ∣ ∣ w ∣ ∣ 2 \dfrac{1}{2}||w||^2 21∣∣w∣∣2是等价的。是为了算法求解简单,凸二次优化有成熟的工具,这样一求导数就只有 w w w了。
则最优化问题等价为:
min
w
,
b
1
2
∣
∣
w
∣
∣
2
(
7
)
s
.
t
.
1
−
y
i
(
w
x
i
+
b
)
≤
0
,
i
=
1
,
2
,
⋯
 
,
N
(
8
)
\begin{aligned} \min_{w,b}\space\space & \dfrac{1}{2}||w||^2&\space\space\space\space(7)\\ s.t. \space\space\space & 1 - y_i\left({w}x_i + {b}\right) \leq 0,\space i = 1,2,\cdots ,N &\space\space\space\space(8)\\ \end{aligned}
w,bmin s.t. 21∣∣w∣∣21−yi(wxi+b)≤0, i=1,2,⋯,N (7) (8)
线性可分支持向量机学习算法——最大间隔法
输入:线性可分训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T = \{(x_1,y_1),(x_2,y_2),\cdots ,(x_N,y_N)\} T={(x1,y1),(x2,y2),⋯,(xN,yN)},其中, x i ∈ R n , y i ∈ { − 1 , + 1 } , i = 1 , 2 , ⋯   , N x_i \in R^n,y_i \in \{-1,+1\},i =1,2,\cdots ,N xi∈Rn,yi∈{−1,+1},i=1,2,⋯,N;
输出:最大间隔分离超平面和分类决策函数。
(1)构造并求解约束最优化问题:
min
w
,
b
1
2
∣
∣
w
∣
∣
2
s
.
t
.
1
−
y
i
(
w
x
i
+
b
)
≤
0
,
i
=
1
,
2
,
⋯
 
,
N
\begin{aligned} \min_{w,b}\space\space & \dfrac{1}{2}||w||^2 \\ s.t. \space\space\space & 1 - y_i\left({w}x_i + {b}\right) \leq 0,\space i = 1,2,\cdots ,N \end{aligned}
w,bmin s.t. 21∣∣w∣∣21−yi(wxi+b)≤0, i=1,2,⋯,N
求得最优解
w
∗
,
b
∗
w^*,b^*
w∗,b∗。
(2)由此得到分离超平面:
w
∗
x
+
b
∗
=
0
w^* x + b^* = 0
w∗x+b∗=0
分类决策函数:
f
(
x
)
=
s
i
g
n
(
w
∗
x
+
b
∗
)
f(x) = sign(w^* x + b^*)
f(x)=sign(w∗x+b∗)
3、支持向量机中涉及的数学知识
需要求解的最优化问题:
min
w
,
b
1
2
∣
∣
w
∣
∣
2
s
.
t
.
1
−
y
i
(
w
x
i
+
b
)
≤
0
,
i
=
1
,
2
,
⋯
 
,
N
\begin{aligned} \min_{w,b}\space\space & \dfrac{1}{2}||w||^2 \\ s.t. \space\space\space & 1 - y_i\left({w}x_i + {b}\right) \leq 0,\space i = 1,2,\cdots ,N \end{aligned}
w,bmin s.t. 21∣∣w∣∣21−yi(wxi+b)≤0, i=1,2,⋯,N
(1)凸函数
在凸几何中,凸集(convex set)是在凸组合下闭合的放射空间的子集。看一幅图可能更容易理解:
左右量图都是一个集合。如果集合中任意2个元素连线上的点也在集合中,那么这个集合就是凸集。显然,上图中的左图是一个凸集,上图中的右图是一个非凸集。
凸函数的定义也是如此,其几何意义表示为函数任意两点连线上的值大于对应自变量处的函数值。对于凸子集C中任意两个向量
x
1
,
x
2
x_1,x_2
x1,x2有
f
(
(
x
1
+
x
2
)
/
2
)
≤
(
f
(
x
1
)
+
f
(
x
2
)
)
/
2
f((x_1 + x_2)/2) \leq (f(x_1) + f(x_2))/2
f((x1+x2)/2)≤(f(x1)+f(x2))/2成立。于是容易得出对于任意(0,1)中有理数
λ
\lambda
λ,有
f
(
λ
x
1
+
(
1
−
λ
)
x
2
)
)
≤
λ
f
(
x
1
)
+
(
1
−
λ
)
f
(
x
2
)
f(\lambda x_1 + (1-\lambda)x_2)) \leq \lambda f(x_1) + (1-\lambda)f(x_2)
f(λx1+(1−λ)x2))≤λf(x1)+(1−λ)f(x2)。再看一幅图,也许更容易理解:
像上图这样的函数,它整体就是一个非凸函数,我们无法获得全局最优解的,只能获得局部最优解。比如红框内的部分,如果单独拿出来,它就是一个凸函数。对于我们的目标函数:
min
w
,
b
1
2
∣
∣
w
∣
∣
2
\min_{w,b}\space\space \dfrac{1}{2}||w||^2
w,bmin 21∣∣w∣∣2
很显然,它是一个凸函数。
(2)常见最优化问题
- ( a ) (a) (a)无约束优化问题,可以写为: m i n f ( x ) min \space\space f(x) min f(x)
-
(
b
)
(b)
(b)有等式约束的优化问题,可以写为:
min f ( x ) s . t . h i ( x ) = 0 , i = 1 , 2 , ⋯   , N \begin{aligned} & \min \space\space f(x)\\ s.t. \space\space & h_i(x) = 0,i=1,2,\cdots ,N \end{aligned} s.t. min f(x)hi(x)=0,i=1,2,⋯,N -
(
c
)
(c)
(c)有等式和不等式约束的优化问题,可以写为:
min f ( x ) s . t . g i ( x ) ≤ 0 , i = 1 , 2 , ⋯   , N h j ( x ) = 0 , j = 1 , 2 , ⋯   , M \begin{aligned} & \min \space\space f(x)\\ s.t. \space\space & g_i(x) \leq 0,i = 1,2,\cdots , N\\ & h_j(x) = 0,j = 1,2,\cdots ,M\\ \end{aligned} s.t. min f(x)gi(x)≤0,i=1,2,⋯,Nhj(x)=0,j=1,2,⋯,M
对于第(a)类的优化问题,尝试使用的方法就是费马大定理(Fermat),即使用求取函数f(x)的导数,然后令其为零,可以求得候选最优值,再在这些候选值中验证;如果是凸函数,可以保证是最优解。这也就是我们高中经常使用的求函数的极值的方法。
对于第(b)类的优化问题,常常使用的方法就是拉格朗日乘子法(Lagrange Multiplier) ,即把等式约束 h i ( x ) h_i(x) hi(x)用一个系数与 f ( x ) f(x) f(x)写为一个式子,称为拉格朗日函数,而系数称为拉格朗日乘子。通过拉格朗日函数对各个变量求导,令其为零,可以求得候选值集合,然后验证求得最优值。
对于第 ( c ) (c) (c)类的优化问题,常常使用的方法就是KKT条件。同样地,我们把所有的等式、不等式约束与 f ( x ) f(x) f(x)写为一个式子,也叫拉格朗日函数,系数也称拉格朗日乘子,通过一些条件,可以求出最优值的充要条件,这个条件称为KKT条件。
如果条件A是结论B的充分条件:A与其他条件是并连关系,即A、C、D….中任意一个存在都可以使得B成立(就像是个人英雄主义),如下图:
用法推导:
- 如果条件A存在,B肯定成立,即A→B(箭头表示能够推导出)
- 如果B不成立,则说明所有可能的条件都不存在,因此A肯定也不存在,即非B→非A
- 如果条件A不存在,而条件C、D可能存在,也可以使得B成立,即不能导出非A→非B
条件A是结论B的必要条件:A与其他条件是串联关系,即条件A必须存在,且条件C、D….也全部存在才可能导致B结论。(团结的力量)如下图:
用法推导:
- 如果B成立了,说明所有条件都存在,肯定存在条件A。即B→A。
- 如果条件A不存在,串联少了一个条件,B也肯定不能成立,即 非A→非B。
- 如果B不成立,可能是C,D不存在但A存在,只是C、D掉链子了,即不能导出 非B→非A。
(3)拉格朗日函数
一个最优化模型能够表示成下列标准形式:
min
f
(
x
)
s
.
t
.
g
i
(
x
)
≤
0
,
i
=
1
,
2
,
⋯
 
,
N
h
j
(
x
)
=
0
,
j
=
1
,
2
,
⋯
 
,
M
\begin{aligned} & \min \space\space f(x)\\ s.t. \space\space & g_i(x) \leq 0,i = 1,2,\cdots ,N\\ & h_j(x) = 0,j = 1,2,\cdots ,M\\ \end{aligned}
s.t. min f(x)gi(x)≤0,i=1,2,⋯,Nhj(x)=0,j=1,2,⋯,M
则其广义拉格朗日函数为:
L
(
x
,
α
,
β
)
=
f
(
x
)
+
∑
i
=
1
N
α
i
g
i
(
x
)
+
∑
j
=
1
M
β
j
h
j
(
x
)
L(x,\alpha,\beta) = f(x) + \sum_{i =1}^N \alpha_i g_i(x) + \sum_{j=1}^M \beta_j h_j(x)
L(x,α,β)=f(x)+i=1∑Nαigi(x)+j=1∑Mβjhj(x)
- f ( x ) f(x) f(x)可微
(4)KKT条件
∇ x L ( x ∗ , α ∗ , β ∗ ) = 0 ( a ) ∇ α L ( x ∗ , α ∗ , β ∗ ) = 0 ( b ) ∇ β L ( x ∗ , α ∗ , β ∗ ) = 0 ( c ) α i ∗ g i ( x ∗ ) = 0 , i = 1 , 2 , ⋯   , N ( d ) g i ( x ∗ ) ≤ 0 , i = 1 , 2 , ⋯   , N ( e ) α i ∗ ≥ 0 , i = 1 , 2 , ⋯   , N ( f ) h j ( x ∗ ) = 0 , j = 1 , 2 , ⋯   , m ( g ) \begin{aligned} & \nabla_x L(x^*,\alpha^*,\beta^*) = 0 &\space\space\space\space(a)\\ & \nabla_{\alpha} L(x^*,\alpha^*,\beta^*) = 0 &\space\space\space\space(b)\\ & \nabla_{\beta} L(x^*,\alpha^*,\beta^*) = 0 &\space\space\space\space(c)\\ & \alpha_i^* g_i(x^*) = 0 ,\space\space i = 1,2,\cdots ,N &\space\space\space\space(d)\\ & g_i(x^*) \leq 0 ,\space\space i = 1,2,\cdots ,N &\space\space\space\space(e)\\ & \alpha_i^* \geq 0 ,\space\space i = 1,2,\cdots ,N &\space\space\space\space(f)\\ & h_j(x^*) = 0 ,\space\space j = 1,2,\cdots ,m &\space\space\space\space(g)\\ \end{aligned} ∇xL(x∗,α∗,β∗)=0∇αL(x∗,α∗,β∗)=0∇βL(x∗,α∗,β∗)=0αi∗gi(x∗)=0, i=1,2,⋯,Ngi(x∗)≤0, i=1,2,⋯,Nαi∗≥0, i=1,2,⋯,Nhj(x∗)=0, j=1,2,⋯,m (a) (b) (c) (d) (e) (f) (g)
- 条件(a)为原函数在切点的法向量被约束曲线在该点的法向量线性表示
- 条件(b)(c)表示最优解落在约束条件所在的曲线上
- 条件(d)最优解在约束曲线上时,其表达式为0,若不在某条约束曲线上,为了使最后的结果为0,其系数必须为0,从而使不产生作用的曲线在计算时不产生作用。该条件也称为KKT的对偶互补条件。
- 条件(e)为约束条件的表达形式,都是小于等于的形式
- 条件(f)使得原函数的法向量与约束曲线的法向量在切点处异号
- 条件(g)为等式约束的形式
(5)拉格朗日对偶性
L
(
x
,
α
,
β
)
=
f
(
x
)
+
∑
i
=
1
N
α
i
g
i
(
x
)
+
∑
j
=
1
M
β
j
h
j
(
x
)
L(x,\alpha,\beta) = f(x) + \sum_{i =1}^N \alpha_i g_i(x) + \sum_{j=1}^M \beta_j h_j(x)
L(x,α,β)=f(x)+i=1∑Nαigi(x)+j=1∑Mβjhj(x)
通过拉格朗日乘法,把约束条件加上新的变量构成了一个新的函数,虽然新的函数中变量变多了,但是没有了限制条件。
考虑x的函数(下标P表示原始问题):
θ
P
(
x
)
=
max
α
,
β
:
α
i
≥
0
L
(
x
,
α
,
β
)
\theta_P(x) = \max_{\alpha,\beta:\alpha_i \geq 0}L(x,\alpha,\beta)
θP(x)=α,β:αi≥0maxL(x,α,β)
这个max的意义是在于,我们将所有的x样本根据取值的不同分成了满足条件和不满足条件的两部分,用函数的取值代替了原来的约束条件。现在这个 θ P ( x ) \theta_P(x) θP(x)是x的函数,给定某一个x,我们让 θ P ( x ) \theta_P(x) θP(x) 取最大,只要根据x的取值情况来调整其系数 α , β \alpha,\beta α,β 即可。x的取值情况有两种:
- 满足原始问题的约束,这种情况下 g i ( x ) ≤ 0 , h j ( x ) = 0 g_i(x) \leq 0,h_j(x) = 0 gi(x)≤0,hj(x)=0,并且 α i ≥ 0 \alpha_i \geq 0 αi≥0,那我们只要让 g i g_i gi的拉格朗日系数 α \alpha α为0,就能得到最大的结果 f ( x ) f(x) f(x)。
- 不满足原始问题的约束,这种情况下要么 g i ( x ) > 0 或 者 h j ( x ) ̸ = 0 g_i(x) > 0或者h_j(x) \not= 0 gi(x)>0或者hj(x)̸=0,那我们就能通过改变 α , β \alpha,\beta α,β使得 θ P ( x ) \theta_P(x) θP(x)取到正无穷。
所以我们就有如下的式子:
θ
P
(
x
)
=
{
f
(
x
)
,
x
满
足
原
始
问
题
的
约
束
+
∞
,
x
其
他
\theta_P(x) = \begin{cases} f(x), & x满足原始问题的约束 \\[2ex] +\infty, & x其他 \end{cases}
θP(x)=⎩⎨⎧f(x),+∞,x满足原始问题的约束x其他
再考虑极小化问题:
min
x
θ
P
(
x
)
=
min
x
max
α
,
β
:
α
i
≥
0
L
(
x
,
α
,
β
)
\min_x \theta_P(x) = \min_x \max_{\alpha,\beta:\alpha_i \geq 0}L(x,\alpha,\beta)
xminθP(x)=xminα,β:αi≥0maxL(x,α,β)
这个问题的解和原问题是等价的,即它和原始问题(带有约束条件的f(x)最小化问题)有着相同的解。因为对
θ
P
(
x
)
\theta_P(x)
θP(x)取最小值,就是对f(x)取最小值。如果我们定义原始问题的最优解为
p
∗
p^*
p∗,那我们也有:
p
∗
=
min
x
θ
P
(
x
)
p^* = \min_x \theta_P(x)
p∗=xminθP(x)
到这里,我们就将原来带有约束条件的极小化问题,变成了不带约束条件的极小极大问题。到这一步我们还是无法求解,所以我们引入对偶问题,将极小极大问题转化为极大极小问题。
(6)对偶问题
定义:
θ
D
(
α
,
β
)
=
min
x
L
(
x
,
α
,
β
)
\theta_D(\alpha,\beta) = \min_x L(x,\alpha,\beta)
θD(α,β)=xminL(x,α,β)
然后极大化
θ
D
\theta_D
θD:
max
α
,
β
θ
D
(
α
,
β
)
=
max
α
,
β
min
x
L
(
x
,
α
,
β
)
s
.
t
.
α
i
≥
0
,
i
=
1
,
2
,
⋯
 
,
N
\max_{\alpha,\beta} \theta_D(\alpha,\beta) = \max_{\alpha,\beta} \min_x L(x,\alpha,\beta) \space\space s.t. \space\space \alpha_i \geq 0,\space i =1,2,\cdots ,N
α,βmaxθD(α,β)=α,βmaxxminL(x,α,β) s.t. αi≥0, i=1,2,⋯,N
之前我们是先求极大值,再求极小值,先求极大值的好处是可以根据结果将数据分为满足条件和不满足条件的两部分,然后再对结果求最小,即变成了对满足条件的x求最小值还原了原始问题。现在我们反过来,先求极小值再求极大值,将该问题成为原始问题的对偶问题,定义对偶问题的最优值:
d
∗
=
max
α
,
β
θ
D
(
α
,
β
)
d^* = \max_{\alpha,\beta} \theta_D(\alpha,\beta)
d∗=α,βmaxθD(α,β)
- 原始问题先固定x,求最优化(极大化)的 α , β \alpha,\beta α,β的解,再确定x(通过极小化)
- 对偶问题是先固定 α , β \alpha,\beta α,β,求最优化(极小化)的x的解,在确定 α , β \alpha,\beta α,β(通过极大化)
原始问题与对偶问题的关系
我们要求原始问题的最优解,现在转化成了对偶问题的最优解,这两个解有什么关系呢,我们最想看到的就是这两个解是等价的,这样直接解对偶问题就行。
若原始问题和对偶问题都有最优值,则:
d
∗
=
max
α
,
β
min
x
L
(
x
,
α
,
β
)
≤
min
x
max
α
,
β
:
α
i
≥
0
L
(
x
,
α
,
β
)
=
p
∗
d^* = \max_{\alpha,\beta} \min_x L(x,\alpha,\beta) \leq \min_x \max_{\alpha,\beta:\alpha_i \geq 0}L(x,\alpha,\beta) = p^*
d∗=α,βmaxxminL(x,α,β)≤xminα,β:αi≥0maxL(x,α,β)=p∗
证明:
对于任意的
x
,
α
,
β
x,\alpha,\beta
x,α,β有:
min
x
L
(
x
,
α
,
β
)
≤
L
(
x
,
α
,
β
)
≤
max
α
,
β
:
α
i
≥
0
L
(
x
,
α
,
β
)
\min_x L(x,\alpha,\beta) \leq L(x,\alpha,\beta) \leq \max_{\alpha,\beta:\alpha_i \geq 0}L(x,\alpha,\beta)
xminL(x,α,β)≤L(x,α,β)≤α,β:αi≥0maxL(x,α,β)
所以有:
min
x
L
(
x
,
α
,
β
)
≤
max
α
,
β
:
α
i
≥
0
L
(
x
,
α
,
β
)
\min_x L(x,\alpha,\beta) \leq \max_{\alpha,\beta:\alpha_i \geq 0}L(x,\alpha,\beta)
xminL(x,α,β)≤α,β:αi≥0maxL(x,α,β)
因为上述式子是在任意条件下的
x
,
α
,
β
x,\alpha,\beta
x,α,β,最大最小是任意条件中的特殊情况,所以我们有:
d
∗
=
max
α
,
β
min
x
L
(
x
,
α
,
β
)
≤
min
x
max
α
,
β
:
α
i
≥
0
L
(
x
,
α
,
β
)
=
p
∗
d^* = \max_{\alpha,\beta} \min_x L(x,\alpha,\beta) \leq \min_x \max_{\alpha,\beta:\alpha_i \geq 0}L(x,\alpha,\beta) = p^*
d∗=α,βmaxxminL(x,α,β)≤xminα,β:αi≥0maxL(x,α,β)=p∗
即对偶问题的解小于等于原始问题的解
d
∗
≤
p
∗
d^* \leq p^*
d∗≤p∗。只有当等号成立的时候我们才能通过对偶问题来解决原始问题,那什么时候等式成立呢?那就是我们上述所说的KKT条件满足的时候。
4、线性可分支持向量机的优化
min
w
,
b
1
2
∣
∣
w
∣
∣
2
s
.
t
.
1
−
y
i
(
w
x
i
+
b
)
≤
0
,
i
=
1
,
2
,
⋯
 
,
N
\begin{aligned} \min_{w,b}\space\space & \dfrac{1}{2}||w||^2 \\ s.t. \space\space\space & 1 - y_i\left({w}x_i + {b}\right) \leq 0,\space i = 1,2,\cdots ,N \end{aligned}
w,bmin s.t. 21∣∣w∣∣21−yi(wxi+b)≤0, i=1,2,⋯,N
根据凸函数的定义,我们的目标函数是凸函数,由于有不等式约束,我们的优化问题属于(c)类优化问题,需要使用KKT条件。
把约束问题转化为不带约束的优化问题,注意下对于支持向量机的优化,需要寻找最优的是参数
w
,
b
w,b
w,b,则拉格朗日函数为:
(9)
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
+
∑
i
=
1
N
α
i
(
1
−
y
i
(
w
x
i
+
b
)
)
L(w,b,\alpha) = \dfrac{1}{2}||w||^2 + \sum_{i=1}^N \alpha_i (1 - y_i\left({w}x_i + {b}\right)) \tag{9}
L(w,b,α)=21∣∣w∣∣2+i=1∑Nαi(1−yi(wxi+b))(9)
w
∗
,
b
∗
,
α
∗
w^*,b^*,\alpha^*
w∗,b∗,α∗为拉格朗日函数最优解,则KKT条件为:
∇
w
L
(
w
∗
,
b
∗
,
α
∗
)
=
0
(
a
a
)
∇
b
L
(
w
∗
,
b
∗
,
α
∗
)
=
0
(
b
b
)
∇
α
L
(
w
∗
,
b
∗
,
α
∗
)
=
0
(
c
c
)
α
i
∗
(
1
−
y
i
(
w
∗
x
i
+
b
∗
)
)
=
0
,
i
=
1
,
2
,
⋯
 
,
N
(
d
d
)
1
−
y
i
(
w
∗
x
i
+
b
∗
)
≤
0
,
i
=
1
,
2
,
⋯
 
,
N
(
e
e
)
α
i
∗
≥
0
,
i
=
1
,
2
,
⋯
 
,
N
(
f
f
)
\begin{aligned} & \nabla_w L(w^*,b^*,\alpha^*) = 0 &\space\space\space\space(aa)\\ & \nabla_b L(w^*,b^*,\alpha^*) = 0 &\space\space\space\space(bb)\\ & \nabla_{\alpha} L(w^*,b^*,\alpha^*) = 0 &\space\space\space\space(cc)\\ & \alpha_i^* \left(1 - y_i({w^*}x_i + {b^*})\right) = 0 ,\space\space i = 1,2,\cdots ,N &\space\space\space\space(dd)\\ & 1 - y_i({w^*}x_i + {b^*}) \leq 0 ,\space\space i = 1,2,\cdots ,N &\space\space\space\space(ee)\\ & \alpha_i^* \geq 0 ,\space\space i = 1,2,\cdots ,N &\space\space\space\space(ff)\\ \end{aligned}
∇wL(w∗,b∗,α∗)=0∇bL(w∗,b∗,α∗)=0∇αL(w∗,b∗,α∗)=0αi∗(1−yi(w∗xi+b∗))=0, i=1,2,⋯,N1−yi(w∗xi+b∗)≤0, i=1,2,⋯,Nαi∗≥0, i=1,2,⋯,N (aa) (bb) (cc) (dd) (ee) (ff)
根据拉格朗日函数对偶性定义:
θ
P
(
w
,
b
)
=
max
α
i
≥
0
L
(
w
,
b
,
α
)
\theta_P(w,b) = \max_{\alpha_i \geq 0}L(w,b,\alpha)
θP(w,b)=αi≥0maxL(w,b,α)
θ
P
(
w
,
b
)
=
{
1
2
∣
∣
w
∣
∣
2
,
w
,
b
满
足
原
始
问
题
的
约
束
+
∞
,
w
,
b
其
他
\theta_P(w,b) = \begin{cases} \dfrac{1}{2}||w||^2, & w,b满足原始问题的约束 \\[2ex] +\infty, & w,b其他 \end{cases}
θP(w,b)=⎩⎪⎨⎪⎧21∣∣w∣∣2,+∞,w,b满足原始问题的约束w,b其他
min
w
,
b
θ
P
(
w
,
b
)
=
min
w
,
b
max
α
i
≥
0
L
(
w
,
b
,
α
)
\min_{w,b} \theta_P(w,b) = \min_{w,b} \max_{\alpha_i \geq 0}L(w,b,\alpha)
w,bminθP(w,b)=w,bminαi≥0maxL(w,b,α)
如果我们定义原始问题的最优解为
p
∗
p^*
p∗,那有:
p
∗
=
min
w
,
b
θ
P
(
w
,
b
)
p^* = \min_{w,b} \theta_P(w,b)
p∗=w,bminθP(w,b)
到这里,我们就将原来带有约束条件的极小化问题,变成了不带约束条件的极小极大问题。到这一步我们还是无法求解,所以我们引入对偶问题,将极小极大问题转化为极大极小问题。
求解原问题的对偶问题
定义:
θ
D
(
α
)
=
min
w
,
b
L
(
w
,
b
,
α
)
\theta_D(\alpha) = \min_{w,b} L(w,b,\alpha)
θD(α)=w,bminL(w,b,α)
然后极大化
θ
D
\theta_D
θD:
max
α
θ
D
(
α
)
=
max
α
min
w
,
b
L
(
w
,
b
,
α
)
s
.
t
.
α
i
≥
0
,
i
=
1
,
2
,
⋯
 
,
N
\max_{\alpha} \theta_D(\alpha) = \max_{\alpha} \min_{w,b} L(w,b,\alpha) \space\space\space s.t. \space\space \alpha_i \geq 0,\space i =1,2,\cdots ,N
αmaxθD(α)=αmaxw,bminL(w,b,α) s.t. αi≥0, i=1,2,⋯,N
定义对偶问题的最优值:
d
∗
=
max
α
θ
D
(
α
)
d^* = \max_{\alpha} \theta_D(\alpha)
d∗=αmaxθD(α)
根据原问题与对偶问题的关系有:
d
∗
=
max
α
min
w
,
b
L
(
w
,
b
,
α
)
≤
min
w
,
b
max
α
i
≥
0
L
(
w
,
b
,
α
)
=
p
∗
d^* = \max_{\alpha} \min_{w,b} L(w,b,\alpha) \leq \min_{w,b} \max_{\alpha_i \geq 0}L(w,b,\alpha) = p^*
d∗=αmaxw,bminL(w,b,α)≤w,bminαi≥0maxL(w,b,α)=p∗
所以支持向量机的最优化问题变成求解其对偶问题。
5、线性可分支持向量机对偶问题的求解
支持向量机优化的对偶问题:
(10)
d
∗
=
max
α
min
w
,
b
L
(
w
,
b
,
α
)
s
.
t
.
α
i
≥
0
,
i
=
1
,
2
,
⋯
 
,
N
d^* = \max_{\alpha} \min_{{\bf w},b} L({\bf w},b,\alpha) \space\space\space s.t. \space\space \alpha_i \geq 0,\space i =1,2,\cdots ,N \tag{10}
d∗=αmaxw,bminL(w,b,α) s.t. αi≥0, i=1,2,⋯,N(10)
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
+
∑
i
=
1
N
α
i
(
1
−
y
i
(
w
x
i
+
b
)
)
L(w,b,\alpha) = \dfrac{1}{2}||{\bf w}||^2 + \sum_{i=1}^N \alpha_i (1 - y_i\left({{\bf w}}{\bf x_i} + {b}\right))
L(w,b,α)=21∣∣w∣∣2+i=1∑Nαi(1−yi(wxi+b))
(1)求解对偶问题的内层
固定
α
\alpha
α,要让
L
(
w
,
b
,
α
)
L(w,b,\alpha)
L(w,b,α)关于w和b最小化,我们分别对w和b偏导数,令其等于0,即使用KKT条件中(aa)(bb)有:
(11)
∇
w
L
(
w
,
b
,
α
)
=
0
⇒
w
=
∑
i
=
1
N
α
i
y
i
x
i
T
\nabla_w L({\bf w},b,\alpha) = 0 \Rightarrow {\bf w} = \sum_{i=1}^N \alpha_i y_i {\bf x_i}^T \tag{11}
∇wL(w,b,α)=0⇒w=i=1∑NαiyixiT(11)
统计学习方法这里直接用的
x
i
x_i
xi,为了严谨点,这里需要用的
x
i
T
x_i^T
xiT。推荐参考向量的求导。
(12)
∇
b
L
(
w
,
b
,
α
)
=
0
⇒
∑
i
=
1
N
α
i
y
i
=
0
\nabla_b L({\bf w},b,\alpha) = 0 \Rightarrow \sum_{i=1}^N \alpha_i y_i = 0 \tag{12}
∇bL(w,b,α)=0⇒i=1∑Nαiyi=0(12)
将上述结果代回
L
(
w
,
b
,
α
)
L(w,b,\alpha)
L(w,b,α)得到:
(13)
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
+
∑
i
=
1
N
α
i
(
1
−
y
i
(
w
x
i
+
b
)
)
=
1
2
w
⋅
w
T
−
w
∑
i
=
1
N
α
i
y
i
x
i
−
b
∑
i
=
1
N
α
i
y
i
+
∑
i
=
1
N
α
i
=
1
2
w
∑
i
=
1
N
α
i
y
i
x
i
−
w
∑
i
=
1
N
α
i
y
i
x
i
−
b
⋅
0
+
∑
i
=
1
N
α
i
=
−
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
T
⋅
x
j
)
+
∑
i
=
1
N
α
i
\begin{aligned}L(w,b,\alpha) & = \dfrac{1}{2}||{\bf w}||^2 + \sum_{i=1}^N \alpha_i (1 - y_i\left({{\bf w}}{\bf x_i} + {b}\right))\\ & = \dfrac{1}{2}{\bf w}\cdot {\bf w}^T - {\bf w}\sum_{i=1}^N \alpha_i y_i {\bf x_i} - b\sum_{i=1}^N \alpha_i y_i + \sum_{i=1}^N \alpha_i \\ & = \dfrac{1}{2}{\bf w}\sum_{i=1}^N \alpha_i y_i {\bf x_i}- {\bf w}\sum_{i=1}^N \alpha_i y_i {\bf x_i} - b\cdot 0 + \sum_{i=1}^N \alpha_i \\ & = -\dfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N \alpha_i \alpha_j y_i y_j ({\bf x_i}^T \cdot {\bf x_j}) + \sum_{i=1}^N \alpha_i \tag{13} \end{aligned}
L(w,b,α)=21∣∣w∣∣2+i=1∑Nαi(1−yi(wxi+b))=21w⋅wT−wi=1∑Nαiyixi−bi=1∑Nαiyi+i=1∑Nαi=21wi=1∑Nαiyixi−wi=1∑Nαiyixi−b⋅0+i=1∑Nαi=−21i=1∑Nj=1∑Nαiαjyiyj(xiT⋅xj)+i=1∑Nαi(13)
(2)求解对偶问题的外层
现在内侧的最小值求解完成,我们求解外侧的最大值,从上面的式子得到:
max
α
−
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
T
⋅
x
j
)
+
∑
i
=
1
N
α
i
s
.
t
.
α
i
≥
0
,
i
=
1
,
2
,
⋯
 
,
N
∑
i
=
1
N
α
i
y
i
=
0
\begin{aligned}\max_{\alpha} \space &-\dfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N \alpha_i \alpha_j y_i y_j ({\bf x_i}^T \cdot {\bf x_j}) + \sum_{i=1}^N \alpha_i \\ s.t. \space\space & \alpha_i \geq 0,i=1,2,\cdots ,N\\ & \sum_{i=1}^N \alpha_i y_i = 0 \end{aligned}
αmax s.t. −21i=1∑Nj=1∑Nαiαjyiyj(xiT⋅xj)+i=1∑Nαiαi≥0,i=1,2,⋯,Ni=1∑Nαiyi=0
上面求解问题等价为下面的最优化问题:
min
α
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
T
⋅
x
j
)
−
∑
i
=
1
N
α
i
(
14
)
s
.
t
.
α
i
≥
0
,
i
=
1
,
2
,
⋯
 
,
N
(
15
)
∑
i
=
1
N
α
i
y
i
=
0
(
16
)
\begin{aligned}\min_{\alpha} \space &\dfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N \alpha_i \alpha_j y_i y_j ({\bf x_i}^T \cdot {\bf x_j}) - \sum_{i=1}^N \alpha_i &\space\space\space\space(14)\\ s.t. \space\space & \alpha_i \geq 0,i=1,2,\cdots ,N &\space\space\space\space(15)\\ & \sum_{i=1}^N \alpha_i y_i = 0 &\space\space\space\space(16) \end{aligned}
αmin s.t. 21i=1∑Nj=1∑Nαiαjyiyj(xiT⋅xj)−i=1∑Nαiαi≥0,i=1,2,⋯,Ni=1∑Nαiyi=0 (14) (15) (16)
求得
d
∗
=
max
α
θ
D
(
α
)
的
最
优
解
为
α
∗
d^* = \max_{\alpha} \theta_D(\alpha)的最优解为 \alpha^*
d∗=maxαθD(α)的最优解为α∗
则根据KKT条件能求得:
w
∗
=
∑
i
=
1
N
α
i
∗
y
i
x
i
T
b
∗
=
y
j
−
∑
i
=
1
N
α
i
∗
y
i
(
x
i
T
⋅
x
j
)
\begin {aligned} & w^* = \sum_{i=1}^N \alpha_i^* y_i {\bf x_i}^T \\ & b^* = y_j - \sum_{i=1}^N \alpha_i^* y_i({\bf x_i}^T\cdot {\bf x_j}) \end{aligned}
w∗=i=1∑Nαi∗yixiTb∗=yj−i=1∑Nαi∗yi(xiT⋅xj)
证明:
由KKT条件有:
∇
w
L
(
w
∗
,
b
∗
,
α
∗
)
=
w
∗
−
∑
i
=
1
N
α
i
∗
y
i
x
i
T
=
0
∇
b
L
(
w
∗
,
b
∗
,
α
∗
)
=
−
∑
i
=
1
N
α
i
∗
y
i
=
0
α
i
∗
(
1
−
y
i
(
w
∗
x
i
+
b
∗
)
)
=
0
,
i
=
1
,
2
,
⋯
 
,
N
1
−
y
i
(
w
∗
x
i
+
b
∗
)
≤
0
,
i
=
1
,
2
,
⋯
 
,
N
α
i
∗
≥
0
,
i
=
1
,
2
,
⋯
 
,
N
\begin{aligned} & \nabla_w L({\bf w}^*,b^*,\alpha^*) = {\bf w}^* - \sum_{i=1}^N \alpha_i^* y_i {\bf x_i}^T =0\\ & \nabla_b L({\bf w}^*,b^*,\alpha^*) = -\sum_{i=1}^N \alpha_i^* y_i = 0 \\ & \alpha_i^* \left(1 - y_i({{\bf w}^*}{\bf x_i} + {b^*})\right) = 0 ,\space\space i = 1,2,\cdots ,N \\ & 1 - y_i({{\bf w}^*}{\bf x_i} + {b^*}) \leq 0 ,\space\space i = 1,2,\cdots ,N \\ & \alpha_i^* \geq 0 ,\space\space i = 1,2,\cdots ,N \\ \end{aligned}
∇wL(w∗,b∗,α∗)=w∗−i=1∑Nαi∗yixiT=0∇bL(w∗,b∗,α∗)=−i=1∑Nαi∗yi=0αi∗(1−yi(w∗xi+b∗))=0, i=1,2,⋯,N1−yi(w∗xi+b∗)≤0, i=1,2,⋯,Nαi∗≥0, i=1,2,⋯,N
由此可得
w
∗
=
∑
i
=
1
N
α
i
∗
y
i
x
i
T
w^* = \sum_{i=1}^N \alpha_i^* y_i {\bf x_i}^T
w∗=∑i=1Nαi∗yixiT
其中至少有一个
α
j
∗
>
0
\alpha_j^* >0
αj∗>0(用反证法,假设
α
∗
=
0
\alpha^* = 0
α∗=0,由上式可知
w
∗
=
0
w^* = 0
w∗=0,而
w
∗
=
0
w^* = 0
w∗=0不是原始最优化问题的解,产生矛盾),对此j有:
y
j
(
w
∗
⋅
x
j
+
b
∗
)
−
1
=
0
y
j
(
∑
i
=
1
N
α
i
∗
y
i
x
i
T
⋅
x
j
+
b
∗
)
−
1
=
0
y
j
×
y
j
(
∑
i
=
1
N
α
i
∗
y
i
x
i
T
⋅
x
j
+
b
∗
)
−
y
j
=
0
\begin{aligned} & y_j({\bf w}^* \cdot {\bf x_j} + b^*) -1 =0\\ & y_j(\sum_{i=1}^N \alpha_i^* y_i {\bf x_i}^T \cdot {\bf x_j} + b^*) -1 =0\\ & y_j\times y_j(\sum_{i=1}^N \alpha_i^* y_i {\bf x_i}^T \cdot {\bf x_j} + b^*) -y_j =0\\ \end{aligned}
yj(w∗⋅xj+b∗)−1=0yj(i=1∑Nαi∗yixiT⋅xj+b∗)−1=0yj×yj(i=1∑Nαi∗yixiT⋅xj+b∗)−yj=0
因为有
y
j
2
=
1
y_j^2 =1
yj2=1,则可求得:
b
∗
=
y
j
−
∑
i
=
1
N
α
i
∗
y
i
(
x
i
T
⋅
x
j
)
b^* = y_j - \sum_{i=1}^N \alpha_i^* y_i({\bf x_i}^T\cdot {\bf x_j})
b∗=yj−i=1∑Nαi∗yi(xiT⋅xj)
则最终求得的分类决策函数可以写成:
f
(
x
)
=
s
i
g
n
(
∑
i
=
1
N
α
i
∗
y
i
x
i
T
⋅
x
+
b
∗
)
f(x) = sign\left(\sum_{i=1}^N \alpha_i^* y_i {\bf x_i}^T \cdot{\bf x} + b^* \right)
f(x)=sign(i=1∑Nαi∗yixiT⋅x+b∗)
也就是说明向量机的最优求解问题最终变成了求解 α ∗ \alpha^* α∗。目标函数本来可以挺简单的直接求解 ∣ w ∣ |w| ∣w∣的最小值即可,现在变得这么复杂 min α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i T ⋅ x j ) − ∑ i = 1 N α i \min_{\alpha} \space \dfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N \alpha_i \alpha_j y_i y_j ({\bf x_i}^T \cdot {\bf x_j}) - \sum_{i=1}^N \alpha_i minα 21∑i=1N∑j=1Nαiαjyiyj(xiT⋅xj)−∑i=1Nαi目的就是为了减少计算量,加快计算速度。因为变成这种形式,将可以使用一种更高效的的求解方法SMO算法。何为SMO静待后文分析。不过要先说明另外两个问题,前文所有的分析都是基于数据线性可分的情况下推导的,此时求得的最大分类间隔为硬间隔,但实际中数据往往线性不可分或者非线性可分较多。那么需要做两件事,第一是允许有异类,但是对异类有惩罚;第二,通过核函数增维数据,变成线性可分。
三、线性支持向量机
数据集完全线性可分时的优化问题:
min
w
,
b
1
2
∣
∣
w
∣
∣
2
s
.
t
.
y
i
(
w
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
⋯
 
,
N
\begin{aligned} \min_{{\bf w},b}\space\space & \dfrac{1}{2}||{\bf w}||^2 \\ s.t. \space\space\space & y_i\left({\bf w}{\bf x_i} + {b}\right) \geq 1,\space i = 1,2,\cdots ,N \end{aligned}
w,bmin s.t. 21∣∣w∣∣2yi(wxi+b)≥1, i=1,2,⋯,N
通常情况下,训练数据中有一些特异点,将这些特异点除去后,剩下大部分的样本点组成的集合是线性可分的。
线性不可分意味着某些样本点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)不能满足函数间隔大于等于1的约束条件。为了解决这个问题,可以对每个样本点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)引进一个松弛变量
ξ
i
≥
0
\xi_i \geq 0
ξi≥0,使函数间隔加上松弛变量大于等于1.这样,约束条件变为:
y
i
(
w
x
i
+
b
)
≥
1
−
ξ
i
,
i
=
1
,
2
,
⋯
 
,
N
y_i\left({\bf w}{\bf x_i} + {b}\right) \geq 1 - \xi_i,\space i = 1,2,\cdots ,N
yi(wxi+b)≥1−ξi, i=1,2,⋯,N
对于每一特异点虽然也让它入伙,但是需要支付额外的代价,即松弛变量
ξ
i
×
1
\xi_i \times 1
ξi×1,目标函数由原来的
1
2
∣
∣
w
∣
∣
2
\dfrac {1}{2}||w||^2
21∣∣w∣∣2变成:
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
N
ξ
i
\dfrac {1}{2}||{\bf w}||^2 + C \sum_{i=1}^N \xi_i
21∣∣w∣∣2+Ci=1∑Nξi
这里,
C
>
0
C>0
C>0为惩罚参数,一般由应用问题决定,C值大时对误分类的惩罚增大,使得选择
∣
w
∣
|w|
∣w∣更小的分离超平面,容易过拟合。C值小时对误分类的惩罚减小,则在预测的时候可能容易预测错。实际中可以交叉验证来选择合适的C值。
1、线性支持向量机目标函数
线性不可分的线性支持向量机的学习问题变成如下凸二次规划问题
min
w
,
b
,
ξ
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
N
ξ
i
(
17
)
s
.
t
.
1
−
ξ
i
−
y
i
(
w
x
i
+
b
)
≤
0
,
i
=
1
,
2
,
⋯
 
,
N
(
18
)
−
ξ
i
≤
0
,
i
=
1
,
2
,
⋯
 
,
N
(
19
)
\begin{aligned} \min_{{\bf w},b,\xi}\space\space &\dfrac {1}{2}||{\bf w}||^2 + C \sum_{i=1}^N \xi_i &\space\space\space\space(17)\\ s.t. \space\space & 1 -\xi_i - y_i\left({\bf w}{\bf x_i} + {b}\right) \leq 0,\space i = 1,2,\cdots ,N &\space\space\space\space(18)\\ & -\xi_i \leq 0, i =1,2,\cdots,N&\space\space\space\space(19) \end{aligned}
w,b,ξmin s.t. 21∣∣w∣∣2+Ci=1∑Nξi1−ξi−yi(wxi+b)≤0, i=1,2,⋯,N−ξi≤0,i=1,2,⋯,N (17) (18) (19)
2、拉格朗日函数
(20) L ( w , b , ξ , α , μ ) = 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 L({\bf w},b,\xi,\alpha,\mu) = \dfrac{1}{2}||{\bf w}||^2 + C\sum_{i=1}^N \xi_i + \sum_{i=1}^N \alpha_i \left(1- \xi_i - y_i({\bf w}{\bf x_i} + b)\right) - \sum_{i=1}^N \mu_i \xi_i \tag{20} L(w,b,ξ,α,μ)=21∣∣w∣∣2+Ci=1∑Nξi+i=1∑Nαi(1−ξi−yi(wxi+b))−i=1∑Nμiξi(20)
3、KKT条件
∇ w L ( w ∗ , b ∗ , ξ ∗ , α ∗ , μ ∗ ) = w ∗ − ∑ i = 1 N α i ∗ y i x i T = 0 ( k 1 ) ∇ b L ( w ∗ , b ∗ , ξ ∗ , α ∗ , μ ∗ ) = − ∑ i = 1 N α i ∗ y i = 0 ( k 2 ) ∇ ξ L ( w ∗ , b ∗ , ξ ∗ , α ∗ , μ ∗ ) = C − α ∗ − μ ∗ = 0 ( k 3 ) ∇ α L ( w ∗ , b ∗ , ξ ∗ , α ∗ , μ ∗ ) = 0 ( k 4 ) ∇ μ L ( w ∗ , b ∗ , ξ ∗ , α ∗ , μ ∗ ) = 0 ( k 5 ) α i ∗ ( 1 − ξ i ∗ − y i ( w ∗ x i + b ∗ ) ) = 0 ( k 6 ) 1 − ξ i ∗ − y i ( w ∗ x i + b ∗ ) ≤ 0 ( k 7 ) μ i ∗ ξ i ∗ = 0 ( k 8 ) − ξ i ∗ ≤ 0 ( k 9 ) α i ∗ ≥ ( k 10 ) μ i ∗ ≥ 0 ( k 11 ) i = 1 , 2 , ⋯   , N \begin{aligned} & \nabla_w L({\bf w^*},b^*,\xi^*,\alpha^*,\mu^*) = {\bf w^*} - \sum_{i=1}^N \alpha_i^* y_i {\bf x_i}^T =0 &\space\space\space\space(k1)\\ & \nabla_b L({\bf w^*},b^*,\xi^*,\alpha^*,\mu^*) = -\sum_{i=1}^N \alpha_i^* y_i = 0 &\space\space\space\space(k2)\\ & \nabla_{\xi} L({\bf w^*},b^*,\xi^*,\alpha^*,\mu^*) = C - \alpha^* - \mu^* = 0 &\space\space\space\space(k3)\\ & \nabla_{\alpha} L({\bf w^*},b^*,\xi^*,\alpha^*,\mu^*) = 0&\space\space\space\space(k4)\\ & \nabla_{\mu} L({\bf w^*},b^*,\xi^*,\alpha^*,\mu^*) = 0 &\space\space\space\space(k5)\\ & \alpha_i^* \left(1- \xi_i^* - y_i({\bf w^*}{\bf x_i} + b^*)\right) = 0 &\space\space\space\space(k6)\\ & 1 -\xi_i^* - y_i\left({\bf w^*}{\bf x_i} + {b^*}\right) \leq 0 &\space\space\space\space(k7)\\ & \mu_i^* \xi_i^* = 0 &\space\space\space\space(k8)\\ & -\xi_i^* \leq 0 &\space\space\space\space(k9)\\ & \alpha_i^* \geq &\space\space\space\space(k10)\\ & \mu_i^* \geq 0 &\space\space\space\space(k11)\\ &i =1,2,\cdots,N \end{aligned} ∇wL(w∗,b∗,ξ∗,α∗,μ∗)=w∗−i=1∑Nαi∗yixiT=0∇bL(w∗,b∗,ξ∗,α∗,μ∗)=−i=1∑Nαi∗yi=0∇ξL(w∗,b∗,ξ∗,α∗,μ∗)=C−α∗−μ∗=0∇αL(w∗,b∗,ξ∗,α∗,μ∗)=0∇μL(w∗,b∗,ξ∗,α∗,μ∗)=0αi∗(1−ξi∗−yi(w∗xi+b∗))=01−ξi∗−yi(w∗xi+b∗)≤0μi∗ξi∗=0−ξi∗≤0αi∗≥μi∗≥0i=1,2,⋯,N (k1) (k2) (k3) (k4) (k5) (k6) (k7) (k8) (k9) (k10) (k11)
4、原始问题与对偶问题
原始问题:
min
w
,
b
,
ξ
max
α
,
μ
L
(
w
,
b
,
ξ
,
α
,
μ
)
\min_{{\bf w},b,\xi}\space \max_{\alpha,\mu}\space L({\bf w},b,\xi,\alpha,\mu)
w,b,ξmin α,μmax L(w,b,ξ,α,μ)
对偶问题:
max
α
,
μ
min
w
,
b
,
ξ
L
(
w
,
b
,
ξ
,
α
,
μ
)
\max_{\alpha,\mu}\space \space \min_{{\bf w},b,\xi} L({\bf w},b,\xi,\alpha,\mu)
α,μmax w,b,ξminL(w,b,ξ,α,μ)
5、线性支持向量机对偶问题的求解
(1)求解对偶问题的内层
根据KKT条件中的(k1)(k2)(k3)代入式(20)到目标函数得到:
(21)
θ
D
(
α
,
μ
)
=
min
w
,
b
,
ξ
L
(
w
,
b
,
ξ
,
α
,
μ
)
=
−
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
T
⋅
x
j
)
+
∑
i
=
1
N
α
i
\theta_D(\alpha,\mu) = \min_{{\bf w},b,\xi}\space L({\bf w},b,\xi,\alpha,\mu) = -\dfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N \alpha_i \alpha_j y_i y_j ({\bf x_i}^T \cdot {\bf x_j}) + \sum_{i=1}^N \alpha_i \tag{21}
θD(α,μ)=w,b,ξmin L(w,b,ξ,α,μ)=−21i=1∑Nj=1∑Nαiαjyiyj(xiT⋅xj)+i=1∑Nαi(21)
(2)求解对偶问题的外层
由于优化函数里面没有参数
μ
\mu
μ,可以不考虑
μ
\mu
μ,利用KKT条件中的(k2)(k3)(k10)(k11),则相当于求解下面最优问题:
max
α
−
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
T
⋅
x
j
)
+
∑
i
=
1
N
α
i
s
.
t
.
∑
i
=
1
N
α
i
y
i
=
0
C
−
α
i
−
μ
i
=
0
α
i
≥
0
μ
i
≥
0
,
i
=
1
,
2
,
⋯
 
,
N
\begin{aligned} \max_{\alpha}\space\space & -\dfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N \alpha_i \alpha_j y_i y_j ({\bf x_i}^T \cdot {\bf x_j}) + \sum_{i=1}^N \alpha_i\\ s.t. \space\space & \sum_{i=1}^N \alpha_i y_i = 0 \\ & C - \alpha_i -\mu_i = 0 \\ & \alpha_i \geq 0 \\ & \mu_i \geq 0 ,\space\space i=1,2,\cdots ,N \end{aligned}
αmax s.t. −21i=1∑Nj=1∑Nαiαjyiyj(xiT⋅xj)+i=1∑Nαii=1∑Nαiyi=0C−αi−μi=0αi≥0μi≥0, i=1,2,⋯,N
上最优化问题等价为:
min
α
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
T
⋅
x
j
)
−
∑
i
=
1
N
α
i
(
22
)
s
.
t
.
∑
i
=
1
N
α
i
y
i
=
0
(
23
)
0
≤
α
i
≤
C
,
i
=
1
,
2
,
⋯
 
,
N
(
24
)
\begin{aligned} \min_{\alpha}\space\space & \dfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N \alpha_i \alpha_j y_i y_j ({\bf x_i}^T \cdot {\bf x_j}) - \sum_{i=1}^N \alpha_i &\space\space\space\space(22)\\ s.t. \space\space & \sum_{i=1}^N \alpha_i y_i = 0&\space\space\space\space(23)\\ & 0 \leq \alpha_i \leq C ,\space\space i=1,2,\cdots ,N &\space\space\space\space(24) \end{aligned}
αmin s.t. 21i=1∑Nj=1∑Nαiαjyiyj(xiT⋅xj)−i=1∑Nαii=1∑Nαiyi=00≤αi≤C, i=1,2,⋯,N (22) (23) (24)
对比式(21)-(24)与式(13)-(16),发现线性可分支持向量机与线性支持向量机最终需要优化的函数完全一致,只是里面的约束条件不一样。多了一个参数C,C越大,线性向量机会尽可能去拟合数据。
若求得最优解
α
∗
\alpha^*
α∗,则根据KKT条件能求得:
w
∗
=
∑
i
=
1
N
α
i
∗
y
i
x
i
T
b
∗
=
y
j
−
∑
i
=
1
N
α
i
∗
y
i
(
x
i
T
⋅
x
j
)
\begin {aligned} & w^* = \sum_{i=1}^N \alpha_i^* y_i {\bf x_i}^T \\ & b^* = y_j - \sum_{i=1}^N \alpha_i^* y_i({\bf x_i}^T\cdot {\bf x_j}) \end{aligned}
w∗=i=1∑Nαi∗yixiTb∗=yj−i=1∑Nαi∗yi(xiT⋅xj)
则最终求得的分类决策函数可以写成:
f
(
x
)
=
s
i
g
n
(
∑
i
=
1
N
α
i
∗
y
i
x
i
T
⋅
x
+
b
∗
)
f(x) = sign\left(\sum_{i=1}^N \alpha_i^* y_i {\bf x_i}^T \cdot{\bf x} + b^* \right)
f(x)=sign(i=1∑Nαi∗yixiT⋅x+b∗)
上式为线性支持向量机的对偶形式。
6、支持向量
在线性不可分的情况下,最终的解
α
∗
=
(
α
1
∗
,
α
2
∗
,
⋯
 
,
α
N
∗
)
T
\alpha^* = (\alpha_1^*,\alpha_2^*,\cdots ,\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称为支持向量(软间隔的支持向量)。
根据KKT条件中的(k6)可得当
α
i
∗
>
0
\alpha_i^* >0
αi∗>0时有:
(25)
y
i
(
w
∗
x
i
+
b
∗
)
=
1
−
ξ
i
∗
y_i({\bf w^*}{\bf x_i} + b^*) = 1- \xi_i^* \tag{25}
yi(w∗xi+b∗)=1−ξi∗(25)
- 若 0 < α i ∗ < C 0 < \alpha_i^{*} < C 0<αi∗<C,则 μ i ∗ = C − α i ∗ > 0 \mu_i^{*} = C - \alpha_i^{*} > 0 μi∗=C−αi∗>0,根据KKT条件(k8)可得 ξ i ∗ = 0 \xi_i^{*} = 0 ξi∗=0,即有 y i ( w ∗ x i + b ∗ ) = 1 − ξ i ∗ = 1 y_i({\bf w^{*}}{\bf x_i} + b^{*}) = 1- \xi_i^{*} = 1 yi(w∗xi+b∗)=1−ξi∗=1,分类正确,支持向量 x i x_i xi恰好落在间隔边界上;
- 若 α i ∗ = C , 0 < ξ i ∗ < 1 \alpha_i^* = C, 0< \xi_i^* < 1 αi∗=C,0<ξi∗<1,即有 y i ( w ∗ x i + b ∗ ) = 1 − ξ i ∗ > 0 y_i({\bf w^*}{\bf x_i} + b^*) = 1- \xi_i^* >0 yi(w∗xi+b∗)=1−ξi∗>0,分类正确, x i x_i xi在间隔边界与分离超平面之间;
- 若 α i ∗ = C , ξ i ∗ = 1 \alpha_i^* = C,\xi_i^* = 1 αi∗=C,ξi∗=1,即有 y i ( w ∗ x i + b ∗ ) = 1 − ξ i ∗ = 0 y_i({\bf w^*}{\bf x_i} + b^*) = 1- \xi_i^* =0 yi(w∗xi+b∗)=1−ξi∗=0,则 x i x_i xi在分离超平面上;
- 若 α i ∗ = C , ξ i ∗ > 1 \alpha_i^* = C,\xi_i^* > 1 αi∗=C,ξi∗>1,即有 y i ( w ∗ x i + b ∗ ) = 1 − ξ i ∗ < 0 y_i({\bf w^*}{\bf x_i} + b^*) = 1- \xi_i^* < 0 yi(w∗xi+b∗)=1−ξi∗<0,则 x i x_i xi位于分离超平面误分一侧。
7、合页损失函数
L
(
y
(
w
x
+
b
)
)
=
[
1
−
y
(
w
x
+
b
)
]
+
+
λ
∣
∣
w
∣
∣
2
L(y({\bf w}{\bf x} + b )) = [1- y({\bf w}{\bf x} + b)]_+ + \lambda||{\bf w}||^2
L(y(wx+b))=[1−y(wx+b)]++λ∣∣w∣∣2
取正值函数:
[
z
]
+
=
{
z
,
z
>
0
0
,
z
≤
0
[z]_+ = \begin{cases} z, & z > 0 \\[2ex] 0, & z \leq 0 \end{cases}
[z]+=⎩⎨⎧z,0,z>0z≤0
与线性支持向量机原始最优化问题等价:
min
w
,
b
,
ξ
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
N
ξ
i
s
.
t
.
1
−
ξ
i
−
y
i
(
w
x
i
+
b
)
≤
0
,
i
=
1
,
2
,
⋯
 
,
N
−
ξ
i
≤
0
,
i
=
1
,
2
,
⋯
 
,
N
\begin{aligned} \min_{{\bf w},b,\xi}\space\space &\dfrac {1}{2}||{\bf w}||^2 + C \sum_{i=1}^N \xi_i \\ s.t. \space\space & 1 -\xi_i - y_i\left({\bf w}{\bf x_i} + {b}\right) \leq 0,\space i = 1,2,\cdots ,N \\ & -\xi_i \leq 0, i =1,2,\cdots,N \end{aligned}
w,b,ξmin s.t. 21∣∣w∣∣2+Ci=1∑Nξi1−ξi−yi(wxi+b)≤0, i=1,2,⋯,N−ξi≤0,i=1,2,⋯,N
四、非线性支持向量机与核函数
第二部分:07_支持向量机2_统计学习方法
五、SMO算法
第三部分:07_支持向量机3_统计学习方法
参考资料:
- 统计学习方法—李航
- 从KKT条件下的拉格朗日乘法到拉格朗日对偶问题
- 机器学习实战教程(八)
- 以及文中链接