文章目录
支持向量机(SVM)算法介绍
支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器。它与感知机的最大区别是学习策略为间隔最大化。
SVM可分类为三类:线性可分支持向量机(数据线性可分)、线性支持向量机(数据近似线性可分)及非线性支持向量机(数据线性不可分)。
线性可分支持向量机
线性可分支持向量机定义
给定一个线性可分的训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习得到的分离超平面为
w
x
+
b
=
0
wx+b=0
wx+b=0
以及相应的分类决策函数
f
(
x
)
=
s
i
g
n
(
w
x
+
b
)
f(x)=sign(wx+b)
f(x)=sign(wx+b)
就称为线性可分支持向量机。距离超平面最近的样本点就称为支持向量,显然正类和负类各有一个支持向量。
如何求解得到间隔最大化的超平面呢?
函数间隔、几何间隔与硬间隔最大化
函数间隔
超平面关于样本点(xi,yi)的函数间隔为:
γ
^
i
=
y
i
(
w
x
i
+
b
)
\hat\gamma_{i}=y_{i}(wx_{i}+b)
γ^i=yi(wxi+b)
通过观察wx+b的符号与类标记y的符号是否一致可判断分类是否正确,为了统一,我们把y乘以wx+b,这样无论是正样本点还是负样本点结果都是正的。
对于数据集T,定义超平面对T的函数间隔为超平面关于数据集T中所有样本点的函数间隔值之中的最小值:
γ
^
=
min
i
=
1
,
⋯
 
,
N
γ
^
i
\hat\gamma=\min_{i=1, \cdots, N} \hat\gamma_{i}
γ^=i=1,⋯,Nminγ^i
当我们选择超平面时,只有函数间隔还不够,因为只要成比例地改变w和b, 例如将它们改为2w和2b, 超平面并没有改变, 但函数间隔却成为原来的2倍。
我们可以对分离超平面的法向量w加某些约束, 比如对函数间隔除以W的L2范数,此时函数间隔就变为几何间隔。几何间隔才是点到超平面的距离。
几何间隔
定义超平面关于样本点(xi,yi)的几何间隔为:
γ
i
=
y
i
(
w
∥
w
∥
⋅
x
i
+
b
∥
w
∥
)
\gamma_{i}=y_{i}\left(\frac{w}{\|w\|} \cdot x_{i}+\frac{b}{\|w\|}\right)
γi=yi(∥w∥w⋅xi+∥w∥b)
超平面对数据集T的几何间隔为超平面关于数据集T中所有样本点的几何间隔值之中的最小值:
γ
=
min
i
=
1
,
⋯
 
,
N
γ
i
\gamma=\min_{i=1, \cdots, N} \gamma_{i}
γ=i=1,⋯,Nminγi
我们可以发现函数间隔和几何间隔有如下关系:
γ
=
γ
^
∣
∣
w
∣
∣
\gamma=\frac{\hat\gamma}{||w||}
γ=∣∣w∣∣γ^
当我们取分母即W的L2范数为1时,函数间隔和几何间隔相等。
如果超平面参数w和b成比例地改变(超平面没有改变),函数间隔也按此比例改变,而几何间隔不变。
硬间隔最大化
我们寻找的超平面应当满足:这个超平面不仅可以将数据集中的所有正负实例点分开,而且对最难区分的实例点(离超平面最近的点,也就是支持向量)也有足够大的间隔将它们分开。
寻找几何间隔最大的分离超平面问题可表示为下面的约束最优化问题:
max
w
,
b
γ
\max_{w, b} \gamma
w,bmaxγ
s
.
t
.
y
i
(
w
∣
∣
w
∣
∣
x
i
+
b
∣
∣
w
∣
∣
)
⩾
γ
,
i
=
1
,
2
,
⋯
 
