补充知识
原始问题:
约束最优化:
m
i
n
x
f
(
x
)
s
.
t
.
g
i
(
x
)
⩽
0
,
i
=
1
,
2
,
.
.
.
h
i
(
x
)
=
0
,
i
=
1
,
2
,
.
.
.
\underset{x}{min} f(x) \\ s.t. \quad g_i(x)\leqslant 0, i = 1,2,...\\ \quad h_i(x) = 0, i =1,2,...
xminf(x)s.t.gi(x)⩽0,i=1,2,...hi(x)=0,i=1,2,...
称此约束为称为原始最优化问题或原始问题。
其中,当目标函数
f
(
x
)
f(x)
f(x)和约束函数
g
i
(
x
)
g_i(x)
gi(x)都是
R
n
R^n
Rn上连续可微的凸函数,约束函数是
R
n
R^n
Rn的仿射函数,满足
h
(
x
)
=
a
⋅
x
+
b
,
a
∈
R
n
,
b
∈
R
n
,
x
∈
R
n
h(x)=a\cdot x+b,a\in R^n,b\in R^n,x\in R^n
h(x)=a⋅x+b,a∈Rn,b∈Rn,x∈Rn,此约束优化的局部最小值就是全局最小值,这样的优化被称为凸优化。约束条件中的区域称为可行域。
拉格朗日对偶性
一个优化问题可以从两个角度来考虑,一个是主问题,一个是对偶问题。
主问题
原始问题的拉格朗日函数为:
L
(
x
,
λ
,
μ
)
=
f
(
x
)
+
∑
i
=
1
m
λ
i
g
i
(
x
)
+
∑
j
=
1
m
μ
j
g
j
(
x
)
L(x,\lambda, \mu) = f(x) + \sum_{i=1}^{m}\lambda_i g_i(x) + \sum_{j=1}^{m}\mu_j g_j(x)
L(x,λ,μ)=f(x)+i=1∑mλigi(x)+j=1∑mμjgj(x)
λ
,
μ
\lambda, \mu
λ,μ被称为拉格朗日乘子,也称为罚因子,相当于在惩罚不满优化条件的
g
(
w
)
>
0
,
h
(
w
)
  
≠
0
g(w)>0,h(w) \; \ne 0
g(w)>0,h(w)̸=0
若
x
~
∈
D
\tilde x \in D
x~∈D是可行域中的点,则对于任意
u
⩾
0
u \geqslant 0
u⩾0和
λ
\lambda
λ都有:
∑
i
=
1
m
λ
i
g
i
(
x
)
+
∑
j
=
1
m
μ
j
g
j
(
x
)
⩽
0
\sum_{i=1}^{m}\lambda_i g_i(x) + \sum_{j=1}^{m}\mu_j g_j(x) \leqslant 0
i=1∑mλigi(x)+j=1∑mμjgj(x)⩽0
故
L
(
x
~
,
λ
,
μ
)
⩽
f
(
x
~
)
L(\tilde x,\lambda,\mu)\leqslant f(\tilde x)
L(x~,λ,μ)⩽f(x~)
故原问题的最优解 p ∗ p^* p∗: p ∗ = m i n x m a x λ , μ    L ( x , λ , μ ) p^* = \underset{x}{min}\quad \underset{\lambda,\mu}{max}\;L(x,\lambda,\mu) p∗=xminλ,μmaxL(x,λ,μ)
因此,原始问题就表示成了广义拉格朗日函数的极小极大问题。
对偶问题
对偶函数:
Γ
(
λ
,
μ
)
=
i
n
f
x
∈
D
  
L
(
x
,
λ
,
μ
)
\Gamma(\lambda,\mu) = \underset{x\in D}{inf}\; L(x,\lambda,\mu)
Γ(λ,μ)=x∈DinfL(x,λ,μ)
i
n
f
inf
inf表示下确界,就相当于
m
i
n
min
min,但因为有的时候极小值不存在,比如
x
>
0
x>0
x>0,
i
n
f
inf
inf相对于更准确
Γ
(
λ
,
μ
)
=
i
n
f
x
∈
D
  
