SVM支持向量机+python代码复现(二)

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. wL(w,b,λ)=0,bL(w,b,λ)=0.λi[1yi(wTxi+b)]=0.1yi(wTxi+b)0.λi0.
​ 对于KKT条件,因为λi[1−yi(wTxi+b)]=0\lambda_i[1-y_i(w^Tx_i+b)]=0λi[1yi(wTxi+b)]=0,所以要么就是λi=0\lambda_i=0λi=0,要么就是1−yi(wTxi+b)=01-y_i(w^Tx_i+b)=01yi(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[1yi(wTxi+b)]=01yi(wTxi+b)=0yi(wTxi+b)=1wTxi+b=yib=yiwTxi=yii=1nλ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=1nλiyixi;b=yii=1nλ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=1nλi21i=1nj=1nλiyiλjyjxiTxjs.t.λi0.i1,2,ni=1nλ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)=2x123x22+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=0x1=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=0x2=6x1
​ 得到了x1、x2x_1、x_2x1x2的公式,接下来我们只需要随机初始化x1,x2x_1,x_2x1,x2的值,比如x1=1,x2=2x_1=1,x_2=2x1=1,x2=2,接下来就开始迭代

①选定x1x_1x1,固定x2x_2x2x1=−24=−0.5x_1=-\frac{2}{4}=-0.5x1=42=0.5

②选定x2x_2x2,固定x1x_1x1x2=−0.56x_2=\frac{-0.5}{6}x2=60.5

③循环①②步骤,直到模型收敛。

​ 为什么坐标上升法可以收敛?道上的事儿少打听。总之这种方法就是可以逐渐逼近收敛。实际上就是一个一个分量(方向)地走。

​ 而SMO与坐标上升法类似,只不过SMO是固定两个分量罢了,其他都一样。为什么要固定两个分量?既然坐标上升法理论上可以收敛了,为什么不直接采用呢?我们来看∑i=1nλiyi=0\sum\limits_{i=1}^n\lambda_iy_i=0i=1nλ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=1nλi21i=1nj=1nλiyiλjyjxiTxjs.t.λi0.i1,2,ni=1nλ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=3nλiyi=0因为:i=3nλiyi是一个定值令:i=3nλ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=1nλi21i=1nj=1nλiyiλjyjxiTxj=λ1+λ2+i=3nλi21i=1nj=1nλ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=1nj=1nλ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=1nj=1nλiyiλjyjxiTxj有以下几种可能i=1,j=1λ1y1λ1y1K11λ12K11i=1,j=2λ1y1λ2y2K12i=1,j3j=3nλ1y1λjyjK1ji=2,j=1λ2y2λ1y1K21i=2,j=2λ2y2λ2y2K22λ22K22i=2,j3j=3nλ2y2λjyjK2ji3,j=1i=3nλiyiλ1y1Ki1i3,j=2i=3nλiyiλ2y2Ki2i3,j3i=3nj=3nλ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=1nλi21i=1nj=1nλiyiλjyjxiTxj=λ1+λ2+i=3nλi21(λ12K11+λ22K22+2λ1y1λ2y2K12+2j=3nλ1y1λjyjK1j+2j=3nλ2y2λjyjK2j+i=3nj=3nλ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=3nλi21([(Cλ2y2)y1]2K11+λ22K22+2[(Cλ2y2)y1]y1λ2y2K12+2j=3n[(Cλ2y2)y1]y1λjyjK1j+2j=3nλ2y2λjyjK2j+i=3nj=3nλiyiλjyjKij)=(Cλ2y2)y1+λ2+i=3nλi21((Cy1λ2y2y1)2K11+λ22K22+2Cλ2y2K122λ22K12+2j=3n(CλjyjK1jλ2y2λjyjK1j)+2j=3nλ2y2λjyjK2j+i=3nj=3nλ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} λ2L(λ2)=y2y1+121(2(Cy1λ2y2y1)(y2y1)K11+2λ2K22+2Cy2K124λ2K122j=3ny2λjyjK1j+2j=3ny2λjyjK2j)=y2y1+1+Cy2K11λ2K11λ2K22Cy2K12+2λ2K12+j=3ny2λjyjK1jj=3ny2λjyjK2j=y2y1+1+Cy2K11λ2K11λ2K22Cy2K12+2λ2K12+y2j=3nλjyjK1jy2j=3nλ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+K222K12)=1y2y1+Cy2K11Cy2K12+y2j=3nλjyjK1jy2j=3nλ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=1n(λiyixiTx1)+b=λ1y1x1Tx1+λ2y2x2Tx1+i=3n(λiyiKi1)+b=λ1y1K11+λ2y2K21+i=3n(λiyiKi1)+b移项得:i=3n(λiyiKi1)=f(x1)λ1y1K11λ2y2K21b
​ 同理得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=3n(λiyiKi2)=f(x2)λ1y1K12λ2y2K22b
​ 因为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+K222K12)=1y2y1+Cy2K11Cy2K12+y2j=3nλjyjK1jy2j=3nλjyjK2j=1y2y1+Cy2K11Cy2K12+y2(f(x1)λ1oldy1K11λ2oldy2K21b)y2(f(x2)λ1oldy1K12λ2oldy2K22b)=y2(y2y1+CK11CK12+f(x1)λ1oldy1K11λ2oldy2K21bf(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+K222K12)=y2(y2y1+λ1oldy1K11+λ2oldy2K11λ1oldy1K12λ2oldy2K12+f(x1)λ1oldy1K11λ2oldy2K21bf(x2)+λ1oldy1K12+λ2oldy2K22+b)=y2(y2y1+λ2oldy2K112λ2oldy2K21+f(x1)f(x2)+λ2oldy2K22)=y2([f(x1)y1][f(x2)y2]+λ2oldy2[K11+K222K21])等式两边除以K11+K222K21λ2new=K11+K222K21y2([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+K222K21Ei=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(E1E2)

​ 至于λ1new\lambda_1^{new}λ1new,利用C=λ1y1+λ2y2C=\lambda_1y_1+\lambda_2y_2C=λ1y1+λ2y2即可求出。但是仍然有一个条件,就是λ\lambdaλ必须是大于0的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值