,
N
s.t. \quad y_{i}(\frac{w}{||w||} x_{i}+\frac{b}{||w||}) \geqslant \gamma, \quad i=1,2, \cdots, N
s.t.yi(∣∣w∣∣wxi+∣∣w∣∣b)⩾γ,i=1,2,⋯,N
即我们要最大化超平面关于数据集T的几何间隔γ,约束条件则表示训练集中每个点与超平面的几何间隔都大于等于γ。
事实上我们就是要找到一对支持向量(一正例一负例两个样本点,超平面在这两个点的正中间,使得超平面对两个点的距离最远),同时这个超平面对于更远处的其他所有正负实例点都能正确区分。
我们可将上式的几何间隔用函数间隔表示,这个问题可改写为:
max
w
,
b
γ
^
∣
∣
w
∣
∣
\max_{w, b} \frac{\hat\gamma}{||w||}
w,bmax∣∣w∣∣γ^
s
.
t
.
y
i
(
w
x
i
+
b
)
⩾
γ
^
,
i
=
1
,
2
,
⋯
 
,
N
s.t. \quad y_{i}(wx_{i}+b) \geqslant \hat\gamma, \quad i=1,2, \cdots, N
s.t.yi(wxi+b)⩾γ^,i=1,2,⋯,N
此时如果我们将w和b放大λ倍,那么右边的函数间隔也会放大λ倍。也就是说约束条件左右两边都整体放大了λ倍,对不等式约束没有影响。因此,我们不妨取:
γ
^
=
1
\hat\gamma=1
γ^=1
取1是为了方便推导和优化,且这样做对目标函数的优化没有影响。
那么上面的最优化问题变为:
max
w
,
b
1
∣
∣
w
∣
∣
\max_{w, b} \frac{1}{||w||}
w,bmax∣∣w∣∣1
s
.
t
.
y
i
(
w
x
i
+
b
)
⩾
1
,
i
=
1
,
2
,
⋯
 
,
N
s.t. \quad y_{i}(wx_{i}+b) \geqslant 1, \quad i=1,2, \cdots, N
s.t.yi(wxi+b)⩾1,i=1,2,⋯,N
最大化1/||w||与最小化(1/2)||w||2是等价的,乘以1/2是为了后面求导时计算方便。
则我们可以得到下面的线性可分支持向量机学习的最优化问题:
min
w
,
b
1
2
∣
∣
w
∣
∣
2
\min_{w, b} \frac{1}{2}||w||^{2}
w,bmin21∣∣w∣∣2
s
.
t
.
y
i
(
w
x
i
+
b
)
−
1
⩾
0
,
i
=
1
,
2
,
⋯
 
,
N
s.t. \quad y_{i}(wx_{i}+b)-1 \geqslant 0, \quad i=1,2, \cdots, N
s.t.yi(wxi+b)−1⩾0,i=1,2,⋯,N
线性可分支持向量机的原始问题转化为对偶问题
原始问题
上面的最优化问题我们称之为原始问题。
我们可以列出一个拉格朗日函数来求解原始问题。我们定义拉格朗日函数为:
L
(
w
,
b
,
α
)
=
1
2
∥
w
∥
2
−
∑
i
=
1
N
α
i
y
i
(
w
x
i
+
b
)
+
∑
i
=
1
N
α
i
L(w, b, \alpha)=\frac{1}{2}\|w\|^{2}-\sum_{i=1}^{N} \alpha_{i} y_{i}(w x_{i}+b)+\sum_{i=1}^{N} \alpha_{i}
L(w,b,α)=21∥w∥2−i=1∑Nαiyi(wxi+b)+i=1∑Nαi
α
i
⩾
0
,
i
=
1
,
2
,
⋯
 
