KKT条件
对于b的值,我们需要引入KKT条件,只要原问题和对偶问题是强对偶关系,那么我们就说其满足KKT条件,此处不做证明,感兴趣的读者可以自己查阅。对于我们此处要解决的问题,其一定满足以下条件
{∂L(w,b,λ)∂w=0,∂L(w,b,λ)∂b=0.λi[1−yi(wTxi+b)]=0.1−yi(wTxi+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−yi(wTxi+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−yi(wTxi+b)=01-y_i(w^Tx_i+b)=01−yi(wTxi+b)=0,
我们要寻找b的表达式,显然在等式中,里面包含有b这个量,但倘若是λi=0\lambda_i=0λi=0,那么等式中的b也会毫无意义,因此,为了寻找b,只能够在λ不为0的时候找到。所以
λi[1−yi(wTxi+b)]=0→1−yi(wTxi+b)=0即yi(wTxi+b)=1等式左右乘以wTxi+b=yi即b=yi−wTxi=yi−∑i=1nλiyixiTxi
\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=1nλiyixi;b=yi−∑i=1nλiyixiTxi
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=1nλi−12∑i=1n∑j=1nλiyiλjyjxiTxjs.t.λi≥0.i∈1,2,⋯n∑i=1nλiyi=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(x1,x2)=2x12−3x22+x1x2
f(x_1,x_2)=2x_1^2-3x_2^2+x_1x_2
f(x1,x2)=2x12−3x22+x1x2
如果我们要求它的极值,那么就可以使用坐标上升法。
坐标上升法的核心思想是,选定一个变量,固定住其余的变量,然后求导不断迭代求出最终的结果。
比如在上面的例子中,我们选定x1x_1x1,固定x2x_2x2,然后对x1x_1x1求导得0
4x1+x2=0→x1=−x24
4x_1+x_2=0 \rightarrow x_1=-\frac{x_2}{4}
4x1+x2=0→x1=−4x2
再选定x2x_2x2,固定住x1x_1x1,对x2x_2x2求导得0
−6x2+x1=0→x2=x16
-6x_2+x_1=0 \rightarrow x_2=\frac{x_1}{6}
−6x2+x1=0→x2=6x1
得到了x1、x2x_1、x_2x1、x2的公式,接下来我们只需要随机初始化x1,x2x_1,x_2x1,x2的值,比如x1=1,x2=2x_1=1,x_2=2x1=1,x2=2,接下来就开始迭代
①选定x1x_1x1,固定x2x_2x2,x1=−24=−0.5x_1=-\frac{2}{4}=-0.5x1=−42=−0.5
②选定x2x_2x2,固定x1x_1x1,x2=−0.56x_2=\frac{-0.5}{6}x2=6−0.5
③循环①②步骤,直到模型收敛。
为什么坐标上升法可以收敛?道上的事儿少打听。总之这种方法就是可以逐渐逼近收敛。实际上就是一个一个分量(方向)地走。
而SMO与坐标上升法类似,只不过SMO是固定两个分量罢了,其他都一样。为什么要固定两个分量?既然坐标上升法理论上可以收敛了,为什么不直接采用呢?我们来看∑i=1nλiyi=0\sum\limits_{i=1}^n\lambda_iy_i=0i=1∑nλiyi=0这个约束条件,如果我们选定了了λ1\lambda_1λ1,固定其余变量,那么依据约束条件,我们直接就可以算出λ1\lambda_1λ1的值了,就没有意义了啊。
那么我们对下面的目标函数先保留λ1、λ2\lambda_1、\lambda_2λ1、λ2。
{maxλ∑i=1nλi−12∑i=1n∑j=1nλiyiλjyjxiTxjs.t.λi≥0.i∈1,2,⋯n∑i=1nλiyi=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
对于约束条件保留,我们拆开
λ1y1+λ2y2+∑i=3nλiyi=0因为:∑i=3nλiyi是一个定值令:∑i=3nλiyi=−C得:λ1y1=C−λ2y2左右两边乘以y1得:λ1=(C−λ2y2)y1
\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=1nλi−12∑i=1n∑j=1nλiyiλjyjxiTxj=λ1+λ2+∑i=3nλi−12∑i=1n∑j=1nλiyiλjyjxiTxj
\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=1n∑j=1nλiyiλjyjxiTxj\sum\limits_{i=1}^n\sum\limits_{j=1}^n\lambda_iy_i\lambda_jy_jx_i^Tx_ji=1∑nj=1∑nλiyiλjyjxiTxj,我们单独写开,因为有点复杂。并且为了表达简便,令xiTxj=Kij=Kjix_i^Tx_j=K_{ij}=K_{ji}xiTxj=Kij=Kji。
对于∑i=1n∑j=1nλiyiλjyjxiTxj有以下几种可能①i=1,j=1→λ1y1λ1y1K11→λ12K11②i=1,j=2→λ1y1λ2y2K12③i=1,j≥3→∑j=3nλ1y1λjyjK1j④i=2,j=1→λ2y2λ1y1K21⑤i=2,j=2→λ2y2λ2y2K22→λ22K22⑥i=2,j≥3→∑j=3nλ2y2λjyjK2j⑦i≥3,j=1→∑i=3nλiyiλ1y1Ki1⑧i≥3,j=2→∑i=3nλiyiλ2y2Ki2⑨i≥3,j≥3→∑i=3n∑j=3nλiyiλjyjKij
\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=1nλi−12∑i=1n∑j=1nλiyiλjyjxiTxj=λ1+λ2+∑i=3nλi−12(λ12K11+λ22K22+2λ1y1λ2y2K12+2∑j=3nλ1y1λjyjK1j+2∑j=3nλ2y2λjyjK2j+∑i=3n∑j=3nλiyiλjyjKij)
\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−λ2y2)y1\lambda_1=(C-\lambda_2y_2)y_1λ1=(C−λ2y2)y1代入,得
L(λ2)=(C−λ2y2)y1+λ2+∑i=3nλi−12([(C−λ2y2)y1]2K11+λ22K22+2[(C−λ2y2)y1]y1λ2y2K12+2∑j=3n[(C−λ2y2)y1]y1λjyjK1j+2∑j=3nλ2y2λjyjK2j+∑i=3n∑j=3nλiyiλjyjKij)=(C−λ2y2)y1+λ2+∑i=3nλi−12((Cy1−λ2y2y1)2K11+λ22K22+2Cλ2y2K12−2λ22K12+2∑j=3n(CλjyjK1j−λ2y2λjyjK1j)+2∑j=3nλ2y2λjyjK2j+∑i=3n∑j=3nλiyiλjyjKij)
\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=−y2y1+1−12(2(Cy1−λ2y2y1)(−y2y1)K11+2λ2K22+2Cy2K12−4λ2K12−2∑j=3ny2λjyjK1j+2∑j=3ny2λjyjK2j)=−y2y1+1+Cy2K11−λ2K11−λ2K22−Cy2K12+2λ2K12+∑j=3ny2λjyjK1j−∑j=3ny2λjyjK2j=−y2y1+1+Cy2K11−λ2K11−λ2K22−Cy2K12+2λ2K12+y2∑j=3nλjyjK1j−y2∑j=3nλjyjK2j=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是迭代式算法,所以我们都有一个初始的λ,为了区分,我们用λnew\lambda^{new}λnew代表新的值,用λold\lambda^{old}λold代表旧的值)
λ2new(K11+K22−2K12)=1−y2y1+Cy2K11−Cy2K12+y2∑j=3nλjyjK1j−y2∑j=3nλjyjK2j
\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)=wTx+bf(x)=w^Tx+bf(x)=wTx+b,当取x1x_1x1时,得
f(x1)=wTx1+b=∑i=1n(λiyixiTx1)+b=λ1y1x1Tx1+λ2y2x2Tx1+∑i=3n(λiyiKi1)+b=λ1y1K11+λ2y2K21+∑i=3n(λiyiKi1)+b移项得:∑i=3n(λiyiKi1)=f(x1)−λ1y1K11−λ2y2K21−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
同理得x2x_2x2
∑i=3n(λiyiKi2)=f(x2)−λ1y1K12−λ2y2K22−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
因为Kij=KjiK_{ij}=K_{ji}Kij=Kji,仔细看所得的式子,它刚好在我们对λ2\lambda_2λ2求导所得的式子,将其代入,并且此时的λ都是旧的λ
λ2(K11+K22−2K12)=1−y2y1+Cy2K11−Cy2K12+y2∑j=3nλjyjK1j−y2∑j=3nλ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)
\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=λ1y1+λ2y2C=\lambda_1y_1+\lambda_2y_2C=λ1y1+λ2y2回代
λ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=y2([f(x1)−y1]−[f(x2)−y2])K11+K22−2K21+λ2old
\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
为了表达简便,我们用
η=K11+K22−2K21Ei=f(xi)−yi
\eta=K_{11}+K_{22}-2K_{21}\\E_i=f(x_i)-y_i
η=K11+K22−2K21Ei=f(xi)−yi
所以最终
λ2new=λ2old+y2(E1−E2)η
\lambda_2^{new}=\lambda_2^{old}+\frac{y_2(E_1-E_2)}{\eta}
λ2new=λ2old+ηy2(E1−E2)
至于λ1new\lambda_1^{new}λ1new,利用C=λ1y1+λ2y2C=\lambda_1y_1+\lambda_2y_2C=λ1y1+λ2y2即可求出。但是仍然有一个条件,就是λ\lambdaλ必须是大于0的。