SVM的基本原理:
1、最大间隔原则
2、对偶表示
3、KKT条件
SVM(Support Vector Machine),又称支持向量机,在分类问题上,除了logistic分类回归外,还有另一种实现方式,那就是使用SVM原则。那么什么是SVM 呢。
1、最大间隔原则
首先,我们定义最大间隔原则:最大化两个类最近点之间的距离。如何理解呢。我们先从简单的二维平面着手,看下图(在此之前,我们假设分类器是线性可分的):
图中有两组平行线,每组都是黑、红、蓝组成的,分别是a组合b组。根据最大间隔原则,只有a组才符合最大化两个类最近点的距离;那么这距离称为间隔(margin),黑色或者红线上面的点被称为支持向量(Support Vector)。这个符合我们的直觉,如果两个物体之间分得越开就越容易能够分别出来,而非“密不可分”
那么这个间隔如何得出呢,为了能够非常直观的得出结论,我们要在三维坐标上来演示,如下图:
在此图中,假设我们的线性分类面
f
(
x
)
=
w
T
x
+
x
0
f(\textbf{x})=\textbf{w}^{T}\textbf{x}+x_{0}
f(x)=wTx+x0,则
x
=
x
p
+
r
w
∣
∣
w
∣
∣
\textbf{x}=\textbf{x}_{p}+r\frac{\textbf{w}}{||\textbf{w}||}
x=xp+r∣∣w∣∣w,其中
x
\textbf{x}
x到分类面的距离为
r
r
r。
因为:
f
(
x
p
)
=
w
T
x
p
+
w
0
=
0
f(\textbf{x}_{p})=\textbf{w}^{T}\textbf{x}_{p}+w_{0}=0
f(xp)=wTxp+w0=0;
w
T
w
=
∣
∣
w
∣
∣
2
\textbf{w}^{T}\textbf{w}=||\textbf{w}||^{2}
wTw=∣∣w∣∣2
所以:
当x=0时,原点到分类面的距离为:
r
0
=
f
(
0
)
∣
∣
w
∣
∣
=
w
0
∣
∣
w
∣
∣
r_{0}=\frac{f(0)}{||\textbf{w}||}=\frac{w_{0}}{||\textbf{w}||}
r0=∣∣w∣∣f(0)=∣∣w∣∣w0
线性判别函数:线性判别函数利用超平面把特征空间分隔成两个区域,超平面的法向量方向是由
w
\textbf{w}
w决定的,而它的位置由
w
0
w_{0}
w0确定。判别函数
f
(
x
)
f(\textbf{x})
f(x)正比于
x
\textbf{x}
x到超平面的代数距离(带正负号)。当
x
\textbf{x}
x在超平面的正侧时,
f
(
x
)
>
0
f(\textbf{x})>0
f(x)>0;当
x
\textbf{x}
x在超平面的负侧时,
f
(
x
)
<
0
f(\textbf{x})<0
f(x)<0;
x
\textbf{x}
x到超平面的距离
r
y
i
=
y
i
f
(
x
)
∣
∣
w
∣
∣
ry_{i}=\frac{y_{i}f(\textbf{x})}{||\textbf{w}||}
ryi=∣∣w∣∣yif(x),
y
i
∈
{
1
,
−
1
}
y_{i}\in \{1,-1\}
yi∈{1,−1};可视为对
x
\textbf{x}
x判别的置信度。
间隔(margin)计算:
根据上图,间隔是两个向量相减得出的,即间隔=
∣
x
+
−
x
−
∣
|\textbf{x}_{+}-\textbf{x}_{-}|
∣x+−x−∣,因为
x
+
=
x
−
+
λ
w
\textbf{x}_{+}=\textbf{x}_{-}+\lambda\textbf{w}
x+=x−+λw,且
w
0
+
w
T
x
+
=
1
w
0
+
w
T
x
−
=
−
1
}
⇒
w
T
(
x
+
−
x
−
)
=
2
⇒
λ
=
2
∣
∣
w
∣
∣
2
\left.\begin{matrix} w_{0}+\textbf{w}^{T}\textbf{x}_{+}=1\\ w_{0}+\textbf{w}^{T}\textbf{x}_{-}=-1 \end{matrix}\right\}\Rightarrow \textbf{w}^{T}(\textbf{x}_{+}-\textbf{x}_{-})=2\Rightarrow \lambda =\frac{2}{||\textbf{w}||^{2}}
w0+wTx+=1w0+wTx−=−1}⇒wT(x+−x−)=2⇒λ=∣∣w∣∣22
所以最终,间隔=
∣
x
+
−
x
−
∣
=
2
∣
∣
w
∣
∣
|\textbf{x}_{+}-\textbf{x}_{-}|=\frac{2}{||\textbf{w}||}
∣x+−x−∣=∣∣w∣∣2
所以SVM最大化间隔的超平面为:
等价于:
由此我们求解的就是二次规划问题(目标函数为二次函数,约束项为线性约束),当变量个数为
D
+
1
D+1
D+1,则约束项的数目为
N
N
N
2、对偶表示
凸优化理论告诉我们该优化问题可以等价的写成其对偶形式(dual formulation),根据拉格朗日函数:
L
(
α
,
w
0
,
w
)
=
1
2
w
T
w
−
∑
i
=
1
N
α
i
(
y
i
(
w
0
+
w
T
x
)
−
1
)
,
α
i
>
0
L(\mathbf{\alpha},w_{0},\textbf{w})=\frac{1}{2}\textbf{w}^{T}\textbf{w}-\sum_{i=1}^{N}\alpha_{i}(y_{i}(w_{0}+\textbf{w}^{T}\textbf{x})-1),\alpha_{i} >0
L(α,w0,w)=21wTw−∑i=1Nαi(yi(w0+wTx)−1),αi>0
那么是的目标函数最小的
w
0
,
w
w_{0},\textbf{w}
w0,w为:
∂
L
∂
w
=
0
⇒
w
=
∑
i
=
1
N
α
i
y
i
x
i
\frac{\partial L}{\partial \textbf{w}}=0\Rightarrow \textbf{w}=\sum_{i=1}^{N}\alpha_{i}y_{i}\textbf{x}_{i}
∂w∂L=0⇒w=∑i=1Nαiyixi
∂
L
∂
w
0
=
0
⇒
∑
i
=
1
N
α
i
y
i
=
0
\frac{\partial L}{\partial w_{0}}=0\Rightarrow \sum_{i=1}^{N}\alpha_{i}y_{i}=0
∂w0∂L=0⇒∑i=1Nαiyi=0
那么解对偶问题就在于寻找
{
α
i
}
i
=
1
N
\{\alpha_{i}\}_{i=1}^{N}
{αi}i=1N,最大化目标函数:
需要满足条件:
{
∑
i
=
1
N
α
i
y
i
α
i
≥
0
\left\{\begin{matrix} \sum_{i=1}^{N}\alpha _{i}y_{i}\\ \alpha _{i}\geq 0 \end{matrix}\right.
{∑i=1Nαiyiαi≥0
但是任然有一个问题,那就是当变量数为
N
N
N,约束项的数目为
N
+
1
N+1
N+1时,如果
N
N
N比较大时,对偶问题的复杂度可能比原问题更高;这是我们可以利用对偶问题的kernel trick和核方法结合方法来解决,对此,该问题的高效优化算法为:SMO(Sequential Minimal Optimization),它的主要两个思想是:一是坐标轴下降法,二是在SVM中,
△
L
w
0
=
0
⇒
α
∗
y
1
=
0
\triangle L_{w_{0}}=0\Rightarrow \mathbf{\alpha}^{*} y\textbf{1}=0
△Lw0=0⇒α∗y1=0,所以不能够单独改变一个
α
\alpha
α,而是每次每次选取一对
α
i
,
α
j
\alpha_{i},\alpha_{j}
αi,αj做优化
求解出
α
i
\alpha_{i}
αi后,在求出
w
=
∑
i
=
1
N
α
i
y
i
x
i
\textbf{w}=\sum_{i=1}^{N}\alpha_{i}y_{i}\textbf{x}_{i}
w=∑i=1Nαiyixi和
w
0
w_{0}
w0,可以得到判别函数:
f
(
x
)
=
w
0
+
w
T
x
=
w
0
+
∑
i
α
i
y
i
x
i
T
x
=
w
0
+
∑
i
α
i
y
i
⟨
x
,
x
i
⟩
f(x)=w_{0}+\textbf{w}^{T}\textbf{x}=w_{0}+\sum_{i}\alpha_{i}y_{i}\textbf{x}_{i}^{T}\textbf{x}=w_{0}+\sum_{i}\alpha_{i}y_{i}\left \langle \textbf{x},\textbf{x}_{i} \right \rangle
f(x)=w0+wTx=w0+∑iαiyixiTx=w0+∑iαiyi⟨x,xi⟩
这就可以得到SVM模型了,当一个新
x
\textbf{x}
x进行预测是,分类器
y
^
=
s
g
n
(
f
(
x
)
)
\hat{y}=sgn(f(\textbf{x}))
y^=sgn(f(x))
3、KKT条件
在二次规划问题上的求解时,根据优化理论,一个点
x
\textbf{x}
x称为全局最小值的必要条件是满足Karush-Kuhn-Tucker条件(KKT),当
f
(
x
)
f(\textbf{x})
f(x)是凸函数时,KKT条件也是充分条件。
对于二次规划问题的求解。我们知道其对偶性质
原问题:
P
=
m
i
n
x
f
0
(
x
)
P=\underset{\textbf{x}}{min}f_0(\textbf{x})
P=xminf0(x)
s.t.
f
i
(
x
)
≤
0
,
1
≤
i
≤
N
f_{i}(\textbf{x})\leq 0,1\leq i\leq N
fi(x)≤0,1≤i≤N
h
j
(
x
)
=
0
,
1
≤
j
≤
M
h_{j}(\textbf{x})= 0,1\leq j\leq M
hj(x)=0,1≤j≤M
拉格朗日函数:
L
(
x
,
λ
,
μ
)
=
f
0
(
x
)
+
∑
i
λ
i
f
i
(
x
)
+
∑
j
μ
j
h
j
(
x
)
L(\textbf{x},\mathbf{\lambda},\mathbf{\mu})=f_{0}(\textbf{x})+\sum_{i}\lambda_{i}f_{i}(\textbf{x})+\sum_{j}\mu_{j}h_{j}(\textbf{x})
L(x,λ,μ)=f0(x)+∑iλifi(x)+∑jμjhj(x)
对偶问题:
D
=
m
a
x
λ
,
μ
L
(
x
,
λ
,
μ
)
D=\underset{\mathbf{\lambda},\mathbf{\mu}}{max}L(\textbf{x},\mathbf{\lambda},\mathbf{\mu})
D=λ,μmaxL(x,λ,μ)
s.t.
λ
i
≥
0
\lambda_i \geq 0
λi≥0
当
P
≥
D
P\geq D
P≥D时,为弱对偶性;当
P
=
D
P=D
P=D时,为强对偶性
待续。。。。