KKT条件
对于b的值,我们需要引入KKT条件,只要原问题和对偶问题是强对偶关系,那么我们就说其满足KKT条件,此处不做证明,感兴趣的读者可以自己查阅。对于我们此处要解决的问题,其一定满足以下条件
{
∂
L
(
w
,
b
,
λ
)
∂
w
=
0
,
∂
L
(
w
,
b
,
λ
)
∂
b
=
0.
λ
i
[
1
−
y
i
(
w
T
x
i
+
b
)
]
=
0.
1
−
y
i
(
w
T
x
i
+
b
)
≤
0.
λ
i
≥
0.
\left\{ \begin{matrix} \frac{\partial{L(w,b,\lambda)}}{\partial{w}}=0,\frac{\partial{L(w,b,\lambda)}}{\partial{b}}=0. \\\lambda_i[1-y_i(w^Tx_i+b)]=0. \\1-y_i(w^Tx_i+b) \le0. \\\lambda_i \ge0. \end{matrix} \right.
⎩
⎨
⎧∂w∂L(w,b,λ)=0,∂b∂L(w,b,λ)=0.λi[1−yi(wTxi+b)]=0.1−yi(wTxi+b)≤0.λi≥0.
对于KKT条件,因为
λ
i
[
1
−
y
i
(
w
T
x
i
+
b
)
]
=
0
\lambda_i[1-y_i(w^Tx_i+b)]=0
λi[1−yi(wTxi+b)]=0,所以要么就是
λ
i
=
0
\lambda_i=0
λi=0,要么就是
1
−
y
i
(
w
T
x
i
+
b
)
=
0
1-y_i(w^Tx_i+b)=0
1−yi(wTxi+b)=0,
我们要寻找b的表达式,显然在等式中,里面包含有b这个量,但倘若是
λ
i
=
0
\lambda_i=0
λi=0,那么等式中的b也会毫无意义,因此,为了寻找b,只能够在λ不为0的时候找到。所以
λ
i
[
1
−
y
i
(
w
T
x
i
+
b
)
]
=
0
→
1
−
y
i
(
w
T
x
i
+
b
)
=
0
即
y
i
(
w
T
x
i
+
b
)
=
1
等式左右乘以
w
T
x
i
+
b
=
y
i
即
b
=
y
i
−
w
T
x
i
=
y
i
−
∑
i
=
1
n
λ
i
y
i
x
i
T
x
i
\begin{equation} \begin{aligned} &\lambda_i[1-y_i(w^Tx_i+b)]=0 \rightarrow 1-y_i(w^Tx_i+b)=0 \\即 \hspace{1cm}& y_i(w^Tx_i+b)=1 \\等式左右乘以\hspace{1cm}& w^Tx_i+b=y_i \\即 \hspace{1cm}& b=y_i-w^Tx_i=y_i-\sum\limits_{i=1}^n\lambda_iy_ix_i^Tx_i \end{aligned} \end{equation}
即等式左右乘以即λi[1−yi(wTxi+b)]=0→1−yi(wTxi+b)=0yi(wTxi+b)=1wTxi+b=yib=yi−wTxi=yi−i=1∑nλiyixiTxi
至此,我们得到
w
=
∑
i
=
1
n
λ
i
y
i
x
i
;
b
=
y
i
−
∑
i
=
1
n
λ
i
y
i
x
i
T
x
i
w=\sum\limits_{i=1}^n\lambda_iy_ix_i;b=y_i-\sum\limits_{i=1}^n\lambda_iy_ix_i^Tx_i
w=i=1∑nλiyixi;b=yi−i=1∑nλiyixiTxi
那么接下来的问题就变成了如何求出w、b中打拉格朗日算子λ。我们回到对偶问题
{
max
λ
∑
i
=
1
n
λ
i
−
1
2
∑
i
=
1
n
∑
j
=
1
n
λ
i
y
i
λ
j
y
j
x
i
T
x
j
s
.
t
.
λ
i
≥
0.
i
∈
1
,
2
,
⋯
n
∑
i
=
1
n
λ
i
y
i
=
0
\left\{ \begin{matrix} \max\limits_{\lambda}\sum\limits_{i=1}^n\lambda_i-\frac{1}{2}\sum\limits_{i=1}^n\sum\limits_{j=1}^n\lambda_iy_i\lambda_jy_jx_i^Tx_j \\s.t. \hspace{1cm} \lambda_i \ge 0.i \in 1,2,\cdots n \\\sum\limits_{i=1}^n\lambda_iy_i=0 \end{matrix} \right.
⎩
⎨
⎧λmaxi=1∑nλi−21i=1∑nj=1∑nλiyiλjyjxiTxjs.t.λi≥0.i∈1,2,⋯ni=1∑nλiyi=0
乍一看,我们好像又回到了原点,这到底还是一个带有n个约束的极值问题,但是,现在的目标函数中,已经没有了w,b,只有λ这一个变量了,并且我们还有了w,b与λ的关系式。因此,我们只需要求出λ,就可以了。
SMO算法
SMO算法和坐标上升法有些类似,先了解一下坐标上升法对SMO有很大帮助。
坐标上升法
举个栗子,假设我们现在有一个二元函数。
f
(
x
1
,
x
2
)
=
2
x
1
2
−
3
x
2
2
+
x
1
x
2
f(x_1,x_2)=2x_1^2-3x_2^2+x_1x_2
f(x1,x2)=2x12−3x22+x1x2
如果我们要求它的极值,那么就可以使用坐标上升法。
坐标上升法的核心思想是,选定一个变量,固定住其余的变量,然后求导不断迭代求出最终的结果。
比如在上面的例子中,我们选定
x
1
x_1
x1,固定
x
2
x_2
x2,然后对
x
1
x_1
x1求导得0
4
x
1
+
x
2
=
0
→
x
1
=
−
x
2
4
4x_1+x_2=0 \rightarrow x_1=-\frac{x_2}{4}
4x1+x2=0→x1=−4x2
再选定
x
2
x_2
x2,固定住
x
1
x_1
x1,对
x
2
x_2
x2求导得0
−
6
x
2
+
x
1
=
0
→
x
2
=
x
1
6
-6x_2+x_1=0 \rightarrow x_2=\frac{x_1}{6}
−6x2+x1=0→x2=6x1
得到了
x
1
、
x
2
x_1、x_2
x1、x2的公式,接下来我们只需要随机初始化
x
1
,
x
2
x_1,x_2
x1,x2的值,比如
x
1
=
1
,
x
2
=
2
x_1=1,x_2=2
x1=1,x2=2,接下来就开始迭代
①选定 x 1 x_1 x1,固定 x 2 x_2 x2, x 1 = − 2 4 = − 0.5 x_1=-\frac{2}{4}=-0.5 x1=−42=−0.5
②选定 x 2 x_2 x2,固定 x 1 x_1 x1, x 2 = − 0.5 6 x_2=\frac{-0.5}{6} x2=6−0.5
③循环①②步骤,直到模型收敛。
为什么坐标上升法可以收敛?道上的事儿少打听。总之这种方法就是可以逐渐逼近收敛。实际上就是一个一个分量(方向)地走。
而SMO与坐标上升法类似,只不过SMO是固定两个分量罢了,其他都一样。为什么要固定两个分量?既然坐标上升法理论上可以收敛了,为什么不直接采用呢?我们来看 ∑ i = 1 n λ i y i = 0 \sum\limits_{i=1}^n\lambda_iy_i=0 i=1∑nλiyi=0这个约束条件,如果我们选定了了 λ 1 \lambda_1 λ1,固定其余变量,那么依据约束条件,我们直接就可以算出 λ 1 \lambda_1 λ1的值了,就没有意义了啊。
那么我们对下面的目标函数先保留
λ
1
、
λ
2
\lambda_1、\lambda_2
λ1、λ2。
{
max
λ
∑
i
=
1
n
λ
i
−
1
2
∑
i
=
1
n
∑
j
=
1
n
λ
i
y
i
λ
j
y
j
x
i
T
x
j
s
.
t
.
λ
i
≥
0.
i
∈
1
,
2
,
⋯
n
∑
i
=
1
n
λ
i
y
i
=
0
\left\{ \begin{matrix} \max\limits_{\lambda}\sum\limits_{i=1}^n\lambda_i-\frac{1}{2}\sum\limits_{i=1}^n\sum\limits_{j=1}^n\lambda_iy_i\lambda_jy_jx_i^Tx_j \\s.t. \hspace{1cm} \lambda_i \ge 0.i \in 1,2,\cdots n \\\sum\limits_{i=1}^n\lambda_iy_i=0 \end{matrix} \right.
⎩
⎨
⎧λmaxi=1∑nλi−21i=1∑nj=1∑nλiyiλjyjxiTxjs.t.λi≥0.i∈1,2,⋯ni=1∑nλiyi=0
对于约束条件保留,我们拆开
λ
1
y
1
+
λ
2
y
2
+
∑
i
=
3
n
λ
i
y
i
=
0
因为:
∑
i
=
3
n
λ
i
y
i
是一个定值
令:
∑
i
=
3
n
λ
i
y
i
=
−
C
得:
λ
1
y
1
=
C
−
λ
2
y
2
左右两边乘以
y
1
得:
λ
1
=
(
C
−
λ
2
y
2
)
y
1
\begin{equation} \begin{aligned} &\lambda_1y_1+\lambda_2y_2+\sum\limits_{i=3}^n\lambda_iy_i=0 \\&因为:\sum\limits_{i=3}^n\lambda_iy_i是一个定值 \\&令:\sum\limits_{i=3}^n\lambda_iy_i=-C \\&得:\lambda_1y_1=C-\lambda_2y_2 \\&左右两边乘以y_1得: \\&\lambda_1=(C-\lambda_2y_2)y_1 \end{aligned} \end{equation}
λ1y1+λ2y2+i=3∑nλiyi=0因为:i=3∑nλiyi是一个定值令:i=3∑nλiyi=−C得:λ1y1=C−λ2y2左右两边乘以y1得:λ1=(C−λ2y2)y1
对于目标函数,我们拆开
L
(
λ
1
,
λ
2
)
=
∑
i
=
1
n
λ
i
−
1
2
∑
i
=
1
n
∑
j
=
1
n
λ
i
y
i
λ
j
y
j
x
i
T
x
j
=
λ
1
+
λ
2
+
∑
i
=
3
n
λ
i
−
1
2
∑
i
=
1
n
∑
j
=
1
n
λ
i
y
i
λ
j
y
j
x
i
T
x
j
\begin{equation} \begin{aligned} L(\lambda_1,\lambda_2)=&\sum\limits_{i=1}^n\lambda_i-\frac{1}{2}\sum\limits_{i=1}^n\sum\limits_{j=1}^n\lambda_iy_i\lambda_jy_jx_i^Tx_j \\&=\lambda_1+\lambda_2+\sum\limits_{i=3}^n\lambda_i-\frac{1}{2}\sum\limits_{i=1}^n\sum\limits_{j=1}^n\lambda_iy_i\lambda_jy_jx_i^Tx_j \end{aligned} \end{equation}
L(λ1,λ2)=i=1∑nλi−21i=1∑nj=1∑nλiyiλjyjxiTxj=λ1+λ2+i=3∑nλi−21i=1∑nj=1∑nλiyiλjyjxiTxj
对于后面的 ∑ i = 1 n ∑ j = 1 n λ i y i λ j y j x i T x j \sum\limits_{i=1}^n\sum\limits_{j=1}^n\lambda_iy_i\lambda_jy_jx_i^Tx_j i=1∑nj=1∑nλiyiλjyjxiTxj,我们单独写开,因为有点复杂。并且为了表达简便,令 x i T x j = K i j = K j i x_i^Tx_j=K_{ij}=K_{ji} xiTxj=Kij=Kji。
对于
∑
i
=
1
n
∑
j
=
1
n
λ
i
y
i
λ
j
y
j
x
i
T
x
j
有以下几种可能
①
i
=
1
,
j
=
1
→
λ
1
y
1
λ
1
y
1
K
11
→
λ
1
2
K
11
②
i
=
1
,
j
=
2
→
λ
1
y
1
λ
2
y
2
K
12
③
i
=
1
,
j
≥
3
→
∑
j
=
3
n
λ
1
y
1
λ
j
y
j
K
1
j
④
i
=
2
,
j
=
1
→
λ
2
y
2
λ
1
y
1
K
21
⑤
i
=
2
,
j
=
2
→
λ
2
y
2
λ
2
y
2
K
22
→
λ
2
2
K
22
⑥
i
=
2
,
j
≥
3
→
∑
j
=
3
n
λ
2
y
2
λ
j
y
j
K
2
j
⑦
i
≥
3
,
j
=
1
→
∑
i
=
3
n
λ
i
y
i
λ
1
y
1
K
i
1
⑧
i
≥
3
,
j
=
2
→
∑
i
=
3
n
λ
i
y
i
λ
2
y
2
K
i
2
⑨
i
≥
3
,
j
≥
3
→
∑
i
=
3
n
∑
j
=
3
n
λ
i
y
i
λ
j
y
j
K
i
j
\begin{equation} \begin{aligned} &对于\sum\limits_{i=1}^n\sum\limits_{j=1}^n\lambda_iy_i\lambda_jy_jx_i^Tx_j \\&有以下几种可能 \\&①i=1,j=1 \rightarrow \lambda_1y_1\lambda_1y_1K_{11} \rightarrow \lambda_1^2K_{11} \\&②i=1,j=2 \rightarrow \lambda_1y_1\lambda_2y_2K_{12} \\&③i=1,j\ge3 \rightarrow \sum\limits_{j=3}^n\lambda_1y_1\lambda_jy_jK_{1j} \\&④i=2,j=1 \rightarrow \lambda_2y_2\lambda_1y_1K_{21} \\&⑤i=2,j=2 \rightarrow \lambda_2y_2\lambda_2y_2K_{22} \rightarrow \lambda_2^2K_{22} \\&⑥i=2,j\ge3 \rightarrow \sum\limits_{j=3}^n\lambda_2y_2\lambda_jy_jK_{2j} \\&⑦i\ge3,j=1 \rightarrow \sum\limits_{i=3}^n\lambda_iy_i\lambda_1y_1K_{i1} \\&⑧i\ge3,j=2 \rightarrow \sum\limits_{i=3}^n\lambda_iy_i\lambda_2y_2K_{i2} \\&⑨i\ge3,j\ge3 \rightarrow \sum\limits_{i=3}^n\sum\limits_{j=3}^n\lambda_iy_i\lambda_jy_jK_{ij} \end{aligned} \end{equation}
对于i=1∑nj=1∑nλiyiλjyjxiTxj有以下几种可能①i=1,j=1→λ1y1λ1y1K11→λ12K11②i=1,j=2→λ1y1λ2y2K12③i=1,j≥3→j=3∑nλ1y1λjyjK1j④i=2,j=1→λ2y2λ1y1K21⑤i=2,j=2→λ2y2λ2y2K22→λ22K22⑥i=2,j≥3→j=3∑nλ2y2λjyjK2j⑦i≥3,j=1→i=3∑nλiyiλ1y1Ki1⑧i≥3,j=2→i=3∑nλiyiλ2y2Ki2⑨i≥3,j≥3→i=3∑nj=3∑nλiyiλjyjKij
接着只需要合并同类项然后相加,再乘以前面的\frac{1}{2}即可
L
(
λ
1
,
λ
2
)
=
∑
i
=
1
n
λ
i
−
1
2
∑
i
=
1
n
∑
j
=
1
n
λ
i
y
i
λ
j
y
j
x
i
T
x
j
=
λ
1
+
λ
2
+
∑
i
=
3
n
λ
i
−
1
2
(
λ
1
2
K
11
+
λ
2
2
K
22
+
2
λ
1
y
1
λ
2
y
2
K
12
+
2
∑
j
=
3
n
λ
1
y
1
λ
j
y
j
K
1
j
+
2
∑
j
=
3
n
λ
2
y
2
λ
j
y
j
K
2
j
+
∑
i
=
3
n
∑
j
=
3
n
λ
i
y
i
λ
j
y
j
K
i
j
)
\begin{equation} \begin{aligned} L(\lambda_1,\lambda_2)=&\sum\limits_{i=1}^n\lambda_i-\frac{1}{2}\sum\limits_{i=1}^n\sum\limits_{j=1}^n\lambda_iy_i\lambda_jy_jx_i^Tx_j \\&=\lambda_1+\lambda_2+\sum\limits_{i=3}^n\lambda_i-\frac{1}{2}\left(\lambda_1^2K_{11}+\lambda_2^2K_{22}+\\2\lambda_1y_1\lambda_2y_2K_{12}+2\sum\limits_{j=3}^n\lambda_1y_1\lambda_jy_jK_{1j}+2\sum\limits_{j=3}^n\lambda_2y_2\lambda_jy_jK_{2j}+\sum\limits_{i=3}^n\sum\limits_{j=3}^n\lambda_iy_i\lambda_jy_jK_{ij} \right) \end{aligned} \end{equation}
L(λ1,λ2)=i=1∑nλi−21i=1∑nj=1∑nλiyiλjyjxiTxj=λ1+λ2+i=3∑nλi−21(λ12K11+λ22K22+2λ1y1λ2y2K12+2j=3∑nλ1y1λjyjK1j+2j=3∑nλ2y2λjyjK2j+i=3∑nj=3∑nλiyiλjyjKij)
将
λ
1
=
(
C
−
λ
2
y
2
)
y
1
\lambda_1=(C-\lambda_2y_2)y_1
λ1=(C−λ2y2)y1代入,得
L
(
λ
2
)
=
(
C
−
λ
2
y
2
)
y
1
+
λ
2
+
∑
i
=
3
n
λ
i
−
1
2
(
[
(
C
−
λ
2
y
2
)
y
1
]
2
K
11
+
λ
2
2
K
22
+
2
[
(
C
−
λ
2
y
2
)
y
1
]
y
1
λ
2
y
2
K
12
+
2
∑
j
=
3
n
[
(
C
−
λ
2
y
2
)
y
1
]
y
1
λ
j
y
j
K
1
j
+
2
∑
j
=
3
n
λ
2
y
2
λ
j
y
j
K
2
j
+
∑
i
=
3
n
∑
j
=
3
n
λ
i
y
i
λ
j
y
j
K
i
j
)
=
(
C
−
λ
2
y
2
)
y
1
+
λ
2
+
∑
i
=
3
n
λ
i
−
1
2
(
(
C
y
1
−
λ
2
y
2
y
1
)
2
K
11
+
λ
2
2
K
22
+
2
C
λ
2
y
2
K
12
−
2
λ
2
2
K
12
+
2
∑
j
=
3
n
(
C
λ
j
y
j
K
1
j
−
λ
2
y
2
λ
j
y
j
K
1
j
)
+
2
∑
j
=
3
n
λ
2
y
2
λ
j
y
j
K
2
j
+
∑
i
=
3
n
∑
j
=
3
n
λ
i
y
i
λ
j
y
j
K
i
j
)
\begin{equation} \begin{aligned} L(\lambda_2)&=(C-\lambda_2y_2)y_1+\lambda_2+\sum\limits_{i=3}^n\lambda_i-\frac{1}{2}\left([(C-\lambda_2y_2)y_1]^2K_{11}+\lambda_2^2K_{22}+2[(C-\lambda_2y_2)y_1]y_1\lambda_2y_2K_{12}+\\2\sum\limits_{j=3}^n[(C-\lambda_2y_2)y_1]y_1\lambda_jy_jK_{1j}+2\sum\limits_{j=3}^n\lambda_2y_2\lambda_jy_jK_{2j}+\sum\limits_{i=3}^n\sum\limits_{j=3}^n\lambda_iy_i\lambda_jy_jK_{ij} \right) \\&=(C-\lambda_2y_2)y_1+\lambda_2+\sum\limits_{i=3}^n\lambda_i-\frac{1}{2}\left( (Cy_1-\lambda_2y_2y_1)^2K_{11}+\lambda_2^2K_{22}+2C\lambda_2y_2K_{12}-2\lambda_2^2K_{12}\\+ 2\sum\limits_{j=3}^n(C\lambda_jy_jK_{1j}-\lambda_2y_2\lambda_jy_jK_{1j})+2\sum\limits_{j=3}^n\lambda_2y_2\lambda_jy_jK_{2j}+\sum\limits_{i=3}^n\sum\limits_{j=3}^n\lambda_iy_i\lambda_jy_jK_{ij} \right ) \end{aligned} \end{equation}
L(λ2)=(C−λ2y2)y1+λ2+i=3∑nλi−21([(C−λ2y2)y1]2K11+λ22K22+2[(C−λ2y2)y1]y1λ2y2K12+2j=3∑n[(C−λ2y2)y1]y1λjyjK1j+2j=3∑nλ2y2λjyjK2j+i=3∑nj=3∑nλiyiλjyjKij)=(C−λ2y2)y1+λ2+i=3∑nλi−21((Cy1−λ2y2y1)2K11+λ22K22+2Cλ2y2K12−2λ22K12+2j=3∑n(CλjyjK1j−λ2y2λjyjK1j)+2j=3∑nλ2y2λjyjK2j+i=3∑nj=3∑nλiyiλjyjKij)
对其关于
λ
2
\lambda_2
λ2求导等于0
∂
L
(
λ
2
)
∂
λ
2
=
−
y
2
y
1
+
1
−
1
2
(
2
(
C
y
1
−
λ
2
y
2
y
1
)
(
−
y
2
y
1
)
K
11
+
2
λ
2
K
22
+
2
C
y
2
K
12
−
4
λ
2
K
12
−
2
∑
j
=
3
n
y
2
λ
j
y
j
K
1
j
+
2
∑
j
=
3
n
y
2
λ
j
y
j
K
2
j
)
=
−
y
2
y
1
+
1
+
C
y
2
K
11
−
λ
2
K
11
−
λ
2
K
22
−
C
y
2
K
12
+
2
λ
2
K
12
+
∑
j
=
3
n
y
2
λ
j
y
j
K
1
j
−
∑
j
=
3
n
y
2
λ
j
y
j
K
2
j
=
−
y
2
y
1
+
1
+
C
y
2
K
11
−
λ
2
K
11
−
λ
2
K
22
−
C
y
2
K
12
+
2
λ
2
K
12
+
y
2
∑
j
=
3
n
λ
j
y
j
K
1
j
−
y
2
∑
j
=
3
n
λ
j
y
j
K
2
j
=
0
\begin{equation} \begin{aligned} &\frac{\partial{L(\lambda_2)}}{\partial{\lambda_2}} \\&=-y_2y_1+1-\frac{1}{2} \left ( 2(Cy_1-\lambda_2y_2y_1)(-y_2y_1)K_{11}+2\lambda_2K_{22}+2Cy_2K_{12}-4\lambda_2K_{12}-2\sum\limits_{j=3}^ny_2\lambda_jy_jK_{1j}\\+2\sum\limits_{j=3}^ny_2\lambda_jy_jK_{2j} \right) \\&=-y_2y_1+1+Cy_2K_{11}-\lambda_2K_{11}-\lambda_2K_{22}-Cy_2K_{12}+2\lambda_2K_{12}+\sum\limits_{j=3}^ny_2\lambda_jy_jK_{1j}-\sum\limits_{j=3}^ny_2\lambda_jy_jK_{2j} \\&=-y_2y_1+1+Cy_2K_{11}-\lambda_2K_{11}-\lambda_2K_{22}-Cy_2K_{12}+2\lambda_2K_{12}+y_2\sum\limits_{j=3}^n\lambda_jy_jK_{1j}-y_2\sum\limits_{j=3}^n\lambda_jy_jK_{2j}=0 \end{aligned} \end{equation}
∂λ2∂L(λ2)=−y2y1+1−21(2(Cy1−λ2y2y1)(−y2y1)K11+2λ2K22+2Cy2K12−4λ2K12−2j=3∑ny2λjyjK1j+2j=3∑ny2λjyjK2j)=−y2y1+1+Cy2K11−λ2K11−λ2K22−Cy2K12+2λ2K12+j=3∑ny2λjyjK1j−j=3∑ny2λjyjK2j=−y2y1+1+Cy2K11−λ2K11−λ2K22−Cy2K12+2λ2K12+y2j=3∑nλjyjK1j−y2j=3∑nλjyjK2j=0
将
λ
2
\lambda_2
λ2单独提到一边(注意,因为SMO是迭代式算法,所以我们都有一个初始的λ,为了区分,我们用
λ
n
e
w
\lambda^{new}
λnew代表新的值,用
λ
o
l
d
\lambda^{old}
λold代表旧的值)
λ
2
n
e
w
(
K
11
+
K
22
−
2
K
12
)
=
1
−
y
2
y
1
+
C
y
2
K
11
−
C
y
2
K
12
+
y
2
∑
j
=
3
n
λ
j
y
j
K
1
j
−
y
2
∑
j
=
3
n
λ
j
y
j
K
2
j
\lambda_2^{new}(K_{11}+K_{22}-2K_{12})=1-y_2y_1+Cy_2K_{11}-Cy_2K_{12}+y_2\sum\limits_{j=3}^n\lambda_jy_jK_{1j}-y_2\sum\limits_{j=3}^n\lambda_jy_jK_{2j}
λ2new(K11+K22−2K12)=1−y2y1+Cy2K11−Cy2K12+y2j=3∑nλjyjK1j−y2j=3∑nλjyjK2j
我们知道
f
(
x
)
=
w
T
x
+
b
f(x)=w^Tx+b
f(x)=wTx+b,当取
x
1
x_1
x1时,得
f
(
x
1
)
=
w
T
x
1
+
b
=
∑
i
=
1
n
(
λ
i
y
i
x
i
T
x
1
)
+
b
=
λ
1
y
1
x
1
T
x
1
+
λ
2
y
2
x
2
T
x
1
+
∑
i
=
3
n
(
λ
i
y
i
K
i
1
)
+
b
=
λ
1
y
1
K
11
+
λ
2
y
2
K
21
+
∑
i
=
3
n
(
λ
i
y
i
K
i
1
)
+
b
移项得:
∑
i
=
3
n
(
λ
i
y
i
K
i
1
)
=
f
(
x
1
)
−
λ
1
y
1
K
11
−
λ
2
y
2
K
21
−
b
\begin{equation} \begin{aligned} f(x_1)&=w^Tx_1+b \\&=\sum\limits_{i=1}^n(\lambda_iy_ix_i^Tx_1)+b \\&=\lambda_1y_1x_1^Tx_1+\lambda_2y_2x_2^Tx_1+\sum\limits_{i=3}^n(\lambda_iy_iK_{i1})+b \\&=\lambda_1y_1K_{11}+\lambda_2y_2K_{21}+\sum\limits_{i=3}^n(\lambda_iy_iK_{i1})+b \\&移项得: \\&\sum\limits_{i=3}^n(\lambda_iy_iK_{i1})=f(x_1)-\lambda_1y_1K_{11}-\lambda_2y_2K_{21}-b \end{aligned} \end{equation}
f(x1)=wTx1+b=i=1∑n(λiyixiTx1)+b=λ1y1x1Tx1+λ2y2x2Tx1+i=3∑n(λiyiKi1)+b=λ1y1K11+λ2y2K21+i=3∑n(λiyiKi1)+b移项得:i=3∑n(λiyiKi1)=f(x1)−λ1y1K11−λ2y2K21−b
同理得
x
2
x_2
x2
∑
i
=
3
n
(
λ
i
y
i
K
i
2
)
=
f
(
x
2
)
−
λ
1
y
1
K
12
−
λ
2
y
2
K
22
−
b
\sum\limits_{i=3}^n(\lambda_iy_iK_{i2})=f(x_2)-\lambda_1y_1K_{12}-\lambda_2y_2K_{22}-b
i=3∑n(λiyiKi2)=f(x2)−λ1y1K12−λ2y2K22−b
因为
K
i
j
=
K
j
i
K_{ij}=K_{ji}
Kij=Kji,仔细看所得的式子,它刚好在我们对
λ
2
\lambda_2
λ2求导所得的式子,将其代入,并且此时的λ都是旧的λ
λ
2
(
K
11
+
K
22
−
2
K
12
)
=
1
−
y
2
y
1
+
C
y
2
K
11
−
C
y
2
K
12
+
y
2
∑
j
=
3
n
λ
j
y
j
K
1
j
−
y
2
∑
j
=
3
n
λ
j
y
j
K
2
j
=
1
−
y
2
y
1
+
C
y
2
K
11
−
C
y
2
K
12
+
y
2
(
f
(
x
1
)
−
λ
1
o
l
d
y
1
K
11
−
λ
2
o
l
d
y
2
K
21
−
b
)
−
y
2
(
f
(
x
2
)
−
λ
1
o
l
d
y
1
K
12
−
λ
2
o
l
d
y
2
K
22
−
b
)
=
y
2
(
y
2
−
y
1
+
C
K
11
−
C
K
12
+
f
(
x
1
)
−
λ
1
o
l
d
y
1
K
11
−
λ
2
o
l
d
y
2
K
21
−
b
−
f
(
x
2
)
+
λ
1
o
l
d
y
1
K
12
+
λ
2
o
l
d
y
2
K
22
+
b
)
\begin{equation} \begin{aligned} \lambda_2(K_{11}+K_{22}-2K_{12})&=1-y_2y_1+Cy_2K_{11}-Cy_2K_{12}+y_2\sum\limits_{j=3}^n\lambda_jy_jK_{1j}-y_2\sum\limits_{j=3}^n\lambda_jy_jK_{2j} \\&=1-y_2y_1+Cy_2K_{11}-Cy_2K_{12}+y_2 \left ( f(x_1)-\lambda_1^{old}y_1K_{11}-\lambda_2^{old}y_2K_{21}-b \right ) \\&-y_2 \left( f(x_2)-\lambda_1^{old}y_1K_{12}-\lambda_2^{old}y_2K_{22}-b \right) \\&=y_2 ( y_2-y_1+CK_{11}-CK_{12}+f(x_1)-\lambda_1^{old}y_1K_{11}-\lambda_2^{old}y_2K_{21}-b-f(x_2)+ \\& \lambda_1^{old}y_1K_{12}+\lambda_2^{old}y_2K_{22}+b) \end{aligned} \end{equation}
λ2(K11+K22−2K12)=1−y2y1+Cy2K11−Cy2K12+y2j=3∑nλjyjK1j−y2j=3∑nλjyjK2j=1−y2y1+Cy2K11−Cy2K12+y2(f(x1)−λ1oldy1K11−λ2oldy2K21−b)−y2(f(x2)−λ1oldy1K12−λ2oldy2K22−b)=y2(y2−y1+CK11−CK12+f(x1)−λ1oldy1K11−λ2oldy2K21−b−f(x2)+λ1oldy1K12+λ2oldy2K22+b)
将
C
=
λ
1
y
1
+
λ
2
y
2
C=\lambda_1y_1+\lambda_2y_2
C=λ1y1+λ2y2回代
λ
2
n
e
w
(
K
11
+
K
22
−
2
K
12
)
=
y
2
(
y
2
−
y
1
+
λ
1
o
l
d
y
1
K
11
+
λ
2
o
l
d
y
2
K
11
−
λ
1
o
l
d
y
1
K
12
−
λ
2
o
l
d
y
2
K
12
+
f
(
x
1
)
−
λ
1
o
l
d
y
1
K
11
−
λ
2
o
l
d
y
2
K
21
−
b
−
f
(
x
2
)
+
λ
1
o
l
d
y
1
K
12
+
λ
2
o
l
d
y
2
K
22
+
b
)
=
y
2
(
y
2
−
y
1
+
λ
2
o
l
d
y
2
K
11
−
2
λ
2
o
l
d
y
2
K
21
+
f
(
x
1
)
−
f
(
x
2
)
+
λ
2
o
l
d
y
2
K
22
)
=
y
2
(
[
f
(
x
1
)
−
y
1
]
−
[
f
(
x
2
)
−
y
2
]
+
λ
2
o
l
d
y
2
[
K
11
+
K
22
−
2
K
21
]
)
等式两边除以
K
11
+
K
22
−
2
K
21
λ
2
n
e
w
=
y
2
(
[
f
(
x
1
)
−
y
1
]
−
[
f
(
x
2
)
−
y
2
]
)
K
11
+
K
22
−
2
K
21
+
λ
2
o
l
d
\begin{equation} \begin{aligned} &\lambda_2^{new}(K_{11}+K_{22}-2K_{12}) \\&= y_2\left( y_2-y_1+\lambda_1^{old}y_1K_{11}+\lambda_2^{old}y_2K_{11}-\lambda_1^{old}y_1K_{12}-\lambda_2^{old}y_2K_{12}+f(x_1)-\lambda_1^{old}y_1K_{11} \\-\lambda_2^{old}y_2K_{21}-b-f(x_2)+\lambda_1^{old}y_1K_{12}+\lambda_2^{old}y_2K_{22}+b \right ) \\&=y_2\left( y_2-y_1+\lambda_2^{old}y_2K_{11}-2\lambda_{2}^{old}y_2K_{21}+f(x_1)-f(x_2)+\lambda_{2}^{old}y_{2}K_{22} \right ) \\&= y_2\left( [f(x_1)-y_1]-[f(x_2)-y_2]+\lambda_{2}^{old}y_2[K_{11}+K_{22}-2K_{21}] \right) \\&等式两边除以K_{11}+K_{22}-2K_{21} \\&\lambda_{2}^{new}=\frac{y_2\left([f(x_1)-y_1]-[f(x_2)-y_2]\right)}{K_{11}+K_{22}-2K_{21}}+\lambda_2^{old} \end{aligned} \end{equation}
λ2new(K11+K22−2K12)=y2(y2−y1+λ1oldy1K11+λ2oldy2K11−λ1oldy1K12−λ2oldy2K12+f(x1)−λ1oldy1K11−λ2oldy2K21−b−f(x2)+λ1oldy1K12+λ2oldy2K22+b)=y2(y2−y1+λ2oldy2K11−2λ2oldy2K21+f(x1)−f(x2)+λ2oldy2K22)=y2([f(x1)−y1]−[f(x2)−y2]+λ2oldy2[K11+K22−2K21])等式两边除以K11+K22−2K21λ2new=K11+K22−2K21y2([f(x1)−y1]−[f(x2)−y2])+λ2old
为了表达简便,我们用
η
=
K
11
+
K
22
−
2
K
21
E
i
=
f
(
x
i
)
−
y
i
\eta=K_{11}+K_{22}-2K_{21}\\E_i=f(x_i)-y_i
η=K11+K22−2K21Ei=f(xi)−yi
所以最终
λ
2
n
e
w
=
λ
2
o
l
d
+
y
2
(
E
1
−
E
2
)
η
\lambda_2^{new}=\lambda_2^{old}+\frac{y_2(E_1-E_2)}{\eta}
λ2new=λ2old+ηy2(E1−E2)
至于 λ 1 n e w \lambda_1^{new} λ1new,利用 C = λ 1 y 1 + λ 2 y 2 C=\lambda_1y_1+\lambda_2y_2 C=λ1y1+λ2y2即可求出。但是仍然有一个条件,就是 λ \lambda λ必须是大于0的。