L
(
x
,
λ
,
μ
)
⩽
L
(
x
~
,
λ
,
μ
)
⩽
f
(
x
~
)
\Gamma(\lambda,\mu) = \underset{x\in D}{inf}\; L(x,\lambda,\mu) \leqslant L(\tilde x,\lambda,\mu)\leqslant f(\tilde x)
Γ(λ,μ)=x∈DinfL(x,λ,μ)⩽L(x~,λ,μ)⩽f(x~)
对偶函数给出了主问题最优解的下界,显然,这个下界取决于
λ
,
μ
\lambda,\mu
λ,μ的值
因此原始问题的对偶问题为:
m
a
x
λ
,
μ
i
n
f
x
∈
D
  
L
(
x
,
λ
,
μ
)
\underset{\lambda,\mu}{max} \quad \underset{x\in D}{inf}\; L(x,\lambda,\mu)
λ,μmaxx∈DinfL(x,λ,μ)
其解为 d ∗ d^* d∗,显然 d ∗ ≤ p ∗ d^*\leq p^* d∗≤p∗,这时弱对偶性成立,若 d ∗ = p ∗ d^*= p^* d∗=p∗,强对偶性成立。
- 强对偶性成立的条件是原问题是凸优化问题;
- 无论主问题的凸性如何,对偶问题始终是凸优化问题
- 转换拉格朗日函数需要满足“KKT”条件
间隔与支持向量
给定训练样本集
D
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
m
,
y
m
)
}
,
y
i
∈
{
−
1
,
+
1
}
o
r
  
y
i
∈
{
0
,
+
1
}
D=\{(x_1,y_1),(x_2,y_2),...,(x_m,y_m)\},y_i\in \{-1,+1\} or \;y_i\in \{0,+1\}
D={(x1,y1),(x2,y2),...,(xm,ym)},yi∈{−1,+1}oryi∈{0,+1},每个
x
i
=
(
x
i
1
,
x
i
2
,
.
.
.
,
x
i
n
)
x_i=(x_{i1},x_{i2},...,x_{in})
xi=(xi1,xi2,...,xin)有
n
n
n个特征,分类学习最基本的想法就是基于训练集在样本空间找到一个划分超平面,也就是需要一条决策边界,满足条件的划分超平面可能有很多,但我们要去寻找鲁棒性最强的决策边界。如下图线性分类中的粗黑线表示的决策边界,它对将要预测的数据的泛化能力最强。
线性分类的划分超平面可以通过如下方程来描述:
w
T
+
b
=
0
w^T+b=0
wT+b=0
样本空间中任意点
x
x
x到划分超平面(w,b)的距离为:
r
=
∣
w
T
x
+
b
∣
∣
∣
w
∣
∣
r=\dfrac{|w^Tx+b|}{||w||}
r=∣∣w∣∣∣wTx+b∣
在线性回归和逻辑回归(分类)中,
w
T
x
+
b
>
0
,
i
f
  
y
i
=
1
;
w
T
x
+
b
<
0
,
i
f
  