,
N
\alpha_{i} \geqslant 0, i=1,2, \cdots, N
αi⩾0,i=1,2,⋯,N
原始问题是一个极小极大问题。
min
w
,
b
max
α
i
≥
0
L
(
w
,
b
,
α
)
\min_{w, b} \max_{\alpha_{i} \geq 0} L(w, b, \alpha)
w,bminαi≥0maxL(w,b,α)
直接求原始问题并不好解,我们可以应用拉格朗日对偶性,通过求解对偶问题来得到原始问题的最优解。
对偶问题及求解过程
根据拉格朗日对偶性,对偶问题是极大极小问题,即求:
max
α
i
≥
0
min
w
,
b
L
(
w
,
b
,
α
)
\max_{\alpha_{i} \geq 0} \min_{w, b} L(w, b, \alpha)
αi≥0maxw,bminL(w,b,α)
对偶问题的求解过程:
先对L(w,b,α)求对w、b的极小。我们需要求L对w、b的偏导数并令其为0。
∇
w
L
(
w
,
b
,
α
)
=
w
−
∑
i
=
1
N
α
i
y
i
x
i
=
0
\nabla_{w} L(w, b, \alpha)=w-\sum_{i=1}^{N} \alpha_{i} y_{i} x_{i}=0
∇wL(w,b,α)=w−i=1∑Nαiyixi=0
∇
b
L
(
w
,
b
,
α
)
=
∑
i
=
1
N
α
i
y
i
=
0
\nabla_{b} L(w, b, \alpha)=\sum_{i=1}^{N} \alpha_{i} y_{i}=0
∇bL(w,b,α)=i=1∑Nαiyi=0
得到两个等式:
w
=
∑
i
=
1
N
α
i
y
i
x
i
w=\sum_{i=1}^{N} \alpha_{i} y_{i} x_{i}
w=i=1∑Nαiyixi
∑
i
=
1
N
α
i
y
i
=
0
\sum_{i=1}^{N} \alpha_{i} y_{i}=0
i=1∑Nαiyi=0
将上面两式代入拉格朗日函数,得:
min
w
,
b
L
(
w
,
b
,
α
)
=
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
−
∑
i
=
1
N
α
i
y
i
(
(
∑
j
=
1
N
α
j
y
j
x
j
)
⋅
x
i
+
b
)
+
∑
i
=
1
N
α
i
\min_{w, b}L(w, b, \alpha)=\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{N} \alpha_{i} y_{i}\left(\left(\sum_{j=1}^{N} \alpha_{j} y_{j} x_{j}\right) \cdot x_{i}+b\right)+\sum_{i=1}^{N} \alpha_{i}
w,bminL(w,b,α)=21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαiyi((j=1∑Nαjyjxj)⋅xi+b)+i=1∑Nαi
=
−
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
+
∑
i
=
1
N
α
i
=-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i}
=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi
再求min L(w,b,α)对α的极大,即:
max
α
−
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
+
∑
i
=
1
N
α
i
\max_{\alpha}-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i}
αmax−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi
∑
i
=
1
N
α
i
y
i
=
0
\quad \sum_{i=1}^{N} \alpha_{i} y_{i}=0
i=1∑Nαiyi=0
α
i
⩾
0
,
i
=
1
,
2
,
⋯
 
,
N
\alpha_{i} \geqslant 0, \quad i=1,2, \cdots, N
αi⩾0,i=1,2,⋯,N
我们将上面第一个式子乘以-1,即可得到等价的对偶最优化问题:
min
α
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
−
∑
i
=
1
N
α
i
\min_{\alpha} \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{N} \alpha_{i}
αmin21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαi
∑
i
=
1
N
α
i
y
i
=
0
\quad \sum_{i=1}^{N} \alpha_{i} y_{i}=0
i=1∑Nαiyi=0
α
i
⩾
0
,
i
=
1
,
2
,
⋯
 
,
N
\alpha_{i} \geqslant 0, \quad i=1,2, \cdots, N
αi⩾0,i=1,2,⋯,N
我们可以求出上面问题对α的解向量(α即为所有拉格朗日乘子)为:
(
α
1
,
α
2
,
⋯
 
,
α
N
)
T
(\alpha_{1},\alpha_{2}, \cdots,\alpha_{N})^{T}
(α1,α2,⋯,αN)T
则按上面求L对w、b的偏导数并令其为0得到的等式,我们可得:
w
=
∑
i
=
1
N
α
i
y
i
x
i
w=\sum_{i=1}^{N} \alpha_{i}y_{i}x_{i}
w=i=1∑Nαiyixi
b
=
y
j
−
∑
i
=
1
N
α
i
y
i
(
x
i
⋅
x
j
)
b=y_{j}-\sum_{i=1}^{N} \alpha_{i}y_{i}(x_{i} \cdot x_{j})
b=yj−i=1∑Nαiyi(xi⋅xj)
那么超平面就为
∑
i
=
1
N
α
i
y
i
(
x
⋅
x
i
)
+
b
=
0
\sum_{i=1}^{N} \alpha_{i}y_{i}(x \cdot x_{i})+b=0
i=1∑Nαiyi(x⋅xi)+b=0
决策函数为
f
(
x
)
=
s
i
g
n
(
∑
i
=
1
N
α
i
y
i
x
⋅
x
i
+
b
)
f(x)=sign(\sum_{i=1}^{N} \alpha_{i}y_{i}x \cdot x_{i}+b)
f(x)=sign(i=1∑Nαiyix⋅xi+b)
我们注意到对原始的最优化问题:
min
w
,
b
1
2
∣
∣
w
∣
∣
2
\min_{w, b} \frac{1}{2}||w||^{2}
w,bmin21∣∣w∣∣2
s
.
t
.
y
i
(
w
x
i
+
b
)
−
1
⩾
0
,
i
=
1
,
2
,
⋯
 
