文章目录
文献参考
· 百度知道:桂纶美
基本概念
支持向量
概念:位于分类超平面附近的样本点,称为支持向量
在数学中,点这个概念常常用向量去取代。比如在直角坐标系下,点A坐标为(3,4),我们可以认为它代表着向量OA = (3,4)
现在我们有如下左图的一个二维样本点(向量),其中黄色的线是经过线性回归计算得出来的分类线;而右图那些临近回归线的点(用蓝色方形标注),就叫做支持向量。
“支持” 的含义可以这样理解:
那些临近分类边界的点,才是对回归线(超平面)的走向有影响的点;距离分类边界较远的点,它们对回归线(超平面)如何去画并没有什么影响
如果我们将“机”理解成“算法”,那么支持向量机不难理解为“与支持点相关的(求出分类超平面的)算法”
下面给出支持向量机较为标准的概念:
支持向量机(SVM)
是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器。
对于下面这一些数据集,要用一条回归线将其分开,现有①、②、③三条线,哪一条效果最好呢?
我想绝大部分人都会认为是②。虽然三条线都满足了将三角形和圆形分开,但是对于②线来说,三角形和圆形的支持向量到②线的距离看上去更加“均衡”,像是从中间位置将其分隔。
其实,支持向量机的意思是指:求支持向量到超平面的距离之和尽可能的大的算法。
事实上,根据基本不等式,距离之和最大和距离更加“均衡”其实是等价的
那么这里就引出了最大间隔超平面的概念
最大间隔超平面
上图中对应的②线——也就是我们看起来的最“均衡线”,它其实是以最大间隔把两类样本分开的线(高维的称作超平面),即最大间隔超平面。
我们会发现①、③两条线的样本间隔要比②的小很多,如下图
而我们支持向量机算法(SVM)实质上求的就是②这样的线、平面或者超平面
软间隔与硬间隔
假设上图中左边的坐标系中黄色、黑色和红色分别为负/决策/正超平面,而此时如果在黄线和红线之间新增了一个数据点 A A A,那么围绕超平面是否进行调整,会分成两种情况:
- 第一种就是右上角的图1,虽然加入了 A A A,但是仍然使其在黄线与红线之间;
- 第二种就是右下角的图2,随着 A A A的加入,超平面也随之发生变化,最终保证 A A A在黄线之下。
第一种情况中的黄线与红线的距离我们称之为软间隔;第二种情况中的黄线与红线的距离我们称之为硬间隔。
SVM最优化问题求解思路
在线性代数中,任意超平面可以用下面这个线性方程来描述:
W
T
X
+
b
=
0
W^{T}X+b=0
WTX+b=0
其中
W
=
[
w
1
,
w
2
,
⋅
⋅
⋅
,
w
n
]
W=[w_1,w_2,···,w_n]
W=[w1,w2,⋅⋅⋅,wn]
X = [ x 1 , x 2 , ⋅ ⋅ ⋅ , x n ] X=[x_1,x_2,···,x_n] X=[x1,x2,⋅⋅⋅,xn]
为系数矩阵,矩阵W转置后
[ W 1 W 2 ⋅ ⋅ ⋅ W n ] \left[ \begin{array} {} W_1\\ W_2\\ ·\\ ·\\ ·\\ W_n \end{array} \right] W1W2⋅⋅⋅Wn
$$
故
W
T
X
=
w
1
x
1
+
w
2
x
2
+
w
3
x
3
+
⋅
⋅
⋅
+
w
n
x
n
W^TX=w_1x_1+w_2x_2+w_3x_3+···+w_nx_n
WTX=w1x1+w2x2+w3x3+⋅⋅⋅+wnxn
就是我们正常看到的超平面函数表达式
根据点到直线的距离公式
∣
A
x
+
B
y
+
C
∣
A
2
+
B
2
\frac{|Ax+By+C|}{\sqrt{A^2+B^2}}
A2+B2∣Ax+By+C∣
从二维拓展成高维
∣
w
1
x
1
+
w
2
x
2
+
w
3
x
3
+
⋅
⋅
⋅
+
w
n
x
n
+
b
∣
w
1
2
+
w
2
2
+
⋅
⋅
⋅
+
w
n
2
\frac{|w_1x_1+w_2x_2+w_3x_3+···+w_nx_n+b|}{\sqrt{w_1^2+w_2^2+···+w_n^2}}
w12+w22+⋅⋅⋅+wn2∣w1x1+w2x2+w3x3+⋅⋅⋅+wnxn+b∣
其中
w
1
x
1
+
w
2
x
2
+
w
3
x
3
+
⋅
⋅
⋅
+
w
n
x
n
=
W
T
X
w_1x_1+w_2x_2+w_3x_3+···+w_nx_n=W^TX
w1x1+w2x2+w3x3+⋅⋅⋅+wnxn=WTX
为前面所得出的公式
w
1
2
+
w
2
2
+
⋅
⋅
⋅
+
w
n
2
=
∣
∣
W
∣
∣
\sqrt{w_1^2+w_2^2+···+w_n^2}=||W||
w12+w22+⋅⋅⋅+wn2=∣∣W∣∣
为向量的模的定义
对于二维向量 X = (3,4),其模
∣ ∣ X ∣ ∣ = 3 2 + 4 2 = 5 ||X||=\sqrt{3^2+4^2}=5 ∣∣X∣∣=32+42=5
高维向量以此类推
所以上面的高维距离公式可以转化为
∣ W T X + b ∣ ∣ ∣ W ∣ ∣ \frac{|W^TX+b|}{||W||} ∣∣W∣∣∣WTX+b∣
支持向量机数学原理
通过上文介绍,我们大概了解了支持向量机的作用与简单原理。下面我们详细介绍一下支持向量机的数学原理以及其算法。
首先补充一下上文介绍超平面的内容。我们一般将中间的用于分隔的超平面叫做决策超平面,决策超平面也是我们最后求得的超平面。而决策超平面的正方向与负方向分别有两个超平面:正超平面和负超平面。这两个超平面用于辅助生成决策超平面。为了简单化,我们先只考虑二维的支持向量机。
图中正超平面、决策超平面、负超平面的方程分别如下:
w
1
x
1
+
w
2
x
2
+
b
=
1
w
1
x
1
+
w
2
x
2
+
b
=
0
w
1
x
1
+
w
2
x
2
+
b
=
−
1
w_1x_1+w_2x_2+b=1\\w_1x_1+w_2x_2+b=0\\w_1x_1+w_2x_2+b=-1
w1x1+w2x2+b=1w1x1+w2x2+b=0w1x1+w2x2+b=−1
这个并非是超平面的唯一写法。前面基础部分我们介绍了线性方程如何用矩阵来表达,这种写法只是上面的一种等价变式(移项),方便后面的运算。
现在我们假设在正超平面和负超平面上分别有两个支持向量M和N。他们分别满足下式:
w
1
x
1
m
+
w
2
x
2
m
+
b
=
1
w
1
x
1
n
+
w
2
x
2
n
+
b
=
−
1
w_1x_{1m}+w_2x_{2m}+b=1\\w_1x_{1n}+w_2x_{2n}+b=-1
w1x1m+w2x2m+b=1w1x1n+w2x2n+b=−1
目前现有的这两个方程对我们并没有什么作用或者启发,考虑到两个式子中都可以提出公因子
w
1
、
w
2
w_1、w_2
w1、w2,以及都有常数
b
b
b,所以我们将两式作差,会得到如下结果:
w
1
(
x
1
m
−
x
1
n
)
+
w
2
(
x
2
m
−
x
2
n
)
=
2
w_1(x_{1m}-x_{1n})+w_2(x_{2m}-x_{2n})=2
w1(x1m−x1n)+w2(x2m−x2n)=2
如果我们将上述式子看成两个向量做点积,我们会得到:
w
⃗
(
x
m
⃗
−
x
n
⃗
)
=
2
\vec{w}(\vec{x_m}-\vec{x_n})=2
w(xm−xn)=2
其中
w
⃗
=
[
w
1
w
2
]
\vec{w}=[w_1 \ w_2]
w=[w1 w2],
x
m
⃗
=
[
x
1
m
x
2
m
]
T
\vec{x_m}=[x_{1m} \ x_{2m}]^T
xm=[x1m x2m]T,
x
n
⃗
=
[
x
1
n
x
2
n
]
T
\vec{x_n}=[x_{1n} \ x_{2n}]^T
xn=[x1n x2n]T
根据
a
⃗
⋅
b
⃗
=
∣
∣
a
⃗
∣
∣
∗
∣
∣
b
⃗
∣
∣
∗
c
o
s
θ
\vec{a}·\vec{b}=||\vec{a}||*||\vec{b}||*cos\theta
a⋅b=∣∣a∣∣∗∣∣b∣∣∗cosθ,
∣
∣
w
⃗
∣
∣
∗
∣
∣
x
m
⃗
−
x
n
⃗
∣
∣
∗
c
o
s
θ
=
2
||\vec{w}||*||\vec{x_m}-\vec{x_n}||*cos\theta=2
∣∣w∣∣∗∣∣xm−xn∣∣∗cosθ=2
其中
∣
∣
w
⃗
∣
∣
=
w
1
2
+
w
2
2
||\vec{w}||=\sqrt{w_1^2+w_2^2}
∣∣w∣∣=w12+w22。
移项
∣
∣
x
m
⃗
−
x
n
⃗
∣
∣
∗
c
o
s
θ
=
2
∣
∣
w
⃗
∣
∣
||\vec{x_m}-\vec{x_n}||*cos\theta=\frac{2}{||\vec{w}||}
∣∣xm−xn∣∣∗cosθ=∣∣w∣∣2
通过移项 x x x与 w w w分别在等式左右两边。左边是数据点的坐标,右边是待求的权重值。
这里我们不妨思考下 ∣ ∣ x m ⃗ − x n ⃗ ∣ ∣ ∗ c o s θ ||\vec{x_m}-\vec{x_n}||*cos\theta ∣∣xm−xn∣∣∗cosθ 的意义。
所以我们画出下图,尝试从几何角度去观察上式的意义。
我们知道向量点积可以转化为投影,即将一个向量的模乘 c o s θ cos\theta cosθ投影到另外一个向量的方向上,相同方向会极大的方便计算。
于是我们画出了下面的坐标系与向量(称为图1)。我们想用向量点积投影,但是我们并不知道MN和 w ⃗ \vec{w} w的夹角。
但是我们可以进行转化。我们知道M、N两点在正负超平面上,那如果M、N在决策超平面上呢?由于这三个超平面的方程只有等号右边的常数不一样,所以如果M、N在决策超平面上时的 w ⃗ \vec{w} w应该与上图的一样。所以我们不妨先设M、N在决策超平面上。我们可以画出下图(称为图2):
此时的M、N分别满足下列式子:
w
1
x
1
m
+
w
2
x
2
m
+
b
=
0
w
1
x
1
n
+
w
2
x
2
n
+
b
=
0
w_1x_{1m}+w_2x_{2m}+b=0\\w_1x_{1n}+w_2x_{2n}+b=0
w1x1m+w2x2m+b=0w1x1n+w2x2n+b=0
两式作差,可以得到:
w
1
(
x
1
m
−
x
1
n
)
+
w
2
(
x
2
m
−
x
2
n
)
=
0
w_1(x_{1m}-x_{1n})+w_2(x_{2m}-x_{2n})=0
w1(x1m−x1n)+w2(x2m−x2n)=0
即
w
⃗
(
x
m
⃗
−
x
n
⃗
)
=
0
\vec{w}(\vec{x_m}-\vec{x_n})=0
w(xm−xn)=0
向量点积为零说明两向量互相垂直。观察上图,
x
m
⃗
−
x
n
⃗
\vec{x_m}-\vec{x_n}
xm−xn即为
N
M
⃗
\vec{NM}
NM。而这也就意味着
w
⃗
\vec{w}
w垂直于决策超平面,也就垂直与正、负超平面。好,这时我们从图2转回图1,我们再次将图1放出来方便说明。
由于
w
⃗
\vec{w}
w垂直于超平面,所以
∣
∣
N
M
⃗
∣
∣
||\vec{NM}||
∣∣NM∣∣在
w
⃗
\vec{w}
w上的投影就为正负超平面的最大间隔
L
L
L。而正好
∣
∣
N
M
⃗
∣
∣
=
∣
∣
x
m
⃗
−
x
n
⃗
∣
∣
∗
c
o
s
θ
||\vec{NM}||=||\vec{x_m}-\vec{x_n}||*cos\theta
∣∣NM∣∣=∣∣xm−xn∣∣∗cosθ,故
L
=
2
∣
∣
w
⃗
∣
∣
L=\frac{2}{||\vec{w}||}
L=∣∣w∣∣2
正超平面:所有红点属于正类,所以 y i = 1 y_i=1 yi=1;所有红点都在正超平面上方,所以 w ⃗ ⋅ x i ⃗ + b ≥ 1 \vec{w}·\vec{x_i}+b≥1 w⋅xi+b≥1
负超平面:所有黄点属于负类,所以 y i = − 1 y_i=-1 yi=−1;所有黄点都在负超平面下方,所以 w ⃗ ⋅ x i ⃗ + b ≤ 1 \vec{w}·\vec{x_i}+b≤1 w⋅xi+b≤1
上面两种情况可以总结成下面这个式子:
y
i
∗
(
w
⃗
⋅
x
i
⃗
+
b
)
≥
1
y_i*(\vec{w}·\vec{x_i}+b)≥1
yi∗(w⋅xi+b)≥1
而这个式子就是约束条件。
所以,求决策超平面问题就转化为:
在 y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) ≥ 1 y_i*(\vec{w}·\vec{x_i}+b)≥1 yi∗(w⋅xi+b)≥1条件下, ∣ ∣ w ⃗ ∣ ∣ ||\vec{w}|| ∣∣w∣∣的最小值。
由于 ∣ ∣ w ⃗ ∣ ∣ = w 1 2 + w 2 2 ||\vec{w}||=\sqrt{w_1^2+w_2^2} ∣∣w∣∣=w12+w22中含有根号,所以最小值并不是很好求。所以我们转化一下,将 ∣ ∣ w ⃗ ∣ ∣ ||\vec{w}|| ∣∣w∣∣转化成 ∣ ∣ w ⃗ ∣ ∣ 2 2 \frac{||\vec{w}||^2}{2} 2∣∣w∣∣2,于是问题等价为:
在 y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) ≥ 1 y_i*(\vec{w}·\vec{x_i}+b)≥1 yi∗(w⋅xi+b)≥1条件下, ∣ ∣ w ⃗ ∣ ∣ 2 2 \frac{||\vec{w}||^2}{2} 2∣∣w∣∣2的最小值。
这种问题我们会通过拉格朗日乘子法进行求解。
但是有一个问题,就是约束条件 y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) ≥ 1 y_i*(\vec{w}·\vec{x_i}+b)≥1 yi∗(w⋅xi+b)≥1是不等式而不是等式,所以我们要先经过一步转化,将不等式转化为等式。
我们将 y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) ≥ 1 y_i*(\vec{w}·\vec{x_i}+b)≥1 yi∗(w⋅xi+b)≥1转换成 y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 = p i 2 y_i*(\vec{w}·\vec{x_i}+b)-1=p_i^2 yi∗(w⋅xi+b)−1=pi2,由于 p i 2 ≥ 0 p_i^2≥0 pi2≥0恒成立,故 y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 ≥ 0 y_i*(\vec{w}·\vec{x_i}+b)-1≥0 yi∗(w⋅xi+b)−1≥0恒成立。
所以原问题等价为:
在 y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 = p i 2 y_i*(\vec{w}·\vec{x_i}+b)-1=p_i^2 yi∗(w⋅xi+b)−1=pi2条件下, ∣ ∣ w ⃗ ∣ ∣ 2 2 \frac{||\vec{w}||^2}{2} 2∣∣w∣∣2的最小值。
下面构造拉格朗日函数:
L
(
w
,
b
,
λ
i
,
p
i
)
=
∣
∣
w
⃗
∣
∣
2
2
−
∑
i
=
1
s
λ
i
∗
(
y
i
∗
(
w
⃗
⋅
x
i
⃗
+
b
)
−
1
−
p
i
2
)
L(w,b,\lambda_i,p_i)=\frac{||\vec{w}||^2}{2}-\sum_{i=1}^s\lambda_i*(y_i*(\vec{w}·\vec{x_i}+b)-1-p_i^2)
L(w,b,λi,pi)=2∣∣w∣∣2−i=1∑sλi∗(yi∗(w⋅xi+b)−1−pi2)
然后进行求解。拉格朗日函数对每个未知数求偏导并令其等于0。
∂
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
下面我们一个个来计算。
- 首先是 ∂ L ∂ w = 0 \frac{\partial{L}}{\partial{w}}=0 ∂w∂L=0。 w w w出现在两个位置,分别是 ∣ ∣ w ⃗ ∣ ∣ 2 2 \frac{||\vec{w}||^2}{2} 2∣∣w∣∣2和 ∑ i = 1 s λ i ∗ y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) \sum_{i=1}^s\lambda_i*y_i*(\vec{w}·\vec{x_i}+b) ∑i=1sλi∗yi∗(w⋅xi+b),很容易求导得下式:
w ⃗ − ∑ i = 1 s λ i y i x i ⃗ = 0 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ① \vec{w}-\sum_{i=1}^s\lambda_iy_i\vec{x_i}=0············① w−i=1∑sλiyixi=0⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅①
- 然后是 ∂ L ∂ b = 0 \frac{\partial{L}}{\partial{b}}=0 ∂b∂L=0。 b b b只出现在一个位置,为 ∑ i = 1 s λ i ∗ y i ∗ b \sum_{i=1}^s\lambda_i*y_i*b ∑i=1sλi∗yi∗b,很容易求导得下式:
∑ i = 1 s λ i y i = 0 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ② \sum_{i=1}^s\lambda_iy_i=0············② i=1∑sλiyi=0⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅②
- 接着是 ∂ L ∂ λ i = 0 \frac{\partial{L}}{\partial{\lambda_i}}=0 ∂λi∂L=0。 λ i \lambda_i λi只出现在一个位置,为 ∑ i = 1 s λ i ∗ ( y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 − p i 2 ) \sum_{i=1}^s\lambda_i*(y_i*(\vec{w}·\vec{x_i}+b)-1-p_i^2) ∑i=1sλi∗(yi∗(w⋅xi+b)−1−pi2)。本来求偏导得到的结果应该是 ∑ i = 1 s y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 − p i 2 = 0 \sum_{i=1}^{s}{y_i*(\vec{w}·\vec{x_i}+b)-1-p_i^2=0} ∑i=1syi∗(w⋅xi+b)−1−pi2=0,但其实根据限制条件, y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 − p i 2 = 0 y_i*(\vec{w}·\vec{x_i}+b)-1-p_i^2=0 yi∗(w⋅xi+b)−1−pi2=0,没有必要使用求和符号。
y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 − p i 2 = 0 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ③ y_i*(\vec{w}·\vec{x_i}+b)-1-p_i^2=0············③ yi∗(w⋅xi+b)−1−pi2=0⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅③
- 最后是 ∂ L ∂ p i = 0 \frac{\partial{L}}{\partial{p_i}}=0 ∂pi∂L=0。 p i p_i pi只出现在一个位置,为 ∑ i = 1 s λ i ∗ ( − p i 2 ) \sum_{i=1}^s\lambda_i*(-p_i^2) ∑i=1sλi∗(−pi2),很容易求导得到下式:
2 λ i p i = 0 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ④ 2\lambda_ip_i=0············④ 2λipi=0⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅④
下面的步骤就是利用①~④式和原式求出
∣
∣
w
⃗
∣
∣
||\vec{w}||
∣∣w∣∣的最小值。首先我们将④式左右两边同时除以2并乘
p
i
p_i
pi,得到下式:
λ
i
p
i
2
=
0
\lambda_ip_i^2=0
λipi2=0
之所以要这样做是因为③式中有一个
p
i
2
p_i^2
pi2,这样做可以一定程度上化简计算。我们将③式代入④式,得到:
λ
i
(
y
i
∗
(
w
⃗
⋅
x
i
⃗
+
b
)
−
1
)
=
0
\lambda_i(y_i*(\vec{w}·\vec{x_i}+b)-1)=0
λi(yi∗(w⋅xi+b)−1)=0
这个式子非常有趣。之前我们在第三步得到
y
i
∗
(
w
⃗
⋅
x
i
⃗
+
b
)
≥
1
y_i*(\vec{w}·\vec{x_i}+b)≥1
yi∗(w⋅xi+b)≥1这个约束条件,那这样上式只可能在两种情况下成立:
① y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 ) > 0 y_i*(\vec{w}·\vec{x_i}+b)-1)>0 yi∗(w⋅xi+b)−1)>0, λ i = 0 \lambda_i=0 λi=0;
② y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 = 0 y_i*(\vec{w}·\vec{x_i}+b)-1=0 yi∗(w⋅xi+b)−1=0, λ i ≠ 0 \lambda_i≠0 λi=0。
对于拉格朗日函数 L ( w , b , λ i , p i ) = ∣ ∣ w ⃗ ∣ ∣ 2 2 − ∑ i = 1 s λ i ∗ ( y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 − p i 2 ) L(w,b,\lambda_i,p_i)=\frac{||\vec{w}||^2}{2}-\sum_{i=1}^s\lambda_i*(y_i*(\vec{w}·\vec{x_i}+b)-1-p_i^2) L(w,b,λi,pi)=2∣∣w∣∣2−∑i=1sλi∗(yi∗(w⋅xi+b)−1−pi2)来说,当不满足约束条件时,即 y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 < 0 y_i*(\vec{w}·\vec{x_i}+b)-1<0 yi∗(w⋅xi+b)−1<0时,如果 λ i < 0 \lambda_i<0 λi<0,则 ∑ i = 1 s λ i ∗ ( y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 − p i 2 ) > 0 \sum_{i=1}^s\lambda_i*(y_i*(\vec{w}·\vec{x_i}+b)-1-p_i^2)>0 ∑i=1sλi∗(yi∗(w⋅xi+b)−1−pi2)>0,而 L ( w , b , λ i , p i ) L(w,b,\lambda_i,p_i) L(w,b,λi,pi)也会更小。根据拉格朗日函数的性质,越符合约束条件拉格朗日函数的值越小。这就说明, λ i \lambda_i λi小于0是不符合常理的,故其应该大于等于0。
我们同样也可以通过图像来解释这个问题。
我们假设是二维空间,在这个二维空间中,横纵坐标分别是 w 1 w_1 w1和 w 2 w_2 w2,那么 ∣ ∣ w ⃗ ∣ ∣ = w 1 2 + w 2 2 ||\vec{w}||=\sqrt{w_1^2+w_2^2} ∣∣w∣∣=w12+w22在图像上表示的几何含义为一个圆心为原点,半径为 w 1 2 + w 2 2 \sqrt{w_1^2+w_2^2} w12+w22的圆。
我们所要求得的优化问题 m i n ∣ ∣ w ⃗ ∣ ∣ 2 2 min\frac{||\vec{w}||^2}{2} min2∣∣w∣∣2,即为 ∣ ∣ w ⃗ ∣ ∣ ||\vec{w}|| ∣∣w∣∣取最小值时取到。而由于 ∣ ∣ w ⃗ ∣ ∣ ||\vec{w}|| ∣∣w∣∣即为圆的半径,所以我们希望圆尽可能的小。
现在我们加入约束条件。第一个约束条件为 g 1 = y 1 ∗ ( w ⃗ ⋅ x 1 ⃗ + b ) − 1 ≥ 0 g_1=y_1*(\vec{w}·\vec{x_1}+b)-1≥0 g1=y1∗(w⋅x1+b)−1≥0,它在图像上表示的含义是可行区域在一条直线之上(浅绿色),如下图:
而能够使圆上有点能在可行区域之内,且圆的半径要最小的情况就是圆与直线相切(如图中深蓝色圆所表示)
此时我们加入另外一个限制条件, g 2 = y 2 ∗ ( w ⃗ ⋅ x 2 ⃗ + b ) − 1 ≥ 0 g_2=y_2*(\vec{w}·\vec{x_2}+b)-1≥0 g2=y2∗(w⋅x2+b)−1≥0。此时在两个限制条件下,最小的圆是经过两条直线交点的圆。而此时的 w ⃗ = ( w 1 , w 2 ) \vec{w}=(w_1,w_2) w=(w1,w2)的方向(红色线所表示)只要在两个直线之内即可。
通过上图直观理解,我们也可以得出下面一个式子:向量
∂
f
∂
w
\frac{\partial{f}}{\partial{w}}
∂w∂f可以由
∂
g
1
∂
w
和
∂
g
2
∂
w
\frac{\partial{g_1}}{\partial{w}}和\frac{\partial{g_2}}{\partial{w}}
∂w∂g1和∂w∂g2线性表出,而它们的系数
λ
1
\lambda_1
λ1和
λ
2
\lambda_2
λ2都为非负数(通过直观理解或者用矢量三角形理解)。
∂
f
∂
w
=
λ
1
∂
g
1
∂
w
+
λ
2
∂
g
2
∂
w
\frac{\partial{f}}{\partial{w}}=\lambda_1\frac{\partial{g_1}}{\partial{w}}+\lambda_2\frac{\partial{g_2}}{\partial{w}}
∂w∂f=λ1∂w∂g1+λ2∂w∂g2
通过上述图像也可以帮助我们理解,
λ
i
\lambda_i
λi为什么大于等于0。我们也就得到了第五个条件:
λ
i
≥
0
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⑤
\lambda_i≥0············⑤
λi≥0⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⑤
综合上述,我们已经得到了解的五个条件,又称为KKT条件:
w
⃗
−
∑
i
=
1
s
λ
i
y
i
x
i
⃗
=
0
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
①
∑
i
=
1
s
λ
i
y
i
=
0
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
②
y
i
∗
(
w
⃗
⋅
x
i
⃗
+
b
)
−
1
−
p
i
2
=
0
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
③
2
λ
i
p
i
=
0
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
④
λ
i
≥
0
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⑤
\vec{w}-\sum_{i=1}^s\lambda_iy_i\vec{x_i}=0····················①\\\sum_{i=1}^s\lambda_iy_i=0·························②\\y_i*(\vec{w}·\vec{x_i}+b)-1-p_i^2=0············③\\2\lambda_ip_i=0····························④\\\lambda_i≥0·······························⑤
w−i=1∑sλiyixi=0⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅①i=1∑sλiyi=0⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅②yi∗(w⋅xi+b)−1−pi2=0⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅③2λipi=0⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅④λi≥0⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⑤
对偶问题是一种求解线性规划问题的常用方法。通过将一个问题转化为其对偶问题,有时能大大简化求解问题的难度。
我们先回顾一下原问题:
在 g i ( w , b ) = y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 = p i 2 g_i(w,b)=y_i*(\vec{w}·\vec{x_i}+b)-1=p_i^2 gi(w,b)=yi∗(w⋅xi+b)−1=pi2条件下, 求 ∣ ∣ w ⃗ ∣ ∣ 2 2 求\frac{||\vec{w}||^2}{2} 求2∣∣w∣∣2的最小值。
我们先假设原问题的最优解为
w
∗
、
b
∗
w^*、b^*
w∗、b∗。然后设
q
(
λ
i
)
=
m
i
n
(
L
(
w
,
b
,
λ
i
)
)
=
m
i
n
(
∣
∣
w
⃗
∣
∣
2
2
−
∑
i
=
1
s
λ
i
∗
(
y
i
∗
(
w
⃗
⋅
x
i
⃗
+
b
)
−
1
−
p
i
2
)
)
q(\lambda_i)=min(L(w,b,\lambda_i))=min(\frac{||\vec{w}||^2}{2}-\sum_{i=1}^s\lambda_i*(y_i*(\vec{w}·\vec{x_i}+b)-1-p_i^2))
q(λi)=min(L(w,b,λi))=min(2∣∣w∣∣2−i=1∑sλi∗(yi∗(w⋅xi+b)−1−pi2))
代入
w
∗
、
b
∗
w^*、b^*
w∗、b∗,可以得到下面的式子:
q
(
λ
i
)
=
m
i
n
(
L
(
w
,
b
,
λ
i
)
)
≤
m
i
n
(
L
(
w
∗
,
b
∗
,
λ
i
)
)
q(\lambda_i)=min(L(w,b,\lambda_i))≤min(L(w^*,b^*,\lambda_i))
q(λi)=min(L(w,b,λi))≤min(L(w∗,b∗,λi))
即
m
i
n
(
∣
∣
w
⃗
∣
∣
2
2
−
∑
i
=
1
s
λ
i
∗
(
y
i
∗
(
w
⃗
⋅
x
i
⃗
+
b
)
−
1
−
p
i
2
)
)
≤
∣
∣
w
∗
⃗
∣
∣
2
2
−
∑
i
=
1
s
λ
i
∗
(
y
i
∗
(
w
∗
⃗
⋅
x
i
⃗
+
b
∗
)
−
1
−
p
i
2
)
min(\frac{||\vec{w}||^2}{2}-\sum_{i=1}^s\lambda_i*(y_i*(\vec{w}·\vec{x_i}+b)-1-p_i^2))≤\frac{||\vec{w^*}||^2}{2}-\sum_{i=1}^s\lambda_i*(y_i*(\vec{w^*}·\vec{x_i}+b^*)-1-p_i^2)
min(2∣∣w∣∣2−∑i=1sλi∗(yi∗(w⋅xi+b)−1−pi2))≤2∣∣w∗∣∣2−∑i=1sλi∗(yi∗(w∗⋅xi+b∗)−1−pi2)
小于等于号的存在是由 m i n min min最小值函数决定的。
根据KKT条件的③和⑤,
∑
i
=
1
s
λ
i
∗
(
y
i
∗
(
w
∗
⃗
⋅
x
i
⃗
+
b
∗
)
−
1
−
p
i
2
)
\sum_{i=1}^s\lambda_i*(y_i*(\vec{w^*}·\vec{x_i}+b^*)-1-p_i^2)
∑i=1sλi∗(yi∗(w∗⋅xi+b∗)−1−pi2)必定大于0,故
∣
∣
w
∗
⃗
∣
∣
2
2
−
∑
i
=
1
s
λ
i
∗
(
y
i
∗
(
w
∗
⃗
⋅
x
i
⃗
+
b
∗
)
−
1
−
p
i
2
)
≤
∣
∣
w
∗
⃗
∣
∣
2
2
\frac{||\vec{w^*}||^2}{2}-\sum_{i=1}^s\lambda_i*(y_i*(\vec{w^*}·\vec{x_i}+b^*)-1-p_i^2)≤\frac{||\vec{w^*}||^2}{2}
2∣∣w∗∣∣2−i=1∑sλi∗(yi∗(w∗⋅xi+b∗)−1−pi2)≤2∣∣w∗∣∣2
又由于
w
∗
⃗
\vec{w^*}
w∗是原问题最优解,所以我们可以得到:
∣
∣
w
∗
⃗
∣
∣
2
2
≤
∣
∣
w
⃗
∣
∣
2
2
\frac{||\vec{w^*}||^2}{2}≤\frac{||\vec{w}||^2}{2}
2∣∣w∗∣∣2≤2∣∣w∣∣2
所以我们可以得到下面一个不等式链:
q
(
λ
i
)
≤
m
i
n
(
L
(
w
∗
,
b
∗
,
λ
i
)
)
≤
∣
∣
w
∗
⃗
∣
∣
2
2
≤
∣
∣
w
⃗
∣
∣
2
2
q(\lambda_i)≤min(L(w^*,b^*,\lambda_i))≤\frac{||\vec{w^*}||^2}{2}≤\frac{||\vec{w}||^2}{2}
q(λi)≤min(L(w∗,b∗,λi))≤2∣∣w∗∣∣2≤2∣∣w∣∣2
我们假设
λ
i
∗
为
q
(
λ
i
)
\lambda_i^*为q(\lambda_i)
λi∗为q(λi)的最优解。则
q
(
λ
i
)
≤
q
(
λ
i
∗
)
≤
∣
∣
w
∗
⃗
∣
∣
2
2
≤
∣
∣
w
⃗
∣
∣
2
2
q(\lambda_i)≤q(\lambda_i^*)≤\frac{||\vec{w^*}||^2}{2}≤\frac{||\vec{w}||^2}{2}
q(λi)≤q(λi∗)≤2∣∣w∗∣∣2≤2∣∣w∣∣2
好,进行到这一步我们就可以将原问题转化成对偶问题了。
原问题:
- 在 g i ( w , b ) = y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 ≥ 0 g_i(w,b)=y_i*(\vec{w}·\vec{x_i}+b)-1≥0 gi(w,b)=yi∗(w⋅xi+b)−1≥0条件下, 求 ∣ ∣ w ⃗ ∣ ∣ 2 2 求\frac{||\vec{w}||^2}{2} 求2∣∣w∣∣2的最小值。
对偶问题:
- 在 λ i ≥ 0 \lambda_i≥0 λi≥0的条件下,求 q ( λ i ) = m i n ( L ( w , b , λ i ) ) q(\lambda_i)=min(L(w,b,\lambda_i)) q(λi)=min(L(w,b,λi))的最大值。
当 q ( λ i ∗ ) = ∣ ∣ w ∗ ⃗ ∣ ∣ 2 2 q(\lambda_i^*)=\frac{||\vec{w^*}||^2}{2} q(λi∗)=2∣∣w∗∣∣2时,两个问题为强对偶问题,应同时取得最优解,下面进行证明:
因为
q
(
λ
i
)
≤
∣
∣
w
⃗
∣
∣
2
2
q(\lambda_i)≤\frac{||\vec{w}||^2}{2}
q(λi)≤2∣∣w∣∣2
所以
q
(
λ
i
∗
)
≤
∣
∣
w
⃗
∣
∣
2
2
q(\lambda_i^*)≤\frac{||\vec{w}||^2}{2}
q(λi∗)≤2∣∣w∣∣2
故
∣
∣
w
∗
⃗
∣
∣
2
2
≤
∣
∣
w
⃗
∣
∣
2
2
\frac{||\vec{w^*}||^2}{2}≤\frac{||\vec{w}||^2}{2}
2∣∣w∗∣∣2≤2∣∣w∣∣2
而又根据前面得到的
q
(
λ
i
)
≤
m
i
n
(
L
(
w
∗
,
b
∗
,
λ
i
)
)
≤
∣
∣
w
∗
⃗
∣
∣
2
2
q(\lambda_i)≤min(L(w^*,b^*,\lambda_i))≤\frac{||\vec{w^*}||^2}{2}
q(λi)≤min(L(w∗,b∗,λi))≤2∣∣w∗∣∣2,所以
q
(
λ
i
)
≤
∣
∣
w
∗
⃗
∣
∣
2
2
=
q
(
λ
i
∗
)
q(\lambda_i)≤\frac{||\vec{w^*}||^2}{2}=q(\lambda_i^*)
q(λi)≤2∣∣w∗∣∣2=q(λi∗)
所以
q
(
λ
i
∗
)
q(\lambda_i^*)
q(λi∗)为
q
(
λ
i
)
q(\lambda_i)
q(λi)的最大值解。
故证明在强对偶条件下,原问题和对偶问题的最优解同时取到。
根据前面的拉格朗日函数,我们已经得到:
m
a
x
(
q
(
λ
)
)
=
m
a
x
(
m
i
n
(
∣
∣
w
⃗
∣
∣
2
)
−
∑
i
=
1
s
λ
i
∗
(
y
i
∗
(
w
∗
⃗
⋅
x
i
⃗
+
b
∗
)
−
1
)
)
)
max(q(\lambda))=max(min(\frac{||\vec{w}||}{2})-\sum_{i=1}^s\lambda_i*(y_i*(\vec{w^*}·\vec{x_i}+b^*)-1)))
max(q(λ))=max(min(2∣∣w∣∣)−i=1∑sλi∗(yi∗(w∗⋅xi+b∗)−1)))
将KKT条件代入化简可得:
m
a
x
(
q
(
λ
)
)
=
m
a
x
(
∑
i
=
1
s
λ
i
−
1
2
∑
i
=
1
s
∑
j
=
1
s
λ
i
λ
j
y
i
y
j
x
i
⃗
⋅
x
j
⃗
)
max(q(\lambda))=max(\sum_{i=1}^s{\lambda_i}-\frac{1}{2}\sum_{i=1}^{s}\sum_{j=1}^s\lambda_i\lambda_jy_iy_j\vec{x_i}·\vec{x_j})
max(q(λ))=max(i=1∑sλi−21i=1∑sj=1∑sλiλjyiyjxi⋅xj)
上文我们推导过下列式子:
① y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 > 0 y_i*(\vec{w}·\vec{x_i}+b)-1>0 yi∗(w⋅xi+b)−1>0, λ i = 0 \lambda_i=0 λi=0;
② y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 = 0 y_i*(\vec{w}·\vec{x_i}+b)-1=0 yi∗(w⋅xi+b)−1=0, λ i ≠ 0 \lambda_i≠0 λi=0。
同时我们也推导出 λ i ≥ 0 \lambda_i≥0 λi≥0这个条件。
根据上面的两个条件我们可以得到一些结论。
-
如果数据点在正负超平面 w ⃗ ⋅ x i ⃗ + b ± 1 = 0 \vec{w}·\vec{x_i}+b±1=0 w⋅xi+b±1=0上,由于 ∣ y i ∣ = 1 |y_i|=1 ∣yi∣=1,所以 y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 = 0 y_i*(\vec{w}·\vec{x_i}+b)-1=0 yi∗(w⋅xi+b)−1=0,则属于情况②,故 λ i > 0 \lambda_i>0 λi>0。
-
如果数据点不在正负超平面上 w ⃗ ⋅ x i ⃗ + b ± 1 = 0 \vec{w}·\vec{x_i}+b±1=0 w⋅xi+b±1=0上,则属于情况①,所以 λ i = 0 \lambda_i=0 λi=0。而将 λ i = 0 \lambda_i=0 λi=0代入可得 λ i ( y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 ) = 0 \lambda_i(y_i*(\vec{w}·\vec{x_i}+b)-1)=0 λi(yi∗(w⋅xi+b)−1)=0。
上述推导说明,我们在计算超平面权重值 w w w时只需要用到支持向量(在正负超平面上的数据点),而不需要非支持向量。
有了前文铺垫,我们就可以得出支持向量机SVM算法了。
① 通过下列问题求得
λ
i
\lambda_i
λi的值
m
a
x
(
q
(
λ
)
)
=
m
a
x
(
∑
i
=
1
s
λ
i
−
1
2
∑
i
=
1
s
∑
j
=
1
s
λ
i
λ
j
y
i
y
j
x
i
⃗
⋅
x
j
⃗
)
其中
λ
i
≥
0
max(q(\lambda))=max(\sum_{i=1}^s{\lambda_i}-\frac{1}{2}\sum_{i=1}^{s}\sum_{j=1}^s\lambda_i\lambda_jy_iy_j\vec{x_i}·\vec{x_j})\\其中\lambda_i≥0
max(q(λ))=max(i=1∑sλi−21i=1∑sj=1∑sλiλjyiyjxi⋅xj)其中λi≥0
② 根据KKT条件
w
⃗
=
∑
i
=
1
s
λ
i
y
i
x
i
⃗
\vec{w}=\sum_{i=1}^s\lambda_iy_i\vec{x_i}
w=i=1∑sλiyixi
可以求出
w
⃗
\vec{w}
w
标题
③ 根据 y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 = 0 y_i*(\vec{w}·\vec{x_i}+b)-1=0 yi∗(w⋅xi+b)−1=0求解出 b b b
升维转换与核技巧
我们看下面一个情景:
比如现在在一维x轴上有一些数据点,红色和蓝色。我们现在想要将其用一个函数(对于一维来说就是一个常量)去划分红点和蓝点。很直观地可以看出,这个是不可能的。
但是,如果上图是由二维平面图形投影到一维x轴上而产生的,我们“还原”二维平面,或许会发现不一样的世界:
如上图,如果我们能通过某些方法将一维的数据点转化为二维的数据点,那么我们似乎可以很容易对数据点进行划分(如图中粉红色那条线)
这一过程即为升维转换。
在支持向量机中我们也可以利用这个方法。我们先回顾下优化方程:
m
a
x
(
q
(
λ
i
)
)
=
m
a
x
(
∑
i
=
1
s
λ
i
−
1
2
∑
i
=
1
s
∑
j
=
1
s
λ
i
λ
j
y
i
y
j
x
i
⃗
⋅
x
j
⃗
)
其中
λ
i
≥
0
max(q(\lambda_i))=max(\sum_{i=1}^s{\lambda_i}-\frac{1}{2}\sum_{i=1}^{s}\sum_{j=1}^s\lambda_i\lambda_jy_iy_j\vec{x_i}·\vec{x_j})\\其中\lambda_i≥0
max(q(λi))=max(i=1∑sλi−21i=1∑sj=1∑sλiλjyiyjxi⋅xj)其中λi≥0
x
i
⃗
⋅
x
j
⃗
\vec{x_i}·\vec{x_j}
xi⋅xj表示在原维度下对应向量坐标的点积。但是事实上,上述方程是无解的,所以我们可以利用核技巧进行升维变换。我们会通过一个函数
T
(
x
)
T(x)
T(x)进行升维变换操作,这个函数我们称之为维度转换函数。通过维度转换函数,原来的
x
i
⃗
\vec{x_i}
xi变成了
T
(
x
i
⃗
)
T(\vec{x_i})
T(xi),
x
j
⃗
\vec{x_j}
xj变成了
T
(
x
j
⃗
)
T(\vec{x_j})
T(xj)。所以原问题也转换成了下式:
m
a
x
(
q
(
λ
i
)
)
=
m
a
x
(
∑
i
=
1
s
λ
i
−
1
2
∑
i
=
1
s
∑
j
=
1
s
λ
i
λ
j
y
i
y
j
T
(
x
i
⃗
)
⋅
T
(
x
j
⃗
)
)
其中
λ
i
≥
0
max(q(\lambda_i))=max(\sum_{i=1}^s{\lambda_i}-\frac{1}{2}\sum_{i=1}^{s}\sum_{j=1}^s\lambda_i\lambda_jy_iy_jT(\vec{x_i})·T(\vec{x_j}))\\其中\lambda_i≥0
max(q(λi))=max(i=1∑sλi−21i=1∑sj=1∑sλiλjyiyjT(xi)⋅T(xj))其中λi≥0
事实上,这里我们既可以通过
x
i
⃗
、
x
j
⃗
\vec{x_i}、\vec{x_j}
xi、xj写出
T
(
x
i
⃗
)
、
T
(
x
j
⃗
)
T(\vec{x_i})、T(\vec{x_j})
T(xi)、T(xj),然后再进行点积操作,也可以直接令
K
(
x
i
⃗
,
x
j
⃗
)
=
T
(
x
i
⃗
)
⋅
T
(
x
j
⃗
)
K(\vec{x_i},\vec{x_j})=T(\vec{x_i})·T(\vec{x_j})
K(xi,xj)=T(xi)⋅T(xj),然后进行计算。这两者的区别在于,后者是直接将
x
i
⃗
⋅
x
j
⃗
\vec{x_i}·\vec{x_j}
xi⋅xj看成一个未知数整体代入计算。而这里的
K
(
x
i
⃗
,
x
j
⃗
)
K(\vec{x_i},\vec{x_j})
K(xi,xj)即为核函数。其一般表达式如下:
K
(
x
i
⃗
,
x
j
⃗
)
=
(
c
+
x
i
⃗
⋅
x
j
⃗
)
d
K(\vec{x_i},\vec{x_j})=(c+\vec{x_i}·\vec{x_j})^d
K(xi,xj)=(c+xi⋅xj)d
那么参数
c
和
d
c和d
c和d都有什么作用呢?
对于相同的 d d d,不同的 c c c来说, c c c可以控制低次项的存在与否,以及低次项的系数;
对于相同的 c c c,不同的 d d d来说, d d d的大小决定了最高维度大小。
除此之外,核函数还可以由多个核函数线性组合而成,比如: K 1 ′ ( x i ⃗ , x j ⃗ ) + K 2 ′ ( x i ⃗ , x j ⃗ ) K_1'(\vec{x_i},\vec{x_j})+K_2'(\vec{x_i},\vec{x_j}) K1′(xi,xj)+K2′(xi,xj)
也有一种比较特殊的核函数,即将二维转化成无穷维。这个核函数是高斯核函数(RBF),其公式如下:
K
(
x
i
⃗
,
x
j
⃗
)
=
e
−
γ
∣
∣
x
i
⃗
−
x
j
⃗
∣
∣
2
K(\vec{x_i},\vec{x_j})=e^{-\gamma||\vec{x_i}-\vec{x_j}||^2}
K(xi,xj)=e−γ∣∣xi−xj∣∣2
软间隔
前文中解释过软硬间隔的概念,下面我们详细讨论下。
如上图,有个点A违反了约束条件,在黄线和黑线之内。
我们知道硬间隔约束条件为
y
i
∗
(
w
∗
⃗
⋅
x
i
⃗
+
b
∗
)
−
1
≥
0
y_i*(\vec{w^*}·\vec{x_i}+b^*)-1≥0
yi∗(w∗⋅xi+b∗)−1≥0。如果点A违背约束条件,则点A满足式子
y
a
∗
(
w
∗
⃗
⋅
x
a
⃗
+
b
∗
)
−
1
<
0
y_a*(\vec{w^*}·\vec{x_a}+b^*)-1<0
ya∗(w∗⋅xa+b∗)−1<0。我们想要把不等式转化为等式,则需要一个
ϵ
a
\epsilon_a
ϵa来衡量误差,式子如下:
ϵ
a
=
1
−
y
a
∗
(
w
∗
⃗
⋅
x
a
⃗
+
b
∗
)
\epsilon_a=1-y_a*(\vec{w^*}·\vec{x_a}+b^*)
ϵa=1−ya∗(w∗⋅xa+b∗)
所以软间隔优化问题如下:
在 g i ( w , b ) = y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 > 0 g_i(w,b)=y_i*(\vec{w}·\vec{x_i}+b)-1>0 gi(w,b)=yi∗(w⋅xi+b)−1>0和 m a x ( 0 , 1 − y a ∗ ( w ∗ ⃗ ⋅ x a ⃗ + b ∗ ) ) max(0,1-y_a*(\vec{w^*}·\vec{x_a}+b^*)) max(0,1−ya∗(w∗⋅xa+b∗))条件下,
求 ∣ ∣ w ⃗ ∣ ∣ 2 2 + C ∑ i = 1 s ϵ i 求\frac{||\vec{w}||^2}{2}+C\sum_{i=1}^s{\epsilon_i} 求2∣∣w∣∣2+C∑i=1sϵi的最小值。
我们可以和之前的硬间隔优化问题进行比对:
在 g i ( w , b ) = y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 > 0 g_i(w,b)=y_i*(\vec{w}·\vec{x_i}+b)-1>0 gi(w,b)=yi∗(w⋅xi+b)−1>0条件下,
求 ∣ ∣ w ⃗ ∣ ∣ 2 2 求\frac{||\vec{w}||^2}{2} 求2∣∣w∣∣2的最小值。
事实上,软间隔相比于硬间隔的最大差别是在于多了一项
C
∑
i
=
1
s
ϵ
i
C\sum_{i=1}^s{\epsilon_i}
Ci=1∑sϵi
这一项的意思就是,将所有的误差
∑
i
=
1
s
ϵ
i
\sum_{i=1}^s{\epsilon_i}
∑i=1sϵi考虑到优化问题中,这样求最小值的时候也能够起到减少误差的作用。而常数
C
C
C是我们人为规定的,它起到调节误差容忍度的作用。
- C C C越大,说明对 ϵ i \epsilon_i ϵi的容忍度越小,也就是最终算出来的结果中产生的误差越少;
- C C C越小,说明对 ϵ i \epsilon_i ϵi的容忍度越大,也就是最终算出来的结果中产生的误差越大;