支持向量机-Support Vector Machine
将在SVM之前
初窥SVM,没想到其涉及了诸多最优化问题的内容,特此在理解SVM的同时,整理了会用到的最优化相关知识,都在这里了。
关于SVM的讲解,我看到了两种方法。一种是网上最多的最优超平面方法求解;另一种是Andrew Ng在Coursera上通过逻辑回归延伸出来的方法。这里我先整理根据网上看到的方法。
1. 什么是超平面?
维基百科上讲:在几何学中,一个超平面,是一个比它所在环境空间维度小1的子空间(余维度为1)。例如,三维空间的超平面是一个二维平面,二维空间的超平面是一个一维线。
对于
n
n
n维空间,其内的超平面为:
(1.1)
w
1
x
1
+
w
2
x
2
+
⋯
+
w
n
x
n
=
b
w_1x_1 + w_2x_2+\cdots + w_nx_n = b\tag{1.1}
w1x1+w2x2+⋯+wnxn=b(1.1)定义的子集
X
X
X,其中
w
1
,
w
2
,
…
,
w
n
w_1,w_2,\dots,w_n
w1,w2,…,wn为不全为0的常数,并且为该超平面的法向量。
超平面将其所在的空间分成了两个部分,分别对应的是:
w 1 x 1 + w 2 x 2 + ⋯ + w n x n > b a n d w 1 x 1 + w 2 x 2 + ⋯ + w n x n < b w_1x_1 + w_2x_2+\cdots + w_nx_n > b\\ and\\ w_1x_1 + w_2x_2+\cdots + w_nx_n < b w1x1+w2x2+⋯+wnxn>bandw1x1+w2x2+⋯+wnxn<b
用向量形式表示超平面公式为:
(1.2)
x
=
(
x
1
,
x
2
,
…
,
x
n
)
T
w
=
(
w
1
,
w
2
,
…
,
w
n
)
T
w
T
x
+
b
=
0
x=(x_1,x_2,\dots,x_n)^T\\ w=(w_1,w_2,\dots,w_n)^T\\ \ \\ w^Tx +b = 0\tag{1.2}
x=(x1,x2,…,xn)Tw=(w1,w2,…,wn)T wTx+b=0(1.2)
其同样可以用不等式将所在的空间分成两部分:
w
T
x
+
b
>
0
a
n
d
w
T
x
+
b
<
0
w^Tx +b > 0\\and\\w^Tx +b < 0
wTx+b>0andwTx+b<0
以二维空间为例,如图能直观地看出超平面(线)将二维平面分成了两部分:
问题定义
在进行推导之前,我们想对问题进行定义。假设给定一个特征空间上的训练数据集
T
=
{
(
x
1
,
y
x
)
,
(
x
2
,
y
2
)
,
…
,
(
x
n
,
y
n
)
}
T = \{(x_1,y_x),(x_2,y_2),\dots,(x_n,y_n)\}
T={(x1,yx),(x2,y2),…,(xn,yn)}其中,
x
i
∈
R
n
,
y
i
∈
{
+
1
,
−
1
}
,
i
=
1
,
2
,
…
,
n
x_i\in {\Bbb R}^n,y_i \in \{+1,-1\}, i = 1,2,\dots,n
xi∈Rn,yi∈{+1,−1},i=1,2,…,n。
我们的问题就是要找到空间中的一个超平面,能够最优的将不同类别的样本区分开来。
2. 函数间隔(Functional Margin)与几何间隔(Geometrical Margin)
函数间隔
当在一个超平面 w T x + b = 0 w^Tx+b=0 wTx+b=0确定的情况下,我们可以看到 ∣ w T x i + b ∣ |w^Tx_i+b| ∣wTxi+b∣能够反映点 x i x_i xi到超平面的远近(但不是实际的欧几里得距离),通过观察 w T x i + b w^Tx_i+b wTxi+b和类标记 y i y_i yi符号是否一致,可以判断分类结果是否正确。因此,同时考虑 w T x i + b w^Tx_i+b wTxi+b和 y i y_i yi,即 y i ( w T x i + b ) y_i(w^Tx_i +b) yi(wTxi+b)能到的一种对于分类结果正确与否的度量(可信度)。
所以,我们定义间隔函数为:
(2.1)
γ
i
^
=
y
i
(
w
T
x
i
+
b
)
\hat{\gamma_i} = y_i(w^Tx_i +b)\tag{2.1}
γi^=yi(wTxi+b)(2.1)表示训练样本
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)被分类正确的可信度。当
w
T
x
i
+
b
w^Tx_i+b
wTxi+b和类标记
y
i
y_i
yi符号一致时,则
γ
^
\hat{\gamma}
γ^为正,若
∣
w
T
x
i
+
b
∣
|w^Tx_i+b|
∣wTxi+b∣越大,则
γ
^
\hat{\gamma}
γ^越大,证明分类超平面对于该训练样本很好用;相反的,如果
w
T
x
i
+
b
w^Tx_i+b
wTxi+b和类标记
y
i
y_i
yi符号不一致,则
∣
w
T
x
i
+
b
∣
|w^Tx_i+b|
∣wTxi+b∣越大,则
γ
^
\hat{\gamma}
γ^越小,证明超平面对于该样本不好用。
所以为了评估超平面对于全部样本的分类效果,我们可以用下式:
(2.2)
γ
^
=
min
i
=
1
,
2
,
…
,
n
γ
i
^
\hat{\gamma} = \min_{i=1,2,\dots,n} \hat{\gamma_i}\tag{2.2}
γ^=i=1,2,…,nminγi^(2.2)来进行评判。
然而, γ i ^ \hat{\gamma_i} γi^及 γ ^ \hat{\gamma} γ^并不是对应点 x i x_i xi到超平面的真实距离(欧几里得距离)。所以我们下面引入几何距离的概念。
几何距离
为了推导几何距离的计算公式,我们先假设我们的超平面为:
w
T
x
+
b
=
0
w^Tx + b =0
wTx+b=0
对于超平面上面任意一个点
x
j
x_j
xj,我们可以得到:
w
T
x
j
+
b
=
0
w^Tx_j +b=0
wTxj+b=0并且该平面的法向量为
w
w
w。
对于空间中不在超平面上的一点 x i x_i xi,我们可以通过计算向量 x i − x j x_i - x_j xi−xj在超平面法向量上投影距离来计算其到超平面的几何距离。
我们知道两个向量点乘 a ⃗ ⋅ b ⃗ \vec{a}\cdot\vec{b} a⋅b,其几何意义为 ∣ a ∣ ⋅ ∣ b ∣ cos θ |a|\cdot|b| \cos\theta ∣a∣⋅∣b∣cosθ,即一个向量的模乘以另一个向量在该向量上投影的模。
根据这一点,我们可以得到向量
x
i
−
x
j
x_i-x_j
xi−xj在平面法向量的投影长度为:
(2.3)
w
T
⋅
(
x
i
−
x
j
)
∣
∣
w
∣
∣
=
∣
∣
w
∣
∣
⋅
∣
∣
x
i
−
x
j
∣
∣
cos
θ
∣
∣
w
∣
∣
=
∣
∣
x
i
−
x
j
∣
∣
cos
θ
\frac{w^T\cdot(x_i-x_j)}{||w||} = \frac{||w||\cdot||x_i-x_j||\cos\theta}{||w||} = ||x_i-x_j||\cos\theta\tag{2.3}
∣∣w∣∣wT⋅(xi−xj)=∣∣w∣∣∣∣w∣∣⋅∣∣xi−xj∣∣cosθ=∣∣xi−xj∣∣cosθ(2.3)上式中,我们没有考虑样本类别标签
y
i
y_i
yi。
进一步,我们考虑到分类标签
y
i
y_i
yi之后,表示实际的样本点相对于超平面的距离(如果该点位于超平面正确的一侧,那么距离为正;否则,距离为负)。转换并定义空间中一点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)到超平面的几何距离
γ
i
\gamma_i
γi:
(2.4)
γ
i
=
y
i
w
T
⋅
(
x
i
−
x
j
)
∣
∣
w
∣
∣
=
y
i
w
T
⋅
x
i
−
w
T
⋅
x
j
∣
∣
w
∣
∣
=
y
i
w
T
⋅
x
i
+
b
∣
∣
w
∣
∣
=
γ
^
∣
∣
w
∣
∣
=
y
i
(
w
T
∣
∣
w
∣
∣
⋅
x
i
+
b
∣
∣
w
∣
∣
)
\gamma_i=y_i\frac{w^T\cdot(x_i-x_j)}{||w||} = y_i\frac{w^T\cdot x_i - w^T\cdot x_j}{||w||}=y_i\frac{w^T\cdot x_i + b}{||w||} =\frac{\hat{\gamma}}{||w||} = y_i(\frac{w^T}{||w||}\cdot x_i + \frac{b}{||w||}\tag{2.4})
γi=yi∣∣w∣∣wT⋅(xi−xj)=yi∣∣w∣∣wT⋅xi−wT⋅xj=yi∣∣w∣∣wT⋅xi+b=∣∣w∣∣γ^=yi(∣∣w∣∣wT⋅xi+∣∣w∣∣b)(2.4)其实,就是将距离转换成了将空间中任意一点
x
i
x_i
xi带入到超平面方程中,在用法向量的模来归一化一下的值,最后根据分类标签判断一下该点所在一侧是否是其应该在的一侧,从而得到几何距离。
对于训练样本集中所有样本点
T
=
{
(
x
1
,
y
x
)
,
(
x
2
,
y
2
)
,
…
,
(
x
n
,
y
n
)
}
T = \{(x_1,y_x),(x_2,y_2),\dots,(x_n,y_n)\}
T={(x1,yx),(x2,y2),…,(xn,yn)},我们能得到其中的最小几何间隔为:
γ
=
min
i
=
1
,
2
,
…
,
n
γ
i
\gamma = \min_{i=1,2,\dots,n} \gamma_i
γ=i=1,2,…,nminγi实际上,这个距离就是我们所谓的支持向量到超平面的距离。
3. 最大间隔分类器(Maximum Margin Classifier)
顾名思义,最大间隔分类器就是找到一个超平面,使得上面所说的最小几何间距
γ
\gamma
γ最大。根据公式2.4我们知道:
γ
=
γ
^
∣
∣
w
∣
∣
\gamma = \frac{\hat{\gamma}}{||w||}
γ=∣∣w∣∣γ^同时,对于
γ
\gamma
γ需要满足
s
.
t
.
y
i
(
w
T
∣
∣
w
∣
∣
⋅
x
i
+
b
∣
∣
w
∣
∣
)
≥
γ
,
i
=
1
,
2
,
…
,
n
s.t. \ \ y_i(\frac{w^T}{||w||}\cdot x_i + \frac{b}{||w||}) \geq \gamma, i = 1,2,\dots,n
s.t. yi(∣∣w∣∣wT⋅xi+∣∣w∣∣b)≥γ,i=1,2,…,n;而对于等式右边中的
γ
^
\hat{\gamma}
γ^需要满足
y
i
(
w
T
x
i
+
b
)
≥
γ
^
,
i
=
1
,
2
,
…
,
n
y_i(w^Tx_i + b) \geq \hat{\gamma},i=1,2,\dots,n
yi(wTxi+b)≥γ^,i=1,2,…,n。
因此,最大化最小几何间隔:
max
w
,
b
γ
s
.
t
.
y
i
(
w
T
∣
∣
w
∣
∣
⋅
x
i
+
b
∣
∣
w
∣
∣
)
≥
γ
,
i
=
1
,
2
,
…
,
n
\max_{w,b}\gamma\\ s.t. \ \ y_i(\frac{w^T}{||w||}\cdot x_i + \frac{b}{||w||} ) \geq \gamma, i = 1,2,\dots,n
w,bmaxγs.t. yi(∣∣w∣∣wT⋅xi+∣∣w∣∣b)≥γ,i=1,2,…,n等价于
max
w
,
b
γ
^
∣
∣
w
∣
∣
s
.
t
.
y
i
(
w
T
⋅
x
i
+
b
)
≥
γ
^
,
i
=
1
,
2
,
…
,
n
\max_{w,b}\frac{\hat{\gamma}}{||w||}\\ s.t. \ \ y_i(w^T\cdot x_i + b) \geq \hat{\gamma}, i = 1,2,\dots,n
w,bmax∣∣w∣∣γ^s.t. yi(wT⋅xi+b)≥γ^,i=1,2,…,n
在这里,我们令函数间隔
γ
^
\hat{\gamma}
γ^为1(该操作不会对函数的优化产生影响),从而将目标函数转化为:
max
1
∣
∣
w
∣
∣
s
.
t
.
,
y
i
(
w
T
⋅
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
…
,
n
\max\frac{1}{||w||}\\s.t., y_i(w^T\cdot x_i + b) \geq 1, i = 1,2,\dots,n
max∣∣w∣∣1s.t.,yi(wT⋅xi+b)≥1,i=1,2,…,n接着,对于最大化
1
∣
∣
w
∣
∣
\frac{1}{||w||}
∣∣w∣∣1,等价于最小化
1
2
∣
∣
w
∣
∣
2
\frac{1}{2}||w||^2
21∣∣w∣∣2,因此可将SVM中求解最大分隔超平面的问题转换为下列最优化问题:
(3.1)
min
w
,
b
1
2
∣
∣
w
∣
∣
2
s
.
t
.
y
i
(
w
T
⋅
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
…
,
n
\min_{w,b}\frac{1}{2}||w||^2\\ s.t. \ \ y_i(w^T\cdot x_i + b) \geq 1, i = 1,2,\dots,n\tag{3.1}
w,bmin21∣∣w∣∣2s.t. yi(wT⋅xi+b)≥1,i=1,2,…,n(3.1)
该问题为含有不等式约束条件的凸二次规划问题。我们可以使用求解最优化问题的经典方法来进行求解。
4. 拉格朗日乘子法与拉格朗日对偶转化最优化问题
在上一节中,我们已经成功的构建出了SVM的目标函数,通过该目标函数我们能得到最优的分隔超平面,使得训练样本中,各个点到超平面的最小几何间隔(支持向量)最大。然而,该问题是一个含有不等式约束条件的凸二次规划问题。直接求解并不容易,因此需要使用求解最优化问题中常用的方法来转化问题,再进行求解(曲线救国)。
拉格朗日乘子法
对于含有不等式约束的最优化问题,最常用的便是**广义拉格朗日乘子法**,关于该方法在文章一开始提到的预备知识中有所介绍。
根据原始的目标函数(式3.1),通过拉格朗日乘子法构建新的目标函数为:
(4.1)
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
+
∑
i
=
1
n
α
i
(
1
−
y
i
(
w
T
⋅
x
i
+
b
)
)
L(w,b,\alpha) = \frac{1}{2}||w||^2+\sum_{i=1}^n\alpha_i(1-y_i(w^T\cdot x_i +b))\tag{4.1}
L(w,b,α)=21∣∣w∣∣2+i=1∑nαi(1−yi(wT⋅xi+b))(4.1)其中,拉格朗日乘数
α
i
≥
0
,
∀
i
=
1
,
2
,
…
,
n
\alpha_i \geq 0, \forall i = 1,2,\dots,n
αi≥0,∀i=1,2,…,n。
拉格朗日对偶
同样的,关于**拉格朗日对偶**的相关内容,也在之前的博客中。
对于进行完拉格朗日乘子法转化后的目标函数,我们为了构建对偶问题,需要更进一步转化。根据之前的内容,我们可以将原始问题(式3.1)进行下列转化:
首先,我们令:
θ
P
(
w
)
=
max
α
:
α
i
≥
0
L
(
w
,
b
,
α
)
\theta_P(w) = \max_{\alpha:\alpha_i\geq 0}L(w,b,\alpha)
θP(w)=α:αi≥0maxL(w,b,α)
- 当 w i , b w_i,b wi,b不满足约束条件时, α i \alpha_i αi取 + ∞ +\infty +∞则函数没有极大值
- 当 w i , b w_i,b wi,b满足约束条件时, α i \alpha_i αi取 0 0 0则函数极大值为 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21∣∣w∣∣2
因此可得分段函数:
θ
P
(
x
)
=
{
1
2
∣
∣
w
∣
∣
2
,
x
∈
可
行
域
+
∞
,
x
∈
不
可
行
域
\theta_P(x)=\begin{cases}\frac{1}{2}||w||^2,x\in 可行域\\+\infty\ \ \ \ \ ,x\in 不可行域 \end{cases}
θP(x)={21∣∣w∣∣2,x∈可行域+∞ ,x∈不可行域因此,带不等式约束条件的原始问题可以转换为:
(4.2)
min
w
,
b
θ
P
(
w
)
=
min
w
,
b
max
α
:
α
i
≥
=
0
L
(
w
,
b
,
α
)
=
p
∗
\min_{w,b}\theta_P(w) = \min_{w,b}\max_{\alpha:\alpha_i\geq = 0}L(w,b,\alpha)=p^*\tag{4.2}
w,bminθP(w)=w,bminα:αi≥=0maxL(w,b,α)=p∗(4.2)得到原始问题的全新形式之后,我们通过调换求最大值和最小值的顺序,得到该问题的对偶问题,即:
(4.3)
max
α
:
α
i
≥
=
0
min
w
,
b
L
(
w
,
b
,
α
)
=
d
∗
\max_{\alpha:\alpha_i\geq = 0}\min_{w,b}L(w,b,\alpha)=d^*\tag{4.3}
α:αi≥=0maxw,bminL(w,b,α)=d∗(4.3)
到这里,我们通过一系列的转换,将最原始的目标函数(式3.1)变成了没有约束条件的形式(式4.1),同时也得到了其相对应的对偶问题(式4.2)。我们之所以要得到该对偶问题,是为了能更加简便的求解着个最优化问题,但是对于普通的最优化问题(不一定是凸优化),我们只能得到 d ∗ ≤ p ∗ d^*\leq p^* d∗≤p∗这样的结论,然后为了求解得到 p ∗ p^* p∗和它对应的最优值点 ( w ∗ , b ∗ , α ∗ ) (w^*,b^*,\alpha^*) (w∗,b∗,α∗),我们必须想办法使得 d ∗ = p ∗ d^* = p^* d∗=p∗。KKT条件正是用在此处。
什么情况下原始问题和其对偶问题有共同的解?
当原始问题和对偶问题满足强对偶关系的时候,有共同的最优解。
什么时候满足强对偶关系呢?,
-
Slater条件
定义:对于原始问题及其对偶问题,假设函数 f ( x ) f(x) f(x)和 g i ( x ) g_i(x) gi(x)是凸函数, h i ( x ) h_i(x) hi(x)是仿射函数,且不等式约束 g i ( x ) g_i(x) gi(x)是严格可行的,即存在一个 x x x,使得不等式约束 g i ( x ) < 0 , ∀ i = 1 , … , m g_i(x)<0 ,\forall i = 1,\dots,m gi(x)<0,∀i=1,…,m,则存在 x ∗ , λ ∗ , μ ∗ x^*,\lambda^*,\mu^* x∗,λ∗,μ∗使得 d ∗ = p ∗ d^*=p^* d∗=p∗。 -
KKT条件
定义: 对于原始问题及其对偶问题,假设函数 f ( x ) f(x) f(x)和 g i ( x ) g_i(x) gi(x)是凸函数, h i ( x ) h_i(x) hi(x)是仿射函数,且不等式约束 g i ( x ) g_i(x) gi(x)是严格可行的,即存在一个 x x x,使得不等式约束 g i ( x ) < 0 , ∀ i = 1 , … , m g_i(x)<0 ,\forall i = 1,\dots,m gi(x)<0,∀i=1,…,m,则存在 x ∗ x^* x∗是原始问题的解, λ ∗ , μ ∗ \lambda^*,\mu^* λ∗,μ∗是对偶问题的解,并使得 d ∗ = p ∗ d^*=p^* d∗=p∗的充要条件是 x ∗ , λ ∗ , μ ∗ x^*,\lambda^*,\mu^* x∗,λ∗,μ∗满足KKT条件。
通过之前博客中从一般强对偶最优化问题推出了KKT条件这一结论,我们知道,KKT条件是强对偶问题的必要条件;又当原始问题为凸优化问题时,KKT条件就升级为充要条件,也就是说**当原始问题是凸优化问题,并且存在 x ∗ 和 ( λ ∗ , μ ∗ ) x^*和(\lambda^*,\mu^*) x∗和(λ∗,μ∗)满足KKT条件的话,那 x ∗ 和 ( λ ∗ , μ ∗ ) x^*和(\lambda^*,\mu^*) x∗和(λ∗,μ∗)分别是原始问题和对偶问题的极值点并且强对偶关系成立。
本问题Slater条件满足证明
对于原始问题(式3.1):
min
w
,
b
1
2
∣
∣
w
∣
∣
2
s
.
t
.
y
i
(
w
T
⋅
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
…
,
n
\min_{w,b}\frac{1}{2}||w||^2\\ s.t. \ \ y_i(w^T\cdot x_i + b) \geq 1, i = 1,2,\dots,n
w,bmin21∣∣w∣∣2s.t. yi(wT⋅xi+b)≥1,i=1,2,…,n
我们假设求得了极小值点 ( w ∗ , b ∗ , α ∗ ) (w^*,b^*,\alpha^*) (w∗,b∗,α∗),则我们选取点 ( 2 w ∗ , 2 b ∗ ) (2w^*,2b^*) (2w∗,2b∗)(Slater条件并没有要求该点一定是最优解点)带入到原约束方程的 y i ( ( 2 w ∗ ) T ⋅ x i + 2 b ∗ ) ≥ 2 > 1 y_i((2w^*)^T\cdot x_i + 2b^*) \geq 2 >1 yi((2w∗)T⋅xi+2b∗)≥2>1,也就是点 ( 2 w ∗ , 2 b ∗ ) (2w^*,2b^*) (2w∗,2b∗)使得不等式约束严格成立,所以该问题满足Slater条件,从而有 d ∗ = p ∗ d^*=p^* d∗=p∗。
在此,Slater条件的满足,代表着对于线性可分的训练样本,能够找到超平面来对样本进行区分。
KKT条件满足必要性
在满足原始问题是凸优化问题、满足Slater条件之后,KKT条件就是验证极值点的最后一道标准。
用广义拉格朗日乘子法转换(式 3.1)得到的拉格朗日函数为(式4.1):
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
+
∑
i
=
1
n
α
i
(
1
−
y
i
(
w
T
⋅
x
i
+
b
)
)
L(w,b,\alpha) = \frac{1}{2}||w||^2+\sum_{i=1}^n\alpha_i(1-y_i(w^T\cdot x_i +b))
L(w,b,α)=21∣∣w∣∣2+i=1∑nαi(1−yi(wT⋅xi+b))
KKT条件如下:
{
∂
L
(
w
,
b
,
α
)
∂
w
=
0
∂
L
(
w
,
b
,
α
)
∂
b
=
0
α
i
(
1
−
y
i
(
w
T
⋅
x
i
+
b
)
)
=
0
,
∀
i
=
1
,
2
,
…
,
n
α
i
≥
0
,
∀
i
=
1
,
2
,
…
,
n
\begin{cases} \frac{\partial L(w,b,\alpha)}{\partial w} = 0\\ \frac{\partial L(w,b,\alpha)}{\partial b} = 0\\ \alpha_i(1-y_i(w^T\cdot x_i +b)) = 0,\forall i = 1,2,\dots,n\\ \alpha_i \geq 0, \forall i =1,2,\dots,n\\ \end{cases}
⎩⎪⎪⎪⎨⎪⎪⎪⎧∂w∂L(w,b,α)=0∂b∂L(w,b,α)=0αi(1−yi(wT⋅xi+b))=0,∀i=1,2,…,nαi≥0,∀i=1,2,…,n因此,我们只需要求解原始问题对应的对偶问题的极值点,然后将求得的解带入KKT条件中,看是否满足。如果满足,那么这个解就是对偶问题极值点,因此该点使得
d
∗
=
p
∗
d^*=p^*
d∗=p∗。
5. 对偶问题的求解
在这里,我们假设满足KKT条件,则我们就可以通过求解对偶问题来代替原始问题啦。
对偶问题如下:
(5.1)
max
α
:
α
i
≥
=
0
min
w
,
b
L
(
w
,
b
,
α
)
=
d
∗
\max_{\alpha:\alpha_i\geq = 0}\min_{w,b}L(w,b,\alpha)=d^*\tag{5.1}
α:αi≥=0maxw,bminL(w,b,α)=d∗(5.1)其中
(5.2)
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
+
∑
i
=
1
n
α
i
(
1
−
y
i
(
w
T
⋅
x
i
+
b
)
)
L(w,b,\alpha) = \frac{1}{2}||w||^2+\sum_{i=1}^n\alpha_i(1-y_i(w^T\cdot x_i +b))\tag{5.2}
L(w,b,α)=21∣∣w∣∣2+i=1∑nαi(1−yi(wT⋅xi+b))(5.2)
先求对偶问题内的最小化问题
针对这一步求解,我们分两步进行,首先求
min
w
,
b
L
(
w
,
b
,
α
)
\min_{w,b}L(w,b,\alpha)
minw,bL(w,b,α),这一步中
α
\alpha
α视为常数,则只需要对
L
(
w
,
b
,
α
)
L(w,b,\alpha)
L(w,b,α)求关于
w
,
b
w,b
w,b的偏导并等于零,即可。
∂
L
(
w
,
b
,
α
)
∂
w
=
∂
(
1
2
∣
∣
w
∣
∣
2
+
∑
i
=
1
n
α
i
(
1
−
y
i
(
w
T
x
i
+
b
)
)
)
∂
w
=
∂
(
1
2
∣
∣
w
∣
∣
2
+
∑
i
=
1
n
α
i
−
α
i
y
i
w
T
x
i
−
α
i
y
i
b
)
∂
w
=
0
\begin{aligned} \frac{\partial L(w,b,\alpha)}{\partial w} &= \frac{\partial(\frac{1}{2}||w||^2+\sum_{i=1}^n\alpha_i(1-y_i(w^Tx_i+b)))}{\partial w}\\ &=\frac{\partial(\frac{1}{2}||w||^2+\sum_{i=1}^n\alpha_i-\alpha_iy_iw^Tx_i-\alpha_iy_ib)}{\partial w}=0 \end{aligned}
∂w∂L(w,b,α)=∂w∂(21∣∣w∣∣2+∑i=1nαi(1−yi(wTxi+b)))=∂w∂(21∣∣w∣∣2+∑i=1nαi−αiyiwTxi−αiyib)=0根据求导公式
∂
w
T
∂
w
=
I
\frac{\partial w^T}{\partial w} = I
∂w∂wT=I,有:
∂
L
(
w
,
b
,
α
)
∂
w
=
w
+
∑
i
=
1
n
−
α
i
y
i
x
i
=
0
\frac{\partial L(w,b,\alpha)}{\partial w} = w + \sum_{i=1}^n -\alpha_iy_ix_i=0
∂w∂L(w,b,α)=w+i=1∑n−αiyixi=0则有:
(5.3)
w
=
∑
i
=
1
n
α
i
y
i
x
i
w=\sum_{i=1}^n\alpha_iy_ix_i\tag{5.3}
w=i=1∑nαiyixi(5.3)
之后求关于 b b b的偏导得:
∂
L
(
w
,
b
,
α
)
∂
b
=
∂
(
1
2
∣
∣
w
∣
∣
2
+
∑
i
=
1
n
α
i
(
1
−
y
i
(
w
T
x
i
+
b
)
)
)
∂
b
=
∂
(
1
2
∣
∣
w
∣
∣
2
+
∑
i
=
1
n
α
i
−
α
i
y
i
w
T
x
i
−
α
i
y
i
b
)
∂
b
=
0
\begin{aligned} \frac{\partial L(w,b,\alpha)}{\partial b} &= \frac{\partial(\frac{1}{2}||w||^2+\sum_{i=1}^n\alpha_i(1-y_i(w^Tx_i+b)))}{\partial b}\\ &=\frac{\partial(\frac{1}{2}||w||^2+\sum_{i=1}^n\alpha_i-\alpha_iy_iw^Tx_i-\alpha_iy_ib)}{\partial b}\\ &=0 \end{aligned}
∂b∂L(w,b,α)=∂b∂(21∣∣w∣∣2+∑i=1nαi(1−yi(wTxi+b)))=∂b∂(21∣∣w∣∣2+∑i=1nαi−αiyiwTxi−αiyib)=0得:
(5.4)
∑
i
=
1
n
α
i
y
i
=
0
\sum_{i=1}^n\alpha_iy_i = 0\tag{5.4}
i=1∑nαiyi=0(5.4)将式5.3和5.4带入5.2中,得到:
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
n
α
i
−
∑
i
=
1
n
α
i
y
i
w
T
x
i
−
∑
i
=
1
n
α
i
y
i
b
=
1
2
w
T
⋅
∑
i
=
1
n
α
i
y
i
x
i
+
∑
i
=
1
n
α
i
−
∑
i
=
1
n
α
i
y
i
w
T
x
i
−
b
∑
i
=
1
n
α
i
y
i
=
1
2
w
T
⋅
∑
i
=
1
n
α
i
y
i
x
i
+
∑
i
=
1
n
α
i
−
w
T
∑
i
=
1
n
α
i
y
i
x
i
=
∑
i
=
1
n
α
i
−
1
2
w
T
⋅
∑
i
=
1
n
α
i
y
i
x
i
=
∑
i
=
1
n
α
i
−
1
2
(
∑
i
=
1
n
α
i
y
i
x
i
)
T
⋅
∑
i
=
1
n
α
i
y
i
x
i
=
∑
i
=
1
n
α
i
−
1
2
∑
i
=
1
n
α
i
y
i
x
i
T
⋅
∑
i
=
1
n
α
i
y
i
x
i
=
∑
i
=
1
n
α
i
−
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
x
i
T
x
j
\begin{aligned} L(w,b,\alpha)&=\frac{1}{2}||w||^2+\sum_{i=1}^n\alpha_i(1-y_i(w^T\cdot x_i +b))\\ &=\frac{1}{2}w^Tw+\sum_{i=1}^n\alpha_i-\sum_{i=1}^n\alpha_iy_iw^Tx_i-\sum_{i=1}^n\alpha_iy_ib\\ &=\frac{1}{2}w^T\cdot\sum_{i=1}^n\alpha_iy_ix_i + \sum_{i=1}^n\alpha_i-\sum_{i=1}^n\alpha_iy_iw^Tx_i-b\sum_{i=1}^n\alpha_iy_i\\ &=\frac{1}{2}w^T\cdot\sum_{i=1}^n\alpha_iy_ix_i + \sum_{i=1}^n\alpha_i-w^T\sum_{i=1}^n\alpha_iy_ix_i\\ &=\sum_{i=1}^n\alpha_i-\frac{1}{2}w^T\cdot\sum_{i=1}^n\alpha_iy_ix_i\\ &=\sum_{i=1}^n\alpha_i-\frac{1}{2}(\sum_{i=1}^n\alpha_iy_ix_i)^T\cdot\sum_{i=1}^n\alpha_iy_ix_i\\ &=\sum_{i=1}^n\alpha_i-\frac{1}{2}\sum_{i=1}^n\alpha_iy_i{x_i}^T\cdot\sum_{i=1}^n\alpha_iy_ix_i\\ &=\sum_{i=1}^n\alpha_i-\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_j{x_i}^Tx_j \end{aligned}
L(w,b,α)=21∣∣w∣∣2+i=1∑nαi(1−yi(wT⋅xi+b))=21wTw+i=1∑nαi−i=1∑nαiyiwTxi−i=1∑nαiyib=21wT⋅i=1∑nαiyixi+i=1∑nαi−i=1∑nαiyiwTxi−bi=1∑nαiyi=21wT⋅i=1∑nαiyixi+i=1∑nαi−wTi=1∑nαiyixi=i=1∑nαi−21wT⋅i=1∑nαiyixi=i=1∑nαi−21(i=1∑nαiyixi)T⋅i=1∑nαiyixi=i=1∑nαi−21i=1∑nαiyixiT⋅i=1∑nαiyixi=i=1∑nαi−21i=1∑nj=1∑nαiαjyiyjxiTxj从而得到只含有
α
\alpha
α的目标函数:
(5.5)
L
(
w
,
b
,
α
)
=
∑
i
=
1
n
α
i
−
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
x
i
T
x
j
L(w,b,\alpha)=\sum_{i=1}^n\alpha_i-\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_j{x_i}^Tx_j\tag{5.5}
L(w,b,α)=i=1∑nαi−21i=1∑nj=1∑nαiαjyiyjxiTxj(5.5)
再求关于 α \alpha α的极大值
根据上面的转换,我们能得到如下只包含
α
\alpha
α的最优化问题:
max
α
∑
i
=
1
n
α
i
−
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
x
i
T
x
j
s
.
t
.
∑
i
=
1
n
α
i
y
i
=
0
α
i
≥
0
,
∀
i
=
1
,
2
,
…
,
n
\max_\alpha \sum_{i=1}^n\alpha_i-\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_j{x_i}^Tx_j\\ s.t. \ \ \sum_{i=1}^n\alpha_iy_i = 0\\ \alpha_i \geq 0, \forall i = 1,2,\dots,n
αmaxi=1∑nαi−21i=1∑nj=1∑nαiαjyiyjxiTxjs.t. i=1∑nαiyi=0αi≥0,∀i=1,2,…,n把上面的式子添加一个负号,转为求极小值:
min
α
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
x
i
T
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_jy_iy_j{x_i}^Tx_j-\sum_{i=1}^n\alpha_i\\ s.t. \ \ \sum_{i=1}^n\alpha_iy_i = 0\\ \alpha_i \geq 0, \forall i = 1,2,\dots,n
αmin21i=1∑nj=1∑nαiαjyiyjxiTxj−i=1∑nαis.t. i=1∑nαiyi=0αi≥0,∀i=1,2,…,n
求解上述的最优化问题,我们可以使用更高效的优化算法,即序列最小优化(SMO)算法。
序列最小优化(SMO)算法
由于SMO算法主要针对包含核函数以及软边缘支持向量机的目标函数最优化,因此在详细介绍SMO算法之前,先介绍核函数及软边缘。
线性可分样本的模型使用
目前为止,我们在训练样本线性可分(存在一个超平面将两类样本分开)的前提下,通过拉格朗日对偶等一系列操作得到了我们想要的最大间隔超平面 ( w ∗ , b ∗ ) 以 及 对 应 的 α ∗ (w^*,b^*)以及对应的\alpha^* (w∗,b∗)以及对应的α∗。这时,对于一个新的测试样本 x x x,我们只需要把 x x x带入到方程 f ( x ) = w ∗ T x + b ∗ f(x)={w^*}^Tx + b^* f(x)=w∗Tx+b∗,然后看 f ( x ) f(x) f(x)的正负号来划分其类别。
这里我们能发现,由于前面推导中的式5.3,我们有:
w
∗
=
∑
i
=
1
n
α
i
∗
y
i
x
i
w^*=\sum_{i=1}^n\alpha_i^*y_ix_i
w∗=i=1∑nαi∗yixi然后计算测试样本的方程可以变为:
(5.6)
f
(
x
)
=
(
∑
i
=
1
n
α
i
∗
y
i
x
i
)
T
x
+
b
∗
=
∑
i
=
1
n
α
i
∗
y
i
x
i
T
x
+
b
∗
=
∑
i
=
1
n
α
i
∗
y
i
<
x
i
,
x
>
+
b
∗
f(x) = (\sum_{i=1}^n\alpha_i^*y_ix_i)^Tx+b^*=\sum_{i=1}^n\alpha_i^*y_ix_i^Tx+b^* = \sum_{i=1}^n\alpha_i^*y_i< x_i,x>+b^*\tag{5.6}
f(x)=(i=1∑nαi∗yixi)Tx+b∗=i=1∑nαi∗yixiTx+b∗=i=1∑nαi∗yi<xi,x>+b∗(5.6)其中,
<
x
i
,
x
>
< x_i,x>
<xi,x>表示两个向量的內积。
虽然上式显示了对于一个测试样本,他要计算与所有训练样本中电的內积,在乘积系数 α i \alpha_i αi和分类类别 y i y_i yi,但是,根据原始问题的约束条件我们知道,当 ( 1 − y i ( w T ⋅ x i + b ) < 0 (1-y_i(w^T\cdot x_i +b) < 0 (1−yi(wT⋅xi+b)<0时,对应的 α i = 0 \alpha_i=0 αi=0;当 ( 1 − y i ( w T ⋅ x i + b ) = 0 (1-y_i(w^T\cdot x_i +b) = 0 (1−yi(wT⋅xi+b)=0时,对应的 α i ≠ 0 \alpha_i \neq 0 αi̸=0,因此我们将 ( 1 − y i ( w T ⋅ x i + b ) = 0 (1-y_i(w^T\cdot x_i +b) = 0 (1−yi(wT⋅xi+b)=0时的训练样本点 x i , y i x_i,y_i xi,yi称为支持向量,用于计算新样本的类别。
6.核函数
事实上,大部分时候真实的数据集都不是线性可分的,这个时候根本不存在这样的超平面将不同的样本正确分开。
关于核函数,pluskid的博客讲的非常清晰,这里仅拷贝过来以防丢失。
以上即为pluskid关于核函数讲解的原文,总结来说,对于非线性可分的问题,我们希望通过将原始维度的数据映射到更高维度的空间里,在更高维度的空间里来寻找超平面来区分数据;然而,如果直接将数据进行高维映射,会出现映射后的维度是原始维度的指数倍(维度爆炸),使得计算非常困难;为了避免直接的将低维度数据先映射到高纬度数据在进行计算的问题,核函数方法诞生了,核函数通过在低维度的空间中直接对数据进行计算,来得到高维映射后內积结果,避免了先进行高维映射的弊端。
其中,pluskid提到高斯核计算后的內积相当于将原始低维度数据映射到无穷维度之后再进行內积运算。这里我们来看一下是为什么。
首先,对于多项式核,在前面的例子中我们可以看到,确定了多项式核的参数 d d d,也就确定了映射的最高维度。
但是,对于高斯核,我们可以得到:
K
(
x
1
,
x
2
)
=
e
−
∣
∣
x
1
−
x
2
∣
∣
2
2
σ
2
K(x_1,x_2) = e^{-\frac{||x_1-x_2||^2}{2\sigma^2}}
K(x1,x2)=e−2σ2∣∣x1−x2∣∣2设
x
1
,
x
2
x_1,x_2
x1,x2原始空间为二维空间,即
x
1
=
(
η
1
,
ξ
1
)
T
,
x
2
=
(
η
2
,
ξ
2
)
T
x_1=(\eta_1,\xi_1)^T,x_2=(\eta_2,\xi_2)^T
x1=(η1,ξ1)T,x2=(η2,ξ2)T,则经过高斯核映射的向量內积为:
(6.1)
K
(
x
1
,
x
2
)
=
e
−
∣
∣
x
1
−
x
2
∣
∣
2
2
σ
2
=
e
−
(
η
1
−
η
2
)
2
+
(
ξ
1
−
ξ
2
)
2
2
σ
2
=
e
−
η
1
2
−
2
η
1
η
2
+
η
2
2
+
ξ
1
2
−
2
ξ
1
ξ
2
+
ξ
2
2
2
σ
2
\begin{aligned} K(x_1,x_2) &= e^{-\frac{||x_1-x_2||^2}{2\sigma^2}}\\ &=e^{-\frac{(\eta_1-\eta_2)^2+(\xi_1-\xi_2)^2}{2\sigma^2}}\\ &=e^{-\frac{\eta_1^2-2\eta_1\eta_2+\eta_2^2+\xi_1^2-2\xi_1\xi_2+\xi_2^2}{2\sigma^2}} \end{aligned}\tag{6.1}
K(x1,x2)=e−2σ2∣∣x1−x2∣∣2=e−2σ2(η1−η2)2+(ξ1−ξ2)2=e−2σ2η12−2η1η2+η22+ξ12−2ξ1ξ2+ξ22(6.1)根据
e
x
e^x
ex的泰勒展开式:
e
x
≈
1
+
x
+
x
2
2
!
+
x
3
3
!
+
⋯
+
x
n
n
!
e^x \approx 1+x+\frac{x^2}{2!} + \frac{x^3}{3!}+\cdots+\frac{x^n}{n!}
ex≈1+x+2!x2+3!x3+⋯+n!xn所以,式6.1继续展开可得:
K
(
x
1
,
x
2
)
=
e
−
η
1
2
−
2
η
1
η
2
+
η
2
2
+
ξ
1
2
−
2
ξ
1
ξ
2
+
ξ
2
2
2
σ
2
=
1
+
(
−
1
2
σ
2
)
1
⋅
1
1
!
⋅
(
η
1
2
−
2
η
1
η
2
+
η
2
2
+
ξ
1
2
−
2
ξ
1
ξ
2
+
ξ
2
2
)
1
+
(
−
1
2
σ
2
)
2
⋅
1
2
!
⋅
(
η
1
2
−
2
η
1
η
2
+
η
2
2
+
ξ
1
2
−
2
ξ
1
ξ
2
+
ξ
2
2
)
2
+
.
.
.
+
(
−
1
2
σ
2
)
n
⋅
1
n
!
⋅
(
η
1
2
−
2
η
1
η
2
+
η
2
2
+
ξ
1
2
−
2
ξ
1
ξ
2
+
ξ
2
2
)
n
\begin{aligned} K(x_1,x_2) &= e^{-\frac{\eta_1^2-2\eta_1\eta_2+\eta_2^2+\xi_1^2-2\xi_1\xi_2+\xi_2^2}{2\sigma^2}}\\ &=1+(\frac{-1}{2\sigma^2})^1\cdot\frac{1}{1!}\cdot(\eta_1^2-2\eta_1\eta_2+\eta_2^2+\xi_1^2-2\xi_1\xi_2+\xi_2^2)^1 + (\frac{-1}{2\sigma^2})^2\cdot\frac{1}{2!}\cdot(\eta_1^2-2\eta_1\eta_2+\eta_2^2+\xi_1^2-2\xi_1\xi_2+\xi_2^2)^2 + ... + (\frac{-1}{2\sigma^2})^n\cdot\frac{1}{n!}\cdot(\eta_1^2-2\eta_1\eta_2+\eta_2^2+\xi_1^2-2\xi_1\xi_2+\xi_2^2)^n \end{aligned}
K(x1,x2)=e−2σ2η12−2η1η2+η22+ξ12−2ξ1ξ2+ξ22=1+(2σ2−1)1⋅1!1⋅(η12−2η1η2+η22+ξ12−2ξ1ξ2+ξ22)1+(2σ2−1)2⋅2!1⋅(η12−2η1η2+η22+ξ12−2ξ1ξ2+ξ22)2+...+(2σ2−1)n⋅n!1⋅(η12−2η1η2+η22+ξ12−2ξ1ξ2+ξ22)n
将各个项完全展开我们能看到,高斯核实现了将原始的低维度数据映射到了无线维度上。观察高斯核中的参数
σ
2
\sigma^2
σ2,我们发现,当
σ
2
\sigma^2
σ2很小的时候,核函数对于高维度的项的衰减作用小,相当于我们用非常复杂的函数来拟合数据,因此可能出现过拟合(high variance)的情况;当
σ
2
\sigma^2
σ2较大时,对于高维度的项乘法较大,相当于我们用比较简单的函数拟合数据,因此可能出现欠拟合的问题(high bias),因此,通过调整参数
σ
2
\sigma^2
σ2,高斯核有很大的灵活性。
至此,我们讲完了关于核函数的内容,因为在SVM的目标函数中向量计算时都是计算的內积,因此可以将原来的內积计算
<
x
i
,
x
j
>
<x_i,x_j>
<xi,xj>替换为核函数
k
(
x
i
,
x
j
)
k(x_i,x_j)
k(xi,xj),从而有:
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
α
i
≥
0
,
∀
i
=
1
,
2
,
…
,
n
\min_\alpha \frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_jK(x_i,x_j)-\sum_{i=1}^n\alpha_i\\ s.t. \ \ \sum_{i=1}^n\alpha_iy_i = 0\\ \alpha_i \geq 0, \forall i = 1,2,\dots,n
αmin21i=1∑nj=1∑nαiαjyiyjK(xi,xj)−i=1∑nαis.t. i=1∑nαiyi=0αi≥0,∀i=1,2,…,n
7. 处理Outliers
同样还是引用pluskid的文章,讲解的依然很清晰,为保存起见,特此粘贴到此。
至此,我们得到了包含有松弛变量、核函数的最终对偶问题,即:
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_jy_iy_jK(x_i,x_j)-\sum_{i=1}^n\alpha_i\\ s.t. \ \ \sum_{i=1}^n\alpha_iy_i = 0\\ 0 \leq \alpha_i \leq C, \forall i = 1,2,\dots,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其中,
C
C
C是参数,控制对Outliers的允许程度;
K
(
x
i
,
x
j
)
K(x_i,x_j)
K(xi,xj)是核函数。
下面就是用SMO算法来求解这个对偶问题,得到我们想要的 w ∗ , b ∗ , α ∗ w^*,b^*,\alpha^* w∗,b∗,α∗即可。
8. SMO最小序列优化算法
为了更为快速方便的求解上述最优化问题,SMO应运而生。由于最优化问题中限制条件的存在,该方法的核心思想是:一次优化只选取两个待优化变量,这样能够在优化目标的同时,保证变量能够满足约束条件。
OK,那么直接开吧,接着上述最优化问题:
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_jy_iy_jK(x_i,x_j)-\sum_{i=1}^n\alpha_i\\ s.t. \ \ \sum_{i=1}^n\alpha_iy_i = 0\\ 0 \leq \alpha_i \leq C, \forall i = 1,2,\dots,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
计算没有修剪过的原始解
假设我们选取的两个优化参数为
α
1
,
α
2
\alpha_1,\alpha_2
α1,α2,其他的设为常数,
K
(
x
i
,
x
j
)
K(x_i,x_j)
K(xi,xj)记作
K
i
,
j
K_{i,j}
Ki,j则我们有:
(8.1)
W
(
α
1
,
α
2
)
=
1
2
α
1
α
1
y
1
y
1
K
1
,
1
+
1
2
α
1
α
2
y
1
y
2
K
1
,
2
+
⋯
+
1
2
α
1
α
n
y
1
y
n
K
1
,
n
+
1
2
α
2
α
1
y
2
y
1
K
2
,
1
+
1
2
α
2
α
2
y
2
y
2
K
2
,
2
+
⋯
+
1
2
α
2
α
n
y
2
y
n
K
2
,
n
1
2
α
3
α
1
y
3
y
1
K
3
,
1
+
1
2
α
3
α
2
y
3
y
2
K
3
,
2
+
1
2
α
3
α
3
y
3
y
3
K
3
,
3
+
⋯
+
1
2
α
3
α
n
y
3
y
n
K
3
,
n
⎵
C
3
+
1
2
α
4
α
1
y
4
y
1
K
4
,
1
+
1
2
α
4
α
2
y
4
y
2
K
4
,
2
+
1
2
α
4
α
3
y
4
y
3
K
4
,
3
+
⋯
+
1
2
α
4
α
n
y
4
y
n
K
4
,
n
⎵
C
4
+
⋯
1
2
α
n
α
1
y
n
y
1
K
n
,
1
+
1
2
α
n
α
2
y
n
y
2
K
n
,
2
+
1
2
α
n
α
3
y
n
y
3
K
n
,
3
+
⋯
+
1
2
α
n
α
n
y
n
y
n
K
n
,
n
⎵
C
n
−
α
1
−
α
2
−
∑
i
=
3
n
α
i
⎵
C
α
=
1
2
α
1
2
y
1
2
K
1
,
1
+
1
2
α
1
α
2
y
1
y
2
K
1
,
2
+
1
2
∑
i
=
3
n
α
1
α
i
y
1
y
i
K
1
,
i
+
1
2
α
2
α
1
y
2
y
1
K
2
,
1
+
1
2
α
2
2
y
2
2
K
2
,
2
+
1
2
∑
i
=
3
n
α
2
α
i
y
2
y
i
K
2
,
i
+
1
2
∑
i
=
3
n
α
i
α
1
y
i
y
1
K
i
,
1
+
1
2
∑
i
=
3
n
α
i
α
2
y
i
y
2
K
i
,
2
+
C
3
+
C
4
+
⋯
+
C
n
+
−
α
1
−
α
2
−
C
α
=
1
2
α
1
2
K
1
,
1
+
1
2
α
2
2
K
2
,
2
+
α
1
α
2
y
1
y
2
K
1
,
2
+
α
1
y
1
∑
i
=
3
n
α
i
y
i
K
1
,
i
+
α
2
y
2
∑
i
=
3
n
α
i
y
i
K
2
,
i
−
α
1
−
α
2
−
C
\begin{aligned} W(\alpha_1,\alpha_2) =&\frac{1}{2}\alpha_1\alpha_1y_1y_1K_{1,1} + \frac{1}{2}\alpha_1\alpha_2y_1y_2K_{1,2}+\cdots+\frac{1}{2}\alpha_1\alpha_ny_1y_nK_{1,n}+\\ &\frac{1}{2}\alpha_2\alpha_1y_2y_1K_{2,1}+\frac{1}{2}\alpha_2\alpha_2y_2y_2K_{2,2}+\cdots + \frac{1}{2}\alpha_2\alpha_ny_2y_nK_{2,n}\\ &\frac{1}{2}\alpha_3\alpha_1y_3y_1K_{3,1}+\frac{1}{2}\alpha_3\alpha_2y_3y_2K_{3,2}+ \underbrace{\frac{1}{2}\alpha_3\alpha_3y_3y_3K_{3,3}+\cdots+\frac{1}{2}\alpha_3\alpha_ny_3y_nK_{3,n}}_{C_3}+\\ &\frac{1}{2}\alpha_4\alpha_1y_4y_1K_{4,1}+\frac{1}{2}\alpha_4\alpha_2y_4y_2K_{4,2}+ \underbrace{\frac{1}{2}\alpha_4\alpha_3y_4y_3K_{4,3}+\cdots+\frac{1}{2}\alpha_4\alpha_ny_4y_nK_{4,n}}_{C_4}+\\ &\cdots\\ &\frac{1}{2}\alpha_n\alpha_1y_ny_1K_{n,1}+\frac{1}{2}\alpha_n\alpha_2y_ny_2K_{n,2}+ \underbrace{\frac{1}{2}\alpha_n\alpha_3y_ny_3K_{n,3}+\cdots+\frac{1}{2}\alpha_n\alpha_ny_ny_nK_{n,n}}_{C_n}\\ &-\alpha_1-\alpha_2-\underbrace{\sum_{i=3}^{n}\alpha_i}_{C_\alpha}\\ =&\frac{1}{2}\alpha_1^2y_1^2K_{1,1}+\frac{1}{2}\alpha_1\alpha_2y_1y_2K_{1,2}+\frac{1}{2}\sum_{i=3}^n\alpha_1\alpha_iy_1y_iK_{1,i}+\\ &\frac{1}{2}\alpha_2\alpha_1y_2y_1K_{2,1}+\frac{1}{2}\alpha_2^2y_2^2K_{2,2}+\frac{1}{2}\sum_{i=3}^n\alpha_2\alpha_iy_2y_iK_{2,i}+\\ &\frac{1}{2}\sum_{i=3}^n\alpha_i\alpha_1y_iy_1K_{i,1}+\frac{1}{2}\sum_{i=3}^n\alpha_i\alpha_2y_iy_2K_{i,2}+C_3+C_4+\cdots+C_n+\\ &-\alpha_1-\alpha_2-C_\alpha\\ =&\frac{1}{2}\alpha_1^2K_{1,1}+\frac{1}{2}\alpha_2^2K_{2,2}+\alpha_1\alpha_2y_1y_2K_{1,2}+\alpha_1y_1\sum_{i=3}^n\alpha_iy_iK_{1,i}+\alpha_2y_2\sum_{i=3}^n\alpha_iy_iK_{2,i}-\alpha_1-\alpha_2-C\tag{8.1} \end{aligned}
W(α1,α2)===21α1α1y1y1K1,1+21α1α2y1y2K1,2+⋯+21α1αny1ynK1,n+21α2α1y2y1K2,1+21α2α2y2y2K2,2+⋯+21α2αny2ynK2,n21α3α1y3y1K3,1+21α3α2y3y2K3,2+C3
21α3α3y3y3K3,3+⋯+21α3αny3ynK3,n+21α4α1y4y1K4,1+21α4α2y4y2K4,2+C4
21α4α3y4y3K4,3+⋯+21α4αny4ynK4,n+⋯21αnα1yny1Kn,1+21αnα2yny2Kn,2+Cn
21αnα3yny3Kn,3+⋯+21αnαnynynKn,n−α1−α2−Cα
i=3∑nαi21α12y12K1,1+21α1α2y1y2K1,2+21i=3∑nα1αiy1yiK1,i+21α2α1y2y1K2,1+21α22y22K2,2+21i=3∑nα2αiy2yiK2,i+21i=3∑nαiα1yiy1Ki,1+21i=3∑nαiα2yiy2Ki,2+C3+C4+⋯+Cn+−α1−α2−Cα21α12K1,1+21α22K2,2+α1α2y1y2K1,2+α1y1i=3∑nαiyiK1,i+α2y2i=3∑nαiyiK2,i−α1−α2−C(8.1)
根据
∑
i
=
1
n
α
i
y
i
=
0
\sum_{i=1}^n\alpha_iy_i = 0
∑i=1nαiyi=0有:
α
1
y
1
+
α
2
y
2
=
−
∑
i
=
3
n
α
i
y
i
=
ζ
\alpha_1y_1+\alpha_2y_2 = -\sum_{i=3}^n\alpha_iy_i = \zeta
α1y1+α2y2=−i=3∑nαiyi=ζ两边同乘以
y
1
y_1
y1有:
(8.2)
α
1
=
ζ
y
1
−
y
1
y
2
α
2
\alpha_1 = \zeta y_1-y_1y_2\alpha_2\tag{8.2}
α1=ζy1−y1y2α2(8.2)同时,令
(8.3)
ν
1
=
∑
i
=
3
n
α
i
y
i
K
1
,
i
\nu_1= \sum_{i=3}^n\alpha_iy_iK_{1,i}\tag{8.3}
ν1=i=3∑nαiyiK1,i(8.3)
(8.4)
ν
2
=
∑
i
=
3
n
α
i
y
i
K
2
,
i
\nu_2= \sum_{i=3}^n\alpha_iy_iK_{2,i}\tag{8.4}
ν2=i=3∑nαiyiK2,i(8.4)将式8.2 8.3 8.4 带入8.1中得:
W
(
α
2
)
=
1
2
(
ζ
y
1
−
y
1
y
2
α
2
)
2
K
1
,
1
+
1
2
α
2
2
K
2
,
2
+
(
ζ
y
1
−
y
1
y
2
α
2
)
α
2
y
1
y
2
K
1
,
2
+
(
ζ
y
1
−
y
1
y
2
α
2
)
y
1
ν
1
+
α
2
y
2
ν
2
−
(
ζ
y
1
−
y
1
y
2
α
2
)
−
α
2
−
C
=
1
2
(
ζ
2
−
2
ζ
y
2
α
2
+
α
2
2
)
K
1
,
1
+
1
2
α
2
2
K
2
,
2
+
(
ζ
−
y
2
α
2
)
α
2
y
2
K
1
,
2
+
ζ
ν
1
−
y
2
ν
1
α
2
+
y
2
ν
2
α
2
−
ζ
y
1
+
y
1
y
2
α
2
−
α
2
−
C
=
1
2
ζ
2
K
1
,
1
−
ζ
y
2
K
1
,
1
α
2
+
1
2
K
1
,
1
α
2
2
+
1
2
K
2
,
2
α
2
2
+
ζ
y
2
K
1
,
2
α
2
−
K
1
,
2
α
2
2
+
ζ
ν
1
−
y
2
ν
1
α
2
+
y
2
ν
2
α
2
−
ζ
y
1
+
y
1
y
2
α
2
−
α
2
−
C
\begin{aligned} W(\alpha_2)=&\frac{1}{2}(\zeta y_1-y_1y_2\alpha_2)^2K_{1,1}+\frac{1}{2}\alpha_2^2K_{2,2}+(\zeta y_1-y_1y_2\alpha_2)\alpha_2y_1y_2K_{1,2} + (\zeta y_1-y_1y_2\alpha_2)y_1\nu_1+\alpha_2y_2\nu_2-(\zeta y_1-y_1y_2\alpha_2)-\alpha_2-C\\ =&\frac{1}{2}(\zeta^2-2\zeta y_2\alpha_2 + \alpha_2^2)K_{1,1}+\frac{1}{2}\alpha_2^2K_{2,2}+(\zeta -y_2\alpha_2)\alpha_2y_2K_{1,2} +\zeta\nu_1-y_2\nu_1\alpha_2+y_2\nu_2\alpha_2-\zeta y_1+y_1y_2\alpha_2-\alpha_2-C\\ =&\frac{1}{2}\zeta^2K_{1,1}-\zeta y_2K_{1,1}\alpha_2+\frac{1}{2}K_{1,1}\alpha_2^2+ \frac{1}{2}K_{2,2}\alpha_2^2+\zeta y_2K_{1,2}\alpha_2-K_{1,2}\alpha_2^2+\zeta \nu_1-y_2\nu_1\alpha_2+y_2\nu_2\alpha_2-\zeta y_1+y_1y_2\alpha_2-\alpha_2-C \end{aligned}
W(α2)===21(ζy1−y1y2α2)2K1,1+21α22K2,2+(ζy1−y1y2α2)α2y1y2K1,2+(ζy1−y1y2α2)y1ν1+α2y2ν2−(ζy1−y1y2α2)−α2−C21(ζ2−2ζy2α2+α22)K1,1+21α22K2,2+(ζ−y2α2)α2y2K1,2+ζν1−y2ν1α2+y2ν2α2−ζy1+y1y2α2−α2−C21ζ2K1,1−ζy2K1,1α2+21K1,1α22+21K2,2α22+ζy2K1,2α2−K1,2α22+ζν1−y2ν1α2+y2ν2α2−ζy1+y1y2α2−α2−C为了求极值,则对
α
2
\alpha_2
α2求导数并令其等于0,即:
(8.5)
∂
W
(
α
2
)
∂
α
2
=
−
ζ
y
2
K
1
,
1
+
K
1
,
1
α
2
+
K
2
,
2
α
2
+
ζ
y
2
K
1
,
2
−
2
K
1
,
2
α
2
−
y
2
ν
1
+
y
2
ν
2
+
y
1
y
2
−
1
=
0
\frac{\partial W(\alpha_2)}{\partial \alpha_2}=-\zeta y_2K_{1,1}+K_{1,1}\alpha_2+K_{2,2}\alpha_2+\zeta y_2K_{1,2}-2K_{1,2}\alpha_2-y_2\nu_1+y_2\nu_2+y_1y_2-1=0\tag{8.5}
∂α2∂W(α2)=−ζy2K1,1+K1,1α2+K2,2α2+ζy2K1,2−2K1,2α2−y2ν1+y2ν2+y1y2−1=0(8.5)
至此其实我们就可以求解
α
2
\alpha_2
α2的值了,但是为了进一步简化计算,还能继续推导,核心思想是用上一步中的
α
o
l
d
\alpha_{old}
αold计算本次迭代中的
α
n
e
w
\alpha_{new}
αnew。
基于以上思想,首先由5.6我们知道:
f
(
x
)
=
∑
i
=
1
n
α
i
y
i
K
(
x
i
,
x
)
+
b
f(x)=\sum_{i=1}^n\alpha_iy_iK(x_i,x)+b
f(x)=i=1∑nαiyiK(xi,x)+b则设:
(8.6)
ν
1
=
∑
i
=
3
n
α
i
y
i
K
1
,
i
=
f
(
x
1
)
−
α
1
y
1
K
1
,
1
−
α
2
y
2
K
1
,
2
−
b
\nu_1 = \sum_{i=3}^n\alpha_iy_iK_{1,i} = f(x_1)-\alpha_1y_1K_{1,1}-\alpha_2y_2K_{1,2}-b\tag{8.6}
ν1=i=3∑nαiyiK1,i=f(x1)−α1y1K1,1−α2y2K1,2−b(8.6)
(8.7)
ν
2
=
∑
i
=
3
n
α
i
y
i
K
2
,
i
=
f
(
x
2
)
−
α
1
y
1
K
1
,
2
−
α
2
y
2
K
2
,
2
−
b
\nu_2 = \sum_{i=3}^n\alpha_iy_iK_{2,i} = f(x_2)-\alpha_1y_1K_{1,2}-\alpha_2y_2K_{2,2}-b\tag{8.7}
ν2=i=3∑nαiyiK2,i=f(x2)−α1y1K1,2−α2y2K2,2−b(8.7)注意,这里的
α
1
,
α
2
\alpha_1,\alpha_2
α1,α2是在进行优化前的参数值,即
α
1
o
l
d
,
α
2
o
l
d
\alpha_1^{old},\alpha_2^{old}
α1old,α2old所以根据式8.2 8.6 8.7我们能得到:
(8.8)
ν
1
−
ν
2
=
f
(
x
1
)
−
f
(
x
2
)
−
α
1
o
l
d
y
1
K
1
,
1
−
α
2
o
l
d
y
2
K
1
,
2
+
α
1
o
l
d
y
1
K
1
,
2
+
α
2
o
l
d
y
2
K
2
,
2
=
f
(
x
1
)
−
f
(
x
2
)
−
(
ζ
y
1
−
y
1
y
2
α
2
o
l
d
)
y
1
K
1
,
1
−
α
2
o
l
d
y
2
K
1
,
2
+
(
ζ
y
1
−
y
1
y
2
α
2
o
l
d
)
y
1
K
1
,
2
+
α
2
o
l
d
y
2
K
2
,
2
=
f
(
x
1
)
−
f
(
x
2
)
−
ζ
K
1
,
1
+
y
2
K
1
,
1
α
2
o
l
d
−
y
2
K
1
,
2
α
2
o
l
d
+
ζ
K
1
,
2
−
y
2
K
1
,
2
α
2
o
l
d
+
y
2
K
2
,
2
α
2
o
l
d
=
f
(
x
1
)
−
f
(
x
2
)
−
ζ
K
1
,
1
+
ζ
K
1
,
2
+
(
K
1
,
1
+
K
2
,
2
−
2
K
1
,
2
)
y
2
α
2
o
l
d
\begin{aligned} \nu_1-\nu_2 &= f(x_1)-f(x_2)-\alpha_1^{old}y_1K_{1,1}-\alpha_2^{old}y_2K_{1,2}+\alpha_1^{old}y_1K_{1,2}+\alpha_2^{old}y_2K_{2,2}\\ &=f(x_1)-f(x_2)-( \zeta y_1-y_1y_2\alpha_2^{old})y_1K_{1,1}-\alpha_2^{old}y_2K_{1,2}+(\zeta y_1-y_1y_2\alpha_2^{old})y_1K_{1,2}+\alpha_2^{old}y_2K_{2,2}\\ &=f(x_1)-f(x_2)- \zeta K_{1,1}+y_2K_{1,1}\alpha_2^{old}-y_2K_{1,2}\alpha_2^{old}+\zeta K_{1,2}-y_2K_{1,2}\alpha_2^{old}+y_2K_{2,2}\alpha_2^{old}\\ &=f(x_1)-f(x_2)-\zeta K_{1,1}+\zeta K_{1,2}+(K_{1,1}+K_{2,2}-2K_{1,2})y_2\alpha_2^{old} \end{aligned}\tag{8.8}
ν1−ν2=f(x1)−f(x2)−α1oldy1K1,1−α2oldy2K1,2+α1oldy1K1,2+α2oldy2K2,2=f(x1)−f(x2)−(ζy1−y1y2α2old)y1K1,1−α2oldy2K1,2+(ζy1−y1y2α2old)y1K1,2+α2oldy2K2,2=f(x1)−f(x2)−ζK1,1+y2K1,1α2old−y2K1,2α2old+ζK1,2−y2K1,2α2old+y2K2,2α2old=f(x1)−f(x2)−ζK1,1+ζK1,2+(K1,1+K2,2−2K1,2)y2α2old(8.8)将式8.8 代入式 8.5得到:
∂
W
(
α
2
n
e
w
)
∂
α
2
n
e
w
=
−
ζ
y
2
K
1
,
1
+
K
1
,
1
α
2
n
e
w
+
K
2
,
2
α
2
n
e
w
+
ζ
y
2
K
1
,
2
−
2
K
1
,
2
α
2
n
e
w
−
y
2
(
ν
1
−
ν
2
)
+
y
1
y
2
−
1
=
(
K
1
,
1
+
K
2
,
2
−
2
K
1
,
2
)
α
2
n
e
w
−
ζ
y
2
K
1
,
1
+
ζ
y
2
K
1
,
2
−
y
2
[
f
(
x
1
)
−
f
(
x
2
)
−
ζ
K
1
,
1
+
ζ
K
1
,
2
+
(
K
1
,
1
+
K
2
,
2
−
2
K
1
,
2
)
y
2
α
2
o
l
d
]
+
y
1
y
2
−
1
=
(
K
1
,
1
+
K
2
,
2
−
2
K
1
,
2
)
α
2
n
e
w
−
(
K
1
,
1
+
K
2
,
2
−
2
K
1
,
2
)
α
2
o
l
d
−
y
2
(
f
(
x
1
)
−
f
(
x
2
)
−
y
1
+
y
2
)
\begin{aligned} \frac{\partial W(\alpha_2^{new})}{\partial \alpha_2^{new}}&=-\zeta y_2K_{1,1}+K_{1,1}\alpha_2^{new}+K_{2,2}\alpha_2^{new}+\zeta y_2K_{1,2}-2K_{1,2}\alpha_2^{new}-y_2(\nu_1-\nu_2)+y_1y_2-1\\ &=(K_{1,1}+K_{2,2}-2K_{1,2})\alpha_2^{new}-\zeta y_2K_{1,1}+\zeta y_2K_{1,2}-y_2[f(x_1)-f(x_2)-\zeta K_{1,1}+\zeta K_{1,2}+(K_{1,1}+K_{2,2}-2K_{1,2})y_2\alpha_2^{old}]+y_1y_2-1\\ &=(K_{1,1}+K_{2,2}-2K_{1,2})\alpha_2^{new}-(K_{1,1}+K_{2,2}-2K_{1,2})\alpha_2^{old}-y_2(f(x_1)-f(x_2)-y_1+y_2) \end{aligned}
∂α2new∂W(α2new)=−ζy2K1,1+K1,1α2new+K2,2α2new+ζy2K1,2−2K1,2α2new−y2(ν1−ν2)+y1y2−1=(K1,1+K2,2−2K1,2)α2new−ζy2K1,1+ζy2K1,2−y2[f(x1)−f(x2)−ζK1,1+ζK1,2+(K1,1+K2,2−2K1,2)y2α2old]+y1y2−1=(K1,1+K2,2−2K1,2)α2new−(K1,1+K2,2−2K1,2)α2old−y2(f(x1)−f(x2)−y1+y2)这里我们设预测值和真实值的误差为
E
i
=
f
(
x
i
)
−
y
i
E_i=f(x_i)-y_i
Ei=f(xi)−yi,并且令
K
1
,
1
+
K
2
,
2
−
2
K
1
,
2
=
η
K_{1,1}+K_{2,2}-2K_{1,2}=\eta
K1,1+K2,2−2K1,2=η,则有:
∂
W
(
α
2
n
e
w
)
∂
α
2
n
e
w
=
η
α
2
n
e
w
−
η
α
2
o
l
d
−
y
2
(
E
1
−
E
2
)
=
0
\frac{\partial W(\alpha_2^{new})}{\partial \alpha_2^{new}}=\eta\alpha_2^{new}-\eta\alpha_2^{old}-y_2(E_1-E_2)=0
∂α2new∂W(α2new)=ηα2new−ηα2old−y2(E1−E2)=0则有:
α
2
n
e
w
=
α
2
o
l
d
+
y
2
(
E
1
−
E
2
)
η
\alpha_2^{new}= \alpha_2^{old}+\frac{y_2(E_1-E_2)}{\eta}
α2new=α2old+ηy2(E1−E2)至此,我们通过一系列变换,将参数更新后的
α
2
n
e
w
\alpha_2^{new}
α2new用本次迭代开始时还未更新的
α
2
o
l
d
\alpha_2^{old}
α2old的形式来表示。
但是,由于我们并未考虑单个 α i \alpha_i αi值的取值范围问题,即原始问题的约束条件。下面将通过根据约束条件中的取值范围,对所得到的参数值 α 2 n e w \alpha_2^{new} α2new进行修剪。
对原始解进行修剪
由于同时上面的方法,求得的解并未要求一定是满足原问题约束条件的,因此,我们需要根据约束条件,来对求得值进行修剪,使得所有参数,在每次迭代优化后,都还是满足约束条件的,这里我们将没有修剪过的 α 2 n e w \alpha_2^{new} α2new记作 α 2 n e w , u n c l i p p e d \alpha_2^{new,unclipped} α2new,unclipped。
所以,首先我们看看该问题的约束条件是怎么影响所求解的两个参数
α
1
,
α
2
\alpha_1,\alpha_2
α1,α2的。首先约束条件如下:
{
α
1
y
1
+
α
2
y
2
=
−
∑
i
=
3
n
α
i
y
i
=
ζ
0
≤
α
i
≤
C
,
∀
i
=
1
,
2
,
…
,
n
\begin{cases} \alpha_1y_1+\alpha_2y_2 = -\sum_{i=3}^n\alpha_iy_i = \zeta\\ 0 \leq \alpha_i \leq C, \forall i = 1,2,\dots,n \end{cases}
{α1y1+α2y2=−∑i=3nαiyi=ζ0≤αi≤C,∀i=1,2,…,n如上约束条件为约束,通过下面的图我们能够清晰的看出:
-
当 y 1 ≠ y 2 y_1 \neq y_2 y1̸=y2时,有 α 2 = α 1 + k \alpha_2 = \alpha_1+k α2=α1+k,则当 k > 0 k>0 k>0或 k < 0 k<0 k<0时,能得到下图图线,根据 k k k的取值不同,对应不同图线,其中 − C ≤ k ≤ C -C\leq k \leq C −C≤k≤C:
由图我们能看到,对于 y 1 ≠ y 2 y_1 \neq y_2 y1̸=y2时, α 2 \alpha_2 α2的取值范围的上下界(可以变换k的值,平移线段来理解)为:
{ L = max { 0 , α 2 o l d − α 1 o l d } H = min { C , C + α 2 o l d − α 1 o l d } \begin{cases} L=\max\{0, \alpha_2^{old}-\alpha_1^{old}\}\\ H=\min\{C,C+\alpha_2^{old}-\alpha_1^{old}\} \end{cases} {L=max{0,α2old−α1old}H=min{C,C+α2old−α1old} -
当 y 1 = y 2 y_1 = y_2 y1=y2时,有 α 2 = − α 1 + k \alpha_2 = -\alpha_1+k α2=−α1+k,则当 0 < k < C 0<k<C 0<k<C或 C < k < 2 C C<k<2C C<k<2C时,能得到下图:
同样的,当 y 1 = y 2 y_1=y_2 y1=y2时,我们同样能得到 α 2 \alpha_2 α2的取值上下界:
{ L = max { 0 , α 2 o l d + α 2 o l d − C } H = min { C , α 2 o l d + α 2 o l d } \begin{cases} L=\max\{0, \alpha_2^{old}+\alpha_2^{old}-C\}\\ H=\min\{C, \alpha_2^{old}+\alpha_2^{old}\} \end{cases} {L=max{0,α2old+α2old−C}H=min{C,α2old+α2old}
通过结合上面两种情况中的上下界,我们就可以对
α
2
o
l
d
\alpha_2^{old}
α2old进行修剪了。修剪后的
α
2
c
l
i
p
p
e
d
\alpha_2^{clipped}
α2clipped为:
α
2
n
e
w
=
{
H
,
α
2
n
e
w
,
u
n
c
l
i
p
p
e
d
>
H
α
2
n
e
w
,
u
n
c
l
i
p
p
e
d
,
L
≤
α
x
n
e
w
,
u
n
c
l
i
p
p
e
d
≤
H
L
,
α
2
n
e
w
,
u
n
c
l
i
p
p
e
d
<
L
\alpha_2^{new}= \begin{cases} H,\ \ \ \ \ \ \ \ \ \ \ \ \alpha_2^{new,unclipped} > H\\ \alpha_2^{new,unclipped},\ \ \ \ \ \ \ \ L\leq \alpha_x^{new,unclipped}\leq H\\ L,\ \ \ \ \ \ \ \ \ \ \ \ \ \alpha_2^{new,unclipped}<L \end{cases}
α2new=⎩⎪⎨⎪⎧H, α2new,unclipped>Hα2new,unclipped, L≤αxnew,unclipped≤HL, α2new,unclipped<L
因此得到修剪后的
α
2
n
e
w
\alpha_2^{new}
α2new,便可以根据等式
α
2
o
l
d
y
2
+
α
1
o
l
d
y
1
=
α
2
n
e
w
y
2
+
α
1
n
e
w
y
1
\alpha_2^{old}y_2+\alpha_1^{old}y_1=\alpha_2^{new}y_2+\alpha_1^{new}y_1
α2oldy2+α1oldy1=α2newy2+α1newy1计算得到
α
1
n
e
w
\alpha_1^{new}
α1new了,即:
α
1
n
e
w
=
α
1
o
l
d
+
y
1
y
2
(
α
2
o
l
d
−
α
2
n
e
w
)
\alpha_1^{new}=\alpha_1^{old}+y_1y_2(\alpha_2^{old}-\alpha_2^{new})
α1new=α1old+y1y2(α2old−α2new)
更新参数 b b b
在我们通过一次迭代更新了两个参数 α 1 , α 2 \alpha_1,\alpha_2 α1,α2之后,其实就是对我们要求的超平面的法向量做了一丢丢调整,向着我们的最大间隔超平面前进。通过公式5.3 w = ∑ i = 1 n α i y i x i w=\sum_{i=1}^n\alpha_iy_ix_i w=i=1∑nαiyixi我们也能看出是这样的。
对于超平面的确定,除了法向量 w w w,还有后面的常数项 b b b,因此在调整法向量中 α 1 , α 2 \alpha_1,\alpha_2 α1,α2之后,我们还要调整常数项,使得满足约束条件 ( 1 − y i ( w T ⋅ x i + b ) ≤ 0 (1-y_i(w^T\cdot x_i +b) \leq 0 (1−yi(wT⋅xi+b)≤0。根据5. 对偶问题求解中线性可分样本的模型使用小结中我们知道:当 0 < α i < C 0<\alpha_i<C 0<αi<C时,由KKT条件( α i ( 1 − y i ( w T ⋅ x i + b ) ) = 0 \alpha_i(1-y_i(w^T\cdot x_i+b))=0 αi(1−yi(wT⋅xi+b))=0)可知, 1 − y i ( w T ⋅ x i + b ) = 0 1-y_i(w^T\cdot x_i+b)=0 1−yi(wT⋅xi+b)=0,即该样本点 ( x i , y i ) (x_i,y_i) (xi,yi)的函数距离为1,是模型中的支持向量。所以,对于优化过后的参数我们有:
- 对于
0
<
α
1
n
e
w
<
C
0<\alpha_1^{new}<C
0<α1new<C及其对应的样本点
(
x
1
,
y
1
)
(x_1,y_1)
(x1,y1)有:
y 1 ( w T ⋅ x 1 + b 1 n e w ) = 1 w T ⋅ x 1 + b 1 n e w = y 1 ∑ i = 1 n α i y i K ( x i , x 1 ) + b 1 n e w = y 1 b 1 n e w = y 1 − α 1 n e w y 1 K ( x 1 , x 1 ) − α 2 n e w y 2 K ( x 2 , x 1 ) − ∑ i = 3 n α i y i K ( x i , x 1 ) 又 E 1 = α 1 o l d y 1 K ( x 1 , x 1 ) + α 2 o l d y 2 K ( x 2 , x 1 ) + ∑ i = 3 n α i y i K ( x i , x 1 ) + b o l d − y 1 所 以 b 1 n e w = − E 1 − y 1 K ( x 1 , x 1 ) ( α 1 n e w − α 1 o l d ) − y 2 K ( x 2 , x 1 ) ( α 2 n e w − α 2 o l d ) + b o l d \begin{aligned} &y_1(w^T\cdot x_1 +b_1^{new}) =1\\ &w^T\cdot x_1 +b_1^{new} =y_1\\ &\sum_{i=1}^n\alpha_iy_iK(x_i,x_1) + b_1^{new} = y_1\\ &b_1^{new}=y_1-\alpha_1^{new}y_1K(x_1,x_1)-\alpha_2^{new}y_2K(x_2,x_1)-\sum_{i=3}^n\alpha_iy_iK(x_i,x_1)\\ &又\\ &E_1 = \alpha_1^{old}y_1K(x_1,x_1)+\alpha_2^{old}y_2K(x_2,x_1)+\sum_{i=3}^n\alpha_iy_iK(x_i,x_1) + b_{old}-y_1\\ &所以\\ &b_1^{new}=-E_1 - y_1K(x_1,x_1)(\alpha_1^{new}-\alpha_1^{old})- y_2K(x_2,x_1)(\alpha_2^{new}-\alpha_2^{old})+ b_{old} \end{aligned} y1(wT⋅x1+b1new)=1wT⋅x1+b1new=y1i=1∑nαiyiK(xi,x1)+b1new=y1b1new=y1−α1newy1K(x1,x1)−α2newy2K(x2,x1)−i=3∑nαiyiK(xi,x1)又E1=α1oldy1K(x1,x1)+α2oldy2K(x2,x1)+i=3∑nαiyiK(xi,x1)+bold−y1所以b1new=−E1−y1K(x1,x1)(α1new−α1old)−y2K(x2,x1)(α2new−α2old)+bold - 同理,当
0
<
α
2
n
e
w
<
C
0<\alpha_2^{new}<C
0<α2new<C时,同样可以计算得到:
b 2 n e w = − E 2 − y 1 K ( x 1 , x 2 ) ( α 1 n e w − α 1 o l d ) − y 2 K ( x 2 , x 2 ) ( α 2 n e w − α 2 o l d ) + b o l d b_2^{new}=-E_2 - y_1K(x_1,x_2)(\alpha_1^{new}-\alpha_1^{old})- y_2K(x_2,x_2)(\alpha_2^{new}-\alpha_2^{old})+ b_{old} b2new=−E2−y1K(x1,x2)(α1new−α1old)−y2K(x2,x2)(α2new−α2old)+bold - 当 α 1 n e w , α 2 n e w \alpha_1^{new},\alpha_2^{new} α1new,α2new同时满足约束条件 0 < α i n e w < C , i = 1 , 2 0<\alpha_i^{new}<C,i = 1,2 0<αinew<C,i=1,2,则会有 b 1 n e w = b 2 n e w b_1^{new}=b_2^{new} b1new=b2new
- 当 α 1 n e w = 0 或 C , α 2 n e w = 0 或 C \alpha_1^{new}=0或C,\alpha_2^{new}=0或C α1new=0或C,α2new=0或C时,则 b 1 n e w , b 2 n e w b_1^{new},b_2^{new} b1new,b2new和他们之间的数都是满足KKT条件的,因此选择它们的中点,即 b n e w = b 1 n e w + b 2 n e w 2 b^{new}=\frac{b_1^{new}+b_2^{new}}{2} bnew=2b1new+b2new
前面我们假设选取了两个点,但是,实际情况我应该按照怎样的准则来选取这两个点呢?
这里具体的KKT条件为什么是这样的没有详细阐述,我就按自己的理解阐述一下:
首先我们来看之前的对偶问题:
max
α
:
α
i
≥
=
0
min
w
,
b
L
(
w
,
b
,
α
)
\max_{\alpha:\alpha_i\geq = 0}\min_{w,b}L(w,b,\alpha)
α:αi≥=0maxw,bminL(w,b,α)其中
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
+
∑
i
=
1
n
α
i
(
1
−
y
i
(
w
T
⋅
x
i
+
b
)
)
L(w,b,\alpha) = \frac{1}{2}||w||^2+\sum_{i=1}^n\alpha_i(1-y_i(w^T\cdot x_i +b))
L(w,b,α)=21∣∣w∣∣2+i=1∑nαi(1−yi(wT⋅xi+b))其中,拉格朗日乘数
α
i
≥
0
,
∀
i
=
1
,
2
,
…
,
n
\alpha_i \geq 0, \forall i = 1,2,\dots,n
αi≥0,∀i=1,2,…,n,在添加了松弛变量之后,对于参数的约束变为
0
≤
α
i
≤
C
,
∀
i
=
1
,
2
,
…
,
n
0 \leq \alpha_i \leq C, \forall i = 1,2,\dots,n
0≤αi≤C,∀i=1,2,…,n
当我们直接看最外层求最大化的部分时(假设
w
,
b
w,b
w,b是确定的常数),那么,当
1
−
y
i
(
w
T
⋅
x
i
+
b
)
1-y_i(w^T\cdot x_i +b)
1−yi(wT⋅xi+b)取得不同值的时候,如下相应的
α
i
\alpha_i
αi的取值,才能使得其有最大值:
{
1
−
y
i
(
w
T
⋅
x
i
+
b
)
<
0
,
α
i
=
0
,
该
点
函
数
距
离
大
于
1
1
−
y
i
(
w
T
⋅
x
i
+
b
)
=
0
,
0
<
α
i
<
C
,
该
点
函
数
距
离
等
于
1
,
是
支
持
向
量
1
−
y
i
(
w
T
⋅
x
i
+
b
)
>
0
,
α
i
=
C
,
该
点
函
数
距
离
小
于
1
\begin{cases} 1-y_i(w^T\cdot x_i +b)<0,\ \ \ \ \alpha_i =0,该点函数距离大于1\\ 1-y_i(w^T\cdot x_i +b)=0,\ \ \ \ 0<\alpha_i <C,该点函数距离等于1,是支持向量\\ 1-y_i(w^T\cdot x_i +b)>0,\ \ \ \ \alpha_i =C,该点函数距离小于1\\ \end{cases}
⎩⎪⎨⎪⎧1−yi(wT⋅xi+b)<0, αi=0,该点函数距离大于11−yi(wT⋅xi+b)=0, 0<αi<C,该点函数距离等于1,是支持向量1−yi(wT⋅xi+b)>0, αi=C,该点函数距离小于1
所以我们先找到一个点 ( x i , y i ) (x_i,y_i) (xi,yi)以及对应的 α i \alpha_i αi不满足上述的条件,定为 α 1 \alpha_1 α1;然后在计算使得 ∣ E 1 − E 2 ∣ |E_1-E_2| ∣E1−E2∣取最大值的点 ( x j , y j ) (x_j,y_j) (xj,yj)对应的 α j \alpha_j αj为 α 2 \alpha_2 α2。
综上所述,SMO算法的具体流程如下:
- 随机数初始化向量权重 α i ∀ i = 1 , 2 , … , n \alpha_i \forall i = 1,2,\dots,n αi∀i=1,2,…,n及 b b b
- 计算误差项 E i = f ( x i ) − y i E_i=f(x_i)-y_i Ei=f(xi)−yi,其中, f ( x ) = w T ⋅ x + b = ∑ i = 1 n α i y i K ( x i , x ) + b f(x)=w^T\cdot x +b = \sum_{i=1}^n\alpha_iy_iK(x_i,x)+b f(x)=wT⋅x+b=∑i=1nαiyiK(xi,x)+b
- 根据上述参数选择原则,选择两个待优化的点 ( x 1 , y 1 ) , ( x 2 , y 2 ) (x_1,y_1),(x_2,y_2) (x1,y1),(x2,y2)及对应的参数 α 1 o l d , α 2 o l d \alpha_1^{old},\alpha_2^{old} α1old,α2old
- 令 α 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^{old}+\frac{y_2(E_1-E_2)}{\eta} α2new,unclipped=α2old+ηy2(E1−E2),其中 η = K ( x 1 , x 1 ) + K ( x 2 , y 2 ) − 2 K ( x 1 , x 2 ) \eta=K(x_1,x_1)+K(x_2,y_2)-2K(x_1,x_2) η=K(x1,x1)+K(x2,y2)−2K(x1,x2)
- 根据取值范围对得到的 α 2 n e w , u n c l i p p e d \alpha_2^{new,unclipped} α2new,unclipped进行裁剪 α 2 n e w = { H , α 2 n e w , u n c l i p p e d > H α 2 n e w , u n c l i p p e d , L ≤ α x n e w , u n c l i p p e d ≤ H L , α 2 n e w , u n c l i p p e d < L \alpha_2^{new}= \begin{cases} H,\ \ \ \ \ \ \ \ \ \ \ \ \alpha_2^{new,unclipped} > H\\ \alpha_2^{new,unclipped},\ \ \ \ \ \ \ \ L\leq \alpha_x^{new,unclipped}\leq H\\ L,\ \ \ \ \ \ \ \ \ \ \ \ \ \alpha_2^{new,unclipped}<L \end{cases} α2new=⎩⎪⎨⎪⎧H, α2new,unclipped>Hα2new,unclipped, L≤αxnew,unclipped≤HL, α2new,unclipped<L其中,当 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 } \begin{cases} L=\max\{0, \alpha_2^{old}-\alpha_1^{old}\}\\ H=\min\{C,C+\alpha_2^{old}-\alpha_1^{old}\} \end{cases} {L=max{0,α2old−α1old}H=min{C,C+α2old−α1old}当 y 1 = y 2 y_1= y_2 y1=y2时,有 { L = max { 0 , α 2 o l d + α 2 o l d − C } H = min { C , α 2 o l d + α 2 o l d } \begin{cases} L=\max\{0, \alpha_2^{old}+\alpha_2^{old}-C\}\\ H=\min\{C, \alpha_2^{old}+\alpha_2^{old}\} \end{cases} {L=max{0,α2old+α2old−C}H=min{C,α2old+α2old}
- 通过裁剪过后的 α 2 n e w \alpha_2^{new} α2new计算 α 1 n e w \alpha_1^{new} α1new: α 1 n e w = α 1 o l d + y 1 y 2 ( α 2 o l d − α 2 n e w ) \alpha_1^{new}=\alpha_1^{old}+y_1y_2(\alpha_2^{old}-\alpha_2^{new}) α1new=α1old+y1y2(α2old−α2new)
- 根据 α 1 n e w , α 2 n e w \alpha_1^{new},\alpha_2^{new} α1new,α2new计算 b 1 n e w , b 2 n e w b_1^{new},b_2^{new} b1new,b2new从而得到 b n e w b^{new} bnew: b 1 n e w = − E 1 − y 1 K ( x 1 , x 1 ) ( α 1 n e w − α 1 o l d ) − y 2 K ( x 2 , x 1 ) ( α 2 n e w − α 2 o l d ) + b o l d b_1^{new}=-E_1 - y_1K(x_1,x_1)(\alpha_1^{new}-\alpha_1^{old})- y_2K(x_2,x_1)(\alpha_2^{new}-\alpha_2^{old})+ b_{old} b1new=−E1−y1K(x1,x1)(α1new−α1old)−y2K(x2,x1)(α2new−α2old)+bold b 2 n e w = − E 2 − y 1 K ( x 1 , x 2 ) ( α 1 n e w − α 1 o l d ) − y 2 K ( x 2 , x 2 ) ( α 2 n e w − α 2 o l d ) + b o l d b_2^{new}=-E_2 - y_1K(x_1,x_2)(\alpha_1^{new}-\alpha_1^{old})- y_2K(x_2,x_2)(\alpha_2^{new}-\alpha_2^{old})+ b_{old} b2new=−E2−y1K(x1,x2)(α1new−α1old)−y2K(x2,x2)(α2new−α2old)+bold b n e w = b 1 n e w + b 2 n e w 2 b^{new}=\frac{b_1^{new}+b_2^{new}}{2} bnew=2b1new+b2new
- 根据得到的 α 1 n e w , α 2 n e w , b n e w \alpha_1^{new},\alpha_2^{new},b^{new} α1new,α2new,bnew得到全新的误差值 E i n e w E_i^{new} Einew
- 查看是否到达终止条件,常用的终止条件有1)最大迭代次数2)目标函数 W W W的增长率小于某个阈值,即 W ( α n e w ) − W ( α o l d ) W ( α o l d ) < δ \frac{W(\alpha^{new})-W(\alpha^{old})}{W(\alpha^{old})}<\delta W(αold)W(αnew)−W(αold)<δ(这里的增长率要看你求的目标函数是最大值还是最小值来确定公式和阈值,此例是求最大值时用的)
支持向量机的原理和实现
支持向量机(SVM)——SMO算法
机器学习算法实践-SVM中的SMO算法
序列最小优化算法
以上就是整理的关于SVM的全部内容,内容很多,了解的还有些杂乱,希望以后能够逐渐吃透里面的各种细节。