,
N
s.t. \quad y_{i}(wx_{i}+b)-1 \geqslant 0, \quad i=1,2, \cdots, N
s.t.yi(wxi+b)−1⩾0,i=1,2,⋯,N
有不等式约束,因此上述过程必须满足KKT条件:
α
i
⩾
0
\alpha_{i} \geqslant 0
αi⩾0
y
i
f
(
x
i
)
−
1
⩾
0
y_{i} f\left(x_{i}\right)-1 \geqslant 0
yif(xi)−1⩾0
α
i
(
y
i
f
(
x
i
)
−
1
)
=
0
\alpha_{i}\left(y_{i} f\left(x_{i}\right)-1\right)=0
αi(yif(xi)−1)=0
计算实例在《统计学习方法》P107-P108。
线性支持向量机
我们经常遇到这样的情况:数据集T中大部分数据线性可分,但有少部分数据线性不可分,这时使用上面的线性可分支持向量机并不可行。这时我们就要使用学习策略为软间隔最大化的线性支持向量机。
软间隔最大化
所谓软间隔最大化,就是在硬间隔最大化的基础上,对每个样本点(xi,yi)引进一个松弛变量ξi,于是我们的约束不等式变为:
y
i
(
w
x
i
+
b
)
⩾
1
−
ξ
i
y_{i}(wx_{i}+b) \geqslant 1-\xi_{i}
yi(wxi+b)⩾1−ξi
同时,我们的目标函数中对每个松弛变量ξi需要支付一个代价ξi。
即目标函数变为:
1
2
∣
∣
w
∣
∣
2
+
C
∑
j
=
1
N
ξ
i
\frac{1}{2}||w||^{2}+C \sum_{j=1}^{N} \xi_{i}
21∣∣w∣∣2+Cj=1∑Nξi
这里C>0称为惩罚参数。C较大时对误分类的惩罚增大,C较小时对误分类的惩罚减小。
上面的目标函数包含两层含义:一是使间隔尽量大,二是使误分类点的个数尽量小。
松弛变量ξi表示xi在超平面下不符合真实分类,但是与超平面距离<ξi,因此我们将其归到另一类(也就是真实分类)。松弛变量用来解决异常点,它可以"容忍"异常点在错误的区域,使得支持向量机计算出的超平面不至于产生过拟合的问题,但同时,我们又不希望松弛变量太大导致超平面分类性能太差。
线性支持向量机的原始问题转化为对偶问题
原始问题
min
w
,
b
,
ξ
1
2
∥
w
∥
2
+
C
∑
i
=
1
N
ξ
i
\min_{w, b, \xi} \frac{1}{2}\|w\|^{2}+C \sum_{i=1}^{N} \xi_{i}
w,b,ξmin21∥w∥2+Ci=1∑Nξi
y
i
(
w
⋅
x
i
+
b
)
⩾
1
−
ξ
i
,
i
=
1
,
2
,
⋯
 
,
N
\quad y_{i}\left(w \cdot x_{i}+b\right) \geqslant 1-\xi_{i}, \quad i=1,2, \cdots, N
yi(w⋅xi+b)⩾1−ξi,i=1,2,⋯,N
ξ
i
⩾
0
,
i
=
1
,
2
,
⋯
 
