Preface
本文对于SVM(Support Vector Machine,支持向量机)的做了一些准备工作,并在接下来的几篇文章正式初步学习SVM。
主要内容:
Notation(符号约定)
Functional Margins And Geometric Margins(函数间隔和几何间隔 )
Optimal Margin Classifier(最有间隔分类器)
Primal Problem(原始问题)
Dual Optimization Problem(对偶优化问题)
Notation
在SVM学习中我们将改变之前的学习习惯:
- 分类标识由 y∈{0,1}→y∈{−1,1} y ∈ { 0 , 1 } → y ∈ { − 1 , 1 } ,来作为分类的标识来区分不同类别。例如 y=−1 y = − 1 标识类别一, y=1 y = 1 标识类别二。
- 假设函数由
hθ(x)=g(θTx),x∈Rn+1→hw,b(x)=g(wTx+b),x∈Rn
h
θ
(
x
)
=
g
(
θ
T
x
)
,
x
∈
R
n
+
1
→
h
w
,
b
(
x
)
=
g
(
w
T
x
+
b
)
,
x
∈
R
n
。
其中, hw,b(x)=g(wTx+b),x∈Rn h w , b ( x ) = g ( w T x + b ) , x ∈ R n 中的w与b分别对应于 hθ(x)=g(θTx) h θ ( x ) = g ( θ T x ) 中的对应关系为:
ω=[θ1,θ2...θn]T ω = [ θ 1 , θ 2 . . . θ n ] T
b=θ0 b = θ 0
Functional Margins
定义:一个超平面 (w,b) ( w , b ) 和某个特定的训练样本 (xi,yi) ( x i , y i ) 相关的函数间隔为:
γ^(i)=y(i)(wTx(i)+b)(1) (1) γ ^ ( i ) = y ( i ) ( w T x ( i ) + b )
超平面 (w,b) ( w , b ) 表示的是由参数 w,b w , b 确定的分界。
如果需要
γ^(i)
γ
^
(
i
)
获得一个较大的值,那么:
当
y(i)=1
y
(
i
)
=
1
时,需要
wTx(i)+b
w
T
x
(
i
)
+
b
远大于0;
当
y(i)=−1
y
(
i
)
=
−
1
时,需要
wTx(i)+b
w
T
x
(
i
)
+
b
远小于0;
以及当 γ^(i)=y(i)(wTx(i)+b)>0 γ ^ ( i ) = y ( i ) ( w T x ( i ) + b ) > 0 时,我们认为分类结果是正确的。
定义:一个超平面 (w,b) ( w , b ) 和整个的训练集中的所有训练样本 (xi,yi) ( x i , y i ) 相关的函数间隔为:
γ^(i)=mini=1,2,...,mγ^(i)(2) (2) γ ^ ( i ) = min i = 1 , 2 , . . . , m γ ^ ( i )
Geometric Margins
通过上图我们可以知道,一个样本
(x(i),y(i))
(
x
(
i
)
,
y
(
i
)
)
A点到超平面
wTx+b=0
w
T
x
+
b
=
0
的几何间隔为
γ(i)
γ
(
i
)
,且
w∥w∥
w
‖
w
‖
为超平面
wTx+b=0
w
T
x
+
b
=
0
指向A点方向的单位向量,A点
(x(i),y(i))
(
x
(
i
)
,
y
(
i
)
)
在超平面
wTx+b=0
w
T
x
+
b
=
0
上的投影B点为:
x(i)−γ(i)w∥w∥(3) (3) x ( i ) − γ ( i ) w ‖ w ‖
同时,由于B在超平面上,所以:
wT(x(i)−γ(i)w∥w∥)+b=0(4) (4) w T ( x ( i ) − γ ( i ) w ‖ w ‖ ) + b = 0
- 注: wTw=∥w∥2 w T w = ‖ w ‖ 2 。
所以,我们可以得出几何间隔为 γ(i) γ ( i ) :
γ(i)=wTx(i)+b∥w∥=(w∥w∥)Tx(i)+b∥w∥(5) (5) γ ( i ) = w T x ( i ) + b ‖ w ‖ = ( w ‖ w ‖ ) T x ( i ) + b ‖ w ‖
由于我们总是考虑对训练样本的争取分类,所以将几何间隔为 γ(i) γ ( i ) 一般化为:
γ(i)=y(i)(wTx(i)+b∥w∥=(w∥w∥)Tx(i)+b∥w∥)(6) (6) γ ( i ) = y ( i ) ( w T x ( i ) + b ‖ w ‖ = ( w ‖ w ‖ ) T x ( i ) + b ‖ w ‖ )
如果 ∥w∥=1 ‖ w ‖ = 1 , γ^(i)=γ(i) γ ^ ( i ) = γ ( i ) 。更一般的有, γ(i)=γ^(i)∥w∥ γ ( i ) = γ ^ ( i ) ‖ w ‖ 。
定义:一个超平面 (w,b) ( w , b ) 和整个的训练集中的所有训练样本 (xi,yi) ( x i , y i ) 相关的几何间隔为:
γ(i)=mini=1,2,...,mγ(i)(7) (7) γ ( i ) = min i = 1 , 2 , . . . , m γ ( i )
Optimal Margin Classifier
最优间隔是指调整参数 w,b w , b 使得几何间隔 γ(i) γ ( i ) 最大。
Step1:条件假设
∥w∥=1
‖
w
‖
=
1
,
|w1|=1
|
w
1
|
=
1
,
∥w∥+|w|2=?
‖
w
‖
+
|
w
|
2
=
?
只需要选一个条件。
对于上述条件的解释:
调整参数
w,b
w
,
b
对于超平面
wTx+b=0
w
T
x
+
b
=
0
无影响,例如将
w,b
w
,
b
扩大两倍
2w,2b
2
w
,
2
b
得到
2wTx+2b=0→2∗(wTx+b)=0
2
w
T
x
+
2
b
=
0
→
2
∗
(
w
T
x
+
b
)
=
0
,即超平面位置不发生变化。所以我们可以通过缩放
w,b
w
,
b
来满足上述条件。
|w1|
|
w
1
|
表示
w
w
的第一个位置的数字为1。
Step2:公式推演
首先看看函数间隔,你给参数前乘一个大于零的数,函数间隔就会变大,这个不好。再来看看几何间隔,由于要将参数单位化,所以就不受参数的非因素影响,就是说当几何间隔最大的时候,真的就是训练样本距离超平面最大。这样用几何间隔就可以非常健壮的描述样本与超平面之间的距离。
形式一:
形式二:
maxγ,w,bγ^∥w∥s.t.y(i)(wTx(i)+b)≥γ^,i=1,...,m(9)
(9)
max
γ
,
w
,
b
γ
^
‖
w
‖
s
.
t
.
y
(
i
)
(
w
T
x
(
i
)
+
b
)
≥
γ
^
,
i
=
1
,
.
.
.
,
m
形式三:
minγ,w,b∥w∥2s.t.y(i)(wTx(i)+b)≥γ^,i=1,...,mγ^=1s.t.miny(i)(wTx(i)+b)=1ormaxγ,w,b1∥w∥s.t.y(i)(wTx(i)+b)≥γ^,i=1,...,mγ^=1s.t.miny(i)(wTx(i)+b)=1(10)
(10)
min
γ
,
w
,
b
‖
w
‖
2
s
.
t
.
y
(
i
)
(
w
T
x
(
i
)
+
b
)
≥
γ
^
,
i
=
1
,
.
.
.
,
m
γ
^
=
1
s
.
t
.
min
y
(
i
)
(
w
T
x
(
i
)
+
b
)
=
1
o
r
max
γ
,
w
,
b
1
‖
w
‖
s
.
t
.
y
(
i
)
(
w
T
x
(
i
)
+
b
)
≥
γ
^
,
i
=
1
,
.
.
.
,
m
γ
^
=
1
s
.
t
.
min
y
(
i
)
(
w
T
x
(
i
)
+
b
)
=
1
Lagrange Duality
我们会使用拉格朗日乘数法来解决关于约束优化问题:
我们的目标函数是:
接下来我们构造拉格朗日算子:
然后分别对参数进行求导,并令其为零:
然后解上述等式构成的方程组,求得
wi,βi
w
i
,
β
i
。最后将
wi,βi
w
i
,
β
i
带回到目标函数。
Primal Problem
在这里我们构造出原始优化问题的目标函数:
现在我们开始使用拉格朗日乘数法来解决原始优化问题:
我们定义一个增广拉格朗日函数,在这里
αi
α
i
与
βi
β
i
为拉格朗日乘数:
定义一个
θp(w)
θ
p
(
w
)
函数,这里的下标p表示primal:
所以:
所以
minθp(w)
min
θ
p
(
w
)
就是我们的目标问题——原始优化问题:
Dual Optimization Problem
我们定义函数
θD(α,β)
θ
D
(
α
,
β
)
,其中D表示duo(对偶):
现在我们定义对偶优化问题:
定义: p∗ p ∗ 是原始优化问题 minθp(w) min θ p ( w ) 的最优值。
定义: d∗ d ∗ 是原始优化问题 maxθD(α,β) max θ D ( α , β ) 的最优值。
有这样一个在通常条件下成立的事实:
d∗≤p∗
d
∗
≤
p
∗
,即对偶优化问题的最优值小于等于原始优化问题的最优值。更一般的有,对于某个函数
f(x)
f
(
x
)
而言,总是存在
maxminf(x)≤minmaxf(x)
max
min
f
(
x
)
≤
min
max
f
(
x
)
。
For example:
maxy∈{0,1}(minx∈{0,1}1{x=y})≤minx∈{0,1}(maxy∈{0,1}1{x=y})
max
y
∈
{
0
,
1
}
(
min
x
∈
{
0
,
1
}
1
{
x
=
y
}
)
≤
min
x
∈
{
0
,
1
}
(
max
y
∈
{
0
,
1
}
1
{
x
=
y
}
)
。
关于对偶理论可以参考 运筹学(第四版) 清华大学出版社 第64页
对偶问题的一些性质:
1. 目标函数值相同时,各自的解为最优解
2. 若原问题有最优解,那么对偶问题也有最优解,且目标函数值相同
3. 还有互补松弛性,无界性,对称性等等
当原问题和对偶问题都取得最优解得时候,那么他们分别的目标函数也就到达了最优值。根据对偶问题的性质2,可以得到 p∗=d∗ p ∗ = d ∗ 那么我们就可以求解对偶问题来得到原问题 θp(w) θ p ( w ) 的最优值。
为了使得
p∗=d∗
p
∗
=
d
∗
我们需要满足一些条件,接下来我们开始推演
p∗=d∗
p
∗
=
d
∗
:
假设一:
f
f
是一个凸函数( 的Hessian矩阵是半正定矩阵)。
假设二:
hi
h
i
是仿射函数(
hi(w)=θTw+b
h
i
(
w
)
=
θ
T
w
+
b
,仿射的意思是这个函数任何时候都是线性的)。
假设三:
gi
g
i
是严格可执行的(
∃w,使得∀i,gi(w)<0
∃
w
,
使
得
∀
i
,
g
i
(
w
)
<
0
)
通过这三个假设,我们得到KKT(Karush-Kuhn-Tucker conditions)条件(
∃w∗,α∗,β∗,w∗是原始最优问题的解,α∗,β∗
∃
w
∗
,
α
∗
,
β
∗
,
w
∗
是
原
始
最
优
问
题
的
解
,
α
∗
,
β
∗
是对偶最优问题的解,
p∗=d∗
p
∗
=
d
∗
),我们得到KKT:
其中,
α∗igi(w∗)=0
α
i
∗
g
i
(
w
∗
)
=
0
成为KKT互补条件,对于
α∗i>0
α
i
∗
>
0
,必有
gi(w∗)=0
g
i
(
w
∗
)
=
0
。
参考资料
https://blog.csdn.net/xiaocainiaodeboke/article/details/50443680