y
i
=
0
w^Tx+b>0,if \;y_i=1;w^Tx+b<0,if \;y_i=0
wTx+b>0,ifyi=1;wTx+b<0,ifyi=0,SVM给出了更强的约束:
f
(
x
)
=
{
w
i
T
x
+
b
≥
1
y
i
=
1
w
i
T
x
+
b
≤
−
1
y
i
=
−
1
f(x)= \begin{cases} w_i^Tx+b\geq 1& y_i=1\\ w_i^Tx+b\leq -1& y_i=-1 \end{cases}
f(x)={wiTx+b≥1wiTx+b≤−1yi=1yi=−1
当然
y
i
=
{
0
,
1
}
o
r
{
1
,
−
1
}
y_i=\{0,1\} or \{1,-1\}
yi={0,1}or{1,−1}的选择不重要,它只会影响最终
w
,
b
w,b
w,b,不影响预测。
如下图所示,黑线就是得到的超平面,距离超平面最近的这几个训练样本点成就了超平面,所以它们被称为支持向量(support vector)。虚线外代表了可预测的地方,虚线围成的距离被称为间隔,等于
r
=
2
w
r=\frac{2}{w}
r=w2
欲找到具有最大间隔的划分超平面,也就是要找到能满足约束的参数
w
w
w和
b
b
b,使得间隔
γ
\gamma
γ最大,即:
m
a
x
w
,
b
=
2
∣
∣
w
∣
∣
s
.
t
.
y
i
(
w
T
x
+
b
)
≥
1
,
i
=
1
,
2
,
.
.
.
\underset{w,b}{max} = \dfrac{2}{||w||} \\ s.t. y_i(w^Tx+b)\geq 1,i=1,2,...
w,bmax=∣∣w∣∣2s.t.yi(wTx+b)≥1,i=1,2,...
转化为最小化问题:
m
i
n
w
,
b
1
2
∣
∣
w
∣
∣
2
s
.
t
.
y
i
(
w
T
x
+
b
)
≥
1
,
i
=
1
,
2
,
.
.
.
\underset{w,b}{min} \frac{1}{2}||w||^2 \\ s.t. y_i(w^Tx+b)\geq 1,i=1,2,...
w,bmin21∣∣w∣∣2s.t.yi(wTx+b)≥1,i=1,2,...
上式就是支持向量机(SVM)的基本形式,这是一个凸二次规划问题,也就是凸优化问题。
SVM的对偶问题
拉格朗日函数可写为:
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
+
∑
1
m
α
i
(
1
−
y
i
(
w
i
T
x
+
b
)
)
L(w,b,\alpha)= \frac{1}{2}||w||^2+\sum_{1}^{m} \alpha_i(1-y_i(w_i^Tx+b))
L(w,b,α)=21∣∣w∣∣2+1∑mαi(1−yi(wiTx+b))
α = ( α 1 ; α 2 ; . . . ; α m ) , α i ≥ 0 ( K K T 条 件 ) \alpha=(\alpha_1;\alpha_2;...;\alpha_m),\alpha_i\geq 0(KKT条件) α=(α1;α2;...;αm),αi≥0(KKT条件)
原问题的对偶问题为:
m
a
x
α
m
i
n
w
,
b
  
L
(
w
,
b
,
α
)
\underset{\alpha}{max}\quad \underset{w,b}{min}\;L(w,b,\alpha)
αmaxw,bminL(w,b,α)
为了得到对偶问题的解,需要先求 L ( w , b , α ) L(w,b,\alpha) L(w,b,α)对 w , b w,b w,b的极小,再求对 α \alpha α的极大
- 求
m
i
n
w
,
b
  
L
(
w
,
b
,
α
)
\underset{w,b}{min}\;L(w,b,\alpha)
w,bminL(w,b,α)
对 L ( w , b , α ) L(w,b,\alpha) L(w,b,α)分别对 w , b w,b w,b求偏导数并零其等于0
w = ∑ i = 1 m α i y i x i , ∑ i = 1 m α i y i = 0 w=\sum_{i=1}^{m}\alpha_iy_ix_i, \\ \sum_{i=1}^{m}\alpha_iy_i=0 w=i=1∑mαiyixi,i=1∑mαiyi=0
代入对偶函数
L
(
w
,
b
,
α
)
L(w,b,\alpha)
L(w,b,α),消去
w
,
b
w,b
w,b:
m
i
n
w
,
b
  
L
(
w
,
b
,
α
)
=
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
+
∑
i
=
1
m
α
i
\underset{w,b}{min}\;L(w,b,\alpha)=-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_j+\sum_{i=1}^{m}\alpha_i
w,bminL(w,b,α)=−21i=1∑mj=1∑mαiαjyiyjxiTxj+i=1∑mαi
- 求
m
i
n
w
,
b
  
L
(
w
,
b
,
α
)
\underset{w,b}{min}\;L(w,b,\alpha)
w,bminL(w,b,α)对
α
\alpha
α的极大,即是对偶问题
m a x α m i n w , b    L ( w , b , α ) = m a x α − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j + ∑ i = 1 m α i s . t . ∑ i = 1 m α i y i = 0 α i ≥ 0 , i = 1 , 2 , . . . \underset{\alpha}{max}\quad \underset{w,b}{min}\;L(w,b,\alpha) \\= \underset{\alpha}{max}\quad -\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_j+\sum_{i=1}^{m}\alpha_i \\ s.t. \quad\sum_{i=1}^{m}\alpha_iy_i=0 \\ \quad \quad \alpha_i \geq 0,i = 1,2,... αmaxw,bminL(w,b,α)=αmax−21i=1∑mj=1∑mαiαjyiyjxiTxj+i=1∑mαis.t.i=1∑mαiyi=0αi≥0,i=1,2,...
极大转化为极小,由于SVM满足强对偶性,对偶最优化问题与原问题等价:
m
i
n
α
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
−
∑
i
=
1
m
α
i
s
.
t
.
∑
i
=
1
m
α
i
y
i
=
0
α
i
≥
0
,
i
=
1
,
2
,
.
.
.
\underset{\alpha}{min}\quad \frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_j - \sum_{i=1}^{m}\alpha_i \\ s.t. \quad\sum_{i=1}^{m}\alpha_iy_i=0 \\ \quad \quad \alpha_i \geq 0,i = 1,2,...
αmin21i=1∑mj=1∑mαiαjyiyjxiTxj−i=1∑mαis.t.i=1∑mαiyi=0αi≥0,i=1,2,...
解出 α \alpha α后,求出 w , b w,b w,b后即可得到模型 f ( x ) = w T x + b = ∑ i = 1 m α i y i x i T x + b f(x)=w^Tx+b=\sum_{i=1}^{m}\alpha_iy_ix_i^Tx+b f(x)=wTx+b=i=1∑mαiyixiTx+b
上面的对偶最优化问题实际上是一个二次规划问题,通常的解法有常用的有椭球法、内点法、增广拉格朗日法、梯度投影法,但该问题的规模正比于训练样本数,这会在实际任务中造成很大的开销,为了高效地求解,通常会选择一些利用了问题本身的特性的高效的算法,如序列最小最优化问题SMO。
序列最小最优化问题SMO
非线性分类
前面的划分超平面
f
(
x
)
=
w
T
x
+
b
f(x)=w^Tx+b
f(x)=wTx+b可用于线性分类,但如果涉及到非线性分类,原始空间的线性超平面则不再适用,但将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间线性可分,如下图,二维的线性不可分在三维存在一个线性划分超平面。
因此,这样的非线性分类是通过一个变换将原空间的数据变换到映射到一个新的特征空间,然后在新空间用线性分类的学习方法用线性分类的方法从训练数据学习分类模型。核技巧就是这样的方法。
核技巧
令
ϕ
(
x
)
\phi(x)
ϕ(x)表示将
x
x
x映射后的特征向量,于是,在特征空间中划分超平面所对应的模型
f
(
x
)
=
w
T
ϕ
(
x
)
+
b
f(x)=w^T\phi(x)+b
f(x)=wTϕ(x)+b
m
i
n
w
,
b
1
2
∣
∣
w
∣
∣
2
s
.
t
.
y
i
(
w
T
ϕ
(
x
)
+
b
)
≥
1
,
i
=
1
,
2
,
.
.
.
\underset{w,b}{min} \frac{1}{2}||w||^2 \\ s.t. y_i(w^T\phi(x)+b)\geq 1,i=1,2,...
w,bmin21∣∣w∣∣2s.t.yi(wTϕ(x)+b)≥1,i=1,2,...
其对偶问题是:
m
i
n
α
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
ϕ
(
x
i
)
T
ϕ
(
x
j
)
−
∑
i
=
1
m
α
i
s
.
t
.
∑
i
=
1
m
α
i
y
i
=
0
α
i
≥
0
,
i
=
1
,
2
,
.
.
.
\underset{\alpha}{min}\quad \frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_j\phi(x_i)^T\phi(x_j) - \sum_{i=1}^{m}\alpha_i \\ s.t. \quad\sum_{i=1}^{m}\alpha_iy_i=0 \\ \quad \quad \alpha_i \geq 0,i = 1,2,...
αmin21i=1∑mj=1∑mαiαjyiyjϕ(xi)Tϕ(xj)−i=1∑mαis.t.i=1∑mαiyi=0αi≥0,i=1,2,...
由于涉及到计算
ϕ
(
x
i
)
T
ϕ
(
x
j
)
\phi(x_i)^T\phi(x_j)
ϕ(xi)Tϕ(xj),这是样本非线性映射到特征空间之后的内积。由于特征空间维数可能很高,甚至可能是无穷维,因为直接计算
ϕ
(
x
i
)
T
ϕ
(
x
j
)
\phi(x_i)^T\phi(x_j)
ϕ(xi)Tϕ(xj)是困难的,为了避开这个障碍,我们设想一个这样的函数:
K
(
x
i
,
x
j
)
=
ϕ
(
x
i
)
T
ϕ
(
x
j
)
K(x_i,x_j)=\phi(x_i)^T\phi(x_j)
K(xi,xj)=ϕ(xi)Tϕ(xj)
即原始样本空间存在一个函数等于
x
i
x_i
xi,
x
j
x_j
xj在特征空间的内积,这样的函数就是核函数,有了核函数,就不需要计算高维特征空间中的内积。
m
i
n
α
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
K
(
x
i
,
x
j
)
−
∑
i
=
1
m
α
i
s
.
t
.
∑
i
=
1
m
α
i
y
i
=
0
α
i
≥
0
,
i
=
1
,
2
,
.
.
.
\underset{\alpha}{min}\quad \frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_j K(x_i,x_j) - \sum_{i=1}^{m}\alpha_i \\ s.t. \quad\sum_{i=1}^{m}\alpha_iy_i=0 \\ \quad \quad \alpha_i \geq 0,i = 1,2,...
αmin21i=1∑mj=1∑mαiαjyiyjK(xi,xj)−i=1∑mαis.t.i=1∑mαiyi=0αi≥0,i=1,2,...
因此,这种学习是隐式地在特征空间进行的 ,不需要显式地定义特征空间核映射函数,这种巧妙的利用线性分类学习和核函数解决非线性问题的技术被称为核技巧。
核函数及其充要条件
定义:
总结核函数,其定义就为:
设
χ
\chi
χ是输入空间,又设
H
H
H为特征空间,如果存在一个从
χ
\chi
χ到
H
H
H的映射:
ϕ
(
x
)
:
χ
→
H
\phi(x):\chi \rightarrow H
ϕ(x):χ→H
使得对所有的 x i , x j ∈ χ x_i,x_j\in \chi xi,xj∈χ,函数 k ( x i , x j ) k(x_i,x_j) k(xi,xj)满足条件 k ( x i , x j ) = ϕ ( x i ) ⋅ ϕ ( x j ) k(x_i,x_j)=\phi(x_i)\cdot\phi(x_j) k(xi,xj)=ϕ(xi)⋅ϕ(xj)
则称 k ( x i , x j ) k(x_i,x_j) k(xi,xj)为核函数, ϕ ( x ) \phi(x) ϕ(x)为映射函数。
充要条件
已知映射函数
ϕ
\phi
ϕ,可以通过内积计算出核函数K,能不能不用构造
ϕ
\phi
ϕ就能判断一个给定的
K
(
x
i
,
x
j
)
K(x_i,x_j)
K(xi,xj)是不是核函数呢?
K
=
[
K
(
x
1
,
x
1
)
K
(
x
1
,
x
2
)
.
.
.
K
(
x
1
,
x
m
.
.
.
K
(
x
m
,
x
1
)
K
(
x
m
,
x
2
)
.
.
.
K
(
x
m
,
x
m
)
]
]
K=\begin{bmatrix}K(x_1,x_1) & K(x_1,x_2) & ... &K(x_1,x_m \\ ...\\ K(x_m,x_1) &K(x_m,x_2) & ... &K(x_m,x_m)]\end{bmatrix}
K=⎣⎡K(x1,x1)...K(xm,x1)K(x1,x2)K(xm,x2)......K(x1,xmK(xm,xm)]⎦⎤
只要
K
(
x
i
,
x
j
)
K(x_i,x_j)
K(xi,xj)是对称的,且组成的核矩阵是半正定的,它就能作为核函数使用。
常用的核函数有:
参考:
- 周志华—西瓜书
- 吴恩达—机器学习视频
- 李航—统计学习方法
- http://www.blogjava.net/zhenandaci/archive/2009/03/06/258288.html
- http://www.ishenping.com/ArtInfo/937196.html
- https://www.jianshu.com/p/a3d9f75546b3
- 完美复制吴恩达视频:
- https://cloud.tencent.com/developer/article/1403874
- https://yoyoyohamapi.gitbooks.io/mit-ml/content/SVM/articles/SVM%E7%9A%84%E4%BD%BF%E7%94%A8%E5%BB%BA%E8%AE%AE.html
- https://www.cnblogs.com/makefile/p/svm-basic.html