,
N
\xi_{i} \geqslant 0, \quad i=1,2, \cdots, N
ξi⩾0,i=1,2,⋯,N
对偶问题及解题过程
原始问题的对偶问题为:
min
α
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
−
∑
i
=
1
N
α
i
\min_{\alpha} \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{N} \alpha_{i}
αmin21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαi
∑
i
=
1
N
α
i
y
i
=
0
\quad \sum_{i=1}^{N} \alpha_{i} y_{i}=0
i=1∑Nαiyi=0
0
⩽
α
i
⩽
C
,
i
=
1
,
2
,
⋯
 
,
N
0 \leqslant \alpha_{i} \leqslant C, \quad i=1,2, \cdots, N
0⩽αi⩽C,i=1,2,⋯,N
拉格朗日函数为:
L
(
w
,
b
,
ξ
,
α
,
μ
)
≡
1
2
∥
w
∥
2
+
C
∑
i
=
1
N
ξ
i
−
∑
i
=
1
N
α
i
(
y
i
(
w
⋅
x
i
+
b
)
−
1
+
ξ
i
)
−
∑
i
=
1
N
μ
i
ξ
i
L(w, b, \xi, \alpha, \mu) \equiv \frac{1}{2}\|w\|^{2}+C \sum_{i=1}^{N} \xi_{i}-\sum_{i=1}^{N} \alpha_{i}\left(y_{i}\left(w \cdot x_{i}+b\right)-1+\xi_{i}\right)-\sum_{i=1}^{N} \mu_{i} \xi_{i}
L(w,b,ξ,α,μ)≡21∥w∥2+Ci=1∑Nξi−i=1∑Nαi(yi(w⋅xi+b)−1+ξi)−i=1∑Nμiξi
α
i
⩾
0
,
μ
i
⩾
0
\alpha_{i} \geqslant 0, \mu_{i} \geqslant 0
αi⩾0,μi⩾0
类似的,先求L对w、b、ξ的极小,求L对w、b、ξ的偏导数并令偏导数为0,最后得:
w
=
∑
i
=
1
N
α
i
y
i
x
i
w=\sum_{i=1}^{N} \alpha_{i} y_{i} x_{i}
w=i=1∑Nαiyixi
∑
i
=
1
N
α
i
y
i
=
0
\sum_{i=1}^{N} \alpha_{i} y_{i}=0
i=1∑Nαiyi=0
C
−
α
i
−
μ
i
=
0
C-\alpha_{i}-\mu_{i}=0
C−αi−μi=0
上面三式代回L,得:
min
w
,
b
,
ξ
L
(
w
,
b
,
ξ
,
α
,
μ
)
=
−
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
+
∑
i
=
1
N
α
i
\min_{w, b, \xi} L(w, b, \xi, \alpha, \mu)=-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i}
w,b,ξminL(w,b,ξ,α,μ)=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi
再对上式求α的极大,得到对偶问题:
max
α
−
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
+
∑
i
=
1
N
α
i
\max_{\alpha}-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i}
αmax−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi
∑
i
=
1
N
α
i
y
i
=
0
\quad \sum_{i=1}^{N} \alpha_{i} y_{i}=0
i=1∑Nαiyi=0
C
−
α
i
−
μ
i
=
0
C-\alpha_{i}-\mu_{i}=0
C−αi−μi=0
α
i
⩾
0
μ
i
⩾
0
,
i
=
1
,
2
,
⋯
 
