支持向量机可以分为三类:
- 线性可分的情况 ==> 硬间隔最大化 ==> 硬间隔SVM
- 近似线性可分的情况 ==> 软间隔最大化 ==> 线性支持向量机
- 线性不可分的情况 ==> 核技巧/软间隔最大化 ==> 非线性SVM
硬间隔向量机(hard margin svm)
任务:寻找一条与所有支持向量距离最远的决策边界,这条决策边界就是
0
=
w
T
X
+
b
0 = w^T X + b
0=wTX+b,即:
w
T
X
i
+
b
>
0
,
y
i
>
0
w
T
X
i
+
b
<
0
,
y
i
<
0
w^T X_i + b > 0 , y_i > 0 \\ w^T X_i + b < 0 , y_i < 0
wTXi+b>0,yi>0wTXi+b<0,yi<0
所以问题可以描述为:
m
a
x
m
a
r
g
i
n
(
x
,
b
)
s
.
t
.
y
i
(
w
T
+
b
)
>
0
m
a
r
g
i
n
(
w
,
b
)
=
m
i
n
d
i
s
t
a
n
c
e
(
w
,
b
,
x
i
)
=
m
i
n
1
∣
w
∣
∣
w
T
x
i
+
b
∣
max \; margin(x,b) \qquad s.t.y_i(w^T+b)>0 \\ margin(w,b) = min \; distance(w,b,x_i) = min \frac{1}{|w|}|w^Tx_i+b|
maxmargin(x,b)s.t.yi(wT+b)>0margin(w,b)=mindistance(w,b,xi)=min∣w∣1∣wTxi+b∣
带换一下也就是
m
a
x
m
i
n
1
∣
w
∣
∣
w
T
x
i
+
b
∣
=
=
>
m
a
x
1
∣
w
∣
m
i
n
∣
w
T
x
i
+
b
∣
s
.
t
.
y
i
(
w
T
x
i
+
b
)
>
0
=
=
>
∃
r
>
0
,
m
i
n
y
i
(
w
T
+
b
)
=
r
max \; min \frac{1}{|w|}|w^Tx_i+b| ==> max \frac{1}{|w|} \; min |w^Tx_i+b| \\ s.t. y_i(w^Tx_i+b)>0 \; ==>\; \exists r > 0 , min \; y_i(w^T+b)=r
maxmin∣w∣1∣wTxi+b∣==>max∣w∣1min∣wTxi+b∣s.t.yi(wTxi+b)>0==>∃r>0,minyi(wT+b)=r
用r来表示就是:
m
a
x
r
∣
w
∣
∃
r
>
0
,
m
i
n
y
i
(
w
T
+
b
)
=
r
max \frac{r}{|w|}\\\\ \exists r > 0 , min \; y_i(w^T+b)=r
max∣w∣r∃r>0,minyi(wT+b)=r
这里我的理解是:因为
w
x
i
+
b
=
r
wx_i+b=r
wxi+b=r ==>
w
r
x
i
+
b
r
=
1
\frac{w}{r} x_i + \frac{b}{r}=1
rwxi+rb=1,所以不管r取什么值,
w
=
w
0
r
w=\frac{w_0}{r}
w=rw0,
b
=
b
0
r
b=\frac{b_0}{r}
b=rb0, 所以r的取值所带来的影响会被最后的w和b所融合进去,所以r=1也没关系。最终的问题可以描述为(这里是N个不等式):
m
a
x
1
2
∣
w
∣
2
s
.
t
.
y
i
(
w
T
+
b
)
−
1
>
=
0
i
=
1
,
2
,
3
,
.
.
.
,
N
max \frac{1}{2}|w|^2 \\ s.t. \; y_i(w^T+b)-1>=0 \qquad i=1,2,3,...,N
max21∣w∣2s.t.yi(wT+b)−1>=0i=1,2,3,...,N
构造拉格朗日函数,引入N个参数
α
\alpha
α,转换成对偶函数如下(大括号表示不出来我也很绝望):
m
i
n
1
2
⋅
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
−
∑
i
=
1
N
x
i
s
.
t
.
∑
i
=
1
N
α
i
y
i
=
0
α
i
>
=
0
i
=
1
,
2
,
3
,
.
.
N
min \frac{1}{2} \cdot \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} x_{i} \\ s.t.\sum_{i=1}^{N} \alpha_{i} y_{i}=0 \\ \alpha_i >=0 \; i = 1,2,3,.. N
min21⋅i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nxis.t.i=1∑Nαiyi=0αi>=0i=1,2,3,..N
使用KKT条件,得到的解:
w
∗
=
∑
i
=
1
N
α
i
∗
y
i
x
i
w^{*}=\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} x_{i}
w∗=i=1∑Nαi∗yixi
b ∗ = y j − ∑ i = 1 N a i ∗ y i ( x i ⋅ x j ) b^{*}=y_{j}-\sum_{i=1}^{N} a_{i}^{*} y_{i}\left(x_{i} \cdot x_{j}\right) b∗=yj−i=1∑Nai∗yi(xi⋅xj)
最终的解是:
w
∗
x
+
b
∗
=
0
w^{*}x+b^{*}=0
w∗x+b∗=0
f ( x ) = s i g n ( w ∗ x + b ∗ ) f(x) = sign(w^{*}x+b^{*}) f(x)=sign(w∗x+b∗)
软间隔向量机(soft margin svm)
软间隔向量机采用合页损失函数,真实数据中,严格线性可分的数据很少。合页损失函数允许分类时的一点点误差。损失函数如下:
1
−
y
i
(
w
⊤
x
i
+
b
)
⩽
0
,
l
o
s
s
=
0
1
−
y
2
‾
(
w
⊤
x
i
+
b
)
>
0
,
l
o
s
s
=
1
−
y
i
(
w
⊤
x
i
+
b
)
1- y_{i}\left(w^{\top} x_{i}+b\right) \leqslant0, \quad loss=0 \\ 1-y_{\overline{2}}\left(w^{\top} x_{i}+b\right) >0, \quad loss =1-y_{i}\left(w^{\top} x_{i}+b\right)
1−yi(w⊤xi+b)⩽0,loss=01−y2(w⊤xi+b)>0,loss=1−yi(w⊤xi+b)
也就是,正确分类并且函数间隔大于1时没有误差,错误分类时,距离决策边界越远的点,受到的惩罚越大。使用合页函数的做优化问题可以表示为:
min
∑
i
N
(
1
−
y
i
(
w
T
x
i
+
b
)
)
+
+
λ
∥
w
∥
2
\min \sum_{i}^{N}\left(1-y_{i}\left(w^{T} x_{i}+b\right)\right)_{+}+\lambda\|w\|^{2}
mini∑N(1−yi(wTxi+b))++λ∥w∥2
令
ξ
i
=
1
−
y
i
(
w
T
x
i
+
b
)
,
ξ
i
⩾
0
\xi_{i}=1-y_{i}(w^{T} x_{i}+b), \quad \xi_{i} \geqslant 0
ξi=1−yi(wTxi+b),ξi⩾0,则,分两种情况:
1、
1
−
y
i
(
w
T
x
i
+
b
)
>
0
1-y_{i}(w^{T} x_{i}+b)>0
1−yi(wTxi+b)>0 ==>
ξ
i
=
1
−
y
i
(
w
T
x
i
+
b
)
\xi_i =1-y_{i}\left(w^{T} x_{i}+b\right)
ξi=1−yi(wTxi+b) ==>
y
i
(
w
x
+
b
)
=
1
−
ξ
i
y_i(wx+b)=1-\xi_i
yi(wx+b)=1−ξi
2、
1
−
y
i
(
w
T
x
i
+
b
)
⩽
0
1-y_{i}(w^{T} x_{i}+b)\leqslant0
1−yi(wTxi+b)⩽0 ==>
y
i
(
w
x
+
b
)
⩽
1
y_i(wx+b)\leqslant1
yi(wx+b)⩽1 ==>
y
i
(
w
x
+
b
)
⩽
1
−
ξ
i
y_i(wx+b)\leqslant1-\xi_i
yi(wx+b)⩽1−ξi (
ξ
i
=
0
\xi_i=0
ξi=0)
综合上面两种情况,可以直接写为:
y
i
(
w
x
+
b
)
⩽
1
−
ξ
i
y_i(wx+b)\leqslant1-\xi_i
yi(wx+b)⩽1−ξi,这样的话,最优化函数就变成了下面的样子:
m
i
n
1
2
w
T
w
+
C
∑
i
=
1
N
ξ
i
s
.
t
.
y
i
(
w
T
x
i
+
b
)
⩾
1
−
ξ
i
,
ξ
i
⩾
0
min \frac{1}{2} w^{T}w+C\sum_{i=1}^{N} \xi_{i} \\ s.t. y_{i}\left(w^{T} x_{i}+b\right) \geqslant 1-\xi_{i}, \quad \xi_{i} \geqslant 0
min21wTw+Ci=1∑Nξis.t.yi(wTxi+b)⩾1−ξi,ξi⩾0
这两个式子是等价的。再《统计学习方法》中,先给出了后面的式子,再介绍了合页损失函数
这两个式子转换成等价的对偶函数如下:
m
i
n
α
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
\underset{\alpha}{min} \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j}y_{i} y_{j}\left(x_{i}x_{j}\right)-\sum_{i=1}^{n} \alpha_{i} \\ s.t. \sum_{i=1}^{N}\alpha_iy_i=0 \qquad \\ 0\leq \alpha_i \leq C, \;i=1,2,...N
αmin21i=1∑Nj=1∑Nαiαjyiyj(xixj)−i=1∑nαis.t.i=1∑Nαiyi=00≤αi≤C,i=1,2,...N
对偶函数的解是:
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 a i y i ( x i ⋅ x j ) b=y_{j}-\sum_{i=1}^{N} a_{i} y_{i}\left(x_{i} \cdot x_{j}\right) b=yj−i=1∑Naiyi(xi⋅xj)
决策函数是:
f ( x ) = s i g n ( ∑ 1 N α i y i ( x ⋅ x i ) + b ∗ ) f(x)=sign (\sum_{1}^{N} \alpha_{i} y_{i}(x \cdot x_{i})+b^{*}) f(x)=sign(1∑Nαiyi(x⋅xi)+b∗)
KKT条件
α f α w = 0 , α f α b = 0 , α f α λ = 0 \frac{\alpha f}{\alpha w}=0, \frac{\alpha f}{\alpha b}=0, \frac{\alpha f}{\alpha \lambda}=0 αwαf=0,αbαf=0,αλαf=0
λ i ( 1 − y i ( w T x i + b ) ) = 0 \lambda_{i}(1-y_{i}(w^{T} x_{i}+b))=0 λi(1−yi(wTxi+b))=0
λ i = 0 \lambda_i=0 λi=0
( 1 − y i ( w T x i + b ) ) < 0 (1-y_{i}(w^{T} x_{i}+b))<0 (1−yi(wTxi+b))<0
对于 λ i ( 1 − y i ( w T x i + b ) ) = 0 \lambda_{i}(1-y_{i}(w^{T} x_{i}+b))=0 λi(1−yi(wTxi+b))=0 只要 λ i ≠ 0 \lambda_i \neq0 λi=0 ,就有 1 − y i ( w T x i + b = 0 1-y_{i}(w^{T} x_{i}+b=0 1−yi(wTxi+b=0,也就是说 x i x_i xi再决策边界上, x i x_i xi是支持向量
- 原问题与对偶问题育有强对偶关系 <===> 满足KKT条件
非线性支持向量机(核函数)
核函数可以对特征进行升维(当然,不一定非要是升维,也可能是转换到另一个空间),高维空间的运算量巨大,所以直接使用低维的计算结果,作为两个高维向量的内积:
ϕ
(
x
1
,
x
2
)
∗
ϕ
(
x
1
′
,
x
2
′
)
=
(
z
1
,
z
2
,
z
3
)
∗
(
z
1
′
,
z
2
′
,
z
3
′
)
=
(
x
1
2
,
2
x
1
x
2
,
x
2
2
)
(
x
1
′
2
,
2
x
1
′
x
2
′
,
x
2
′
2
)
=
(
x
1
x
1
′
+
x
2
x
2
′
)
=
(
x
x
′
)
2
=
K
(
x
,
x
′
)
\phi (x_1, x_2) * \phi (x_1^{'}, x_2^{'}) = (z_1, z_2, z_3)*(z_1^{'}, z_2^{'}, z_3^{'}) \\\\ = (x_1^2, \sqrt{2}x_1 x_2, x_2^2)(x_1^{'2}, \sqrt{2}x_1^{'} x_2^{'}, x_2^{'2}) \\\\ = (x_1 x_1^{'} + x_2 x_2^{'}) = (xx^{'})^2 =K(x, x^{'})
ϕ(x1,x2)∗ϕ(x1′,x2′)=(z1,z2,z3)∗(z1′,z2′,z3′)=(x12,2x1x2,x22)(x1′2,2x1′x2′,x2′2)=(x1x1′+x2x2′)=(xx′)2=K(x,x′)
核函数等价于两个映射哈函数的内积,不过,这个映射函数不需要手动指出。因为当两个映射函数相乘时,内积的结果可以用核函数表示。而映射函数在最优化问题中都是成对出现的。即出现映射函数的地方都可以用核函数替代。
如果用映射函数将x映射到高维空间,那么应该用高维向量替换x所在的位置:
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}x_{j}\right)-\sum_{i=1}^{n} \alpha_{i}
21i=1∑Nj=1∑Nαiαjyiyj(xixj)−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(\phi(x_{i})\phi(x_{j})\right)-\sum_{i=1}^{n} \alpha_{i} 21i=1∑Nj=1∑Nαiαjyiyj(ϕ(xi)ϕ(xj))−i=1∑nαi
1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( K ( 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(K(x_{i}, x_{j})\right)-\sum_{i=1}^{n} \alpha_{i} 21i=1∑Nj=1∑Nαiαjyiyj(K(xi,xj))−i=1∑nαi
那么最终拟合的结果也应该是由高维向量表示的:
f
(
x
)
=
s
i
g
n
(
∑
1
N
α
i
y
i
(
ϕ
(
x
)
ϕ
(
x
i
)
)
+
b
∗
)
f(x)=sign (\sum_{1}^{N} \alpha_{i} y_{i}(\phi(x)\phi(x_{i}))+b^{*})
f(x)=sign(1∑Nαiyi(ϕ(x)ϕ(xi))+b∗)
f ( x ) = s i g n ( ∑ 1 N α i y i ( K ( x , x i ) ) + b ∗ ) f(x)=sign (\sum_{1}^{N} \alpha_{i} y_{i}(K(x,x_i))+b^{*}) f(x)=sign(1∑Nαiyi(K(x,xi))+b∗)
高斯核函数(RBF)
正太分布:
f
(
x
)
=
1
2
π
σ
exp
(
−
(
x
−
μ
)
2
2
σ
2
)
f(x)=\frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{(x-\mu)^{2}}{2 \sigma^{2}}\right)
f(x)=2πσ1exp(−2σ2(x−μ)2)
高斯核函数:
K
(
x
,
y
)
=
e
−
γ
∥
x
−
y
∥
2
K(x, y)=e^{-\gamma\|x-y\|^{2}}
K(x,y)=e−γ∥x−y∥2
对于正态分布来说:
σ
\sigma
σ是标准差,
σ
\sigma
σ越小,曲线越窄。
σ
\sigma
σ越大,曲线越宽
对于高斯核函数来说:
γ
\gamma
γ的值越大,曲线越窄;
γ
\gamma
γ的值越小,曲线越宽;