文章目录
0 前言
网上有很多版本比较混乱,索性依照自己的理解重新整理了SVM的要点。支持向量机(support vector machines,SVM)是一种二分类模型,它将实例的特征向量映射为空间中的一些点,SVM 的目的就是想要画出一条线,以 “最好地” 区分这两类点。
1 线性可分支持向量机
1.1 硬间隔
即过渡带无样本点,目的是两类数据完全分开。
![](https://i-blog.csdnimg.cn/blog_migrate/c826390bc83c9e91541c839574f897ba.png)
1.2 硬间隔SVM
给定训练数据集:
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
.
.
.
(
x
N
,
y
N
)
}
x
i
∈
R
n
,
y
i
∈
{
+
1
,
−
1
}
,
i
=
1
,
2
,
.
.
.
N
\mathrm{T}=\left\{ \left( \mathbf{x}_1,\mathrm{y}_1 \right) ,\left( \mathbf{x}_2,\mathrm{y}_2 \right) ...\left( \mathbf{x}_{\mathbf{N}},\mathrm{y}_{\mathrm{N}} \right) \right\} \\ \mathbf{x}_{\mathbf{i}}\in \mathrm{R}^{\mathrm{n}},\mathrm{y}_{\mathrm{i}}\in \{+1,-1\},\mathrm{i}=1,2,...\mathrm{N}
T={(x1,y1),(x2,y2)...(xN,yN)}xi∈Rn,yi∈{+1,−1},i=1,2,...N
其中x是实例,y为标签,取±1。
在样本空间构造超平面函数:
y
(
x
)
=
w
T
Φ
(
x
)
+
b
y(x)=w^T\Phi (x)+b
y(x)=wTΦ(x)+b
根据标签:
{
y
(
x
i
)
>
0
⇔
y
i
=
+
1
y
(
x
i
)
<
0
⇔
y
i
=
−
1
⇒
y
i
⋅
y
(
x
i
)
>
0
\left\{ \begin{array}{l} y\left( x_i \right) >0\Leftrightarrow y_i=+1\\ y\left( x_i \right) <0\Leftrightarrow y_i=-1\\ \end{array}\Rightarrow y_i\cdot y\left( x_i \right) >0 \right.
{y(xi)>0⇔yi=+1y(xi)<0⇔yi=−1⇒yi⋅y(xi)>0
函数值大于0则判定为正例,小于0判为负例。此时我们只需要求通过两类之间的超平面即可满足要求。
但是这里有很多超平面都满足需求,所以我们为了求最优的超平面,需要求两类之间的最短距离,而最优超平面即这个最短线段的垂直平分线。
这里的±1其实主要是为了推导方便,因为无论具体的距离是多少,都可以使W等比例缩放变换来满足要求。W的方向也是这条线的法线方向,这里指向上或者下都是等价的。
可以求出点到超平面的相对距离:
y
i
⋅
y
(
x
i
)
∣
w
∣
=
y
i
⋅
(
w
T
⋅
Φ
(
x
i
)
+
b
)
∣
w
∣
\frac{y_i\cdot y\left( x_i \right)}{|w|}=\frac{y_i\cdot \left( w^T\cdot \Phi \left( x_i \right) +b \right)}{|w|}
∣w∣yi⋅y(xi)=∣w∣yi⋅(wT⋅Φ(xi)+b)
这里同时把标签信息带入,正好可以使得负例的距离也变成正值,目标函数为:
a
r
g
max
w
,
b
{
1
∣
w
∣
min
i
[
y
i
⋅
(
w
T
⋅
Φ
(
x
i
)
+
b
)
]
}
\underset{w,b}{\mathrm{arg}\max}\left\{ \frac{1}{|w|}\min_i \left[ y_i\cdot \left( w^T\cdot \Phi \left( x_i \right) +b \right) \right] \right\}
w,bargmax{∣w∣1imin[yi⋅(wT⋅Φ(xi)+b)]}
就是找出距离最近的样本,然后这些样本到超平面的距离取最大。同时要使得超平面居中,两类点的函数值满足
y
∣
≥
1
\mathrm{y}\mid \ge 1
y∣≥1,需要约束条件:
y
i
⋅
(
w
T
⋅
Φ
(
x
i
)
+
b
)
≥
1
y_i\cdot \left( w^T\cdot \Phi \left( x_i \right) +b \right) \ge 1
yi⋅(wT⋅Φ(xi)+b)≥1
既然最后约束条件的最小值为1,因为总会找到支持向量取1,可以得到新的目标函数:
a
r
g
max
w
,
b
1
∣
w
∣
s
.
t
.
y
i
(
w
T
⋅
Φ
(
x
i
)
+
b
)
≥
1
,
i
=
1
,
2
,
⋯
,
n
\underset{w,b}{\mathrm{arg}\max}\frac{1}{|w|} \\ \mathrm{s}.\mathrm{t}. \quad y_i\left( w^T\cdot \Phi \left( x_i \right) +b \right) \ge 1,\quad i=1,2,\cdots ,n
w,bargmax∣w∣1s.t.yi(wT⋅Φ(xi)+b)≥1,i=1,2,⋯,n
改写为:
min
w
,
b
1
2
∣
w
∣
2
s
.
t
.
y
i
(
w
T
⋅
Φ
(
x
i
)
+
b
)
≥
1
,
i
=
1
,
2
,
⋯
,
n
\min_{w,b} \frac{1}{2}|w|^2 \\ \mathrm{s}.\mathrm{t}.\quad y_i\left( w^T\cdot \Phi \left( x_i \right) +b \right) \ge 1,\quad i=1,2,\cdots ,n
w,bmin21∣w∣2s.t.yi(wT⋅Φ(xi)+b)≥1,i=1,2,⋯,n
1.3 求解
使用拉格朗日乘子法求解(简略),先表示拉格朗日函数:
L
(
w
,
b
,
α
)
=
1
2
∣
w
∣
2
−
∑
i
=
1
n
α
i
(
y
i
(
w
T
⋅
Φ
(
x
i
)
+
b
)
−
1
)
α
i
≥
0
,
i
=
1
,
2
,
.
.
.
,
n
L(w,b,\alpha )=\frac{1}{2}|w|^2-\sum_{i=1}^n{\alpha _i}\left( y_i\left( w^T\cdot \Phi \left( x_i \right) +b \right) -1 \right) \\ \alpha _i\ge 0,\quad i=1,2,...,n
L(w,b,α)=21∣w∣2−i=1∑nαi(yi(wT⋅Φ(xi)+b)−1)αi≥0,i=1,2,...,n
原问题为极小极大问题:
min
w
,
b
max
α
L
(
w
,
b
,
α
)
\min_{w,b} \max_{\alpha} L(w,b,\alpha )
w,bminαmaxL(w,b,α)
对偶问题是极大极小问题:
max
α
min
w
,
b
L
(
w
,
b
,
α
)
\max_{\alpha} \min_{w,b} L(w,b,\alpha )
αmaxw,bminL(w,b,α)
L
(
w
,
b
,
α
)
L(w,b,\alpha )
L(w,b,α)分别对w和b求偏导并令其等于0:
∂
L
∂
w
=
0
⇒
w
=
∑
i
=
1
n
α
i
y
i
Φ
(
x
n
)
∂
L
∂
b
=
0
⇒
0
=
∑
i
=
1
n
α
i
y
i
\begin{aligned} &\frac{\partial L}{\partial w}=0\Rightarrow w=\sum_{i=1}^n{\alpha _i}y_i\Phi \left( x_n \right)\\ &\frac{\partial L}{\partial b}=0\Rightarrow 0=\sum_{i=1}^n{\alpha _i}y_i\\ \end{aligned}
∂w∂L=0⇒w=i=1∑nαiyiΦ(xn)∂b∂L=0⇒0=i=1∑nαiyi
这里的w就是求极小的解,将式子代回原函数,得到:
L
(
w
,
b
,
α
)
=
1
2
∣
w
∣
2
−
∑
i
=
1
n
α
i
(
y
i
(
w
T
⋅
Φ
(
x
i
)
+
b
)
−
1
)
=
1
2
w
T
w
−
w
T
∑
i
=
1
n
α
i
y
i
Φ
(
x
i
)
−
b
∑
i
=
1
n
α
i
y
i
+
∑
i
=
1
n
α
i
=
1
2
w
T
∑
i
=
1
n
α
i
y
i
Φ
(
x
i
)
−
w
T
∑
i
=
1
n
α
i
y
i
Φ
(
x
i
)
−
b
⋅
0
+
∑
i
=
1
n
α
i
=
∑
i
=
1
n
α
i
−
1
2
(
∑
i
=
1
n
α
i
y
i
Φ
(
x
i
)
)
T
∑
i
=
1
n
α
i
y
i
Φ
(
x
i
)
=
∑
i
=
1
n
α
i
−
1
2
∑
i
,
j
=
1
n
α
i
α
j
y
i
y
j
Φ
T
(
x
i
)
Φ
(
x
j
)
\begin{aligned} &L(w,b,\alpha )=\frac{1}{2}|w|^2-\sum_{i=1}^n{\alpha _i}\left( y_i\left( w^T\cdot \Phi \left( x_i \right) +b \right) -1 \right)\\ &=\frac{1}{2}w^Tw-w^T\sum_{i=1}^n{\alpha _i}y_i\Phi \left( x_i \right) -b\sum_{i=1}^n{\alpha _i}y_i+\sum_{i=1}^n{\alpha _i}\\ &=\frac{1}{2}w^T\sum_{i=1}^n{\alpha _i}y_i\Phi \left( x_i \right) -w^T\sum_{i=1}^n{\alpha _i}y_i\Phi \left( x_i \right) -b\cdot 0+\sum_{i=1}^n{\alpha _i}\\ &=\sum_{i=1}^n{\alpha _i}-\frac{1}{2}\left( \sum_{i=1}^n{\alpha _i}y_i\Phi \left( x_i \right) \right) ^T\sum_{i=1}^n{\alpha _i}y_i\Phi \left( x_i \right)\\ &=\sum_{i=1}^n{\alpha _i}-\frac{1}{2}\sum_{i,j=1}^n{\alpha _i}\alpha _jy_iy_j\Phi ^T\left( x_i \right) \Phi \left( x_j \right)\\ \end{aligned}
L(w,b,α)=21∣w∣2−i=1∑nαi(yi(wT⋅Φ(xi)+b)−1)=21wTw−wTi=1∑nαiyiΦ(xi)−bi=1∑nαiyi+i=1∑nαi=21wTi=1∑nαiyiΦ(xi)−wTi=1∑nαiyiΦ(xi)−b⋅0+i=1∑nαi=i=1∑nαi−21(i=1∑nαiyiΦ(xi))Ti=1∑nαiyiΦ(xi)=i=1∑nαi−21i,j=1∑nαiαjyiyjΦT(xi)Φ(xj)
这里的b可以消去,最后的式子就是求极大:
a
∗
=
a
r
g
max
α
(
∑
i
=
1
n
α
i
−
1
2
∑
i
,
j
=
1
n
α
i
α
j
y
i
y
j
Φ
T
(
x
i
)
Φ
(
x
j
)
)
a^*=\underset{\alpha}{\mathrm{arg}\max}\left( \sum_{i=1}^n{\alpha _i}-\frac{1}{2}\sum_{i,j=1}^n{\alpha _i}\alpha _jy_iy_j\Phi ^T\left( x_i \right) \Phi \left( x_j \right) \right)
a∗=αargmax(i=1∑nαi−21i,j=1∑nαiαjyiyjΦT(xi)Φ(xj))
同时要满足约束:
max
α
∑
i
=
1
n
α
i
−
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
(
Φ
(
x
i
)
⋅
Φ
(
x
j
)
)
s
.
t
.
∑
i
=
1
n
α
i
y
i
=
0
α
i
≥
0
,
i
=
1
,
2
,
.
.
.
,
n
\begin{aligned} &\max_{\alpha} \sum_{i=1}^n{\alpha _i}-\frac{1}{2}\sum_{i=1}^n{\sum_{j=1}^n{\alpha _i}}\alpha _jy_iy_j\left( \Phi \left( x_i \right) \cdot \Phi \left( x_j \right) \right)\\ &\,\,\mathrm{s}.\mathrm{t}. \sum_{i=1}^n{\alpha _i}y_i=0\\ &\quad \alpha _i\ge 0,\quad i=1,2,...,n\\ \end{aligned}
αmaxi=1∑nαi−21i=1∑nj=1∑nαiαjyiyj(Φ(xi)⋅Φ(xj))s.t.i=1∑nαiyi=0αi≥0,i=1,2,...,n
最终求解得到最优的
α
∗
\alpha ^*
α∗(SMO或者梯度下降迭代求得),这里仅支持向量
α
\alpha
α值的大于0,其他样本的
α
\alpha
α值都为0(支持向量指的是决定超平面的样本,硬间隔中是落在y=±1上的样本)。
计算得到:
w
∗
=
∑
i
=
1
N
α
i
∗
y
i
Φ
(
x
i
)
b
∗
=
y
i
−
∑
i
=
1
N
α
i
∗
y
i
(
Φ
(
x
i
)
⋅
Φ
(
x
j
)
)
\quad w^*=\sum_{i=1}^N{\alpha _{i}^{*}}y_i\Phi \left( x_i \right) \\ b^*=y_i-\sum_{i=1}^N{\alpha _{i}^{*}}y_i\left( \Phi \left( x_i \right) \cdot \Phi \left( x_j \right) \right)
w∗=i=1∑Nαi∗yiΦ(xi)b∗=yi−i=1∑Nαi∗yi(Φ(xi)⋅Φ(xj))
求出最优的超平面:
w
∗
Φ
(
x
)
+
b
∗
=
0
w^*\Phi (x)+b^*=0
w∗Φ(x)+b∗=0
决策函数为:
f
(
x
)
=
s
i
g
n
(
w
∗
Φ
(
x
)
+
b
∗
)
f(x)=\mathrm{sign}\left( w^*\Phi (x)+b^* \right)
f(x)=sign(w∗Φ(x)+b∗)
2 线性支持向量机
2.1 软间隔
并不一定完全分类的超平面是最好的,存在样本数据本身就线性不可分的情况,为了提高泛化性能,引入软间隔。也就是允许个别样本出错,落入超平面的另外一边。
2.2 软间隔SVM
若数据线性不可分,则增加松弛因子
ξ
i
≥
0
\xi _{\mathrm{i}}\ge 0
ξi≥0,使得函数间隔允许小于1。约束条件变为了:
y
i
(
w
⋅
x
i
+
b
)
≥
1
−
ξ
i
y_i\left( w\cdot x_i+b \right) \ge 1-\xi _i
yi(w⋅xi+b)≥1−ξi
而目标函数为:
min
w
,
b
,
ξ
1
2
∣
w
∣
2
+
C
∑
i
=
1
N
ξ
i
s
.
t
.
y
i
(
w
⋅
x
i
+
b
)
≥
1
−
ξ
i
,
i
=
1
,
2
,
⋯
,
n
ξ
i
≥
0
,
i
=
1
,
2
,
⋯
,
n
\begin{aligned} &\min_{w,b,\xi} \frac{1}{2}|w|^2+C\sum_{i=1}^N{\xi _i}\\ &\,\,\mathrm{s}.\mathrm{t}. \quad y_i\left( w\cdot x_i+b \right) \ge 1-\xi _i,\quad i=1,2,\cdots ,n\\ &\quad \xi _i\ge 0,\quad i=1,2,\cdots ,n\\ \end{aligned}
w,b,ξmin21∣w∣2+Ci=1∑Nξis.t.yi(w⋅xi+b)≥1−ξi,i=1,2,⋯,nξi≥0,i=1,2,⋯,n
由于前面推导过了,这里的省略了很多部分。其中C为惩罚因子,通过调节C来控制软间隔的大小,当C趋于∞时,
ξ
i
\xi _{\mathrm{i}}
ξi只能取0,软间隔就退化为了硬间隔。下图可以形象的表示这种变化:
2.3 求解
构造拉格朗日函数:
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
比硬间隔多了两个参数。
对
w
,
b
,
ξ
i
\mathrm{w},\mathrm{b},\xi _i
w,b,ξi求偏导:
∂
L
∂
w
=
0
⇒
w
=
∑
i
=
1
n
α
i
y
i
ϕ
(
x
n
)
∂
L
∂
b
=
0
⇒
0
=
∑
i
=
1
n
α
i
y
i
∂
L
∂
ξ
i
=
0
⇒
C
−
α
i
−
μ
i
=
0
\begin{aligned} &\frac{\partial L}{\partial w}=0\Rightarrow w=\sum_{i=1}^n{\alpha _i}y_i\phi \left( x_n \right)\\ &\frac{\partial L}{\partial b}=0\Rightarrow 0=\sum_{i=1}^n{\alpha _i}y_i\\ &\frac{\partial L}{\partial \xi _i}=0\Rightarrow C-\alpha _i-\mu _i=0\\ \end{aligned}
∂w∂L=0⇒w=i=1∑nαiyiϕ(xn)∂b∂L=0⇒0=i=1∑nαiyi∂ξi∂L=0⇒C−αi−μi=0
代入拉格朗日函数,得到:
max
α
−
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
+
∑
i
=
1
n
α
i
s
.
t
.
∑
i
=
1
n
α
i
y
i
=
0
C
−
α
i
−
μ
i
=
0
α
i
≥
0
μ
i
≥
0
,
i
=
1
,
2
,
.
.
.
,
n
\begin{aligned} &\max_{\alpha} -\frac{1}{2}\sum_{i=1}^n{\sum_{j=1}^n{\alpha _i}}\alpha _jy_iy_j\left( x_i\cdot x_j \right) +\sum_{i=1}^n{\alpha _i}\\ &\,\,\mathrm{s}.\mathrm{t}. \sum_{i=1}^n{\alpha _i}y_i=0\\ &\quad C-\alpha _i-\mu _i=0\\ &\quad \begin{array}{l} \alpha _i\ge 0\\ \mu _i\ge 0,\quad i=1,2,...,n\\ \end{array}\\ \end{aligned}
αmax−21i=1∑nj=1∑nαiαjyiyj(xi⋅xj)+i=1∑nαis.t.i=1∑nαiyi=0C−αi−μi=0αi≥0μi≥0,i=1,2,...,n
后面三个条件可以推出:
0
≤
α
i
≤
C
0\le \alpha _i\le C
0≤αi≤C
合并为:
min
α
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
−
∑
i
=
1
n
α
i
s
.
t
.
∑
i
=
1
n
α
i
y
i
=
0
0
≤
α
i
≤
C
,
i
=
1
,
2
,
.
.
.
,
n
\begin{aligned} &\min_{\alpha} \frac{1}{2}\sum_{i=1}^n{\sum_{j=1}^n{\alpha _i}}\alpha _jy_iy_j\left( x_i\cdot x_j \right) -\sum_{i=1}^n{\alpha _i}\\ &\,\,\mathrm{s}.\mathrm{t}. \sum_{i=1}^n{\alpha _i}y_i=0\\ &\quad 0\le \alpha _i\le C,\quad i=1,2,...,n\\ \end{aligned}
αmin21i=1∑nj=1∑nαiαjyiyj(xi⋅xj)−i=1∑nαis.t.i=1∑nαiyi=00≤αi≤C,i=1,2,...,n
同理求得最优的
α
∗
\alpha ^*
α∗,代入得到:
w
∗
=
∑
i
=
1
n
α
i
∗
y
i
x
i
b
∗
=
max
i
:
y
i
=
−
1
w
∗
⋅
x
i
+
min
i
:
y
i
=
1
w
∗
⋅
x
i
2
\begin{aligned} w^*&=\sum_{i=1}^n{\alpha _{i}^{*}}y_ix_i\\ b^*&=\frac{\max_{i:y_i=-1} w^*\cdot x_i+\min_{i:y_i=1} w^*\cdot x_i}{2}\\ \end{aligned}
w∗b∗=i=1∑nαi∗yixi=2maxi:yi=−1w∗⋅xi+mini:yi=1w∗⋅xi
最终求出超平面:
w
∗
x
+
b
∗
=
0
w^*x+b^*=0
w∗x+b∗=0
求出分类决策函数:
f
(
x
)
=
s
i
g
n
(
w
∗
x
+
b
∗
)
f(x)=\mathrm{sign}\left( w^*x+b^* \right)
f(x)=sign(w∗x+b∗)
3 非线性支持向量机
3.1 核函数
可以使用核函数,将原始输入空间映射到高维的特征空间,从而使得原本低维线性不可分的样本能在高维核空间可分。
从超平面函数出发,这里我们是求一个映射
Φ
(
x
)
\Phi (x)
Φ(x)来将特征空间映射到另一个高维空间之后做判别分析。
y
(
x
)
=
w
T
Φ
(
x
)
+
b
y(x)=w^T\Phi (x)+b
y(x)=wTΦ(x)+b
例如,一个二维空间中的特征x
x
=
(
x
(
1
)
,
x
(
2
)
)
T
x=\left( x^{(1)},x^{(2)} \right) ^{\mathrm{T}}
x=(x(1),x(2))T
映射到三维空间:
Φ
(
x
)
=
(
(
x
(
1
)
)
2
,
2
x
(
1
)
x
(
2
)
,
(
x
(
2
)
)
2
)
T
\Phi (x)=\left( \left( x^{(1)} \right) ^2,\sqrt{2}x^{(1)}x^{(2)},\left( x^{(2)} \right) ^2 \right) ^{\mathrm{T}}
Φ(x)=((x(1))2,2x(1)x(2),(x(2))2)T
这样就通过这么一个映射实现了升维。但是实际上我们并不需要求出这个映射,因为观察最终的求解式:
max
α
∑
i
=
1
n
α
i
−
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
(
Φ
(
x
i
)
⋅
Φ
(
x
j
)
)
s
.
t
.
∑
i
=
1
n
α
i
y
i
=
0
α
i
≥
0
,
i
=
1
,
2
,
.
.
.
,
n
\begin{aligned} &\max_{\alpha} \sum_{i=1}^n{\alpha _i}-\frac{1}{2}\sum_{i=1}^n{\sum_{j=1}^n{\alpha _i}}\alpha _jy_iy_j\left( \Phi \left( x_i \right) \cdot \Phi \left( x_j \right) \right)\\ &\,\,\mathrm{s}.\mathrm{t}. \sum_{i=1}^n{\alpha _i}y_i=0\\ &\quad \alpha _i\ge 0,\quad i=1,2,...,n\\ \end{aligned}
αmaxi=1∑nαi−21i=1∑nj=1∑nαiαjyiyj(Φ(xi)⋅Φ(xj))s.t.i=1∑nαiyi=0αi≥0,i=1,2,...,n
可以发现我们要求是
Φ
(
x
i
)
⋅
Φ
(
x
j
)
\Phi \left( x_i \right) \cdot \Phi \left( x_j \right)
Φ(xi)⋅Φ(xj)这么一个内积,最后依照刚才的例子有:
Φ
(
x
1
)
⋅
Φ
(
x
2
)
=
(
x
1
⋅
x
2
)
2
=
K
(
x
1
⋅
x
2
)
\Phi (x_1)\cdot \Phi (x_2)=(x_1\cdot x_2)^2=K(x_1\cdot x_2)
Φ(x1)⋅Φ(x2)=(x1⋅x2)2=K(x1⋅x2)
所以我们只需要计算这个映射内积的结果核函数
K
(
x
1
⋅
x
2
)
K(x_1\cdot x_2)
K(x1⋅x2)即可,注意这里
x
1
x_1
x1和
x
2
x_2
x2是向量。
当然也可以有 Φ ( x ) = x \Phi (x)=x Φ(x)=x,这样就相当于构造了线性核 κ ( x , z ) = x T z \kappa \left( x,z \right) =x^Tz κ(x,z)=xTz,类似于线性回归的形式,这种方式就没有实现升维,就退回到了线性SVM。
3.2 带核函数的SVM
核函数分为了几类:
-
多项式核函数: K ( x 1 , x 2 ) = ( x 1 ⋅ x 2 + c ) d K\left( x_1,x_2 \right) =\left( x_1\cdot x_2+c \right) ^d K(x1,x2)=(x1⋅x2+c)d
-
高斯核函数:
K ( x 1 , x 2 ) = exp ( − γ ⋅ ∥ x 1 − x 2 ∥ 2 ) K\left( x_1,x_2 \right) =\exp \left( -\gamma \cdot \left\| x_1-x_2 \right\| ^2 \right) K(x1,x2)=exp(−γ⋅∥x1−x2∥2) -
Sigmoid核函数:
K ( x 1 , x 2 ) = tanh ( x 1 ⋅ x 2 + c ) K\left( x_1,x_2 \right) =\tanh \left( x_1\cdot x_2+c \right) K(x1,x2)=tanh(x1⋅x2+c)
替换为核函数后,目标函数如下:
min α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i ⋅ x j ) − ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 0 ≤ α i ≤ C , i = 1 , 2 , . . . N \begin{aligned} &\min_{\alpha} \frac{1}{2}\sum_{i=1}^N{\sum_{j=1}^N{\alpha _i}}\alpha _jy_iy_jK\left( x_i\cdot x_j \right) -\sum_{i=1}^N{\alpha _i}\\ &\,\,\mathrm{s}.\mathrm{t}. \sum_{i=1}^N{\alpha _i}y_i=0\\ &\quad 0\le \alpha _i\le C,\quad i=1,2,...N\\ \end{aligned} αmin21i=1∑Nj=1∑NαiαjyiyjK(xi⋅xj)−i=1∑Nαis.t.i=1∑Nαiyi=00≤αi≤C,i=1,2,...N
只是形式变了,实际不论是硬间隔或是软间隔都可以用到核函数。不仅是维度提升,而且计算量也会比先给出映射的情况要降低。
3.3 高斯核
着重介绍一下高斯核函数。高斯核函数是最常用的核函数,实际中不知道要用什么核函数时,都可以先选用高斯核函数:
K
(
x
1
,
x
2
)
=
e
−
∥
x
1
−
x
2
∥
2
2
σ
2
=
e
−
(
x
1
−
x
2
)
2
2
σ
2
=
e
−
x
1
2
+
x
2
2
−
2
x
1
x
2
2
σ
2
=
e
−
x
1
2
+
x
2
2
2
σ
2
⋅
e
x
1
x
2
σ
2
=
e
−
x
1
2
+
x
2
2
2
σ
2
⋅
(
1
+
1
σ
2
⋅
x
1
x
2
1
!
+
(
1
σ
2
)
2
⋅
(
x
1
x
2
)
2
2
!
+
(
1
σ
2
)
3
⋅
(
x
1
x
2
)
3
3
!
+
⋯
+
(
1
σ
2
)
n
⋅
(
x
1
x
2
)
n
n
!
+
⋯
)
=
e
−
x
1
2
+
x
2
2
2
σ
2
⋅
(
1
⋅
1
+
1
1
!
x
1
σ
⋅
x
2
σ
+
1
2
!
⋅
x
1
2
σ
2
⋅
x
2
2
σ
2
+
1
3
!
⋅
x
1
3
σ
3
⋅
x
2
3
σ
3
+
⋯
+
1
n
!
⋅
x
1
n
σ
n
⋅
x
2
n
σ
n
+
⋯
)
=
Φ
(
x
1
)
T
⋅
Φ
(
x
2
)
\begin{aligned} K\left( x_1,x_2 \right) &=e^{-\frac{\left\| x_1-x_2 \right\| ^2}{2\sigma ^2}}=e^{-\frac{\left( x_1-x_2 \right) ^2}{2\sigma ^2}}=e^{-\frac{x_{1}^{2}+x_{2}^{2}-2x_1x_2}{2\sigma ^2}}=e^{-\frac{x_{1}^{2}+x_{2}^{2}}{2\sigma ^2}}\cdot e^{\frac{x_1x_2}{\sigma ^2}}\\ &=e^{-\frac{x_{1}^{2}+x_{2}^{2}}{2\sigma ^2}}\cdot \left( 1+\frac{1}{\sigma ^2}\cdot \frac{x_1x_2}{1!}+\left( \frac{1}{\sigma ^2} \right) ^2\cdot \frac{\left( x_1x_2 \right) ^2}{2!}+\left( \frac{1}{\sigma ^2} \right) ^3\cdot \frac{\left( x_1x_2 \right) ^3}{3!}+\cdots +\left( \frac{1}{\sigma ^2} \right) ^n\cdot \frac{\left( x_1x_2 \right) ^n}{n!}+\cdots \right)\\ &=e^{-\frac{x_{1}^{2}+x_{2}^{2}}{2\sigma ^2}}\cdot \left( 1\cdot 1+\frac{1}{1!}\frac{x_1}{\sigma}\cdot \frac{x_2}{\sigma}+\frac{1}{2!}\cdot \frac{x_{1}^{2}}{\sigma ^2}\cdot \frac{x_{2}^{2}}{\sigma ^2}+\frac{1}{3!}\cdot \frac{x_{1}^{3}}{\sigma ^3}\cdot \frac{x_{2}^{3}}{\sigma ^3}+\cdots +\frac{1}{n!}\cdot \frac{x_{1}^{n}}{\sigma ^n}\cdot \frac{x_{2}^{n}}{\sigma ^n}+\cdots \right)\\ &=\Phi \left( x_1 \right) ^T\cdot \Phi \left( x_2 \right)\\ \end{aligned}
K(x1,x2)=e−2σ2∥x1−x2∥2=e−2σ2(x1−x2)2=e−2σ2x12+x22−2x1x2=e−2σ2x12+x22⋅eσ2x1x2=e−2σ2x12+x22⋅(1+σ21⋅1!x1x2+(σ21)2⋅2!(x1x2)2+(σ21)3⋅3!(x1x2)3+⋯+(σ21)n⋅n!(x1x2)n+⋯)=e−2σ2x12+x22⋅(1⋅1+1!1σx1⋅σx2+2!1⋅σ2x12⋅σ2x22+3!1⋅σ3x13⋅σ3x23+⋯+n!1⋅σnx1n⋅σnx2n+⋯)=Φ(x1)T⋅Φ(x2)
高斯核函数实际为无穷维的:
Φ
(
x
)
=
e
−
x
2
2
σ
2
(
1
,
1
1
!
x
σ
,
1
2
!
x
2
σ
2
,
1
3
!
x
3
σ
3
,
⋯
,
1
n
!
x
n
σ
n
,
⋯
)
\Phi (x)=e^{-\frac{x^2}{2\sigma ^2}}\left( 1,\sqrt{\frac{1}{1!}}\frac{x}{\sigma},\sqrt{\frac{1}{2!}}\frac{x^2}{\sigma ^2},\sqrt{\frac{1}{3!}}\frac{x^3}{\sigma ^3},\cdots ,\sqrt{\frac{1}{n!}}\frac{x^n}{\sigma ^n},\cdots \right)
Φ(x)=e−2σ2x2(1,1!1σx,2!1σ2x2,3!1σ3x3,⋯,n!1σnxn,⋯)
这里的
γ
\gamma
γ就等于
1
2
σ
2
\frac{1}{2\sigma ^2}
2σ21,写法不同而已:
K
(
x
1
,
x
2
)
=
exp
(
−
γ
⋅
∥
x
1
−
x
2
∥
2
)
K\left( x_1,x_2 \right) =\exp \left( -\gamma \cdot \left\| x_1-x_2 \right\| ^2 \right)
K(x1,x2)=exp(−γ⋅∥x1−x2∥2)
高斯核函数理解就是以样本x为中心,其他的点都衰减,根据相似度来区分。每一个样本都是一个中心,
γ
\gamma
γ可以理解为衰减因子。
调参效果:
4 损失函数的角度
如果把硬间隔考虑为软间隔的一种特殊形式的话,那么可以写出通用的目标函数:
min
w
,
b
,
ξ
1
2
∣
w
∣
2
+
C
∑
i
=
1
N
ξ
i
s
.
t
.
y
i
(
w
⋅
x
i
+
b
)
≥
1
−
ξ
i
,
i
=
1
,
2
,
⋯
,
n
ξ
i
≥
0
,
i
=
1
,
2
,
⋯
,
n
\begin{aligned} &\min_{w,b,\xi} \frac{1}{2}|w|^2+C\sum_{i=1}^N{\xi _i}\\ &\,\,\mathrm{s}.\mathrm{t}. \quad y_i\left( w\cdot x_i+b \right) \ge 1-\xi _i,\quad i=1,2,\cdots ,n\\ &\quad \xi _i\ge 0,\quad i=1,2,\cdots ,n\\ \end{aligned}
w,b,ξmin21∣w∣2+Ci=1∑Nξis.t.yi(w⋅xi+b)≥1−ξi,i=1,2,⋯,nξi≥0,i=1,2,⋯,n
问题可以写作:
min
w
,
b
∑
i
=
1
N
ξ
i
+
λ
∣
w
∣
2
\underset{w,b}{\min}\sum_{i=1}^N{\xi _i}+\lambda |w|^2
w,bmini=1∑Nξi+λ∣w∣2
实际观察可以发现,这就是类似于LR(逻辑回归)加上了L2正则项,只是损失函数不同。损失函数 SVM是hinge损失,而LR是log损失 ,且输出 LR给出了后验概率 SVM只给出0或1,也就是属于哪一个类别 。
hinge函数: