SVM
1、算法原理
从几何角度,对于线性可分数据集,支持向量机就是找距离正负样本都最远的超平面,相比于感知机,其解是唯一的,且不偏不倚,泛化性能更好
1.1、超平面
n n n维空间的超平面 w T x + b = 0 w^Tx+b=0 wTx+b=0,其中 w , x ∈ R n w,x\in \mathbb{R}^n w,x∈Rn:
-
超平面方程不唯一
-
法向量 w w w和位移 b b b确定一个唯一超平面
-
法向量 w w w垂直于超平面(缩放 w , b w,b w,b时,若缩放倍数为负数会改变法向量方向)
-
法向量 w w w指向的那一半空间为正空间,另一半为负空间
- 任意点
x
x
x到超平面的距离公式为
r = ∣ w T + b ∣ ∣ ∣ w ∣ ∣ r=\frac{|w^T+b|}{||w||} r=∣∣w∣∣∣wT+b∣
证明如下:
对于任意一点 x 0 = ( x 1 0 , x 2 0 , . . , x n 0 ) T \pmb{x_0}=(x^0_1,x_2^0,..,x^0_n)^T x0x0x0=(x10,x20,..,xn0)T,设其在超平面 w T x + b = 0 \pmb{w^Tx}+b=0 wTxwTxwTx+b=0上的投影点为 x 1 = ( x 1 1 , x 2 1 , . . , x n 1 ) T \pmb{x_1}=(x^1_1,x_2^1,..,x^1_n)^T x1x1x1=(x11,x21,..,xn1)T,则 w T x 1 + b = 0 \pmb{w^Tx_1}+b=0 wTx1wTx1wTx1+b=0,且向量 x 1 x 0 → \overrightarrow{\pmb{x_1x_0}} x1x0x1x0x1x0与法向量 w \pmb{w} www平行,
1.2、几何间隔
对于给定的数据集
X
X
X和超平面
w
T
x
+
b
=
0
\pmb{w^Tx}+b=0
wTxwTxwTx+b=0,定义数据集
X
X
X中的任意一个样本点
(
x
i
,
y
i
)
,
y
i
∈
{
−
1
,
1
}
,
i
=
1
,
2
,
.
.
,
m
(\pmb{x_i},y_i),y_i\in \{-1,1\},i=1,2,..,m
(xixixi,yi),yi∈{−1,1},i=1,2,..,m关于超平面的几何间隔为
γ
i
=
y
i
(
w
T
x
i
+
b
)
∣
∣
w
∣
∣
\gamma_i=\frac{y_i(\pmb{w^Tx_i}+b)}{||\pmb{w}||}
γi=∣∣www∣∣yi(wTxiwTxiwTxi+b)
- 正确分类时: γ i > 0 \gamma_i>0 γi>0, y i y_i yi与 w T x i + b \pmb{w^Tx_i}+b wTxiwTxiwTxi+b同号,几何间隔此时也等价于点到超平面的距离
- 未正确分类时: γ i < 0 \gamma_i<0 γi<0
对于给定数据集
X
X
X和超平面
w
T
x
+
b
=
0
\pmb{w^Tx}+b=0
wTxwTxwTx+b=0,定义数据集
X
X
X关于超平面的几何间隔为:数据集
X
X
X中所有样本点的几何间隔最小值:
γ
=
m
i
n
i
=
1
,
2
,
.
.
.
,
m
γ
i
\gamma = \underset{i=1,2,...,m}{min}\gamma_i
γ=i=1,2,...,mminγi
1.3、模型
给定线性可分数据集
X
X
X,支持向量机模型希望求得数据集
X
X
X关于超平面的几何间隔
γ
\gamma
γ达到最大的那个超平面,然后套上一个
s
i
g
n
sign
sign函数实现分类功能
y
=
s
i
g
n
(
w
T
x
+
b
)
=
{
1
,
w
T
x
+
b
>
0
−
1
,
w
T
x
+
b
<
0
y=sign(\pmb{w^Tx}+b)=\left\{ \begin{aligned} 1,\pmb{w^Tx}+b>0\\ -1,\pmb{w^Tx}+b<0 \end{aligned} \right.
y=sign(wTxwTxwTx+b)={1,wTxwTxwTx+b>0−1,wTxwTxwTx+b<0
所以其本质和感知机一样,仍然是在求一个超平面。那么几何间隔最大的超平面就一定是我们前面所说的那个距离正负样本都最远的超平面:
- 当超平面没有正确划分正负样本时:几何间隔最小的为误分类点,因此 γ < 0 \gamma<0 γ<0
- 当超平面正确划分正负样本时: γ ≥ 0 \gamma\ge0 γ≥0,且越靠近中央 γ \gamma γ越大。
- 存在第二种情况时,肯定不会选第一种,而第二种中我们也会选择最大的,即距离均最远的。
- 这里的最大值要和 1.2 1.2 1.2中的最小值区分开,前者是调整 w , b w,b w,b,后者是固定 w , b w,b w,b计算样本点的几何间隔的最小值。
1.4、策略
给定线性可分的数据集 X X X,设 X X X中几何间隔最小的样本为 ( x m i n , y m i n ) (x_{min},y_{min}) (xmin,ymin),那么支持向量机找超平面的过程可以转换为一下带约束条件的优化问题。
假设该问题的最优解为
(
w
∗
,
b
∗
)
(w^*,b^*)
(w∗,b∗),那么
(
α
w
∗
,
α
b
∗
)
,
α
∈
R
+
(\alpha w^*,\alpha b^*),\alpha\in \mathbb{R}^+
(αw∗,αb∗),α∈R+也是最优解,且超平面也不变,因此还需要对
w
,
b
\pmb{w},b
www,b做一定限制才能使得上述优化问题有可能的唯一解。不妨令
y
m
i
n
(
w
T
x
m
i
n
+
b
)
=
1
y_{min}(\pmb{w^Tx_{min}}+b)=1
ymin(wTxminwTxminwTxmin+b)=1,因为对于特定的
(
x
m
i
n
,
y
m
i
n
)
(\pmb{x}_{min},y_{min})
(xxxmin,ymin)来说,能使得
y
m
i
n
(
w
T
x
m
i
n
+
b
)
=
1
y_{min}(\pmb{w^Tx_{min}}+b)=1
ymin(wTxminwTxminwTxmin+b)=1的
α
\alpha
α有且只有一个。因此,上述优化问题进一步转换为
m
a
x
w
,
b
1
∣
∣
w
∣
∣
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
.
.
.
,
m
\underset{w,b}{max}\frac{1}{||w||}\\ s.t.\quad y_i(\pmb{w^Tx_i}+b)\ge1,\quad i=1,2,...,m
w,bmax∣∣w∣∣1s.t.yi(wTxiwTxiwTxi+b)≥1,i=1,2,...,m
恒等变化得:
m
i
n
w
,
b
1
2
∣
∣
w
∣
∣
2
s
.
t
.
1
−
y
i
(
w
T
x
i
+
b
)
≥
0
,
i
=
1
,
2
,
.
.
,
m
\underset{w,b}{min}\frac{1}{2}||w||^2\\ s.t.\quad 1-y_i(w^Tx_i+b)\ge0,\quad i=1,2,..,m
w,bmin21∣∣w∣∣2s.t.1−yi(wTxi+b)≥0,i=1,2,..,m
此优化问题含不等式约束的优化问题,且为凸优化问题,因此可以直接用很多专门求解凸优化问题的方法求解该问题,在这里,支持向量机通常采用拉格朗日对偶来求解,具体原因稍后解释。
拉格朗日对偶补充知识:
对于一般的约束优化问题:
m
i
n
f
(
x
)
s
.
t
.
g
i
(
x
)
≤
0
i
=
1
,
2
,
.
.
,
m
h
j
(
x
)
=
0
j
=
1
,
2
,
.
.
,
n
min\quad f(x)\\ s.t.\quad g_i(x)\le0\quad i = 1,2,..,m\\ h_j(x)=0\quad j = 1,2,..,n
minf(x)s.t.gi(x)≤0i=1,2,..,mhj(x)=0j=1,2,..,n
若目标函数
f
(
x
)
f(x)
f(x)是凸函数,约束集为凸集,则称上述优化问题为凸优化问题,特别的,
g
i
(
x
)
g_i(x)
gi(x)是凸函数,
h
j
(
x
)
h_j(x)
hj(x)是线性函数时,约束集为凸集,该优化问题为凸优化问题。显然,支持向量机的目标函数
1
2
∣
∣
w
∣
∣
2
\frac{1}{2}||w||^2
21∣∣w∣∣2是关于
w
\pmb{w}
www的凸函数,不等式约束
1
−
y
i
(
w
T
x
i
+
b
)
1-y_i(w^Tx_i+b)
1−yi(wTxi+b)也是关于
w
\pmb{w}
www的凸函数,因此支持向量机是一个凸优化问题(凸函数的证明可查阅网上资料)。
对于一般的约束优化问题(不一定是凸优化问题):
m
i
n
f
(
x
)
s
.
t
.
g
i
(
x
)
≤
0
i
=
1
,
2
,
.
.
,
m
h
j
(
x
)
=
0
j
=
1
,
2
,
.
.
,
n
min\quad f(x)\\ s.t.\quad g_i(x)\le0\quad i = 1,2,..,m\\ h_j(x)=0\quad j = 1,2,..,n
minf(x)s.t.gi(x)≤0i=1,2,..,mhj(x)=0j=1,2,..,n
设上述优化问题的定义域为
D
=
d
o
m
f
∩
⋂
i
=
1
m
d
o
m
g
i
∩
⋂
j
=
1
n
d
o
m
h
j
D=\pmb{dom}f\cap\bigcap_{i=1}^m\pmb{dom}g_i\cap\bigcap_{j=1}^n\pmb{dom}h_j
D=domdomdomf∩⋂i=1mdomdomdomgi∩⋂j=1ndomdomdomhj,可行集(属于定义域且满足约束条件)为
D
~
=
{
x
∣
x
∈
D
,
g
i
(
x
)
≤
0
,
h
j
(
x
)
=
0
}
\tilde{D}=\{x|x\in D,g_i(x)\le0,h_j(x)=0\}
D~={x∣x∈D,gi(x)≤0,hj(x)=0},显然
D
~
\tilde{D}
D~是
D
D
D的子集,最优值
p
∗
=
m
i
n
{
f
(
x
~
)
}
.
x
~
∈
D
~
p^*=min\{f(\tilde{x})\}.\tilde{x}\in\tilde{D}
p∗=min{f(x~)}.x~∈D~。由拉格朗日函数的定义可知上述优化问题的拉格朗日函数为
L
(
x
,
μ
,
λ
)
=
f
(
x
)
+
∑
i
=
1
m
μ
i
g
i
(
x
)
+
∑
j
=
1
n
λ
j
h
j
(
x
)
L(x,\mu,\lambda)=f(x)+\sum_{i=1}^m\mu_ig_i(x)+\sum_{j=1}^n\lambda_jh_j(x)
L(x,μ,λ)=f(x)+i=1∑mμigi(x)+j=1∑nλjhj(x)
其中
μ
=
(
μ
1
,
.
.
,
μ
m
)
T
,
λ
=
(
λ
1
,
.
.
.
,
λ
n
)
T
\mu=(\mu_1,..,\mu_m)^T,\lambda=(\lambda_1,...,\lambda_n)^T
μ=(μ1,..,μm)T,λ=(λ1,...,λn)T为拉格朗日乘子向量。
定义上述优化问题的拉格朗日对偶函数
Γ
(
μ
,
λ
)
\pmb{\Gamma(\mu,\lambda)}
Γ(μ,λ)Γ(μ,λ)Γ(μ,λ),(注意其自变量不包含
x
\pmb{x}
xxx)为
L
(
x
,
μ
,
λ
)
L(x,\mu,\lambda)
L(x,μ,λ)关于
x
x
x的下确界(此处可看作最小值),也即
Γ
(
μ
,
λ
)
=
i
n
f
x
∈
D
⟮
f
(
x
)
+
∑
i
=
1
m
μ
i
g
i
(
x
)
+
∑
j
=
1
n
λ
j
h
j
(
x
)
⟯
\Gamma(\mu,\lambda)=\underset{x\in D}{inf}\lgroup f(x)+\sum_{i=1}^m\mu_ig_i(x)+\sum_{j=1}^n\lambda_jh_j(x)\rgroup
Γ(μ,λ)=x∈Dinf⟮f(x)+i=1∑mμigi(x)+j=1∑nλjhj(x)⟯
对偶函数
Γ
(
μ
,
λ
)
\Gamma(\mu,\lambda)
Γ(μ,λ)有如下重要性质:
-
无论上述优化问题是否为凸优化问题,其对偶函数 Γ ( μ , λ ) \Gamma(\mu,\lambda) Γ(μ,λ)恒为凹函数,加个负号就变成了凸函数。
-
当 μ ≥ 0 \mu\ge0 μ≥0时, Γ ( μ , λ ) \Gamma(\mu,\lambda) Γ(μ,λ)构成了上述优化问题最优值 p ∗ p^* p∗的下界,即
Γ ( μ , λ ) ≤ p ∗ \Gamma(\mu,\lambda)\le p^* Γ(μ,λ)≤p∗
**证明:**设 x ~ ∈ D ~ \tilde{x}\in \tilde{D} x~∈D~是优化问题的可行点,那么当 μ ≥ 0 \mu\ge 0 μ≥0时
∑ i = 1 m μ i g i ( x ) + ∑ j = 1 n λ j h j ( x ) ≤ 0 \sum_{i=1}^m\mu_ig_i(x)+\sum_{j=1}^n\lambda_jh_j(x)\le 0 i=1∑mμigi(x)+j=1∑nλjhj(x)≤0
这是因为左边第一项非正而第二项恒为0(看前面的约束条件)。所以
Γ ( μ , λ ) = i n f x ∈ D L ( x , μ , λ ) ≤ L ( x ~ , μ , λ ) ≤ f ( x ~ ) Γ ( μ , λ ) ≤ m i n { f ( x ~ ) } = p ∗ i n f 表 示 最 小 值 , x ~ ∈ D ~ ⊆ D \Gamma(\mu,\lambda)=\underset{x\in D}{inf}L(x,\mu,\lambda)\le L(\tilde{x},\mu,\lambda)\le f(\tilde{x})\\ \Gamma(\mu,\lambda)\le min\{f(\tilde{x})\}=p^*\\ inf表示最小值,\tilde{x}\in \tilde{D}\subseteq D Γ(μ,λ)=x∈DinfL(x,μ,λ)≤L(x~,μ,λ)≤f(x~)Γ(μ,λ)≤min{f(x~)}=p∗inf表示最小值,x~∈D~⊆D
所以,当 μ ≥ 0 \mu\ge 0 μ≥0时, Γ ( μ , λ ) ≤ p ∗ \Gamma(\mu,\lambda)\le p^* Γ(μ,λ)≤p∗恒成立,证毕。
定义在满足
μ
≥
0
\mu\ge 0
μ≥0这个约束条件下求对偶函数最大值的优化问题为拉格朗日对偶问题(原优化问题称为主问题)
m
a
x
Γ
(
μ
,
λ
)
s
.
t
.
μ
≥
0
max\quad \Gamma(\mu,\lambda)\\ s.t.\quad \mu\ge 0
maxΓ(μ,λ)s.t.μ≥0
设该优化问题的最优值为
d
∗
d^*
d∗,显然
d
∗
≤
p
∗
d^*\le p^*
d∗≤p∗,此时称为“弱对偶性”成立,若
d
∗
=
p
∗
d^*=p^*
d∗=p∗,则称为“强对偶性”成立。曲线救国,找到了求
p
∗
p^*
p∗的方法
-
当主问题满足某些充分条件时,强对偶性成立。常见的充分条件有Slater条件:“若主问题为凸优化问题,且可行集 D ~ \tilde{D} D~中存在一点能使得所有不等式约束成立,则强对偶性成立”
-
无论主问题是否为凸优化问题,对偶问题恒为凸优化问题,因为对偶函数 Γ ( μ , λ ) \Gamma(\mu,\lambda) Γ(μ,λ)恒为凹函数(加个负号即可转为凸函数),约束条件 μ ≥ 0 \mu\ge0 μ≥0恒为凸集。
-
设 f ( x ) , g i ( x ) , h i ( x ) f(x),g_i(x),h_i(x) f(x),gi(x),hi(x)一阶偏导连续, x ∗ , ( μ ∗ , λ ∗ ) x^*,(\mu^*,\lambda^*) x∗,(μ∗,λ∗)分别为主问题和对偶问题的最优解,若强对偶性成立,则 x ∗ , μ ∗ , λ ∗ x^*,\mu^*,\lambda^* x∗,μ∗,λ∗一定满足如下5个条件:
也叫KKT条件。
主问题
m
i
n
w
,
b
1
2
∣
∣
w
∣
∣
2
s
.
t
.
1
−
y
i
(
w
T
x
i
+
b
)
≤
0
,
i
=
1
,
2
,
.
.
.
,
m
\underset{w,b}{min}\frac{1}{2}||w||^2\\ s.t.\quad 1-y_i(w^Tx_i+b)\le0,\quad i=1,2,...,m
w,bmin21∣∣w∣∣2s.t.1−yi(wTxi+b)≤0,i=1,2,...,m
拉格朗日函数:
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
+
∑
i
=
1
m
α
i
(
1
−
y
i
(
w
T
x
i
+
b
)
)
=
1
2
∣
∣
w
∣
∣
2
+
∑
i
=
1
m
α
i
−
∑
i
=
1
m
α
i
y
i
w
T
x
i
−
b
∑
i
=
1
m
α
i
y
i
\begin{aligned}L(w,b,\alpha)&=\frac{1}{2}||w||^2+\sum_{i=1}^m\alpha_i(1-y_i(w^Tx_i+b))\\ &=\frac{1}{2}||w||^2+\sum_{i=1}^m\alpha_i-\sum_{i=1}^m\alpha_iy_iw^Tx_i-b\sum_{i=1}^m\alpha_iy_i \end{aligned}
L(w,b,α)=21∣∣w∣∣2+i=1∑mαi(1−yi(wTxi+b))=21∣∣w∣∣2+i=1∑mαi−i=1∑mαiyiwTxi−bi=1∑mαiyi
若将
w
,
b
w,b
w,b合并为
w
^
=
(
w
;
b
)
\hat{w}=(w;b)
w^=(w;b),显然上式是关于
w
^
\hat{w}
w^的凸函数,直接求一阶导数令其等于0,然后代回即可求得最小值,也即拉格朗日对偶函数。
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
+
∑
i
=
1
m
α
i
(
1
−
y
i
w
^
T
x
i
^
)
L(w,b,\alpha)=\frac{1}{2}||w||^2+\sum_{i=1}^m\alpha_i(1-y_i\hat{w}^T\hat{x_i})
L(w,b,α)=21∣∣w∣∣2+i=1∑mαi(1−yiw^Txi^)
另一种方法:
由于 L ( w , b , α ) L(w,b,\alpha) L(w,b,α)是关于 w w w的凸函数,关于 b b b的线性函数,所以当 b b b的系数不为0时下确界为 − ∞ -\infin −∞,当 b b b的系数为0时,下确界就由其他部分来确定,所以 L ( w , b , α ) L(w,b,\alpha) L(w,b,α)的下确界(对偶函数)为
上式中 i n f inf inf等价于最小值,所以对括号内式子关于 w w w求导等于0后,代回消去 w w w即可得到二式,求导法则。
对偶问题:
再根据强对偶性成立推得最优解必须满足如下KKT条件
{
α
i
≥
0
y
i
f
(
x
i
)
−
1
≥
0
α
i
(
y
i
f
(
x
i
)
−
1
)
=
0
\left\{ \begin{aligned} &\alpha_i\ge0\\ &y_if(x_i)-1\ge0\\ &\alpha_i(y_if(x_i)-1)=0 \end{aligned} \right.
⎩⎪⎨⎪⎧αi≥0yif(xi)−1≥0αi(yif(xi)−1)=0
最后一个问题,为什么支持向量机通常都采用拉格朗日对偶求解呢?
-
无论主问题为何种优化问题,对偶问题恒为凸优化问题,因此更容易求解,而且原始问题的时间复杂度和特征维数呈正比(因此未知量是 w w w),而对偶问题和数据量成正比(因此未知量是 α \alpha α),当特征维数远高于数据量时拉格朗日对偶更高效;
w T x + b = 0 w 与 x 的 维 数 相 同 α 为 不 等 式 约 束 的 拉 格 朗 日 乘 子 , 为 m 维 , 看 上 一 个 式 子 可 知 它 的 下 标 和 x 的 下 标 一 样 均 为 i , 所 以 为 样 本 个 数 w^T x+b=0\\ w与x的维数相同\\ \alpha为不等式约束的拉格朗日乘子,为m维,\\看上一个式子可知它的下标和x的下标一样均为i,所以为样本个数 wTx+b=0w与x的维数相同α为不等式约束的拉格朗日乘子,为m维,看上一个式子可知它的下标和x的下标一样均为i,所以为样本个数 -
对偶函数能很自然的引入核函数,进而推广到非线性分类问题
参考书籍:《最优化》,《南瓜书》