如何去找到一个最优的超平面?
找到一个超平面,这个超平面可以使得与它最近的样本点的距离必须大于其他所有超平面划分时与最近的样本点的距离。在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,α)
将拉格朗日函数
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
得
w
=
∑
i
=
1
N
α
i
y
i
x
i
∑
i
=
1
N
α
i
y
i
=
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
即
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
求
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 α
引入松弛变量
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是更高维度的呢?
这个简便方式,就是核函数
在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
目前可知,
α
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)
由于训练数据集线性可分,所以算法一定存在可行解。又由于目标函数又下界, 所以最优化问题必有解。吕于训练数据中既有正类点又有负类点,所以 ( w , b ) = ( 0 , b ) (w, b)=(0, b) (w,b)=(0,b) 不是最优化的可行解,因此最优解必定满足w不等于 0 ,由此可知分离超平面的存在性。
(To be continued)