7.1支持向量机
线性可分支持向量机与间隔最大化
如何去找到一个最优的超平面?
找到一个超平面,这个超平面可以使得与它最近的样本点的距离必须大于其他所有超平面划分时与最近的样本点的距离。在SVM中,这叫间隔最大化。
基本思路:如果我们的样本点,是它在高维空间到低维空间的一个投影,总会从某一个维度开始,它变得线性可分了。
我们发现,高维中的超平面,映射到低维空间中时,可能会变成曲线或其他形式的划分形式。这也就是为什么,在svm中我们同样使用超平面来划分,但SVM可以划分非线形的数据集。它本质上仍然是线形超平面,不过是高维中的线形超平面。
那么升维一定线性可分吗?会不会升到无穷维了仍然线性不可分?不会!首先因为,我们的数据集一定是基于真实的某种分布,分为A类的样本和B类的样本一定在本质上有区别。只要有区别,就一定可以区分开来,一定在某个高维度上线性可分。
支持向量机
函数间隔:
γ
i
~
=
y
i
(
w
x
i
+
b
)
\widetilde{\gamma_{i}}=y_{i}\left(w x_{i}+b\right)
γi
=yi(wxi+b)
几何间隔:
γ
i
=
y
i
(
w
∥
w
∥
x
i
+
b
∥
w
∥
)
=
γ
i
~
∥
w
∥
\gamma_{i}=y_{i}\left(\frac{w}{\|w\|} x_{i}+\frac{b}{\|w\|}\right)=\frac{\widetilde{\gamma_{i}}}{\|w\|}
γi=yi(∥w∥wxi+∥w∥b)=∥w∥γi
最大间隔分离超平面:
$$
\max _{w, b} \gamma\
\text { s.t. } \quad y_{i}\left(\frac{w}{|w|} \cdot x_{i}+\frac{b}{|w|}\right) \geqslant \gamma, \quad i=1,2, \cdots, N
$$
max w , b γ ^ ∥ w ∥ s.t. y i ( w ⋅ x i + b ) ⩾ γ ^ , i = 1 , 2 , ⋯ , N \max _{w, b} \frac{\hat{\gamma}}{\|w\|}\\ \text{s.t.}\quad y_{i}\left(w \cdot x_{i}+b\right) \geqslant \hat{\gamma}, \quad i=1,2, \cdots, N w,bmax∥w∥γ^s.t.yi(w⋅xi+b)⩾γ^,i=1,2,⋯,N
由于函数间隔可以任意缩放,我们令其为1:
max
w
,
b
1
∥
w
∥
s.t.
y
i
(
w
⋅
x
i
+
b
)
⩾
1
,
i
=
1
,
2
,
⋯
,
N
\max _{w, b} \frac{1}{\|w\|}\\ \text { s.t. } \quad y_{i}\left(w \cdot x_{i}+b\right) \geqslant 1, \quad i=1,2, \cdots, N
w,bmax∥w∥1 s.t. yi(w⋅xi+b)⩾1,i=1,2,⋯,N
因为最大化
1
∥
w
∥
\dfrac{1}{\|w\|}
∥w∥1等价于最小化
1
2
∥
w
∥
2
\frac{1}{2}\|w\|^{2}
21∥w∥2,式子可以改写为
min
w
,
b
1
2
∥
w
∥
2
s.t.
y
i
(
w
⋅
x
i
+
b
)
−
1
⩾
0
,
i
=
1
,
2
,
⋯
,
N
\min _{w, b} \frac{1}{2}\|w\|^{2}\\ \text { s.t. } \quad y_{i}\left(w \cdot x_{i}+b\right)-1 \geqslant 0, \quad i=1,2, \cdots, N
w,bmin21∥w∥2 s.t. yi(w⋅xi+b)−1⩾0,i=1,2,⋯,N
导入拉格朗日
min
w
,
b
1
2
∥
w
∥
2
s.t.
y
i
(
w
⋅
x
i
+
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
\min _{w, b} \frac{1}{2}\|w\|^{2}\\ \text { s.t. } \quad y_{i}\left(w \cdot x_{i}+b\right)-1 \geqslant 0, \quad i=1,2, \cdots, N\\ L(w, b, \alpha)=\frac{1}{2}\|w\|^{2}-\sum_{i=1}^{N} \alpha_{i} y_{i}\left(w \cdot x_{i}+b\right)+\sum_{i=1}^{N} \alpha_{i}
w,bmin21∥w∥2 s.t. yi(w⋅xi+b)−1⩾0,i=1,2,⋯,NL(w,b,α)=21∥w∥2−i=1∑Nαiyi(w⋅xi+b)+i=1∑Nαi
目标从:
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,α)
先求 min w , b L ( w , b , a ) \min _{w, b} L(w, b, a) minw,bL(w,b,a)
将拉格朗日函数
L
(
w
,
b
,
α
)
L(w, b, \alpha)
L(w,b,α)分别对
w
,
b
w, b
w,b求偏导数并令其等于0.
∇
w
L
(
w
,
b
,
α
)
=
w
−
∑
i
=
1
N
α
i
y
i
x
i
=
0
∇
b
L
(
w
,
b
,
α
)
=
∑
i
=
1
N
α
i
y
i
=
0
\begin{aligned} &\nabla_{w} L(w, b, \alpha)=w-\sum_{i=1}^{N} \alpha_{i} y_{i} x_{i}=0 \\ &\nabla_{b} L(w, b, \alpha)=\sum_{i=1}^{N} \alpha_{i} y_{i}=0 \end{aligned}
∇wL(w,b,α)=w−i=1∑Nαiyixi=0∇bL(w,b,α)=i=1∑Nαiyi=0
得
w
=
∑
i
=
1
N
α
i
y
i
x
i
∑
i
=
1
N
α
i
y
i
=
0
\begin{gathered} w=\sum_{i=1}^{N} \alpha_{i} y_{i} x_{i} \\ \sum_{i=1}^{N} \alpha_{i} y_{i}=0 \end{gathered}
w=i=1∑Nαiyixii=1∑Nαiyi=0
将
w
w
w代入拉格朗日函数并利用
∑
i
=
1
N
α
i
y
i
=
0
\sum_{i=1}^{N} \alpha_{i} y_{i}=0
∑i=1Nαiyi=0, 得到
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
=
−
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
+
∑
i
=
1
N
α
i
\begin{aligned} 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} \\ &=-\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} \end{aligned}
L(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=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi
即
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} 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}
w,bminL(w,b,α)=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi
再求 max α L ( w , b , α ) \max _{\alpha} L(w, b, \alpha) maxαL(w,b,α)
求
min
w
,
b
L
(
w
,
b
,
α
)
\min _{w, b} L(w, b, \alpha)
minw,bL(w,b,α)对
α
\alpha
α的极大,即是对偶问题
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
α
i
⩾
0
,
i
=
1
,
2
,
⋯
,
N
\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}\\ \text{s.t.} \quad \sum_{i=1}^{N} \alpha_{i} y_{i}=0\\ \alpha_{i} \geqslant 0, \quad i=1,2, \cdots, N
αmax−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαis.t.i=1∑Nαiyi=0αi⩾0,i=1,2,⋯,N
然后将max转化为min
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
α
i
⩾
0
,
i
=
1
,
2
,
⋯
,
N
\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}\\ \text{s.t.} \quad \sum_{i=1}^{N} \alpha_{i} y_{i}=0\\ \alpha_{i} \geqslant 0, \quad i=1,2, \cdots, N
αmin21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαis.t.i=1∑Nαiyi=0αi⩾0,i=1,2,⋯,N
接下来求解 α \alpha α
软间隔最大化(maximum soft interval)
引入松弛变量
y
i
(
w
⋅
x
i
+
b
)
⩾
1
−
ξ
i
y_{i}\left(w \cdot x_{i}+b\right) \geqslant 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
\min _{w, b, \xi} \frac{1}{2}\|w\|^{2}+C \sum_{i=1}^{N} \xi_{i}\\ \text { s.t. } \quad y_{i}\left(w \cdot x_{i}+b\right) \geqslant 1-\xi_{i}, \quad i=1,2, \cdots, N\\ \xi_{i} \geqslant 0, \quad i=1,2, \cdots, N
w,b,ξmin21∥w∥2+Ci=1∑Nξi s.t. yi(w⋅xi+b)⩾1−ξi,i=1,2,⋯,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
s.t.
∑
i
=
1
N
α
i
y
i
=
0
0
⩽
α
i
⩽
C
,
i
=
1
,
2
,
⋯
,
N
\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}\\ \text { s.t. } \quad \sum_{i=1}^{N} \alpha_{i} y_{i}=0\\ 0 \leqslant \alpha_{i} \leqslant C, \quad i=1,2, \cdots, N
αmin21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαi s.t. i=1∑Nαiyi=00⩽αi⩽C,i=1,2,⋯,N
和上一个section不使用软间隔的情况一样一样,我们这里也面临求解
α
\alpha
α的问题。
核函数
目前的问题:式子中间有 x i x_{i} xi 和 x j x_{j} xj 的点积,这个让人难受。例如在手写数字数据集Mnist中,训练集有6万个样本,6万乘6万勉强能接受。但每个样本时784维的,6万个样本两两做点积,是非常慢的。如果x是更高维度的呢?
- 由于公式的需要,我们需要计算 x i x_{i} xi 和 x j x_{j} xj 的点积。
- 此外,我们需要将样本映射到高维去,加入映射函数为 ϕ ( x ) \phi(x) ϕ(x) , 那么 ϕ ( x i ) \phi\left(x_{i}\right) ϕ(xi) 和 ϕ ( x j ) \phi\left(x_{j}\right) ϕ(xj) 的维度数目进一步扩大,它们的点积会让运算变得及其复杂。 (因为维度太高了)
- 我们希望存在一个函数 K ( x i , x j ) = ϕ ( x i ) ⋅ ϕ ( x j ) K\left(x_{i}, x_{j}\right)=\phi\left(x_{i}\right) \cdot \phi\left(x_{j}\right) K(xi,xj)=ϕ(xi)⋅ϕ(xj) ,但函数 K K K 的计算方式更简单。也就是说,我将样本通过函数升维得到 ϕ ( x i ) \phi\left(x_{i}\right) ϕ(xi) 和 ϕ ( x j ) \phi\left(x_{j}\right) ϕ(xj) ,接下来要计算它们的点积,能不能有个很简单的计算公式,计算出来的结果和 ϕ ( x i ) \phi\left(x_{i}\right) ϕ(xi). ϕ ( x j ) \phi\left(x_{j}\right) ϕ(xj) 一样? 那样我就不用再去算 ϕ ( x i ) ⋅ ϕ ( x j ) \phi\left(x_{i}\right) \cdot \phi\left(x_{j}\right) ϕ(xi)⋅ϕ(xj) 的结果了,直接用简单方式计算不是更好吗?
这个简便方式,就是核函数
在SVM中,我们通常使用高斯核
K
(
x
,
z
)
=
exp
(
−
∥
x
−
z
∥
2
2
σ
2
)
K(x, z)=\exp \left(-\frac{\|x-z\|^{2}}{2 \sigma^{2}}\right)
K(x,z)=exp(−2σ2∥x−z∥2)
在计算
x
x
x和
z
z
z的点积时,直接用这个公式替代就行了。
所以我们有
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
\min _{\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}\\ \text{s.t.} \quad \sum_{i=1}^{N} \alpha_{i} y_{i}=0\\ 0 \leqslant \alpha_{i} \leqslant C, \quad i=1,2, \cdots, N
α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
序列最小最优化算法
现在我们只剩下 α \alpha α需要求解。而且我们求解出来的 α \alpha α一定要让整个结果满足KKT条件。如果不满足,那一定不是最优解。所以我们可以每次不断调整 α \alpha α的值,直到所有 α \alpha α都满足KKT条件,这时候我们一定得到了最优解。如何调整呢?可以用序列最小最优化算法,也就是SMO。
假设整个式子有N个
α
=
(
α
1
,
α
2
,
α
3
,
⋯
,
α
N
)
\alpha = (\alpha_1, \alpha_2, \alpha_3, \cdots, \alpha_N)
α=(α1,α2,α3,⋯,αN),先固定了其他
α
i
\alpha_i
αi,找
α
1
\alpha_1
α1。先让
α
1
\alpha_1
α1满足KKT条件。但是如果固定除
α
1
\alpha_1
α1以外的所有
α
i
\alpha_i
αi,等于也固定了
α
1
\alpha_1
α1。
α
1
=
−
y
1
∑
i
=
2
N
α
i
y
i
\alpha_{1}=-y_{1} \sum_{i=2}^{N} \alpha_{i} y_{i}
α1=−y1i=2∑Nαiyi
所以我们每次选择优化两个
α
i
\alpha_i
αi
α
1
y
1
+
α
2
y
2
=
−
∑
i
=
3
N
y
i
α
i
\alpha_{1} y_{1}+\alpha_{2} y_{2}=-\sum_{i=3}^{N} y_{i} \alpha_{i}
α1y1+α2y2=−i=3∑Nyiαi
进一步,因为原式中目前只有
α
1
\alpha_1
α1和
α
2
\alpha_2
α2两个变量,我们将其他作为常数去除。
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
\min _{\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}\\ \text { s.t. } \quad \sum_{i=1}^{N} \alpha_{i} y_{i}=0\\ 0 \leqslant \alpha_{i} \leqslant C, \quad i=1,2, \cdots, N
αmin21i=1∑Nj=1∑NαiαjyiyjK(xi,xj)−i=1∑Nαi s.t. i=1∑Nαiyi=00⩽αi⩽C,i=1,2,⋯,N
整理一下
min
α
1
,
α
2
W
(
α
1
,
α
2
)
=
1
2
K
11
α
1
2
+
1
2
K
22
α
2
2
+
y
1
y
2
K
12
α
1
α
2
−
(
α
1
+
α
2
)
+
y
1
α
1
∑
i
=
3
N
y
i
α
i
K
i
1
+
y
2
α
2
∑
i
=
3
N
y
i
α
i
K
i
2
s.t.
α
1
y
1
+
α
2
y
2
=
−
∑
i
=
3
N
y
i
α
i
=
ζ
0
⩽
α
i
⩽
C
,
i
=
1
,
2
\begin{aligned} \min _{\alpha_{1}, \alpha_{2}} W\left(\alpha_{1}, \alpha_{2}\right)=& \frac{1}{2} K_{11} \alpha_{1}^{2}+\frac{1}{2} K_{22} \alpha_{2}^{2}+y_{1} y_{2} K_{12} \alpha_{1} \alpha_{2} \\ &-\left(\alpha_{1}+\alpha_{2}\right)+y_{1} \alpha_{1} \sum_{i=3}^{N} y_{i} \alpha_{i} K_{i 1}+y_{2} \alpha_{2} \sum_{i=3}^{N} y_{i} \alpha_{i} K_{i 2}\\ &\text { s.t. } \quad \alpha_{1} y_{1}+\alpha_{2} y_{2}=-\sum_{i=3}^{N} y_{i} \alpha_{i}=\zeta\\ &0 \leqslant \alpha_{i} \leqslant C, \quad i=1,2 \end{aligned}
α1,α2minW(α1,α2)=21K11α12+21K22α22+y1y2K12α1α2−(α1+α2)+y1α1i=3∑NyiαiKi1+y2α2i=3∑NyiαiKi2 s.t. α1y1+α2y2=−i=3∑Nyiαi=ζ0⩽αi⩽C,i=1,2
目前可知,
α
i
\alpha_i
αi一定在0到C之间。我们已知:
∑
α
i
y
i
=
0
\sum \alpha_{i} y_{i}=0
∑αiyi=0
有
α
1
y
1
+
α
1
y
2
=
−
∑
i
=
3
m
α
i
y
i
=
ζ
\alpha_{1} y_{1}+\alpha_{1} y_{2}=-\sum_{i=3}^{m} \alpha_{i} y_{i}= \zeta
α1y1+α1y2=−i=3∑mαiyi=ζ
(to be continued)
总结
- SVM让人头秀。
- SVM首先从最大间隔出发,设计了可构造最优超平面的线形模型。
- 考虑到存在噪音或有部分点让人很为难,添加了软间隔。 变成了具有软间隔功能的线形模型。
- 通过对数据的升维,使得模型变成了非线形。可以用于非线形数据集。
- 升维后无穷维的点积运算难以实现,引入了核函数简化运算。
7.2 间隔分离最大化的存在唯一性
证明存在性
由于训练数据集线性可分,所以算法一定存在可行解。又由于目标函数又下界, 所以最优化问题必有解。吕于训练数据中既有正类点又有负类点,所以 ( w , b ) = ( 0 , b ) (w, b)=(0, b) (w,b)=(0,b) 不是最优化的可行解,因此最优解必定满足w不等于 0 ,由此可知分离超平面的存在性。
证明唯一性
(To be continued)