机器学习 SVM
SVM支持向量机
SVM是一种二分类模型。基本模型定义是,在特征空间中间隔最大的线性分类器。
- 线性可分支持向量机(硬间隔支持向量机)
- 线性支持向量机(软间隔支持向量机)
- 非线性支持向量机
线性可分支持向量机
将输入的n维空间,分成两部分。
假设输入空间和输出空间是不同的两部分,输入空间为欧氏空间或离散集合,特征空间为欧氏空间或者希尔伯特空间。线性可分支持向量机、线性支持向量机假设这两个空间的元素一一对应,并将输入空间中的输入映射成特征空间中的特征向量。
- 假设给定训练数据 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x n , y n ) } T = \{(x_1,y_1),(x_2,y_2),...,(x_n,y_n)\} T={(x1,y1),(x2,y2),...,(xn,yn)},其中 x i x_i xi为第 i 个特征向量。 y i = + 1 y_i = +1 yi=+1,称 x i x_i xi是正实例, y i = + 1 y_i = +1 yi=+1称 x i x_i xi是负实例
- 假设给定实例是线性可分的,给定一个超平面,能将给定数据集的正负实例完全的划分到超平面的两侧。
- 当数据集线性可分的时候,存在无数个超平面将政府数据集分开。线性可分支持向量机利用间隔最大化,求最优超平面,这时,解是唯一的。
函数间隔和几何间隔
超平面:Hyperplane
ω
T
x
+
b
=
0
ω
是
平
面
的
法
向
量
\omega^Tx+b = 0 \quad\omega 是平面的法向量
ωTx+b=0ω是平面的法向量
如果该预测点距离超平面较远,则证明确信预测是正确的,如果该预测点距离超平面较近,则对预测结果不那么确信。
函数间隔
∣
ω
T
x
+
b
∣
|\omega^Tx+b|
∣ωTx+b∣能相对的表示点x距离超平面的远近,并且
ω
T
x
+
b
\omega^Tx+b
ωTx+b的符号与 y 的符号是否一致也能表明分类是否正确,因此使用
y
(
ω
T
x
+
b
)
y(\omega^Tx+b)
y(ωTx+b)来表示分类得正确行与可信度。
定义:定以超平面( w , b ),数据点( xi, yi ),函数间隔为
γ
^
i
=
y
i
(
ω
x
i
+
b
)
\hat{\gamma }_i = y_i(\omega x_i + b)
γ^i=yi(ωxi+b)
整个数据集的函数间隔
超平面(w,b)关于整个数据集T的间隔为,T中所有间隔的最小值。
γ
^
=
min
i
=
1
,
.
.
.
,
m
γ
^
i
\hat{\gamma } = \min_{i=1,...,m}\hat{\gamma}_i
γ^=i=1,...,mminγ^i
但是当对w,b进行同步放缩的时候,超平面
ω
T
x
+
b
=
0
\omega^Tx+b = 0
ωTx+b=0 并没有改变,但是函数间隔
γ
^
i
=
y
i
(
ω
x
i
+
b
)
\hat{\gamma }_i = y_i(\omega x_i + b)
γ^i=yi(ωxi+b)却被放缩了。
几何间隔
对超平面的法向量加以约束,对其规范化,
∥
w
∥
=
1
\|w\| = 1
∥w∥=1,使得区间不能被随意放缩,成为几何间隔
γ
i
=
y
i
(
ω
∥
w
∥
x
i
+
b
∥
w
∥
)
\gamma _i = y_i(\frac{\omega }{\|w\|}x_i + \frac{b}{\|w\|})
γi=yi(∥w∥ωxi+∥w∥b)
γ
=
min
i
=
1
,
.
.
.
,
m
γ
i
\gamma = \min_{i=1,...,m}\gamma_i
γ=i=1,...,mminγi
几何间隔和函数间隔关系
γ = γ ^ ∥ w ∥ \gamma = \frac{\hat{\gamma}}{\|w\|} γ=∥w∥γ^
间隔最大化
- 超平面(Hyperplane)实际上作为区分正负样本的决策平面。
- 如果给定的分界间隔越大,那么最决策的确信度越高。例如数据距离超平面非常远,分类的确信度会更高。
- 有一定数量的超平面,哪一个是最优的?
max w , b min i γ i \max_{w,b}\min_{i}{\gamma_i} w,bmaximinγi
上述问题等价于:
max
w
,
b
γ
s
.
t
.
y
i
(
ω
∥
w
∥
x
i
+
b
∥
w
∥
)
≥
γ
\max_{w,b} \quad\gamma\\ s.t.\quad y_i(\frac{\omega }{\|w\|}x_i + \frac{b}{\|w\|}) \geq \gamma
w,bmaxγs.t.yi(∥w∥ωxi+∥w∥b)≥γ
则,下面通过对w,b的一些放缩,变换要求解的最优化函数,但是并不影响最终的优化结果,这里的放缩改变形式是为了方便求解。
max
w
,
b
γ
s
.
t
.
y
i
(
ω
x
i
+
b
)
≥
γ
∥
w
∥
\max_{w,b} \quad\gamma\\ s.t.\quad y_i(\omega x_i + b) \geq \gamma \|w\|
w,bmaxγs.t.yi(ωxi+b)≥γ∥w∥
通过放缩w,可以使得
min
i
y
i
(
w
x
i
+
b
)
=
1
\min_i {y_i(wx_i+b) }= 1
miniyi(wxi+b)=1,将w,b的放缩对于目标函数的优化没有影响
γ
=
min
i
y
i
(
ω
∥
w
∥
x
i
+
b
∥
w
∥
)
=
1
∥
w
∥
\gamma = \min_i {y_i(\frac{\omega }{\|w\|}x_i + \frac{b}{\|w\|})} = \frac{1}{\|w\|}
γ=iminyi(∥w∥ωxi+∥w∥b)=∥w∥1
则
max
w
,
b
1
∥
w
∥
s
.
t
.
y
i
(
ω
x
i
+
b
)
≥
1
∀
i
\max_{w,b} \quad \frac{1}{\|w\|}\\ s.t.\quad y_i(\omega x_i + b) \geq 1 \quad \forall i
w,bmax∥w∥1s.t.yi(ωxi+b)≥1∀i
至此,放缩w,b的工作完成。
我们要求解在约束条件下的
max
w
,
b
1
∥
w
∥
\quad\max_{w,b}\quad\frac{1}{\|w\|}
maxw,b∥w∥1,等价于最小化
∥
w
∥
\|w\|
∥w∥,由于
∥
w
∥
\|w\|
∥w∥存在根号,因此为了方便的去除根号我们使用
∥
w
∥
2
\|w\|^2
∥w∥2
注:||w||,w的2-范数,详看文章末尾
min w , b ∥ w ∥ 2 s . t . y i ( ω x i + b ) − 1 ≥ 0 ∀ i \min_{w,b} \quad \|w\|^2\\ s.t.\quad y_i(\omega x_i + b) - 1\geq 0 \quad \forall i w,bmin∥w∥2s.t.yi(ωxi+b)−1≥0∀i
这是一个凸二次优化问题(cnovex quadratic programming)QP问题
- 凸函数在上一篇已经提到了,
y
=
x
2
y = x^2
y=x2就是一个凸函数
关于凸二次优化问题,可以自行百度,不在讨论范围内.
现有的通用的解凸二次优化问题的方法非常低效,特别是面对非常大的数据集的时候。
最优化问题(Optimization Problem)
在约束最优化问题中,常常利用拉格朗日对偶性,将原始问题转换为对偶问题,通过求解对偶问题而得到原始问题的解。
原始问题
min
w
f
(
w
)
s
.
t
.
g
i
(
w
)
≤
0
,
i
=
1
,
.
.
.
k
h
j
(
w
)
=
0
,
j
=
1
,
.
.
.
,
l
\min_w f(w) \\s.t.\quad g_i(w)\leq0,i=1,...k \\\qquad h_j(w) = 0,j=1,...,l
wminf(w)s.t.gi(w)≤0,i=1,...khj(w)=0,j=1,...,l
w
∈
R
n
w\in\mathbb{R}^n
w∈Rn为变量,
p
∗
p^*
p∗为最优值。
拉格朗日函数:
L
:
R
n
×
R
k
×
R
l
→
R
L:\mathbb{R}^n \times\mathbb{R}^k\times \mathbb{R}^l \rightarrow \mathbb{R}
L:Rn×Rk×Rl→R
L
(
w
,
α
,
β
)
=
f
(
w
)
+
∑
i
=
1
k
α
i
g
i
(
w
)
+
∑
j
=
1
l
β
j
h
j
(
w
)
L(w,\alpha,\beta) = f(w) + \sum_{i=1}^k\alpha_ig_i(w) + \sum_{j = 1}^{l}\beta_jh_j(w)
L(w,α,β)=f(w)+i=1∑kαigi(w)+j=1∑lβjhj(w)
α
i
是
拉
格
朗
日
乘
子
,
g
i
(
w
)
≤
0
β
j
是
拉
格
朗
日
乘
子
,
h
j
(
w
)
=
0
\alpha_i 是拉格朗日乘子 ,g_i(w)\leq0 \\\beta_j 是拉格朗日乘子,h_j(w) = 0
αi是拉格朗日乘子,gi(w)≤0βj是拉格朗日乘子,hj(w)=0
拉格朗日对偶函数:
G
:
R
k
×
R
l
→
R
G:\mathbb{R}^k\times\mathbb{R}^l\rightarrow\mathbb{R}
G:Rk×Rl→R
G ( α , β ) = inf w ∈ D L ( w , α , β ) = inf w ∈ D ( f ( w ) + ∑ i = 1 k α i g i ( w ) + ∑ j = 1 l β j h j ( w ) ) G(\alpha,\beta) = \inf_{w\in D}L(w,\alpha,\beta) \\=\inf_{w\in D}\left(f(w) + \sum_{i=1}^k\alpha_ig_i(w) + \sum_{j=1}^l\beta_jh_j(w)\right) G(α,β)=w∈DinfL(w,α,β)=w∈Dinf(f(w)+i=1∑kαigi(w)+j=1∑lβjhj(w))
- G是 L ( w , α , β ) L(w,\alpha,\beta) L(w,α,β)的下确界
- G是一个凹函数,并且对g,h是什么函数没有要求。且G有唯一最大值。
下界的正确性
如果
α
≥
0
(
α
中
每
一
个
元
素
都
大
于
等
于
0
)
\alpha \geq 0(\alpha中每一个元素都大于等于0)
α≥0(α中每一个元素都大于等于0),那么
G
(
α
,
β
)
≤
p
∗
,
其
中
p
∗
是
原
问
题
的
最
优
值
。
G(\alpha,\beta) \leq p^*,其中p^*是原问题的最优值。
G(α,β)≤p∗,其中p∗是原问题的最优值。
证明 如果
w
~
\widetilde{w}
w
是 可行的并且
α
≥
0
\alpha \geq 0
α≥0,那么
f
(
w
~
)
≥
L
(
w
~
,
α
,
β
)
≥
inf
w
∈
D
L
(
w
,
α
,
β
)
=
G
(
α
,
β
)
f(\widetilde{w}) \geq L(\widetilde{w},\alpha,\beta) \geq \inf_{w\in D} L(w,\alpha,\beta) = G(\alpha,\beta)
f(w
)≥L(w
,α,β)≥w∈DinfL(w,α,β)=G(α,β)
(这里比较显然,因为
g
i
(
w
)
≤
0
,
a
i
≥
0
,
所
以
f
(
w
~
)
≥
L
(
w
~
,
α
,
β
)
g_i(w)\leq 0,a_i \geq 0,所以f(\widetilde{w}) \geq L(\widetilde{w},\alpha,\beta)
gi(w)≤0,ai≥0,所以f(w
)≥L(w
,α,β))
在所有的可行解中,minimizing的最优值 p ∗ ≥ G ( α , β ) p^* \geq G( \alpha, \beta ) p∗≥G(α,β)
p ∗ p^* p∗是 f ( w ) f( w ) f(w)的最小值,但是 f ( w ) f(w) f(w)的最小值依旧大于等于 G ( α , β ) G(\alpha,\beta) G(α,β) 。
拉格朗日对偶问题
m
a
x
α
,
β
G
(
α
,
β
)
s
.
t
.
α
≥
0
,
∀
i
=
1
,
.
.
.
,
k
max_{\alpha,\beta} \quad G(\alpha, \beta ) \\ s.t.\quad \alpha \geq0, \forall i=1,...,k
maxα,βG(α,β)s.t.α≥0,∀i=1,...,k
- 通过拉格朗日对偶函数,寻找 p ∗ p^* p∗的最优下界
- 凸优化问题的最优值记作 d ∗ d^* d∗
- α , β \alpha,\beta α,β都在函数G的可行域内
弱对偶
d
∗
=
m
a
x
α
,
β
G
(
α
,
β
)
,
且
d
∗
≤
q
∗
d^* = max_{\alpha,\beta} \quad G(\alpha, \beta ), 且 d^* \leq q^*
d∗=maxα,βG(α,β),且d∗≤q∗
- 弱对偶一般都是成立的
- 可以用来求解困难问题的非平凡的下界。(非平凡这个词对非数学专业的还不好解释。平凡”英文是trivial,就是没什么用的意思,比如一些微分方程很容易看出有零解,但是零解并不是我们关心的,或者说求出来这个零解并没有什么用,我们更关心的是非平凡(nontrivial)解,也就是非零解。)
- optimal duality gap(最优对偶间隙——瞎翻译) : p ∗ − d ∗ p^* - d^* p∗−d∗
强对偶
d
∗
=
p
∗
d^* = p^*
d∗=p∗
至此,我们将原问题 min f ( w ) \min f(w) minf(w) 转换成了 m a x α , β G ( α , β ) s . t . α ≥ 0 , ∀ i = 1 , . . . , k max_{\alpha,\beta} \quad G(\alpha, \beta ) \quad s.t.\quad \alpha \geq0, \forall i=1,...,k maxα,βG(α,β)s.t.α≥0,∀i=1,...,k
互补松弛条件
假设在
w
∗
w^*
w∗处
f
(
w
)
f(w)
f(w) 取得最优值
p
∗
p^*
p∗,
(
α
∗
,
β
∗
)
(\alpha^*, \beta^*)
(α∗,β∗)是是偶函数
G
(
α
,
β
)
G(\alpha,\beta)
G(α,β)取得最优值点。
如果强对偶成立,那么
α
i
g
i
(
w
∗
)
=
0
∀
i
=
1
,
2
,
.
.
.
,
k
\alpha_i g_i(w*) = 0\quad \forall i = 1,2,...,k
αigi(w∗)=0∀i=1,2,...,k
证明
f
(
w
∗
)
=
G
(
α
∗
,
β
∗
)
=
inf
w
(
f
(
w
)
+
∑
i
=
1
k
α
i
∗
g
i
(
w
)
+
∑
j
=
1
l
β
j
∗
h
j
(
w
)
)
≤
f
(
w
∗
)
+
∑
i
=
1
k
α
i
∗
g
i
(
w
∗
)
+
∑
j
=
1
l
β
j
∗
h
j
(
w
∗
)
≤
f
(
w
∗
)
f(w^*) = G(\alpha^*, \beta^*)\\= \inf_{w}(f(w) + \sum_{i=1}^k\alpha_i^*g_i(w) + \sum_{j=1}^l \beta_j^*h_j(w))\\ \leq f(w^*) + \sum_{i=1}^k\alpha_i^*g_i(w^*) + \sum_{j=1}^l \beta_j^*h_j(w^*) \leq f(w^*)
f(w∗)=G(α∗,β∗)=winf(f(w)+i=1∑kαi∗gi(w)+j=1∑lβj∗hj(w))≤f(w∗)+i=1∑kαi∗gi(w∗)+j=1∑lβj∗hj(w∗)≤f(w∗)
将上式中得不等式换成等式,要成立必有:
∑
i
=
1
k
α
i
g
i
(
w
∗
)
=
0
\sum_{i=1}^{k}\alpha_i g_i(w^*) = 0\quad
i=1∑kαigi(w∗)=0
因为
a
i
≥
0
g
i
(
w
)
≤
0
a_i \geq 0\quad g_i(w) \leq 0
ai≥0gi(w)≤0,
α
i
g
i
(
w
∗
)
=
0
\alpha_i g_i(w^*) = 0
αigi(w∗)=0
KKT条件
如果强对偶成立
p
∗
=
d
∗
p^* = d^*
p∗=d∗, 下面这些条件都将成立
1、极值点:
w
∗
w^*
w∗ 是
f
(
w
)
f(w)
f(w)得极值点。
▽
f
(
w
∗
)
+
∑
i
=
1
k
α
i
▽
g
i
(
w
∗
)
+
∑
j
=
1
l
β
j
▽
h
j
(
w
∗
)
=
0
\triangledown f(w^*) + \sum_{i=1}^k\alpha_i\triangledown g_i(w^*) + \sum_{j=1}^{l}\beta_j\triangledown h_j(w^*) = 0
▽f(w∗)+i=1∑kαi▽gi(w∗)+j=1∑lβj▽hj(w∗)=0
2、主可行:
g
i
(
w
∗
)
≤
0
,
∀
i
=
1
,
.
.
.
,
k
h
j
(
w
∗
)
=
0
∀
j
=
1
,
.
.
.
,
l
g_i(w^*)\leq0,\forall i=1,...,k\\h_j(w^*) = 0\forall j=1,...,l
gi(w∗)≤0,∀i=1,...,khj(w∗)=0∀j=1,...,l
3、对偶可行性:
α
i
∗
≥
0
,
∀
i
=
1
,
.
.
.
,
k
\alpha_i^*\geq0,\forall i =1,...,k
αi∗≥0,∀i=1,...,k
4、互补松弛条件:
α
i
∗
g
i
(
w
∗
)
=
0
,
∀
i
=
1
,
.
.
.
,
k
\alpha_i^*g_i(w^*) = 0,\forall i=1,...,k
αi∗gi(w∗)=0,∀i=1,...,k
但是以上的这些条件是否是强对偶的充分必要条件?
对于凸优化,如果强对偶成立,KKT条件是充分必要条件。
如果找到了 α , β \alpha ,\beta α,β满足KKT条件,解决的对偶问题,也就解决了原问题。
最优间隔分类器(optimal margin classifier)
主问题是凸优化问题
min
w
,
b
1
2
∥
w
∥
2
s
.
t
.
y
(
i
)
(
w
T
x
(
i
)
+
b
)
≥
1
,
∀
i
\min_{w,b} \frac{1}{2}\|w\|^2\\s.t. \quad y^{(i)}(w^Tx^{(i)} + b)\geq1,\forall i
w,bmin21∥w∥2s.t.y(i)(wTx(i)+b)≥1,∀i
凸优化问题,一般都是强对偶的,自然满足KKT条件。由于原问题,比较复杂,将其转换成对偶问题,求解对偶问题。
拉格朗日算子(Largrangian)
L
(
w
,
b
,
α
)
=
1
2
∥
w
∥
2
−
∑
i
=
1
m
α
i
(
y
i
(
w
T
x
(
i
)
+
b
)
−
1
)
L(w,b,\alpha) = \frac{1}{2}\|w\|^2 - \sum_{i=1}^m \alpha_i(y^{{i}} (w^Tx^{(i)} + b) - 1)
L(w,b,α)=21∥w∥2−i=1∑mαi(yi(wTx(i)+b)−1)
拉格朗日对偶函数(Lagrange dual function)
G
(
α
)
=
inf
w
,
b
L
(
w
,
b
,
α
)
G(\alpha) = \inf_{w,b} L(w,b,\alpha)
G(α)=w,binfL(w,b,α)
对偶问题公式(dual problem formulation)
max
α
inf
w
,
b
L
(
w
,
b
,
α
)
s
.
t
.
α
i
≥
0
∀
i
\max_{\alpha}\quad\inf_{w,b}L(w,b, \alpha) \\s.t.\quad \alpha_i \geq 0\quad \forall i
αmaxw,binfL(w,b,α)s.t.αi≥0∀i
依据KKT条件,要使得
L
(
w
,
b
,
α
)
L(w,b,\alpha)
L(w,b,α)关于w,b最小
▽
w
L
(
w
,
b
,
α
)
=
w
−
∑
i
=
1
m
α
i
y
(
i
)
x
(
i
)
=
0
→
w
=
∑
i
=
1
m
α
i
y
(
i
)
x
(
i
)
\triangledown_wL(w,b,\alpha) = w - \sum_{i=1}^{m}\alpha_iy^{(i)}x^{(i)} = 0\rightarrow w = \sum_{i=1}^{m}\alpha_i y^{(i)}x^{(i)}
▽wL(w,b,α)=w−i=1∑mαiy(i)x(i)=0→w=i=1∑mαiy(i)x(i)
∂
∂
b
L
(
w
,
b
,
α
)
=
∑
i
=
1
m
α
i
y
(
i
)
=
0
\frac{\partial}{\partial b}L(w,b,\alpha) = \sum_{i=1}^m \alpha_i y^{(i)} = 0
∂b∂L(w,b,α)=i=1∑mαiy(i)=0
把w代入方程得到
G
(
α
)
=
∑
i
=
1
m
α
i
−
1
2
∑
i
,
j
=
1
m
y
(
i
)
y
(
j
)
α
i
α
j
(
x
(
i
)
)
T
x
(
j
)
G(\alpha) = \sum_{i=1}^m\alpha_i - \frac{1}{2}\sum_{i,j=1}^my^{(i)}y^{(j)}\alpha_i\alpha_j(x^{(i)})^Tx^{(j)}
G(α)=i=1∑mαi−21i,j=1∑my(i)y(j)αiαj(x(i))Tx(j)
并且满足
∑
i
=
1
m
α
i
y
(
i
)
=
0
\sum_{i=1}^m\alpha_iy^{(i)} = 0
∑i=1mαiy(i)=0并且
a
i
≥
0
a_i\geq0
ai≥0
对偶问题公式
max
α
G
(
α
)
=
∑
i
=
1
m
α
i
−
1
2
∑
i
,
j
=
1
m
y
(
i
)
y
(
j
)
α
i
α
j
(
x
(
i
)
)
T
x
(
j
)
s
.
t
.
α
i
≥
0
∀
i
∑
i
=
1
m
α
i
y
(
i
)
=
0
\max_\alpha\quad G(\alpha) = \sum_{i=1}^m\alpha_i - \frac{1}{2}\sum_{i,j=1}^my^{(i)}y^{(j)}\alpha_i\alpha_j(x^{(i)})^Tx^{(j)}\\ s.t. \quad \alpha_i\geq 0\quad\forall i\\\sum_{i=1}^{m}\alpha_iy^{(i)} = 0
αmaxG(α)=i=1∑mαi−21i,j=1∑my(i)y(j)αiαj(x(i))Tx(j)s.t.αi≥0∀ii=1∑mαiy(i)=0
这是一个二次规划问题,我们可以用MATLAB中现有的quadprog函数求解。
我们利用现有的QP问题解法直接去接,不用关心 α ∗ \alpha^* α∗具体怎么求解的
SVM求解结果
当我们通过QP问题,求解出
α
∗
\alpha^*
α∗后,由于先前的KKT条件
w
∗
=
∑
i
=
1
m
α
i
y
(
i
)
x
(
i
)
w^* = \sum_{i=1}^{m}\alpha_i y^{(i)}x^{(i)}
w∗=i=1∑mαiy(i)x(i)
如何求解
b
∗
b^*
b∗?
由于
α
i
∗
g
i
(
w
∗
)
=
0
,
即
α
i
∗
(
y
(
i
)
(
w
∗
T
x
(
i
)
+
b
)
−
1
)
=
0
\alpha_i^* g_i(w^*) = 0,即 \quad\alpha_i^*(y^{(i)} (w^{*T}x^{(i)} + b) -1) = 0
αi∗gi(w∗)=0,即αi∗(y(i)(w∗Tx(i)+b)−1)=0
∀
i
{
i
:
α
i
∗
>
0
}
y
(
i
)
(
w
∗
T
x
(
i
)
+
b
)
−
1
=
0
\forall i\quad\{i:\alpha_i^* > 0\}\quad y^{(i)}(w^{*T}x^{(i)} + b )-1 = 0
∀i{i:αi∗>0}y(i)(w∗Tx(i)+b)−1=0
因此,
∀
i
{
i
:
α
i
∗
>
0
}
\forall i\quad\{i:\alpha_i^* > 0\}
∀i{i:αi∗>0},
b
∗
=
y
(
i
)
−
w
∗
T
x
(
i
)
b^* =y^{(i)} - w^{*T}x^{(i)}
b∗=y(i)−w∗Tx(i)
并且由于KKT条件中
α
i
∗
g
i
(
w
∗
)
=
0
,
g
i
(
w
∗
)
=
y
i
(
w
T
x
(
i
)
+
b
)
−
1
\alpha_i^* g_i(w^*) = 0,\quad g_i(w^*) = y^{{i}} (w^Tx^{(i)} + b) - 1
αi∗gi(w∗)=0,gi(w∗)=yi(wTx(i)+b)−1 ,
因此只有少量的
α
i
∗
\alpha_i^*
αi∗不为0。也只有
α
i
∗
\alpha_i^*
αi∗不为零的点对于求解有作用,也就是当点处在margin 边界的时候,这些数据样本被称为support vector,正如下图中被标注出来的数据点。
那么重新定义一下
w
∗
w^*
w∗
w
∗
=
∑
s
∈
S
α
S
∗
y
(
s
)
x
(
s
)
w^* = \sum_{s\in S}\alpha_S^*y^{(s)}x^{(s)}
w∗=s∈S∑αS∗y(s)x(s)
S代表了所有的Support Vectors
非线性可分支持向量机(Kenel Methods 核函数)
之前讨论的SVM是线性可分的,但是有些情况下,不存在线性的超平面。
Kernels:使得线性模型能够用在非线性的情况下
- 1、将数据映射到能显示出线性的更高维度
- 2、在新的空间中,使用线性模型
- 3、映射相当于改变feature的表示
Feature Mapping 特征映射
举个例子
在一维的状态现,自然没有分界线,但是当我们将其映射到高维,
x
→
{
x
,
x
2
}
x\rightarrow \{x,x^2 \}
x→{x,x2}
在新的表示下,数据变得线性可分,这里我们将一维映射到二维,数据就线性可分了。
另一个例子
这个例子中,数据是2维的,但是并不能找到,一个线性的分类。但是当我们将他从二位,向3维空间映射后。数据就变得线性可分了。
x
=
{
x
1
,
x
2
}
→
z
=
{
x
1
2
,
2
x
1
x
2
,
x
2
2
}
x = \{x_1,x_2\} \rightarrow z = \{x_1^2,\sqrt{2}x_1x_2,x_2^2\}
x={x1,x2}→z={x12,2x1x2,x22}
考虑如下的映射函数
ϕ
\phi
ϕ,将对让样本
x
=
{
x
1
,
x
2
,
.
.
.
,
x
n
}
x = \{x_1,x_2,...,x_n\}
x={x1,x2,...,xn}进行映射
问题:将维度从n维映射到(n-1)n/2维,那可能会导致维度爆炸,并且可能无法储存的下这么多的feature
- 计算映射本身就非常低效,特别是新的维度特别高的情况
- 存储和使用映射后的features,耗费大
核方法
我们假设给定了一个核函数K ,对于输入的两个向量 x, z 进行如下的计算
上面的核函数K,隐含地定义了一个向高维的映射
ϕ
\phi
ϕ。
那么一个核函数,就和一个高维空间的映射相关联。
K
(
x
,
z
)
=
ϕ
(
x
)
T
ϕ
(
z
)
K(x,z) = \phi(x)^T\phi(z)
K(x,z)=ϕ(x)Tϕ(z)
F 是一个向量空间,且在上面定义了点积运算(a dot product),这样的F被称为希尔伯特空间(Hilbert Space)
并不是所有的函数都能当作核函数,必须要满足 Mercer‘s Condition
Mercer‘s Condition
如果K1,K2是核函数,那么如下的也是核函数
- K(x,z) = K1(x,z) + K2(x,z)
- K(x,z) = aK1(x,z)
- K(x,z) = K1(x,z)K2(x,z)
核矩阵 Kernel Matrix
如果给定了m 个samples
{
x
(
1
)
,
x
(
2
)
,
.
.
.
,
x
(
m
)
}
\{x^{(1)},x^{(2)},...,x^{(m)}\}
{x(1),x(2),...,x(m)},
K
i
j
=
K
(
x
(
i
)
,
x
(
j
)
)
=
ϕ
(
x
(
i
)
)
T
ϕ
(
x
(
j
)
)
K_{ij} = K(x^{(i)},x^{(j)}) = \phi(x^{(i)})^T \phi(x^{(j)})
Kij=K(x(i),x(j))=ϕ(x(i))Tϕ(x(j))
常用的Kernels
- 线性核
K ( x , z ) = x T z K(x,z) = x^Tz K(x,z)=xTz - 二次核
K ( x , z ) = ( x T z ) 2 o r ( 1 + x T z ) 2 K(x,z) = (x^Tz)^2 \quad or\quad (1+x^Tz)^2 K(x,z)=(xTz)2or(1+xTz)2 - 多项式核
K ( x , z ) = ( x T z ) d o r ( 1 + x T z ) d K(x,z) = (x^Tz)^d\quad or\quad (1+x^Tz)^d K(x,z)=(xTz)dor(1+xTz)d - 高斯核
K ( x , z ) = e x p ( − ∥ x − z ∥ 2 2 σ 2 ) K(x,z) = exp(-\frac{\|x-z\|^2}{2\sigma^2}) K(x,z)=exp(−2σ2∥x−z∥2) - sigmoid核
K ( x , z ) = t a n h ( a x T + c ) K(x,z) = tanh(ax^T + c) K(x,z)=tanh(axT+c)
使用核的优点
- 核方法将线性的模型应用到非线性
- 核 K(x,z) 表示在高维空间中的点乘
- 对任意的学习方法,如果样本间的计算只有点乘,就可以被核化。
- 无需计算中间的高维feature
kernelized SVM Training
SVM 拉格朗日对偶,将点乘运算,替换为核函数运算
在高维空间中的分界面为
w
∗
T
ϕ
(
x
)
+
b
∗
w^{*T}\phi(x) + b^*
w∗Tϕ(x)+b∗
将之前的 x 都替换为
ϕ
(
x
)
\phi(x)
ϕ(x),来计算
w
∗
,
b
∗
w^*, b^*
w∗,b∗
w
∗
=
∑
i
:
α
i
∗
>
0
α
i
∗
y
(
i
)
ϕ
(
x
(
i
)
)
b
∗
=
y
(
i
)
−
w
∗
T
ϕ
(
x
(
i
)
)
=
y
(
i
)
−
∑
j
:
α
j
∗
>
0
α
j
∗
y
(
j
)
ϕ
T
(
x
(
j
)
)
ϕ
(
x
(
i
)
)
=
y
(
i
)
−
∑
j
:
α
j
∗
>
0
α
j
∗
y
(
j
)
K
i
j
w^* = \sum_{i:\alpha_i^* >0} \alpha_i^*y^{(i)}\phi(x^{(i)})\\b^* = y^{(i)} -w^{*T}\phi(x^{(i)})\\ = y^{(i)} - \sum_{j:\alpha_j^* >0} \alpha_j^*y^{(j)}\phi^T(x^{(j)})\phi(x^{(i)})\\= y^{(i)} - \sum_{j:\alpha_j^* >0} \alpha_j^*y^{(j)} K_{ij}
w∗=i:αi∗>0∑αi∗y(i)ϕ(x(i))b∗=y(i)−w∗Tϕ(x(i))=y(i)−j:αj∗>0∑αj∗y(j)ϕT(x(j))ϕ(x(i))=y(i)−j:αj∗>0∑αj∗y(j)Kij
进行分类
y = s i g n ( w ∗ T ϕ ( x ) + b ∗ ) = s i g n ( ∑ i : α i ∗ > 0 α i ∗ y ( i ) ϕ T ( x ( i ) ) ϕ ( x ) + b ∗ ) = s i g n ( ∑ i : α i ∗ > 0 α i ∗ y ( i ) K ( x ( i ) , x ) + b ∗ ) y = sign (w^{*T}\phi(x) + b^*) \\= sign(\sum_{i:\alpha_i^*>0} \alpha_i^*y^{(i)}\phi^T(x^{(i)})\phi(x) + b^*) \\= sign(\sum_{i:\alpha_i^*>0} \alpha_i^*y^{(i)}K(x^{(i)},x) + b^*) y=sign(w∗Tϕ(x)+b∗)=sign(i:αi∗>0∑αi∗y(i)ϕT(x(i))ϕ(x)+b∗)=sign(i:αi∗>0∑αi∗y(i)K(x(i),x)+b∗)
线性支持向量机 (软间隔 soft-margin SVM )
允许误分类的情况。在之前的情况中,我们都使得数据点落在margin之外,或者margin上
对于线性不可分的情况,我们放松限制条件,
ξ
i
被
称
为
松
弛
变
量
\xi_i被称为松弛变量
ξi被称为松弛变量
尽管我们允许误分类但是,我们希望被误分类的数量尽可能地少,因此我们使得松弛变量的和
∑
i
ξ
i
\sum_i \xi_i
∑iξi 尽可能小
软间隔SVM公式
其中C控制了一个权重:
- C越小,会使得 1 2 ∥ w ∥ 2 , \frac{1}{2}\|w\|^2, 21∥w∥2,更小导致 margin更大
- C越大,误分类的情况会越少,但是会导致更小的margin
拉格朗日函数
L
(
w
,
b
,
ξ
,
α
,
r
)
=
1
2
w
T
w
+
C
∑
i
=
1
m
ξ
i
−
∑
i
=
1
m
α
i
[
y
(
i
)
(
w
T
x
(
i
)
+
b
)
−
1
+
ξ
i
]
−
∑
i
=
1
m
r
i
ξ
i
L(w,b,\xi,\alpha,r) = \frac{1}{2}w^Tw + C\sum_{i=1}^m\xi_i - \sum_{i=1}^m\alpha_i[y^{(i)}(w^Tx^{(i)} + b) - 1 + \xi_i] - \sum_{i=1}^m r_i\xi_i
L(w,b,ξ,α,r)=21wTw+Ci=1∑mξi−i=1∑mαi[y(i)(wTx(i)+b)−1+ξi]−i=1∑mriξi
这里面有两组g函数,即小于等于约束
KKT条件
- ▽ w L ( w , b , ξ , α , r ) = 0 → w ∗ = ∑ i = 1 m α i ∗ y ( i ) x ( i ) \triangledown_w L(w,b,\xi,\alpha,r) = 0 \rightarrow w^* = \sum_{i=1}^m\alpha_i^*y^{(i)}x^{(i)} ▽wL(w,b,ξ,α,r)=0→w∗=∑i=1mαi∗y(i)x(i)
- ▽ b L ( w , b , ξ , α , r ) = 0 → ∑ i = 1 m α i y ( i ) = 0 \triangledown_b L(w,b,\xi,\alpha,r) = 0 \rightarrow \sum_{i=1}^m\alpha_iy^{(i)} = 0 ▽bL(w,b,ξ,α,r)=0→∑i=1mαiy(i)=0
- ▽ ξ L ( w , b , ξ , α , r ) = 0 → α i ∗ + r i ∗ = C ∀ i \triangledown_\xi L(w,b,\xi,\alpha,r) = 0 \rightarrow \alpha_i^* + r_i^* = C\quad \forall i ▽ξL(w,b,ξ,α,r)=0→αi∗+ri∗=C∀i
- α i ∗ , r i ∗ , ξ i ∗ ≥ 0 , f o r ∀ i \alpha_i^*,r_i^*,\xi_i^* \geq 0,for \forall i αi∗,ri∗,ξi∗≥0,for∀i
- y ( i ) ( w T x ( i ) + b ) − 1 + ξ i ≥ 0 y^{(i)}(w^Tx^{(i)} + b) - 1 + \xi_i \geq 0 y(i)(wTx(i)+b)−1+ξi≥0
- α i [ y ( i ) ( w T x ( i ) + b ) − 1 + ξ i ] = 0 \alpha_i[y^{(i)}(w^Tx^{(i)} + b) - 1 + \xi_i] = 0 αi[y(i)(wTx(i)+b)−1+ξi]=0
- r i ξ i = 0 r_i\xi_i = 0 riξi=0
对偶问题
和之前相同,求解QP问题,得到
α
i
∗
\alpha_i^*
αi∗, 用KKT条件求解出
w
∗
,
b
∗
w^*,b^*
w∗,b∗
当
0
<
α
i
∗
<
C
0 < \alpha_i^* < C
0<αi∗<C
y
(
i
)
(
w
∗
T
x
(
i
)
+
b
∗
)
=
1
y^{(i)}(w^{*T}x^{(i)} + b^*) = 1
y(i)(w∗Tx(i)+b∗)=1
b
∗
=
∑
i
:
0
<
α
i
∗
<
C
(
y
(
i
)
−
w
∗
T
x
(
i
)
)
∑
i
=
1
m
1
(
0
<
α
i
∗
<
C
)
b^* =\frac{\sum_{i:0<\alpha_i^* < C}(y^{(i)} - w^{*T}x^{(i)})}{\sum_{i=1}^m 1(0 < \alpha_i^* < C)}
b∗=∑i=1m1(0<αi∗<C)∑i:0<αi∗<C(y(i)−w∗Tx(i))
由KKT条件得来的推论
- 当 α i ∗ = 0 , y ( i ) ( w ∗ T x ( i ) + b ∗ ) ≥ 1 \alpha_i^* = 0, y^{(i)}(w^{*T}x^{(i)} + b^*) \geq 1 αi∗=0,y(i)(w∗Tx(i)+b∗)≥1
- 当 α i ∗ = C , y ( i ) ( w ∗ T x ( i ) + b ∗ ) ≤ 1 \alpha_i^* = C, y^{(i)}(w^{*T}x^{(i)} + b^*) \leq 1 αi∗=C,y(i)(w∗Tx(i)+b∗)≤1
- 当 0 < α i ∗ < C , y ( i ) ( w ∗ T x ( i ) + b ∗ ) = 1 0 < \alpha_i^* < C, y^{(i)}(w^{*T}x^{(i)} + b^*) = 1 0<αi∗<C,y(i)(w∗Tx(i)+b∗)=1