,
N
\begin{array}{l}{\alpha_{i} \geqslant 0} \\ {\mu_{i} \geqslant 0, \quad i=1,2, \cdots, N}\end{array}
αi⩾0μi⩾0,i=1,2,⋯,N
设
α
=
(
α
1
,
α
2
,
⋯
 
,
α
N
)
T
\alpha=(\alpha_{1}, \alpha_{2}, \cdots, \alpha_{N})^{T}
α=(α1,α2,⋯,αN)T
是上面对偶问题的拉格朗日乘子的解,那么有:
w
=
∑
i
=
1
N
α
i
y
i
x
i
w=\sum_{i=1}^{N} \alpha_{i} y_{i} x_{i}
w=i=1∑Nαiyixi
b
=
y
j
−
∑
i
=
1
N
y
i
α
i
(
x
i
⋅
x
j
)
b=y_{j}-\sum_{i=1}^{N} y_{i} \alpha_{i}(x_{i} \cdot x_{j})
b=yj−i=1∑Nyiαi(xi⋅xj)
那么超平面为:
∑
i
=
1
N
α
i
y
i
(
x
⋅
x
i
)
+
b
=
0
\sum_{i=1}^{N} \alpha_{i} y_{i}(x \cdot x_{i})+b=0
i=1∑Nαiyi(x⋅xi)+b=0
决策函数为:
f
(
x
)
=
s
i
g
n
(
∑
i
=
1
N
α
i
y
i
(
x
⋅
x
i
)
+
b
)
f(x)=sign(\sum_{i=1}^{N} \alpha_{i} y_{i}(x \cdot x_{i})+b)
f(x)=sign(i=1∑Nαiyi(x⋅xi)+b)
非线性支持向量机、核函数与核技巧
如果我们的数据集样本是非线性可分的,我们可以使用一个映射将样本从原始空间映射到一个合适的高维空间,在这个高维空间中数据集线性可分。
核函数
设X是输入空间,H是特征空间(即高维空间),如果存在一个映射:
ϕ
(
x
)
:
X
→
H
\phi(x) : X \rightarrow H
ϕ(x):X→H
使得
K
(
x
,
z
)
=
ϕ
(
x
)
⋅
ϕ
(
z
)
K(x, z)=\phi(x) \cdot \phi(z)
K(x,z)=ϕ(x)⋅ϕ(z)
x
,
z
∈
X
x, z \in \mathcal{X}
x,z∈X
那么称K(x,z)为核函数。Φ(x)为映射函数,等式右边是内积。
核技巧
现在假设我们用映射:
x
→
ϕ
(
x
)
x \rightarrow \phi(x)
x→ϕ(x)
将超平面从原本低维空间的形式变成高维空间的形式:
f
(
x
)
=
ω
T
x
+
b
f(x)=\omega^{T} x+b
f(x)=ωTx+b
f
(
x
)
=
ω
T
ϕ
(
x
)
+
b
f(x)=\omega^{T} \phi(x)+b
f(x)=ωTϕ(x)+b
这时我们原本在低维的非线性边界在高维就变成了一个超平面,在高维中数据集变得线性可分了。
但是如果我们先将数据集从低维映射到高维,再去求超平面,由于高维空间中维数要多的多,计算量会变得很大。
核技巧是一种方法,我们用它可以简化计算。它就是用低维空间的内积来求高维空间的内积,省去了先做映射变换再在高维空间中求内积的麻烦。
举例:
以多项式核为例,若样本x有d个分量:
x
=
(
x
1
,
x
2
,
…
.
.
x
d
)
x=\left(x_{1}, x_{2}, \ldots . . x_{d}\right)
x=(x1,x2,…..xd)
我们做一个二维的多项式变换,将d维扩展:
ϕ
(
x
)
=
(
1
;
x
1
,
x
2
,
…
x
d
;
x
1
2
,
x
1
x
2
…
x
1
x
d
;
…
;
x
d
x
1
,
x
d
x
2
…
x
d
2
)
\phi(x)=(1 ; x_{1}, x_{2}, \ldots x_{d} ; x_{1}^{2}, x_{1} x_{2} \ldots x_{1} x_{d} ; \ldots ; x_{d} x_{1},x_{d} x_{2} \ldots x_{d}^{2})
ϕ(x)=(1;x1,x2,…xd;x12,x1x2…x1xd;…;xdx1,xdx2…xd2)
注意上面的式子中有很多重复项可以合并。
我们对变换后的样本作内积:
ϕ
(
x
)
T
ϕ
(
y
)
=
1
+
∑
i
=
1
d
x
i
y
i
+
∑
i
=
1
d
∑
j
=
1
d
x
i
x
j
y
i
y
j
\phi(x)^{T} \phi(y)=1+\sum_{i=1}^{d} x_{i} y_{i}+\sum_{i=1}^{d} \sum_{j=1}^{d} x_{i} x_{j} y_{i} y_{j}
ϕ(x)Tϕ(y)=1+i=1∑dxiyi+i=1∑dj=1∑dxixjyiyj
其中,最后一项可以拆成:
∑
i
=
1
d
∑
j
=
1
d
x
i
x
j
y
i
y
j
=
∑
i
=
1
d
x
i
y
i
∑
j
=
1
d
x
j
y
j
\sum_{i=1}^{d} \sum_{j=1}^{d} x_{i} x_{j} y_{i} y_{j}=\sum_{i=1}^{d} x_{i} y_{i} \sum_{j=1}^{d} x_{j} y_{j}
i=1∑dj=1∑dxixjyiyj=i=1∑dxiyij=1∑dxjyj
又低维空间的内积可表示为:
x
T
y
=
∑
i
=
1
d
x
i
y
i
x^{T} y=\sum_{i=1}^{d} x_{i} y_{i}
xTy=i=1∑dxiyi
所以上面变换后的多项式内积可以写成:
ϕ
(
x
)
T
ϕ
(
y
)
=
1
+
x
T
y
+
(
x
T
y
)
2
\phi(x)^{T} \phi(y)=1+x^{T} y+\left(x^{T} y\right)^{2}
ϕ(x)Tϕ(y)=1+xTy+(xTy)2
我们就可以不先进行高维变换,再在高维空间做内积,而是直接利用低维空间的内积计算即可。
SVM中的核技巧:
不使用核函数时支持向量机的最优化问题为:
max
2
∣
∣
ω
∣
∣
\max \frac{2}{|| \omega||}
max∣∣ω∣∣2
y
i
(
ω
T
x
i
+
b
)
≥
1
y_{i}(\omega^{T} x_{i}+b) \geq 1
yi(ωTxi+b)≥1
使用核函数将数据集样本从低维映射到高维空间后最优化问题变为:
max
2
∣
∣
ω
∣
∣
\max \frac{2}{||\omega||}
max∣∣ω∣∣2
y
i
(
ω
T
ϕ
(
x
i
)
+
b
)
≥
1
y_{i}\left(\omega^{T} \phi\left(x_{i}\right)+b\right) \geq 1
yi(ωTϕ(xi)+b)≥1
于是我们可以得到类似的对偶问题:
max
α
∑
i
=
1
α
i
−
∑
i
∑
j
α
i
α
j
y
i
y
j
ϕ
(
x
i
)
T
ϕ
(
x
j
)
\max_{\alpha} \sum_{i=1} \alpha_{i}-\sum_{i} \sum_{j} \alpha_{i} \alpha_{j} y_{i} y_{j} \phi\left(x_{i}\right)^{T} \phi\left(x_{j}\right)
αmaxi=1∑αi−i∑j∑αiαjyiyjϕ(xi)Tϕ(xj)
∑
i
α
i
y
i
=
0
,
α
i
≥
0
\sum_{i} \alpha_{i} y_{i}=0, \alpha_{i} \geq 0
i∑αiyi=0,αi≥0
我们在计算其中的
ϕ
(
x
i
)
ϕ
(
x
j
)
\phi\left(x_{i}\right) \phi\left(x_{j}\right)
ϕ(xi)ϕ(xj)
内积时就可以使用核技巧。使用核函数表示对偶问题为:
W
(
α
)
=
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
K
(
x
i
,
x
j
)
−
∑
i
=
1
N
α
i
W(\alpha)=\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j} K\left(x_{i}, x_{j}\right)-\sum_{i=1}^{N} \alpha_{i}
W(α)=21i=1∑Nj=1∑NαiαjyiyjK(xi,xj)−i=1∑Nαi
分类决策函数表示为:
f
(
x
)
=
s
i
g
n
(
∑
i
=
1
N
s
a
i
y
i
ϕ
(
x
i
)
⋅
ϕ
(
x
)
+
b
)
=
s
i
g
n
(
∑
i
=
1
N
s
a
i
y
i
K
(
x
i
,
x
)
+
b
)
f(x)=sign(\sum_{i=1}^{N_{s}} a_{i}y_{i} \phi(x_{i}) \cdot \phi(x)+b)=sign(\sum_{i=1}^{N_{s}} a_{i}y_{i}K(x_{i}, x)+b)
f(x)=sign(i=1∑Nsaiyiϕ(xi)⋅ϕ(x)+b)=sign(i=1∑NsaiyiK(xi,x)+b)