直观解释
SVM,Support Vector Machine,它是一种二分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。
这里涉及了几个概念,二分类模型,线性分类器,间隔最大化,凸二次规划问题。
- 二分类模型:给定的各个样本数据分别属于两个类之一,而目标是确定新数据点将归属到哪个类中。
- 线性分类器:分割样本点的分类器是一个超平面,这也就要求样本线性可分,这是hard-margin SVM的要求,对于后来的soft-margin SVM,放低为近似线性可分,再到后来的核技巧,要求映射到高维空间后要近似线性可分。
- 线性可分: D 0 D0 D0和 D 1 D1 D1是 n n n维欧氏空间中的两个点集(点的集合)。如果存在 n n n维向量 w w w和实数 b b b,使得所有属于 D 0 D0 D0的点 xi 都有 w x i + b > 0 wx_i+b>0 wxi+b>0,而对于所有属于 D 1 D1 D1的点 x j x_j xj则有 w x j + b < 0 wx_j+b<0 wxj+b<0。则我们称 D 0 D0 D0和 D 1 D1 D1线性可分。
- 间隔最大化:首先要知道SVM中有函数间隔和几何间隔,函数间隔刻画样本点到超平面的相对距离,几何间隔刻画的是样本点到超平面的绝对距离,SVM的直观目的就是找到最小函数距离的样本点,然后最大化它的几何间隔。
- 凸二次规划:目标函数是二次的,约束条件是线性的。
核心公式
- 线性可分训练集: T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x n , y n ) } T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \ldots,\left(x_{n}, y_{n}\right)\right\} T={(x1,y1),(x2,y2),…,(xn,yn)}
- 学习得到的超平面: w ∗ T x + b ∗ = 0 w^{* T} x+b^{*}=0 w∗Tx+b∗=0
- 相应的分类决策函数: f ( x ) = sign ( w ∗ T x + b ∗ ) f(x)=\operatorname{sign}\left(w^{* T} x+b^{*}\right) f(x)=sign(w∗Tx+b∗)
- SVM基本思想:间隔最大化,不仅要讲正负类样本分开,而且对最难分的点(离超平面最近的点)也要有足够大的确信度将他们分开。
函数间隔
给定一个超平面
(
w
,
b
)
(w, b)
(w,b),定义该超平面关于样本点
(
x
i
,
y
i
)
(x_i,y_i )
(xi,yi) 的函数间隔为:
γ
^
i
=
y
i
(
w
T
x
i
+
b
)
\widehat{\gamma}_{i}=y_{i}\left(w^{T} x_{i}+b\right)
γ
i=yi(wTxi+b)
定义该超平面关于训练集
T
T
T的函数间隔为:
γ
^
=
min
i
=
1
,
2
,
…
,
N
γ
^
i
\widehat{\gamma}=\min _{i=1,2, \ldots, N} \widehat{\gamma}_{i}
γ
=mini=1,2,…,Nγ
i
几何间隔
给定一个超平面
(
w
,
b
)
(w, b)
(w,b),定义该超平面关于样本点
(
x
i
,
y
i
)
(x_i,y_i )
(xi,yi) 的几何间隔为:
γ
i
=
y
i
(
w
T
∥
w
∥
x
i
+
b
∥
w
∥
)
\gamma_{i}=y_{i}\left(\frac{w^{T}}{\|w\|} x_{i}+\frac{b}{\|w\|}\right)
γi=yi(∥w∥wTxi+∥w∥b)
定义该超平面关于训练集
T
T
T的几何间隔为:
γ
=
min
i
=
1
,
2
,
…
,
N
γ
i
\gamma=\min _{i=1,2, \ldots, N} \gamma_{i}
γ=mini=1,2,…,Nγi
函数间隔与几何间隔的关系
γ i = γ ^ i ∥ w ∥ , i = 1 , 2 , … , N γ = γ ^ ∥ w ∥ \begin{array}{c}{\gamma_{i}=\frac{\hat{\gamma}_{i}}{\|w\|}, i=1,2, \ldots, N} \\ {\gamma=\frac{\hat{\gamma}}{\|w\|}}\end{array} γi=∥w∥γ^i,i=1,2,…,Nγ=∥w∥γ^
注意要点第一点
函数间隔是相对距离,几何间隔是绝对距离,也就是说,一个点
x
1
x_1
x1离分割平面的函数距离可以是0.5,1,2,4,
x
2
x_2
x2离分割平面的函数距离是1,2,4,8,而
x
1
x_1
x1的几何距离只能是1,
x
2
x_2
x2的几何距离只能是2,所以说整个hard-margin SVM的思想就是找到最小的函数间隔,也就是离分割平面最近的点,然后最大化它到分割平面的绝对距离。
如果超平面参数w和b成比例地改变(此时超平面没有改变),则函数间隔也按此比例改变,而几何间隔不变。故我们可以用几何间隔来度量我们是否对样本点正确分类以及样本点里超平面的距离,借此将SVM的基本思想形式化为某个最优化问题。
将其形式化:求得一个几何间隔最大的分离超平面,可以表示为如下的最优化问题:
max
w
,
b
γ
s.t.
y
i
(
w
T
∥
w
∥
x
i
+
b
∥
w
∥
)
≥
γ
,
i
=
1
,
2
,
…
,
N
\begin{array}{c}{\max _{w, b} \gamma} \\ {\text {s.t.} y_{i}\left(\frac{w^{T}}{\|w\|} x_{i}+\frac{b}{\|w\|}\right) \geq \gamma, i=1,2, \ldots, N}\end{array}
maxw,bγs.t.yi(∥w∥wTxi+∥w∥b)≥γ,i=1,2,…,N
即我们希望最大化超平面关于训练数据集的几何间隔?, 约束条件表示的是超平面关于每个训练样本点的几何间隔至少是?。
考虑函数间隔与几何间隔的关系式,改写为:
max w , b γ ^ ∥ w ∥ s.t. y i ( w T x i + b ) ≥ γ ^ , i = 1 , 2 , … , N \begin{array}{c}{\max _{w, b} \frac{\hat{\gamma}}{\|w\|}} \\ {\text {s.t. } y_{i}\left(w^{T} x_{i}+b\right) \geq \hat{\gamma}, i=1,2, \ldots, N}\end{array} maxw,b∥w∥γ^s.t. yi(wTxi+b)≥γ^,i=1,2,…,N
函数间隔? ̂的取值不影响最优化问题的解。因为若超平面参数w和b成比例地改变(此时超平面没有改变),则函数间隔? ̂也按此比例改变。故我们可以固定住函数间隔? ̂为1。可得到最优化问题:
max w , b 1 ∥ w ∥ s.t. 1 − y i ( w T x i + b ) ≤ 0 , i = 1 , 2 , … , N \begin{array}{c}{\max _{w, b} \frac{1}{\|w\|}} \\ {\text {s.t. } 1-y_{i}\left(w^{T} x_{i}+b\right) \leq 0, i=1,2, \ldots, N}\end{array} maxw,b∥w∥1s.t. 1−yi(wTxi+b)≤0,i=1,2,…,N
注意到最大化 1 ∥ w ∥ \frac{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. 1 − y i ( w T x i + b ) ≤ 0 , i = 1 , 2 , … , N \begin{array}{c}{\min _{w, b} \frac{1}{2}\|w\|^{2}} \\ {\text {s.t. } 1-y_{i}\left(w^{T} x_{i}+b\right) \leq 0, i=1,2, \ldots, N}\end{array} minw,b21∥w∥2s.t. 1−yi(wTxi+b)≤0,i=1,2,…,N
构造Lagrange函数:
L
(
w
,
b
,
α
)
=
1
2
∥
w
∥
2
+
∑
i
=
1
N
α
i
[
1
−
y
i
(
w
T
x
i
+
b
)
]
α
i
≥
0
,
i
=
1
,
2
,
…
,
N
\begin{aligned} L(w, b, \alpha)=& \frac{1}{2}\|w\|^{2}+\sum_{i=1}^{N} \alpha_{i}\left[1-y_{i}\left(w^{T} x_{i}+b\right)\right] \\ \alpha_{i} & \geq 0, i=1,2, \ldots, N \end{aligned}
L(w,b,α)=αi21∥w∥2+i=1∑Nαi[1−yi(wTxi+b)]≥0,i=1,2,…,N
令 θ α ( w , b ) = max α i ≥ 0 L ( w , b , α ) \theta_{\alpha}(w, b)=\max _{\alpha_{i} \geq 0} L(w, b, \alpha) θα(w,b)=maxαi≥0L(w,b,α)
则有 θ α ( w , b ) = { 1 2 ∥ w ∥ 2 , 当 全 部 约 束 满 足 + ∞ , 当 存 在 约 束 不 满 足 \theta_{\alpha}(w, b)=\left\{\begin{array}{c}{\frac{1}{2}\|w\|^{2},当全部约束满足} \\ {+\infty,当存在约束不满足}\end{array}\right. θα(w,b)={21∥w∥2,当全部约束满足+∞,当存在约束不满足
故原问题等价于
min
w
,
b
θ
α
(
w
,
b
)
=
min
w
,
b
max
α
i
≥
0
L
(
w
,
b
,
α
)
\min _{w, b} \theta_{\alpha}(w, b)=\min _{w, b} \max _{\alpha_{i} \geq 0} L(w, b, \alpha)
minw,bθα(w,b)=minw,bmaxαi≥0L(w,b,α)
注意要点第二点
如果不满足约束条件,
θ
(
w
)
=
max
α
i
≥
0
L
(
w
,
b
,
α
)
\theta(w)=\max _{\alpha_{i} \geq 0} \mathcal{L}(w, b, \alpha)
θ(w)=maxαi≥0L(w,b,α)就会趋向于无穷大,自然
min
w
,
b
θ
(
w
)
\min _{w, b} \theta(w)
minw,bθ(w)也不会有解,相反如果
min
w
,
b
θ
(
w
)
\min _{w, b} \theta(w)
minw,bθ(w)有解,说明约束条件必满足,因此原问题等价于
min
w
,
b
θ
α
(
w
,
b
)
=
min
w
,
b
max
α
i
≥
0
L
(
w
,
b
,
α
)
\min _{w, b} \theta_{\alpha}(w, b)=\min _{w, b} \max _{\alpha_{i} \geq 0} L(w, b, \alpha)
minw,bθα(w,b)=minw,bmaxαi≥0L(w,b,α)
根据拉格朗日对偶性,上式的对偶问题为:
min
w
,
b
θ
α
(
w
,
b
)
=
max
α
i
≥
0
min
w
,
b
L
(
w
,
b
,
α
)
\min _{w, b} \theta_{\alpha}(w, b)= \max _{\alpha_{i} \geq 0}\min _{w, b} L(w, b, \alpha)
minw,bθα(w,b)=maxαi≥0minw,bL(w,b,α)
又由于原问题满足Slater Condition,这里不用深究什么是Slater 定理,感兴趣的可以在wiki在搜索了解,默认一般我们处理的问题这个定理能成立就可以了,故原问题与对偶问题的最优值相等,在李航老师的《统计学习方法》中,提到假设目标函数 f ( x ) f(x) f(x)和 c i ( x ) c_i(x) ci(x)是凸函数, h j ( x ) h_j(x) hj(x)是仿射函数,关于仿射函数,只要理解成线性函数就可以了,这个条件的作用是最优解唯一,不会存在鞍点的情况使得原问题和对偶问题的解不唯一,同时满足这些个条件的解还满足KKT条件 ,而且是充要条件。这样利用KKT条件求解对偶问题的解,即相当于求解出了原问题。为了得到对偶问题的解,需要先求 ?(?,?,?)对?,?的极小,再求对?的极大。
求
min
w
,
b
L
(
w
,
b
,
α
)
\min _{w, b} L(w, b, \alpha)
minw,bL(w,b,α)
将拉格朗日函数?(?,?,?)分别对?,?求偏导并令其等于0,可得
∇ w L ( w , b , α ) = w − ∑ i = 1 N α i y i x i = 0 \nabla_{w} L(w, b, \alpha)=w-\sum_{i=1}^{N} \alpha_{i} y_{i} x_{i}=0 ∇wL(w,b,α)=w−∑i=1Nαiyixi=0
∇ b L ( w , b , α ) = − ∑ i = 1 N α i y i = 0 \nabla_{b} L(w, b, \alpha)=-\sum_{i=1}^{N} \alpha_{i} y_{i}=0 ∇bL(w,b,α)=−∑i=1Nαiyi=0
得
w = ∑ i = 1 N α i y i x i w=\sum_{i=1}^{N} \alpha_{i} y_{i} x_{i} w=∑i=1Nαiyixi
∑ 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
∥
w
∥
2
+
∑
i
=
1
N
α
i
[
1
−
y
i
(
w
T
x
i
+
b
)
]
=
1
2
w
T
w
+
∑
i
=
1
α
i
−
∑
i
=
1
N
α
i
y
i
w
T
x
i
−
∑
i
=
1
N
α
i
y
i
b
=
1
2
w
T
w
+
∑
i
=
1
N
α
i
−
w
T
w
=
−
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}\|w\|^{2}+\sum_{\mathrm{i}=1}^{N} \alpha_{i}\left[1-y_{i}\left(w^{T} x_{i}+b\right)\right] \\ &=\frac{1}{2} w^{T} w+\sum_{i=1} \alpha_{i}-\sum_{i=1}^{N} \alpha_{i} y_{i} w^{T} x_{i}-\sum_{i=1}^{N} \alpha_{i} y_{i} b \\ &=\frac{1}{2} w^{T} w+\sum_{i=1}^{N} \alpha_{i}-w^{T} w \\ &=-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left\langle x_{i}, x_{j}\right\rangle+\sum_{i=1}^{\mathrm{N}} \alpha_{i} \end{aligned}
L(w,b,α)=21∥w∥2+i=1∑Nαi[1−yi(wTxi+b)]=21wTw+i=1∑αi−i=1∑NαiyiwTxi−i=1∑Nαiyib=21wTw+i=1∑Nαi−wTw=−21i=1∑Nj=1∑Nαiαjyiyj⟨xi,xj⟩+i=1∑Nαi
注意要点第三点
L
(
w
,
b
,
α
)
=
1
2
∥
w
∥
2
−
∑
i
=
1
n
α
i
(
y
i
(
w
T
x
i
+
b
)
−
1
)
\mathcal{L}(w, b, \alpha)=\frac{1}{2}\|w\|^{2}-\sum_{i=1}^{n} \alpha_{i}\left(y_{i}\left(w^{T} x_{i}+b\right)-1\right)
L(w,b,α)=21∥w∥2−∑i=1nαi(yi(wTxi+b)−1)
= 1 2 w T w − ∑ i = 1 n α i y i w T x i − ∑ i = 1 n α i y i b + ∑ i = 1 n α i =\frac{1}{2} w^{T} w-\sum_{i=1}^{n} \alpha_{i} y_{i} w^{T} x_{i}-\sum_{i=1}^{n} \alpha_{i} y_{i} b+\sum_{i=1}^{n} \alpha_{i} =21wTw−∑i=1nαiyiwTxi−∑i=1nαiyib+∑i=1nαi
= 1 2 w T ∑ i = 1 n α i y i x i − ∑ i = 1 n α i y i w T x i − ∑ i = 1 n α i y i b + ∑ i = 1 n α i =\frac{1}{2} w^{T} \sum_{i=1}^{n} \alpha_{i} y_{i} x_{i}-\sum_{i=1}^{n} \alpha_{i} y_{i} w^{T} x_{i}-\sum_{i=1}^{n} \alpha_{i} y_{i} b+\sum_{i=1}^{n} \alpha_{i} =21wT∑i=1nαiyixi−∑i=1nαiyiwTxi−∑i=1nαiyib+∑i=1nαi
= 1 2 w T ∑ i = 1 n α i y i x i − w T ∑ i = 1 n α i y i x i − ∑ i = 1 n α i y i b + ∑ i = 1 n α i =\frac{1}{2} w^{T} \sum_{i=1}^{n} \alpha_{i} y_{i} x_{i}-w^{T} \sum_{i=1}^{n} \alpha_{i} y_{i} x_{i}-\sum_{i=1}^{n} \alpha_{i} y_{i} b+\sum_{i=1}^{n} \alpha_{i} =21wT∑i=1nαiyixi−wT∑i=1nαiyixi−∑i=1nαiyib+∑i=1nαi
= − 1 2 w T ∑ i = 1 n α i y i x i − ∑ i = 1 n α i y i b + ∑ i = 1 n α i =-\frac{1}{2} w^{T} \sum_{i=1}^{n} \alpha_{i} y_{i} x_{i}-\sum_{i=1}^{n} \alpha_{i} y_{i} b+\sum_{i=1}^{n} \alpha_{i} =−21wT∑i=1nαiyixi−∑i=1nαiyib+∑i=1nαi
= − 1 2 w T ∑ i = 1 n α i y i x i − b ∑ i = 1 n α i y i + ∑ i = 1 n α i =-\frac{1}{2} w^{T} \sum_{i=1}^{n} \alpha_{i} y_{i} x_{i}-b \sum_{i=1}^{n} \alpha_{i} y_{i}+\sum_{i=1}^{n} \alpha_{i} =−21wT∑i=1nαiyixi−b∑i=1nαiyi+∑i=1nαi
= − 1 2 ( ∑ i = 1 n α i y i x i ) T ∑ i = 1 n α i y i x i − b ∑ i = 1 n α i y i + ∑ i = 1 n α i =-\frac{1}{2}\left(\sum_{i=1}^{n} \alpha_{i} y_{i} x_{i}\right)^{T} \sum_{i=1}^{n} \alpha_{i} y_{i} x_{i}-b \sum_{i=1}^{n} \alpha_{i} y_{i}+\sum_{i=1}^{n} \alpha_{i} =−21(∑i=1nαiyixi)T∑i=1nαiyixi−b∑i=1nαiyi+∑i=1nαi
= − 1 2 ∑ i = 1 n α i y i ( x i ) T ∑ i = 1 n α i y i x i − b ∑ i = 1 n α i y i + ∑ i = 1 n α i =-\frac{1}{2} \sum_{i=1}^{n} \alpha_{i} y_{i}\left(x_{i}\right)^{T} \sum_{i=1}^{n} \alpha_{i} y_{i} x_{i}-b \sum_{i=1}^{n} \alpha_{i} y_{i}+\sum_{i=1}^{n} \alpha_{i} =−21∑i=1nαiyi(xi)T∑i=1nαiyixi−b∑i=1nαiyi+∑i=1nαi
= − 1 2 ∑ i , j = 1 n α i y i ( x i ) T α j y j x j − b ∑ i = 1 n α i y i + ∑ i = 1 n α i =-\frac{1}{2} \sum_{i, j=1}^{n} \alpha_{i} y_{i}\left(x_{i}\right)^{T} \alpha_{j} y_{j} x_{j}-b \sum_{i=1}^{n} \alpha_{i} y_{i}+\sum_{i=1}^{n} \alpha_{i} =−21∑i,j=1nαiyi(xi)Tαjyjxj−b∑i=1nαiyi+∑i=1nαi
L ( w , b , α ) = 1 2 ∑ i , j = 1 n α i α j y i y j x i T x j T − ∑ i , j = 1 n α i α j y i y j x i T x j − b ∑ i = 1 n α i y i + ∑ i = 1 n α i \mathcal{L}(w, b, \alpha)=\frac{1}{2} \sum_{i, j=1}^{n} \alpha_{i} \alpha_{j} y_{i} y_{j} x_{i}^{T} x_{j}^{T}-\sum_{i, j=1}^{n} \alpha_{i} \alpha_{j} y_{i} y_{j} x_{i}^{T} x_{j}-b \sum_{i=1}^{n} \alpha_{i} y_{i}+\sum_{i=1}^{n} \alpha_{i} L(w,b,α)=21∑i,j=1nαiαjyiyjxiTxjT−∑i,j=1nαiαjyiyjxiTxj−b∑i=1nαiyi+∑i=1nαi
= ∑ i = 1 n α i − 1 2 ∑ i , j = 1 n α i α j y i y j x i T x j =\sum_{i=1}^{n} \alpha_{i}-\frac{1}{2} \sum_{i, j=1}^{n} \alpha_{i} \alpha_{j} y_{i} y_{j} x_{i}^{T} x_{j} =∑i=1nαi−21∑i,j=1nαiαjyiyjxiTxj
即
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\langle x_{i}, x_{j}\right\rangle+\sum_{i=1}^{\mathrm{N}} \alpha_{i}
minw,bL(w,b,α)=−21∑i=1N∑j=1Nαiαjyiyj⟨xi,xj⟩+∑i=1Nαi
再 min w , b L ( w , b , α ) \min _{w, b} L(w, b, \alpha) minw,bL(w,b,α)求对?的极大,即是对偶问题
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 \begin{aligned} \max _{\alpha} &-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left\langle x_{i}, x_{j}\right\rangle+\sum_{i=1}^{\mathrm{N}} \alpha_{i} \\ \text {s.t.} & \sum_{i=1}^{N} \alpha_{i} y_{i}=0 \\ \alpha_{i} & \geq 0, i=1,2, \ldots, N \end{aligned} αmaxs.t.αi−21i=1∑Nj=1∑Nαiαjyiyj⟨xi,xj⟩+i=1∑Nαii=1∑Nαiyi=0≥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 {\min _{\alpha} \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left\langle x_{i}, x_{j}\right\rangle-\sum_{i=1}^{\mathrm{N}} \alpha_{i}} minα21∑i=1N∑j=1Nαiαjyiyj⟨xi,xj⟩−∑i=1Nαi
∑ i = 1 N α i y i = 0 \sum_{i=1}^{N} \alpha_{i} y_{i}=0 ∑i=1Nαiyi=0
α i ≥ 0 , i = 1 , 2 , … , N \alpha_{i} \geq 0, i=1,2, \ldots, 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
α
i
≥
0
,
i
=
1
,
2
,
…
,
N
\begin{aligned} \min _{\alpha} & \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left\langle x_{i}, x_{j}\right\rangle-\sum_{i=1}^{\mathrm{N}} \alpha_{i} \\ \text {s.t.} & \sum_{i=1}^{N} \alpha_{i} y_{i}=0 \\ & \alpha_{i} \geq 0, i=1,2, \ldots, N \end{aligned}
αmins.t.21i=1∑Nj=1∑Nαiαjyiyj⟨xi,xj⟩−i=1∑Nαii=1∑Nαiyi=0αi≥0,i=1,2,…,N
求解方法:
(1)由于该问题为凸优化问题,故可直接求解。
(2)由于该问题与其原问题等价,其原问题满足Slater定理,故该问题的解与KKT条件为充分必要的关系,故只需找到一组解满足KKT条件,即找到了问题的解(充分性)。
关于对偶问题的解 α ∗ = ( α 1 ∗ , α 2 ∗ , … , α N ∗ ) \alpha^{*}=\left(\alpha_{1}^{*}, \alpha_{2}^{*}, \ldots, \alpha_{N}^{*}\right) α∗=(α1∗,α2∗,…,αN∗),是由SMO算法解出来的,这个结合加入松弛变量的情况再讲。
解出对偶问题的解 α ∗ = ( α 1 ∗ , α 2 ∗ , … , α N ∗ ) \alpha^{*}=\left(\alpha_{1}^{*}, \alpha_{2}^{*}, \ldots, \alpha_{N}^{*}\right) α∗=(α1∗,α2∗,…,αN∗)后,怎么求原问题的解 w ∗ , b ∗ w^{*}, b^{*} w∗,b∗?
由KKT条件可知,原问题和对偶问题均取到最优值的解 ( w ∗ , b ∗ , α ∗ ) \left(w^{*}, b^{*}, \alpha^{*}\right) (w∗,b∗,α∗)需满足以下四个要求:
- 对原始变量梯度为0:
∇ w L ( w ∗ , b ∗ , α ∗ ) = w ∗ − ∑ i = 1 N α i ∗ y i x i = 0 \nabla_{w} L\left(w^{*}, b^{*}, \alpha^{*}\right)=w^{*}-\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} x_{i}=0 ∇wL(w∗,b∗,α∗)=w∗−∑i=1Nαi∗yixi=0
∇ b L ( w ∗ , b ∗ , α ∗ ) = − ∑ i = 1 N α i ∗ y i = 0 \nabla_{b} L\left(w^{*}, b^{*}, \alpha^{*}\right)=-\sum_{i=1}^{N} \alpha_{i}^{*} y_{i}=0 ∇bL(w∗,b∗,α∗)=−∑i=1Nαi∗yi=0 - 原问题可行:
1 − y i ( w ∗ T x i + b ∗ ) ≤ 0 , i = 1 , 2 , … , N 1-y_{i}\left(w^{* T} x_{i}+b^{*}\right) \leq 0, i=1,2, \ldots, N 1−yi(w∗Txi+b∗)≤0,i=1,2,…,N - 不等式约束乘子非负:
α i ∗ ≥ 0 , i = 1 , 2 , … , N \alpha_{i}^{*} \geq 0, i=1,2, \ldots, N αi∗≥0,i=1,2,…,N - 对偶互补松弛:
α i ∗ [ 1 − y i ( w ∗ T x i + b ∗ ) ] = 0 , i = 1 , 2 , … , N \alpha_{i}^{*}\left[1-y_{i}\left(w^{* T} x_{i}+b^{*}\right)\right]=0, i=1,2, \dots, N αi∗[1−yi(w∗Txi+b∗)]=0,i=1,2,…,N
由于1中
∇
w
L
(
w
∗
,
b
∗
,
α
∗
)
=
w
∗
−
∑
i
=
1
N
α
i
∗
y
i
x
i
=
0
\nabla_{w} L\left(w^{*}, b^{*}, \alpha^{*}\right)=w^{*}-\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} x_{i}=0
∇wL(w∗,b∗,α∗)=w∗−∑i=1Nαi∗yixi=0
得到
w
∗
=
∑
i
=
1
N
α
i
∗
y
i
x
i
w^{*}=\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} x_{i}
w∗=∑i=1Nαi∗yixi
这样
w
∗
w^{*}
w∗就求出来了
用反证法我们可以得到至少有一个 α i ∗ > 0 \alpha_{i}^{*}>0 αi∗>0,假设所有的 α i ∗ = 0 \alpha_{i}^{*}=0 αi∗=0,由 w ∗ − ∑ i = 1 N α i ∗ y i x i = 0 w^{*}-\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} x_{i}=0 w∗−∑i=1Nαi∗yixi=0知道, w ∗ = 0 w^{*}=0 w∗=0,而 w ∗ = 0 w^{*}=0 w∗=0显然不是原问题的解,我们要零解一点意义都没有。
接下来,求
b
∗
b^{*}
b∗
取
α
i
∗
\alpha_{i}^{*}
αi∗ 的一个分量满足
α
i
∗
>
0
\alpha_{i}^{*}>0
αi∗>0 ,则有对应的由4中的
α
i
∗
[
1
−
y
i
(
w
∗
T
x
i
+
b
∗
)
]
=
0
,
i
=
1
,
2
,
…
,
N
\alpha_{i}^{*}\left[1-y_{i}\left(w^{* T} x_{i}+b^{*}\right)\right]=0, i=1,2, \dots, N
αi∗[1−yi(w∗Txi+b∗)]=0,i=1,2,…,N,有
1
−
y
j
(
w
∗
T
x
j
+
b
∗
)
=
0
1-y_{j}\left(w^{* T} x_{j}+b^{*}\right)=0
1−yj(w∗Txj+b∗)=0
代入
w
∗
w^{*}
w∗和样本点
(
x
j
,
y
j
)
(x_j,y_j)
(xj,yj),求出
b
∗
=
y
j
−
∑
i
=
1
N
α
i
∗
y
i
⟨
x
i
,
x
j
⟩
b^{*}=y_{j}-\sum_{i=1}^{N} \alpha_{i}^{*} y_{i}\left\langle x_{i}, x_{j}\right\rangle
b∗=yj−∑i=1Nαi∗yi⟨xi,xj⟩
这样超平面的两个参数
(
w
∗
,
b
∗
)
(w^{*},b^{*})
(w∗,b∗)就都求出来了
w
∗
=
∑
i
=
1
N
α
i
∗
y
i
x
i
w^{*}=\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} x_{i}
w∗=∑i=1Nαi∗yixi
b
∗
=
y
j
−
∑
i
=
1
N
α
i
∗
y
i
⟨
x
i
,
x
j
⟩
b^{*}=y_{j}-\sum_{i=1}^{N} \alpha_{i}^{*} y_{i}\left\langle x_{i}, x_{j}\right\rangle
b∗=yj−∑i=1Nαi∗yi⟨xi,xj⟩
至于为什么SVM叫支持向量机,因为我们发现只有 α i ∗ > 0 \alpha_{i}^{*}>0 αi∗>0时,对应的样本 ( x i , y i ) (x_i,y_i) (xi,yi)才会对最终超平面的结果产生影响,此时 1 − y i ( w ∗ T x i + b ∗ ) = 0 1-y_{i}\left(w^{* T} x_{i}+b^{*}\right)=0 1−yi(w∗Txi+b∗)=0, 也就是函数间隔为1,我们称这类样本为支持向量,所以这个模型被叫做支持向量机。支持向量的个数一般很少,所以支持向量机只有很少的“重要的”训练样本决定。
如果数据线性不可分,但是近似线性可分,我们需要给超平面犯错的机会,但是犯错不能无休止地犯错,我们只允许它们在一定的误差范围内误判样本点,这就是所谓的软间隔 soft-margin SVM.
我们对每个样本点 ( x i , y i ) (x_i,y_i) (xi,yi)引入一个松弛变量 ξ i > 0 \xi_{i}>0 ξi>0,使函数间隔加上松弛变量大于等于1。
与此同时,我们的目标函数,也就是我们的Loss,也要对这种误判的可能增加代价项,对每个松弛变量 ξ i \xi_{i} ξi,支付一个代价 ξ i \xi_{i} ξi (why?因为本身 ξ i \xi_{i} ξi越大,分类器就越糟糕,所以Loss就应该越大,所以是合理的)
因此目标函数变为:
1
2
∥
w
∥
2
+
C
∑
i
=
1
N
ξ
i
\frac{1}{2}\|w\|^{2}+C \sum_{i=1}^{N} \xi_{i}
21∥w∥2+C∑i=1Nξi
其中
C
>
0
C>0
C>0为惩罚参数
和hard-margin一样,它的最优化问题是
min w , b , ξ 1 2 ∥ w ∥ 2 + C ∑ i = 1 N ξ i \min _{w, b, \xi} \frac{1}{2}\|w\|^{2}+C \sum_{i=1}^{N} \xi_{i} minw,b,ξ21∥w∥2+C∑i=1Nξi
s . t . y i ( w T x i + b ) ≥ 1 − ξ i , i = 1 , 2 , … , N s.t.y_{i}\left(w^{T} x_{i}+b\right) \geq 1-\xi_{i}, i=1,2, \ldots, N s.t.yi(wTxi+b)≥1−ξi,i=1,2,…,N
ξ i ≥ 0 , i = 1 , 2 , … , N \xi_{i} \geq 0, i=1,2, \ldots, N ξi≥0,i=1,2,…,N
同样满足Slater Condition,同样利用拉格朗日乘子法求出其对偶问题。
构造拉格朗日函数:
L
(
w
,
b
,
ξ
,
α
,
μ
)
=
1
2
∥
w
∥
2
+
C
∑
i
=
1
N
ξ
i
+
∑
i
=
1
N
α
i
[
1
−
ξ
i
−
y
i
(
w
T
x
i
+
b
)
]
+
∑
i
=
1
N
μ
i
(
−
ξ
i
)
L(w, b, \xi, \alpha, \mu)=\quad \frac{1}{2}\|w\|^{2}+C \sum_{i=1}^{N} \xi_{i}+\sum_{i=1}^{N} \alpha_{i}\left[1-\xi_{i}-y_{i}\left(w^{T} x_{i}+b\right)\right]+\sum_{i=1}^{N} \mu_{i}\left(-\xi_{i}\right)
L(w,b,ξ,α,μ)=21∥w∥2+C∑i=1Nξi+∑i=1Nαi[1−ξi−yi(wTxi+b)]+∑i=1Nμi(−ξi)
其中
α
\alpha
α、
μ
\mu
μ为拉格朗日乘子,
α
≥
0
,
μ
≥
0
\alpha\geq0,\mu\geq0
α≥0,μ≥0。
同理和soft-margin一样,为了求出使 L L L最小的 w 、 b w、b w、b和 ξ \xi ξ,分别对它们求导
∂ L ∂ w = 0 ⇒ w = ∑ i = 1 n α i y i x i \frac{\partial L}{\partial w}=0 \Rightarrow w=\sum_{i=1}^{n} \alpha_{i} y_{i} x_{i} ∂w∂L=0⇒w=∑i=1nαiyixi
∂ L ∂ b = 0 ⇒ ∑ i = 1 n α i y i = 0 \frac{\partial L}{\partial b}=0 \Rightarrow \sum_{i=1}^{n} \alpha_{i} y_{i}=0 ∂b∂L=0⇒∑i=1nαiyi=0
∂ L ∂ ξ i = 0 ⇒ C − α i − r i = 0 , i = 1 , … , n \frac{\partial L}{\partial \xi_{i}}=0 \Rightarrow C-\alpha_{i}-r_{i}=0, \quad i=1, \ldots, n ∂ξi∂L=0⇒C−αi−ri=0,i=1,…,n
注意到, r i ≥ 0 r_i\geq0 ri≥0和 C − α i − r i = 0 C-\alpha_{i}-r_{i}=0 C−αi−ri=0,可以推出 α i ≤ C \alpha_{i} \leq C αi≤C,所以对偶问题就变成:
max α ∑ i = 1 n α i − 1 2 ∑ i , j = 1 n α i α j y i y j x i T x j \max _{\alpha} \sum_{i=1}^{n} \alpha_{i}-\frac{1}{2} \sum_{i, j=1}^{n} \alpha_{i} \alpha_{j} y_{i} y_{j} x_{i}^{T} x_{j} maxα∑i=1nαi−21∑i,j=1nαiαjyiyjxiTxj
s.t. 0 ≤ α i ≤ C , i = 1 , … , n ∑ i = 1 n α i y i = 0 \begin{array}{l}{0 \leq \alpha_{i} \leq C, i=1, \ldots, n} \\ {\sum_{i=1}^{n} \alpha_{i} y_{i}=0}\end{array} 0≤αi≤C,i=1,…,n∑i=1nαiyi=0
x i T x j x_{i}^{T} x_{j} xiTxj和之前写成内积的形式是一样的
求解方法:
(1)由于该问题为凸优化问题,故可直接求解
(2)由于该问题与其原问题等价,其原问题满足Slater定理,故该问题的解与KKT条件为充分必要的关系,故只需找到一组解满足KKT条件,即找到了问题的解(充分性)。
解出对偶问题的解 α ∗ = ( α 1 ∗ , α 2 ∗ , … , α N ∗ ) \alpha^{*}=\left(\alpha_{1}^{*}, \alpha_{2}^{*}, \ldots, \alpha_{\mathrm{N}}^{*}\right) α∗=(α1∗,α2∗,…,αN∗)后,怎么求原问题的解 w ∗ , b ∗ \mathrm{w}^{*}, \mathrm{b}^{*} w∗,b∗?
同样利用KKT条件即可
① 对原始变量梯度为0:
∇
w
L
(
w
∗
,
b
∗
,
ξ
∗
,
α
∗
,
μ
∗
)
=
w
∗
−
∑
i
=
1
N
α
i
∗
y
i
x
i
=
0
\nabla_{w} L\left(w^{*}, b^{*}, \xi^{*}, \alpha^{*}, \mu^{*}\right)=w^{*}-\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} x_{i}=0
∇wL(w∗,b∗,ξ∗,α∗,μ∗)=w∗−∑i=1Nαi∗yixi=0
∇
b
L
(
w
∗
,
b
∗
,
ξ
∗
,
α
∗
,
μ
∗
)
=
−
∑
i
=
1
N
α
i
∗
y
i
=
0
\nabla_{b} L\left(w^{*}, b^{*}, \xi^{*}, \alpha^{*}, \mu^{*}\right)=-\sum_{i=1}^{N} \alpha_{i}^{*} y_{i}=0
∇bL(w∗,b∗,ξ∗,α∗,μ∗)=−∑i=1Nαi∗yi=0
∇
ξ
L
(
w
∗
,
b
∗
,
ξ
∗
,
α
∗
,
μ
∗
)
=
C
−
α
i
∗
−
μ
i
∗
=
0
\nabla_{\xi} L\left(w^{*}, b^{*}, \xi^{*}, \alpha^{*}, \mu^{*}\right)=C-\alpha_{i}^{*}-\mu_{i}^{*}=0
∇ξL(w∗,b∗,ξ∗,α∗,μ∗)=C−αi∗−μi∗=0
② 原问题可行:
1
−
ξ
i
∗
−
y
i
(
w
T
x
i
+
b
)
≤
0
,
i
=
1
,
2
,
…
,
N
1-\xi_{i}^{*}-y_{i}\left(w^{T} x_{i}+b\right) \leq 0, i=1,2, \ldots, N
1−ξi∗−yi(wTxi+b)≤0,i=1,2,…,N
−
ξ
i
∗
≤
0
,
i
=
1
,
2
,
…
,
N
-\xi_{i}^{*} \leq 0, i=1,2, \ldots, N
−ξi∗≤0,i=1,2,…,N
③ 不等式约束乘子非负:
α
i
∗
≥
0
,
i
=
1
,
2
,
…
,
N
μ
i
∗
≥
0
,
i
=
1
,
2
,
…
,
N
\begin{aligned} \alpha_{i}^{*} & \geq 0, i=1,2, \ldots, N \\ \mu_{i}^{*} & \geq 0, i=1,2, \ldots, N \end{aligned}
αi∗μi∗≥0,i=1,2,…,N≥0,i=1,2,…,N
④ 对偶互补松弛:
α
i
∗
[
1
−
ξ
i
∗
−
y
i
(
w
T
x
i
+
b
)
]
=
0
,
i
=
1
,
2
,
…
,
N
μ
i
∗
ξ
i
∗
=
0
,
i
=
1
,
2
,
…
,
N
\begin{array}{c}{\alpha_{i}^{*}\left[1-\xi_{i}^{*}-y_{i}\left(w^{T} x_{i}+b\right)\right]=0, i=1,2, \ldots, N} \\ {\mu_{i}^{*} \xi_{i}^{*}=0, i=1,2, \ldots, N}\end{array}
αi∗[1−ξi∗−yi(wTxi+b)]=0,i=1,2,…,Nμi∗ξi∗=0,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=1Nαi∗yixi
取
α
∗
\alpha^{*}
α∗的一个分量满足
0
<
α
∗
<
C
0<\alpha^{*}<C
0<α∗<C,则有对应的
ξ
j
∗
=
0
\xi_{j}^{*}=0
ξj∗=0
1
−
y
j
(
w
∗
T
x
j
+
b
∗
)
=
0
1-y_{j}\left(w^{* T} x_{j}+b^{*}\right)=0
1−yj(w∗Txj+b∗)=0
代入
w
∗
w^{*}
w∗和样本点
(
x
j
,
y
j
)
(x_j,y_j)
(xj,yj),求出
b
∗
=
y
j
−
∑
i
=
1
N
α
i
∗
y
i
⟨
x
i
,
x
j
⟩
b^{*}=y_{j}-\sum_{i=1}^{N} \alpha_{i}^{*} y_{i}\left\langle x_{i}, x_{j}\right\rangle
b∗=yj−∑i=1Nαi∗yi⟨xi,xj⟩
关于支持向量
从上面的KKT条件我们选取这几个:
0
≤
α
i
≤
C
,
i
=
1
,
2
,
…
,
N
α
i
∗
[
1
−
ξ
i
∗
−
y
i
(
w
T
x
i
+
b
)
]
=
0
,
i
=
1
,
2
,
…
,
N
C
−
α
i
∗
−
μ
i
∗
=
0
μ
i
∗
ξ
i
∗
=
0
,
i
=
1
,
2
,
…
,
N
\begin{array}{c}{0 \leq \alpha_{i} \leq C, i=1,2, \ldots, N} \\ {\alpha_{i}^{*}\left[1-\xi_{i}^{*}-y_{i}\left(w^{T} x_{i}+b\right)\right]=0, i=1,2, \ldots, N} \\ {C-\alpha_{i}^{*}-\mu_{i}^{*}=0} \\ {\mu_{i}^{*} \xi_{i}^{*}=0, i=1,2, \ldots, N}\end{array}
0≤αi≤C,i=1,2,…,Nαi∗[1−ξi∗−yi(wTxi+b)]=0,i=1,2,…,NC−αi∗−μi∗=0μi∗ξi∗=0,i=1,2,…,N
(1) 当
0
<
α
∗
<
C
0<\alpha^{*}<C
0<α∗<C时,有
μ
i
∗
>
0
\mu_{i}^{*}>0
μi∗>0,
ξ
i
∗
=
0
\xi_{i}^{*}=0
ξi∗=0,则
y
i
(
w
T
x
i
+
b
)
=
1
y_{i}\left(w^{T} x_{i}+b\right)=1
yi(wTxi+b)=1,此时支持向量恰好落在间隔边界上;
(2)当
α
∗
=
C
\alpha^{*}=C
α∗=C时,有
μ
∗
=
0
\mu^{*}=0
μ∗=0,此时:
① 当
0
<
ξ
i
∗
<
1
0<\xi_{i}^{*}<1
0<ξi∗<1时,
0
<
y
i
(
w
T
x
i
+
b
)
<
1
0<y_{i}\left(w^{T} x_{i}+b\right)<1
0<yi(wTxi+b)<1,支持向量在间隔边界与超平面之间;
② 当
ξ
i
∗
=
1
\xi_{i}^{*}=1
ξi∗=1时,
y
i
(
w
T
x
i
+
b
)
=
0
y_{i}\left(w^{T} x_{i}+b\right)=0
yi(wTxi+b)=0,支持向量在超平面上;
③ 当
ξ
i
∗
>
1
\xi_{i}^{*}>1
ξi∗>1时,
y
i
(
w
T
x
i
+
b
)
<
0
y_{i}\left(w^{T} x_{i}+b\right)<0
yi(wTxi+b)<0,支持向量在误分一测。
(3))当
α
∗
=
0
\alpha^{*}=0
α∗=0时,无法判断。
实际上线性SVM也可以通过梯度下降法去求解
min
w
,
b
,
ξ
1
2
∥
w
∥
2
+
C
∑
i
=
1
N
ξ
i
s.t.
y
i
(
w
T
x
i
+
b
)
≥
1
−
ξ
i
,
i
=
1
,
2
,
…
,
N
ξ
i
≥
0
,
i
=
1
,
2
,
.
.
,
N
\begin{array}{c}{\min _{w, b, \xi} \frac{1}{2}\|w\|^{2}+C \sum_{i=1}^{N} \xi_{\mathrm{i}}} \\ {\text {s.t. } y_{i}\left(w^{T} x_{i}+b\right) \geq 1-\xi_{i}, i=1,2, \ldots, N} \\ {\xi_{i} \geq 0, i=1,2, . ., N}\end{array}
minw,b,ξ21∥w∥2+C∑i=1Nξis.t. yi(wTxi+b)≥1−ξi,i=1,2,…,Nξi≥0,i=1,2,..,N
等价于最优化问题:
min
w
,
b
∑
i
=
1
N
max
(
0
,
1
−
y
i
(
w
T
x
i
+
b
)
)
+
λ
∥
w
∥
2
\min _{w, b} \sum_{i=1}^{N} \max \left(0,1-y_{i}\left(w^{T} x_{i}+b\right)\right)+\lambda\|w\|^{2}
minw,b∑i=1Nmax(0,1−yi(wTxi+b))+λ∥w∥2
只要把
m
a
x
(
0
,
1
−
y
i
(
w
T
x
i
+
b
)
)
=
ξ
i
max \left(0,1-y_{i}\left(w^{T} x_{i}+b\right)\right)=\xi_{i}
max(0,1−yi(wTxi+b))=ξi,它就满足约束条件,再让
λ
=
1
2
C
\lambda=\frac{1}{2C}
λ=2C1即可,具体证明在《统计学习方法》定理7.4
SMO算法
回顾上面soft-margin 我们怎么算
α
\alpha
α
min
α
Ψ
(
α
⃗
)
=
min
α
1
2
∑
i
=
1
N
∑
j
=
1
N
y
i
y
j
K
(
x
⃗
i
,
x
⃗
j
)
α
i
α
j
−
∑
i
=
1
N
α
i
0
≤
α
i
≤
C
,
∀
i
∑
i
=
1
N
y
i
α
i
=
0
\begin{array}{c}{\min _{\alpha} \Psi(\vec{\alpha})=\min _{\alpha} \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} y_{i} y_{j} K\left(\vec{x}_{i}, \vec{x}_{j}\right) \alpha_{i} \alpha_{j}-\sum_{i=1}^{N} \alpha_{i}} \\ {0 \leq \alpha_{i} \leq C, \forall i} \\ {\sum_{i=1}^{N} y_{i} \alpha_{i}=0}\end{array}
minαΨ(α)=minα21∑i=1N∑j=1NyiyjK(xi,xj)αiαj−∑i=1Nαi0≤αi≤C,∀i∑i=1Nyiαi=0
我们要解决的问题是:在 α i = { α 1 , α 2 , α 3 , … , α n } \alpha_{i}=\left\{\alpha_{1}, \alpha_{2}, \alpha_{3}, \dots, \alpha_{n}\right\} αi={α1,α2,α3,…,αn}上求上述目标函数的最小值。为了求解这些乘子,每次从中任意抽取两个乘子 α 1 \alpha_{1} α1和 α 2 \alpha_{2} α2,然后固定 α 1 \alpha_{1} α1 和 α 2 \alpha_{2} α2 以外的其它乘子 { α 3 , … , α n } \left\{\alpha_{3}, \dots, \alpha_{n}\right\} {α3,…,αn},使得目标函数只是关于 α 1 \alpha_{1} α1和 α 2 \alpha_{2} α2 的函数。这样,不断的从一堆乘子中任意抽取两个求解,不断的迭代求解子问题,最终达到求解原问题的目的。
注意到
y
i
y_{i}
yi只有-1、+1,故有
y
i
2
=
1
y_{i}^{2}=1
yi2=1
min
Ψ
(
α
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
v
1
α
1
+
y
2
v
2
α
2
+
c
o
n
s
t
a
n
t
\min \Psi\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} v_{1} \alpha_{1}+y_{2} v_{2} \alpha_{2}+constant
minΨ(α1,α2)=21K11α12+21K22α22+y1y2K12α1α2−(α1+α2)+y1v1α1+y2v2α2+constant
v
i
=
∑
j
=
3
N
α
j
y
j
K
(
x
i
,
x
j
)
,
i
=
1
,
2
v_{i}=\sum_{j=3}^{N} \alpha_{j} y_{j} K\left(x_{i}, x_{j}\right), i=1,2
vi=∑j=3NαjyjK(xi,xj),i=1,2
对于之前的约束
∑
i
=
1
N
y
i
α
i
=
0
\sum_{i=1}^{N} y_{i} \alpha_{i}=0
∑i=1Nyiαi=0
令
α
1
y
1
+
α
2
y
2
=
−
∑
i
=
3
N
α
i
y
i
=
ζ
\alpha_{1} y_{1}+\alpha_{2} y_{2}=-\sum_{i=3}^{N} \alpha_{i} y_{i}=\zeta
α1y1+α2y2=−∑i=3Nαiyi=ζ
有
α
1
y
1
2
+
α
2
y
2
y
1
=
−
y
1
∑
i
=
3
N
α
i
y
i
=
y
1
ζ
\alpha_{1} y_{1}^{2}+\alpha_{2} y_{2}y_{1}=-y_{1}\sum_{i=3}^{N} \alpha_{i} y_{i}=y_{1}\zeta
α1y12+α2y2y1=−y1∑i=3Nαiyi=y1ζ
所以
α
1
=
(
ζ
−
y
2
α
2
)
y
1
\alpha_{1}=\left(\zeta-y_{2} \alpha_{2}\right) y_{1}
α1=(ζ−y2α2)y1
代回目标函数
min
Ψ
(
α
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
v
1
α
1
+
y
2
v
2
α
2
+
c
o
n
s
t
a
n
t
\min \Psi\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} v_{1} \alpha_{1}+y_{2} v_{2} \alpha_{2}+constant
minΨ(α1,α2)=21K11α12+21K22α22+y1y2K12α1α2−(α1+α2)+y1v1α1+y2v2α2+constant
因为Constant不影响目标函数的优化可以去掉
得到
min
Ψ
(
α
2
)
=
1
2
K
11
(
ζ
−
α
2
y
2
)
2
+
1
2
K
22
α
2
2
+
y
2
K
12
(
ζ
−
α
2
y
2
)
α
2
−
(
ζ
−
α
2
y
2
)
y
1
−
α
2
+
v
1
(
ζ
−
α
2
y
2
)
+
y
2
v
2
α
2
\min \Psi\left(\alpha_{2}\right)=\frac{1}{2} K_{11}\left(\zeta-\alpha_{2} y_{2}\right)^{2}+\frac{1}{2} K_{22} \alpha_{2}^{2}+y_{2} K_{12}\left(\zeta-\alpha_{2} y_{2}\right) \alpha_{2}-\left(\zeta-\alpha_{2} y_{2}\right) y_{1}-\alpha_{2}+v_{1}\left(\zeta-\alpha_{2} y_{2}\right)+y_{2} v_{2} \alpha_{2}
minΨ(α2)=21K11(ζ−α2y2)2+21K22α22+y2K12(ζ−α2y2)α2−(ζ−α2y2)y1−α2+v1(ζ−α2y2)+y2v2α2
对
α
2
\alpha_{2}
α2求偏导,且令为0,求取得极小值是
α
2
\alpha_{2}
α2的值:
∂
Ψ
(
α
2
)
∂
α
2
=
(
K
11
+
K
22
−
2
K
12
)
α
2
−
K
11
ζ
y
2
+
K
12
ζ
y
2
+
y
1
y
2
−
1
−
v
1
y
2
+
v
2
y
2
=
0
\frac{\partial \Psi\left(\alpha_{2}\right)}{\partial \alpha_{2}}=\left(K_{11}+K_{22}-2 K_{12}\right) \alpha_{2}-K_{11} \zeta y_{2}+K_{12} \zeta y_{2}+y_{1} y_{2}-1-v_{1} y_{2}+v_{2} y_{2}=0
∂α2∂Ψ(α2)=(K11+K22−2K12)α2−K11ζy2+K12ζy2+y1y2−1−v1y2+v2y2=0
由上式中假设求得了
α
2
\alpha_{2}
α2的解,代回
α
1
=
(
ζ
−
y
2
α
2
)
y
1
\alpha_{1}=\left(\zeta-y_{2} \alpha_{2}\right) y_{1}
α1=(ζ−y2α2)y1中求得
α
1
\alpha_{1}
α1的解,分别记为
α
1
n
e
w
,
α
2
n
e
w
\alpha_{1}^{new},\alpha_{2}^{new}
α1new,α2new,优化前的解记为
α
1
o
l
d
,
α
2
o
l
d
\alpha_{1}^{old},\alpha_{2}^{old}
α1old,α2old,由于参数
α
3
,
α
4
,
…
,
α
N
\alpha_{3}, \alpha_{4}, \dots, \alpha_{N}
α3,α4,…,αN固定,由于等式约束
∑
i
=
1
N
y
i
α
i
=
0
\sum_{i=1}^{N} y_{i} \alpha_{i}=0
∑i=1Nyiαi=0,有
α
1
old
y
1
+
α
2
old
y
2
=
−
∑
i
=
3
N
α
i
y
i
=
α
1
new
y
1
+
α
2
new
y
2
=
ζ
\alpha_{1}^{\text { old }} y_{1}+\alpha_{2}^{\text { old }} y_{2}=-\sum_{i=3}^{N} \alpha_{i} y_{i}=\alpha_{1}^{\text { new }} y_{1}+\alpha_{2}^{\text { new }} y_{2}=\zeta
α1 old y1+α2 old y2=−∑i=3Nαiyi=α1 new y1+α2 new y2=ζ
于是
ζ
=
α
1
o
l
d
y
1
+
α
2
o
l
d
y
2
\zeta=\alpha_{1}^{o l d} y_{1}+\alpha_{2}^{o l d} y_{2}
ζ=α1oldy1+α2oldy2
在上面我们已经推到了
w
∗
=
∑
i
=
1
N
α
i
∗
y
i
x
i
w^{*}=\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} x_{i}
w∗=∑i=1Nαi∗yixi
由于当前的
α
i
\alpha_{i}
αi并不最优解
α
∗
\alpha^{*}
α∗
所以当前轮次的超平面
f
(
x
)
=
w
T
x
+
b
f(x)=w^{T} x+b
f(x)=wTx+b,可以写成
f
(
x
)
=
∑
i
=
1
N
α
i
y
i
K
(
x
i
,
x
)
+
b
f(x)=\sum_{i=1}^{N} \alpha_{i} y_{i} K\left(x_{i}, x\right)+b
f(x)=∑i=1NαiyiK(xi,x)+b
f
(
x
i
)
f\left(x_{i}\right)
f(xi) 表示样本
x
i
x_{i}
xi的预测值,
y
i
y_{i}
yi表示样本
x
i
x_{i}
xi的真实值,定义
E
i
E_{i}
Ei表示预测值与真实值之差为:
E
i
=
f
(
x
i
)
−
y
i
E_{i}=f\left(x_{i}\right)-y_{i}
Ei=f(xi)−yi
由于
v
i
=
∑
j
=
3
N
α
j
y
j
K
(
x
i
,
x
j
)
,
i
=
1
,
2
v_{i}=\sum_{j=3}^{N} \alpha_{j} y_{j} K\left(x_{i}, x_{j}\right), i=1,2
vi=∑j=3NαjyjK(xi,xj),i=1,2
所以有
v
1
=
f
(
x
1
)
−
∑
j
=
1
2
y
j
α
j
K
1
j
−
b
v_{1}=f\left(x_{1}\right)-\sum_{j=1}^{2} y_{j} \alpha_{j} K_{1 j}-b
v1=f(x1)−∑j=12yjαjK1j−b
v 2 = f ( x 2 ) − ∑ j = 1 2 y j α j K 2 j − b v_{2}=f\left(x_{2}\right)-\sum_{j=1}^{2} y_{j} \alpha_{j} K_{2 j}-b v2=f(x2)−∑j=12yjαjK2j−b
把
ζ
,
v
1
,
v
2
\zeta,v_{1},v_{2}
ζ,v1,v2代入
(
K
11
+
K
22
−
2
K
12
)
α
2
−
K
11
ζ
y
2
+
K
12
ζ
y
2
+
y
1
y
2
−
1
−
v
1
y
2
+
v
2
y
2
=
0
\left(K_{11}+K_{22}-2 K_{12}\right) \alpha_{2}-K_{11} \zeta y_{2}+K_{12} \zeta y_{2}+y_{1} y_{2}-1-v_{1} y_{2}+v_{2} y_{2}=0
(K11+K22−2K12)α2−K11ζy2+K12ζy2+y1y2−1−v1y2+v2y2=0
这时求出来的
α
2
n
e
w
\alpha_{2}^{new}
α2new未考虑约束问题,记为
α
2
n
e
w
,
u
n
c
l
i
p
p
e
d
\alpha_{2}^{n e w, u n c l i p p e d}
α2new,unclipped
化简得
(
K
11
+
K
22
−
2
K
12
)
α
2
n
e
w
,
u
n
c
l
i
p
p
e
d
=
(
K
11
+
K
22
−
2
K
12
)
α
2
old
+
y
2
[
y
2
−
y
1
+
f
(
x
1
)
−
f
(
x
2
)
]
\left(K_{11}+K_{22}-2 K_{12}\right) \alpha_{2}^{{ new, unclipped }}=\left(K_{11}+K_{22}-2 K_{12}\right) \alpha_{2}^{\text { old }}+y_{2}\left[y_{2}-y_{1}+f\left(x_{1}\right)-f\left(x_{2}\right)\right]
(K11+K22−2K12)α2new,unclipped=(K11+K22−2K12)α2 old +y2[y2−y1+f(x1)−f(x2)]
记
η
=
K
11
+
K
22
−
2
K
12
\eta=K_{11}+K_{22}-2 K_{12}
η=K11+K22−2K12
则有
α
2
n
e
w
,
u
n
c
l
i
p
p
e
d
=
α
2
o
l
d
+
y
2
(
E
1
−
E
2
)
η
\alpha_{2}^{ { new, unclipped }}=\alpha_{2}^{o l d}+\frac{y_{2}\left(E_{1}-E_{2}\right)}{\eta}
α2new,unclipped=α2old+ηy2(E1−E2)
现在考虑带上约束条件
0
≤
α
i
=
1
,
2
≤
C
α
1
y
1
+
α
2
y
2
=
ζ
\begin{array}{l}{0 \leq \alpha_{i=1,2} \leq C} \\ {\alpha_{1} y_{1}+\alpha_{2} y_{2}=\zeta}\end{array}
0≤αi=1,2≤Cα1y1+α2y2=ζ
这里
k
k
k相当于
ζ
\zeta
ζ,因为
y
i
,
i
=
1
,
2
y_{i},i=1,2
yi,i=1,2只有
+
,
1
−
1
+,1-1
+,1−1两种选择
最优解必须要在方框内且在直线上取得,因此
L
≤
α
2
n
e
w
≤
H
L \leq \alpha_{2}^{n e w} \leq H
L≤α2new≤H
当
y
1
≠
y
2
y_{1} \neq y_{2}
y1̸=y2时,
L
=
max
(
0
,
α
2
o
l
d
−
α
1
o
l
d
)
;
H
=
min
(
C
,
C
+
α
2
o
l
d
−
α
1
o
l
d
)
L=\max \left(0, \alpha_{2}^{o l d}-\alpha_{1}^{o l d}\right) ; H=\min \left(C, C+\alpha_{2}^{o l d}-\alpha_{1}^{o l d}\right)
L=max(0,α2old−α1old);H=min(C,C+α2old−α1old)
当
y
1
=
y
2
y_{1} = y_{2}
y1=y2时,
L
=
max
(
0
,
α
1
o
l
d
+
α
2
o
l
d
−
C
)
;
H
=
min
(
C
,
α
2
o
l
d
+
α
1
o
l
d
)
L=\max \left(0, \alpha_{1}^{o l d}+\alpha_{2}^{o l d}-C\right) ; H=\min \left(C, \alpha_{2}^{o l d}+\alpha_{1}^{o l d}\right)
L=max(0,α1old+α2old−C);H=min(C,α2old+α1old)
综上
α
2
new
=
{
H
,
α
2
new, unclipped
>
H
α
2
new, unclipped
,
L
⩽
α
2
new, unclipped
⩽
H
L
,
α
2
new, unclipped
<
L
\alpha_{2}^{\text { new }}=\left\{\begin{array}{c}{\mathrm{H}, \alpha_{2}^{\text { new, unclipped }}>H} \\ {\alpha_{2}^{\text { new, unclipped }}, L \leqslant \alpha_{2}^{\text { new, unclipped }} \leqslant H} \\ {\mathrm{L}, \alpha_{2}^{\text { new, unclipped }}<L}\end{array}\right.
α2 new =⎩⎨⎧H,α2 new, unclipped >Hα2 new, unclipped ,L⩽α2 new, unclipped ⩽HL,α2 new, unclipped <L
由 α 1 o l d y 1 + α 2 o l d y 2 = ζ = α 1 n e w y 1 + α 2 n e w y 2 \alpha_{1}^{o l d} y_{1}+\alpha_{2}^{o l d} y_{2}=\zeta=\alpha_{1}^{n e w} y_{1}+\alpha_{2}^{n e w} y_{2} α1oldy1+α2oldy2=ζ=α1newy1+α2newy2
α 1 n e w = α 1 o l d + y 1 y 2 ( α 2 o l d − α 2 n e w ) \alpha_{1}^{n e w}=\alpha_{1}^{o l d}+y_{1} y_{2}\left(\alpha_{2}^{o l d}-\alpha_{2}^{n e w}\right) α1new=α1old+y1y2(α2old−α2new)
关于临界情况请看https://blog.youkuaiyun.com/luoshixian099/article/details/51227754#commentBox
如何选择变量
α
1
,
α
2
\alpha_{1},\alpha_{2}
α1,α2
SMO是一种启发式算法,如果所有变量的解都满足KKT条件,那么它们就是最优解了,所以SMO算法在每个子问题中选择两个要优化的变量,其中至少一个是违反KKT条件的。
SMO称选择第一个变量的过程为外层循环,外层循环在训练样本中选取违反KKT条件最严重的样本点,并将其对应的变量作为第一个变量,具体地,检验训练样本点
(
x
i
,
y
i
)
(x_{i},y_{i})
(xi,yi)是否满足KKT条件,即
α
i
=
0
⇔
y
i
g
(
x
i
)
⩾
1
\alpha_{i}=0 \Leftrightarrow y_{i} g\left(x_{i}\right) \geqslant 1
αi=0⇔yig(xi)⩾1
0
<
α
i
<
C
⇔
y
i
g
(
x
i
)
=
1
0<\alpha_{i}<C \Leftrightarrow y_{i} g\left(x_{i}\right)=1
0<αi<C⇔yig(xi)=1
α
i
=
C
⇔
y
i
g
(
x
i
)
⩽
1
\alpha_{i}=C \Leftrightarrow y_{i} g\left(x_{i}\right) \leqslant 1
αi=C⇔yig(xi)⩽1
其中,
g
(
x
i
)
=
∑
j
=
1
N
α
j
y
j
K
(
x
i
,
x
j
)
+
b
g\left(x_{i}\right)=\sum_{j=1}^{N} \alpha_{j} y_{j} K\left(x_{i}, x_{j}\right)+b
g(xi)=∑j=1NαjyjK(xi,xj)+b
该检验在
ϵ
\epsilon
ϵ范围内进行,外层循环先遍历所有满足条件的
0
<
α
i
<
C
0<\alpha_{i}<C
0<αi<C样本点,即在间隔边界上的支持向量点,检验是否满足KKT条件。如果这些样本点都满足KKT条件,那么遍历整个训练集,检验它们是否满足KKT条件。
第二个变量的选择是希望能使
α
2
\alpha_{2}
α2由足够大的变化。
α
2
n
e
w
\alpha_{2}^{new}
α2new是依赖于
∣
E
1
−
E
2
∣
\left|E_{1}-E_{2}\right|
∣E1−E2∣的,一般是通过内层循环选择使
∣
E
1
−
E
2
∣
\left|E_{1}-E_{2}\right|
∣E1−E2∣最大的
α
2
\alpha_{2}
α2
在特殊情况下,如果内层循环选择的
α
2
\alpha_{2}
α2不能使目标函数有足够的下降,那么就遍历在间隔边界上的支持向量点,依次作为
α
2
\alpha_{2}
α2试用,直到目标函数有足够的下降,如果还是找不到,就遍历整个训练集,依然找不到就放弃这个
α
1
\alpha_{1}
α1,通过外层循环寻找另外的
α
1
\alpha_{1}
α1
在每次完成两个变量的优化后,都要重新计算阈值
b
b
b,
如果
0
<
α
1
n
e
w
<
C
0<\alpha_{1}^{n e w}<C
0<α1new<C,由KKT条件
y
1
(
w
T
x
1
+
b
)
=
1
y_{1}\left(w^{T} x_{1}+b\right)=1
y1(wTx1+b)=1,有
∑
i
=
1
N
α
i
y
i
K
i
1
+
b
=
y
1
\sum_{i=1}^{N} \alpha_{i} y_{i} K_{i 1}+b=y_{1}
∑i=1NαiyiKi1+b=y1可得
b
1
n
e
w
=
y
1
−
∑
i
=
3
N
α
i
y
i
K
i
1
−
α
1
n
e
w
y
1
K
11
−
α
2
n
e
w
y
2
K
21
b_{1}^{n e w}=y_{1}-\sum_{i=3}^{N} \alpha_{i} y_{i} K_{i 1}-\alpha_{1}^{n e w} y_{1} K_{11}-\alpha_{2}^{n e w} y_{2} K_{21}
b1new=y1−∑i=3NαiyiKi1−α1newy1K11−α2newy2K21
由 y 1 − ∑ i = 3 N α i y i K i 1 = − E 1 + α 1 o l d y 1 K 11 + α 2 o l d y 2 K 11 + b o l d y_{1}-\sum_{i=3}^{N} \alpha_{i} y_{i} K_{i 1}=-E_{1}+\alpha_{1}^{o l d} y_{1} K_{11}+\alpha_{2}^{o l d} y_{2} K_{11}+b^{o l d} y1−∑i=3NαiyiKi1=−E1+α1oldy1K11+α2oldy2K11+bold
得到
b
1
n
e
w
=
−
E
1
−
y
1
K
11
(
α
1
n
e
w
−
α
1
a
d
)
−
y
2
K
21
(
α
2
n
e
w
−
α
2
o
l
d
)
+
b
o
l
d
b_{1}^{n e w}=-E_{1}-y_{1} K_{11}\left(\alpha_{1}^{n e w}-\alpha_{1}^{a d}\right)-y_{2} K_{21}\left(\alpha_{2}^{n e w}-\alpha_{2}^{o l d}\right)+b^{o l d}
b1new=−E1−y1K11(α1new−α1ad)−y2K21(α2new−α2old)+bold
同样,如果
0
<
α
2
n
e
w
<
C
0<\alpha_{2}^{n e w}<C
0<α2new<C,则有
b
2
n
e
w
=
−
E
2
−
y
1
K
12
(
α
1
n
e
w
−
α
1
o
l
d
)
−
y
2
K
22
(
α
2
n
e
w
−
α
2
o
l
d
)
+
b
o
l
d
b_{2}^{n e w}=-E_{2}-y_{1} K_{12}\left(\alpha_{1}^{n e w}-\alpha_{1}^{o l d}\right)-y_{2} K_{22}\left(\alpha_{2}^{n e w}-\alpha_{2}^{o l d}\right)+b^{o l d}
b2new=−E2−y1K12(α1new−α1old)−y2K22(α2new−α2old)+bold
如果同时满足 0 < α i n e w < C , i = 1 , 2 0<\alpha_{i}^{n e w}<C,i=1,2 0<αinew<C,i=1,2,则 b 1 n e w = b 2 n e w b_{1}^{n e w}=b_{2}^{n e w} b1new=b2new
如果 α 1 n e w , α 2 n e w \alpha_{1}^{new},\alpha_{2}^{new} α1new,α2new是0或者 C C C,那么 b 1 n e w , b 2 n e w b_{1}^{new},b_{2}^{new} b1new,b2new以及它们之间的数都满足KKT阈值条件,这时选择它们的中点。
核技巧
基本思想:找一个映射Φ(一般为高维映射),将样本点特征?映射到新的特征空间Φ(?),使其在新的特征空间中线性可分(或近似线性可分),然后利用之前的SVM算法在新的特征空间中对样本进行分类。
流程:
输入训练集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
…
,
(
x
n
,
y
n
)
}
T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \ldots,\left(x_{n}, y_{n}\right)\right\}
T={(x1,y1),(x2,y2),…,(xn,yn)}其中
x
i
∈
R
n
,
y
i
∈
{
−
1
,
+
1
}
x_{i} \in R^{n}, y_{i} \in\{-1,+1\}
xi∈Rn,yi∈{−1,+1}
(1)选择合适的映射函数Φ,将训练集?映射为
T
=
{
(
Φ
(
x
1
)
,
y
1
)
,
(
Φ
(
x
2
)
,
y
2
)
,
…
,
(
Φ
(
x
n
)
,
y
n
)
}
T=\left\{\left(\Phi\left(x_{1}\right), y_{1}\right),\left(\Phi\left(x_{2}\right), y_{2}\right), \ldots,\left(\Phi\left(x_{n}\right), y_{n}\right)\right\}
T={(Φ(x1),y1),(Φ(x2),y2),…,(Φ(xn),yn)}
(2)选择惩罚参数C,构造并求解约束最优化问题(原问题的对偶问题)
min
α
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
⟨
Φ
(
x
i
)
,
Φ
(
x
j
)
⟩
−
∑
i
=
1
N
α
i
\min_{\alpha} \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left\langle\Phi\left(x_{i}\right), \Phi\left(x_{j}\right)\right\rangle-\sum_{i=1}^{\mathrm{N}} \alpha_{i}
minα21∑i=1N∑j=1Nαiαjyiyj⟨Φ(xi),Φ(xj)⟩−∑i=1Nαi
s.t.
∑
i
=
1
N
α
i
y
i
=
0
0
≤
α
i
≤
C
,
i
=
1
,
2
,
…
,
N
\begin{aligned} \text { s.t. } & \sum_{i=1}^{N} \alpha_{i} y_{i}=0 \\ & 0 \leq \alpha_{i} \leq C, i=1,2, \ldots, N \end{aligned}
s.t. i=1∑Nαiyi=00≤αi≤C,i=1,2,…,N
求得最优解
α
∗
=
(
α
1
∗
,
α
2
∗
,
…
,
α
N
∗
)
T
\alpha^{*}=\left(\alpha_{1}^{*}, \alpha_{2}^{*}, \ldots, \alpha_{N}^{*}\right)^{T}
α∗=(α1∗,α2∗,…,αN∗)T
(3)计算
W
∗
,
b
∗
W^{*}, b^{*}
W∗,b∗:
w
∗
=
∑
i
=
1
N
α
i
∗
y
i
Φ
(
x
i
)
w^{*}=\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} \Phi\left(x_{i}\right)
w∗=∑i=1Nαi∗yiΦ(xi)
选择
a
∗
a^{*}
a∗的一个分量满足
0
<
α
i
∗
<
C
0<\alpha_{i}^{*}<C
0<αi∗<C,计算
b
∗
=
y
j
−
∑
i
=
1
N
α
i
∗
y
i
⟨
Φ
(
x
i
)
,
Φ
(
x
j
)
⟩
b^{*}=y_{j}-\sum_{i=1}^{N} \alpha_{i}^{*} y_{i}\left\langle\Phi\left(x_{i}\right), \Phi\left(x_{j}\right)\right\rangle
b∗=yj−∑i=1Nαi∗yi⟨Φ(xi),Φ(xj)⟩
(4)求得分离超平面和分类决策函数:
w
∗
T
Φ
(
x
)
+
b
∗
=
0
w^{* T} \Phi(x)+b^{*}=0
w∗TΦ(x)+b∗=0
f
(
x
)
=
sign
(
w
∗
T
Φ
(
x
)
+
b
∗
)
=
sign
(
∑
i
=
1
N
α
i
∗
y
i
⟨
Φ
(
x
)
,
Φ
(
x
i
)
⟩
+
b
∗
)
f(x)=\operatorname{sign}\left(w^{* T} \Phi(x)+b^{*}\right)=\operatorname{sign}\left(\sum_{i=1}^{N} \alpha_{i}^{*} y_{i}\left\langle\Phi(x), \Phi\left(x_{i}\right)\right\rangle+ b^{*}\right)
f(x)=sign(w∗TΦ(x)+b∗)=sign(∑i=1Nαi∗yi⟨Φ(x),Φ(xi)⟩+b∗)
该算法的问题:
(1)合适的映射函数?太难找,几乎找不到
(2)假设找到了映射函数?,由于将数据映射到高维,在高维空间中做运算,计算量太大(维数灾难)
改进:
考虑到算法中如果不需写出分离超平面,即不需写出
w
∗
w^{∗}
w∗,而是直接用
f
(
x
)
=
sign
(
w
∗
T
Φ
(
x
)
+
b
∗
)
=
sign
(
α
i
∗
y
i
⟨
Φ
(
x
)
,
Φ
(
x
j
)
⟩
+
b
∗
)
f(x)=\operatorname{sign}\left(w^{* T} \Phi(x)+b^{*}\right)=\operatorname{sign}\left(\alpha_{i}^{*} y_{i}\left\langle\Phi(x), \Phi\left(x_{j}\right)\right\rangle+ b^{*}\right)
f(x)=sign(w∗TΦ(x)+b∗)=sign(αi∗yi⟨Φ(x),Φ(xj)⟩+b∗)来做预测,同样可以给出分类边界以及达到预测目的。这样的话,算法中需要用到样本的地方全部以内积形式出现,如果我们能够找到一种函数,能够在低维空间中直接算出高维内积,并且该函数对应着某个映射,即解决了以上两个问题。
核函数的定义:
设?是输入空间(欧式空间的子集或离散集合),设ℋ为特征空间(希尔伯特空间),如果存在一个从?到ℋ的映射Φ(?):?→ℋ,使得对所有的?,?∈?,函数?(?,?)满足条件?(?,?)=⟨Φ(?),Φ(?)⟩,则称?(?,?)为核函数,Φ(?)为映射函数。
核函数的本质:用相似度函数重新定义内积运算。
什么样的函数可以作为核函数?
核函数对应的Gram矩阵为半正定矩阵。
常用的核函数:
- 线性核函数(linear kernel) K ( x , z ) = x T z K(x, z)=x^{T} z K(x,z)=xTz
- 多项式核函数(polynomial kernel function) K ( x , z ) = ( γ x T z + r ) p K(x, z)=\left(\gamma x^{T} z+r\right)^{p} K(x,z)=(γxTz+r)p
- 高斯核函数( Gaussian kernel function ) K ( x , z ) = exp ( − γ ∥ x − z ∥ 2 ) K(x, z)=\exp \left(-\gamma\|x-z\|^{2}\right) K(x,z)=exp(−γ∥x−z∥2)
- Sigmoid核函数
- 拉普拉斯核函数
- 字符串核函数
面试真题
SVM 为什么采用间隔最大化
当训练数据线性可分时,存在无穷个分离超平面可以将两类数据正确分开。感知机利用误分类最小策略,求得分离超平面,不过此时的解有无穷多个。线性可分支持向量机利用间隔最大化求得最优分离超平面,这时,解是唯一的。另一方面,此时的分隔超平面所产生的分类结果是最鲁棒的,对未知实例的泛化能力最强。可以借此机会阐述一下几何间隔以及函数间隔的关系。
为什么要将求解 SVM 的原始问题转换为其对偶问题
一是对偶问题往往更易求解,当我们寻找约束存在时的最优点的时候,约束的存在虽然减小了需要搜寻的范围,但是却使问题变得更加复杂。为了使问题变得易于处理,我们的方法是把目标函数和约束全部融入一个新的函数,即拉格朗日函数,再通过这个函数来寻找最优点。二是可以自然引入核函数,进而推广到非线性分类问题。
为什么 SVM 要引入核函数
当样本在原始空间线性不可分时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。而引入这样的映射后,所要求解的对偶问题的求解中,无需求解真正的映射函数,而只需要知道其核函数。核函数的定义:K(x,y)=<ϕ(x),ϕ(y)>,即在特征空间的内积等于它们在原始样本空间中通过核函数 K 计算的结果。一方面数据变成了高维空间中线性可分的数据,另一方面不需要求解具体的映射函数,只需要给定具体的核函数即可,这样使得求解的难度大大降低。
为什么SVM对缺失数据敏感
这里说的缺失数据是指缺失某些特征数据,向量数据不完整。SVM 没有处理缺失值的策略。而 SVM 希望样本在特征空间中线性可分,所以特征空间的好坏对SVM的性能很重要。缺失特征数据将影响训练结果的好坏。
SVM 核函数之间的区别
一般选择线性核和高斯核,也就是线性核与 RBF 核。 线性核:主要用于线性可分的情形,参数少,速度快,对于一般数据,分类效果已经很理想了。 RBF 核:主要用于线性不可分的情形,参数多,分类结果非常依赖于参数。有很多人是通过训练数据的交叉验证来寻找合适的参数,不过这个过程比较耗时。 如果 Feature 的数量很大,跟样本数量差不多,这时候选用线性核的 SVM。 如果 Feature 的数量比较小,样本数量一般,不算大也不算小,选用高斯核的 SVM。
作者:力扣(LeetCode)
链接:https://zhuanlan.zhihu.com/p/43827793
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
LR和SVM的联系与区别
联系: 1、LR和SVM都可以处理分类问题,且一般都用于处理线性二分类问题(在改进的情况下可以处理多分类问题) 2、两个方法都可以增加不同的正则化项,如l1、l2等等。所以在很多实验中,两种算法的结果是很接近的。 区别:1、LR是参数模型,SVM是非参数模型。 2、从目标函数来看,区别在于逻辑回归采用的是logistical loss,SVM采用的是hinge loss,这两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重。 3、SVM的处理方法是只考虑support vectors,也就是和分类最相关的少数点,去学习分类器。而逻辑回归通过非线性映射,大大减小了离分类平面较远的点的权重,相对提升了与分类最相关的数据点的权重。 4、逻辑回归相对来说模型更简单,好理解,特别是大规模线性分类时比较方便。而SVM的理解和优化相对来说复杂一些,SVM转化为对偶问题后,分类只需要计算与少数几个支持向量的距离,这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算。 5、logic 能做的 svm能做,但可能在准确率上有问题,svm能做的logic有的做不了。
作者:七月在线
链接:https://zhuanlan.zhihu.com/p/57947723
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
参考文献
感谢他们使我进步
- 关于SMO算法 https://blog.youkuaiyun.com/luoshixian099/article/details/51227754#commentBox
- 李航《统计学习方法》
- 面试真题 https://zhuanlan.zhihu.com/p/43827793 https://zhuanlan.zhihu.com/p/57947723
- 关于SVM的一些推导参考了《理解SVM的三层境界》