1. 程式人生 > >支援向量機推導及其實現

支援向量機推導及其實現

支援向量機

背景知識

最優化問題一般是指對於某一個函式而言,求解在其指定作用域上的全域性最小值
問題,一般分為以下三種情況(備註:除非函式是凸函式,否則以下方法求出來的解可能為區域性最優解)

  • 無約束問題:求解方式一般求解方式梯度下降法、牛頓法、座標軸下降法等;
  • 等式約束條件:求解方式一般為拉格朗日乘子法
  • 不等式約束條件:求解方式一般為 KKT 條件

在優化問題中,根據目標函式存在形式分為 3 類:

  • 線性規劃:如果目標函式和約束條件都為變數 x 的線性函式,則稱問題為線性規劃;
  • 二次規劃:如果目標函式為二次函式,則稱最優化問題為二次規劃;
  • 非線性優化:如果目標函式或者約束條件為非線性函式,則稱最優化問題為非線性優化。

每個線性規劃問題都有一個對應的對偶問題。對偶問題具有以下幾個特性:

  • 對偶問題的對偶是原問題;
  • 無論原始問題是否是凸的,對偶問題都是凸優化問題;
  • 對偶問題可以給出原始問題的一個下界;
  • 當滿足一定條件的時候,原始問題和對偶問題的解是完美等價的。

無約束問題-梯度下降法

推導過程見:線性模型之線性迴歸

等式約束問題-拉格朗日乘子法

目標函式:

  • \(min \quad f(x,y)\)
  • \(s.t. \quad g(x,y)=c\)

拉格朗日乘子法:

  • \(L(x,y,\alpha)=f(x,y)+\alpha(g(x,y)-c) \quad \alpha \neq 0\)

求解:

  • \(\nabla_{x,y,\alpha}L(x,y,\alpha)=0,\alpha \neq0\)

不等式約束問題-KKT條件

KTT 條件是泛拉格朗日乘子法的一種形式;是滿足不等式約束情況下的條件。

目標函式:

  • \(min \quad f(x,y)\)
  • \(s.t. \quad h_k(x,y)=0, k=1,2,\cdots,p\)
  • \(\quad \quad g_j(x)\leq0, j=1,2,\cdots,q\)

根據KKT條件:

  • \(L(x,\alpha,\beta)=f(x)+\sum^p_{i=1}\alpha_ih_i(x)+\sum^q_{j=1}\beta_ig_i(x) \quad \alpha \neq 0,\beta\geq0\)

新目標函式:

  • \(min_xL(x,\alpha,\beta)\)

推導KKT條件

目標函式為:

  • \(min \quad f(x)\)
  • \(s.t. \quad g(x)\leq0,j=1,2,\dots,q\)

\(\rightarrow\) \(L(x,\beta)=f(x)+\sum^q_{j=1}\beta_ig_i(x) \quad \beta\geq0\)

  • 當極值點x在g(x)<0的區域中時,約束函式不起作用,直接\(\beta=0\),直接極小化f(x)即可
  • 當極值點x在g(x)=0的區域內時,則變成等值約束(\(\beta g(x)=0\)),此時\(\beta\neq0\)
  • 當極值點在約束函式\(g(x)\)外,此時可行解在約束邊界上(\(\beta g(x)=0\)),這時可行解應儘量靠近無約束時的解,此時約束函式g(x)的梯度方向和目標函式f(x)的負梯度方向應相同,\(\beta>0,g(x)=0\)
    • \(-\nabla_xf(x)=\beta\nabla_xg(x)\)
    • 上式要求\(\beta>0\)

KKT條件總結:

  1. 拉格朗日取得最優解的充要條件;
    \(\nabla_xL(x,\alpha,\beta)=0\)
  2. 將不等式約束轉換後的一個約束,稱為鬆弛互補條件;
    \(\beta_i g_i(x)=0,i=1,2,\cdots,q\)
  3. 初始的約束條件
    \(h_i(x)=0,i=1,2,\cdots,p\)
  4. 初始的約束條件
    \(g_i(x)\leq0,i=1,2,\cdots,q\)
  5. 不等式約束需要滿足的條件:
    \(\beta_i\geq0,i=1,2,\cdots,q\)

KKT條件與對偶問題

KKT 條件是對偶問題的一個應用
目標函式為:

  • \(min \quad f(x)\)
  • \(s.t. \quad g(x)\leq0,j=1,2,\dots,q\)

\(\rightarrow\) \(L(x,\beta)=f(x)+\sum^q_{j=1}\beta_ig_i(x) \quad \beta\geq0\)

∵ \(\beta\neq0 \quad and \quad g_i(x)\leq0\)

∴\(\beta_ig_i(x)<0\)

∴\(f(x)=max_{\beta}L(x,\beta)\)

∴\(min_xf(x)=min_x max_{\beta}L(x,\beta)\)

此外:

∵ \(\beta\geq0 \quad and \quad g_i(x)\leq0 \rightarrow min_x\beta_ig_i(x)= 0 \quad or \quad -\infty\)

∴\(max_{\beta}min_x\beta_ig_i(x)= 0\)

∵\(max_{\beta}min_xL(x,\beta)=max_{\beta}[min_xf(x)+min_x\beta g(x)]=max_{\beta}min_xf(x) + max_{\beta}min_x\beta_ig_i(x)=max_{\beta}min_xf(x)=min_xf(x)\)

∴\(min_xf(x)=max_{\beta}min_xL(x,\beta); \beta=0或者g(x)=0\)

∴\(min_x max_{\beta}L(x,\beta)=max_{\beta}min_xL(x,\beta)\)即原問題=對偶問題

對偶問題的直觀瞭解:最小的裡面的那個最大的要比最大的那個裡面的最小的大,從而就給原問題引入一個下界

如果存在\(x,\alpha,\beta\)滿足上面KKT條件,那麼他們就是原問題和對偶問題的可行解。

SVM

SVM:資料中找出一個分割超平面,讓離超平面比較近的點儘可能的遠離這個超平面

  • 間隔(Margin):資料點到分割超平面的距離稱為間隔。
  • 支援向量(Support Vector):離分割超平面最近的那些點叫做支援向量。

SVM 線性可分

支援向量到超平面的距離為:
∵ \(w^Tx+b=±1\)
∵ \(y\in\{+1,-1\}\)
∴ \(\frac{|y(w^Tx+b)|}{||w||_2}=\frac{2}{||w||_2}\)

之所以為2,主要是為了方便推導,可以理解為超平面兩側的支援向量的函式距離,對結果無影響。

優化問題為:

  • \(max_{w,b}\frac{2}{||w||_2}\)
  • \(s.t. \quad y^{(i)}(w^Tx^{(i)}+b)\geq1,i=1,2,\cdots,m\)

等價於:

  • \(min_{w,b}\frac{1}{2}||w||_2^2\)
  • \(s.t. \quad y^{(i)}(w^Tx^{(i)}+b)\geq1,i=1,2,\cdots,m\)

損失函式為:

  • \(J(w)=\frac{1}{2}||w||_2^2\)
  • \(s.t. \quad y^{(i)}(w^Tx^{(i)}+b)\geq1,i=1,2,\cdots,m\)

使用KKT條件轉換為拉格朗日函式:

  • \(L(w,b,\beta)=\frac{1}{2}||w||^2_2 +\sum_{i=1}^m\beta_i[1-y^{(i)}(w^Tx^{(i)}+b)],\beta \geq0\)

引入拉格朗日乘子後,優化目標變成:

  • \(min_{w,b}max_{\beta\geq0}L(w,b,\beta)\)

根據拉格朗日對偶性特性,化為等價的對偶問題,則優化目標為:

  • \(max_{\beta\geq0}min_{w,b}L(w,b,\beta)\)

使函式L極小化求w和b的取值:

  • \(\frac{\partial L}{\partial w}=0\rightarrow w-\sum_{i=1}^m\beta_iy^{(i)}x^{(i)}=0\rightarrow w=\sum_{i=1}^m\beta_i y^{(i)}x^{(i)}\)
  • \(\frac{\partial L}{\partial b}=0\rightarrow -\sum_{i=1}^m\beta_iy^{(i)}=0\rightarrow \sum_{i=1}^m\beta_i y^{(i)}=0\)

將w和b帶入優化函式L中,優化函式為:

  • \(l(\beta)=\frac{1}{2}||w||^2_2 +\sum_{i=1}^m\beta_i[1-y^{(i)}(w^Tx^{(i)}+b)]\)
  • \(=\frac{1}{2}||w||^2_2 -\sum_{i=1}^m\beta_i[y^{(i)}(w^Tx^{(i)}+b)-1]\)
  • \(=\frac{1}{2}w^Tw-\sum_{i=1}^m\beta_iy^{(i)}x^{(i)}-w^T\sum_{i=1}^m\beta_iy^{(i)}x^{(i)}-b\sum_{i=1}^m\beta_iy^{(i)}+\sum_{i=1}^m\beta_i\)
  • \(=-\frac{1}{2}w^T\sum_{i=1}^m\beta_iy^{(i)}x^{(i)}-b\sum_{i=1}^m\beta_iy^{(i)}+\sum_{i=1}^m\beta_i\)
  • \(=-\frac{1}{2}(\sum_{i=1}^m\beta_iy^{(i)}x^{(i)})^T(\sum_{i=1}^m\beta_iy^{(i)}x^{(i)})+\sum_{i=1}^m\beta_i\)
  • \(=-\frac{1}{2}(\sum_{i=1}^m\beta_iy^{(i)}x^{(i)^T})(\sum_{i=1}^m\beta_iy^{(i)}x^{(i)})+\sum_{i=1}^m\beta_i\)
  • \(=\sum_{i=1}^m\beta_i-\frac{1}{2}(\sum_{i=1}^m\sum_{j=1}^m\beta_i\beta_jy^{(i)}y^{(j)}x^{(i)^T}x^{(j)}\)

\(max l(\beta)\rightarrow min-l(\beta),\)優化函式為:

  • \(min\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\beta_i\beta_jy^{(i)}y^{(j)}x^{(i)^T}x^{(j)}-\sum_{i=1}^m\beta_i\)
  • \(s.t.: \sum_{i=1}^m\beta_iy^{(i)}=0\)
  • \(\quad \beta_i\geq0,i=1,2,\cdots,m\)

\(\beta\)求解採用SMO方法

SVM的軟間隔模型

硬間隔:可以認為線性劃分SVM中距離度量就是硬間隔,最大化硬間隔條件為:

  • \(min_{w,b}\frac{1}{2}||w||_2^2\)
  • \(s.t. \quad y^{(i)}(w^Tx^{(i)}+b)\geq1,i=1,2,\cdots,m\)

軟間隔:SVM對於訓練集的每個樣本引入一個鬆弛因子(ξ),使得函式距離加上鬆弛因子(ξ)後的值大於等於1;

  • \(y^{(i)}(w^Tx^{(i)}+b)\geq1-ξ,i=1,2,\cdots,m,ξ_i\geq0\)
  • 如果鬆弛因子大於1,那麼表示允許該樣本點分錯,所以說加入鬆弛因子是有成本的。所以最終目標函式轉換為:
  • \(min_{w,b}\frac{1}{2}||w||_2^2 +C\sum_{i=1}^mξ_i\)
  • \(s.t. \quad y^{(i)}(w^Tx^{(i)}+b)\geq1,i=1,2,\cdots,m\)
  • 函式中的C>0是懲罰引數,是一個超引數,C越大表示對誤分類的懲罰越大

軟間隔對應的拉格朗日函式:

  • \(L(w,b,ξ,\beta,\mu)=\frac{1}{2}||w||^2_2 +C\sum_{i=1}^mξ_i+\sum_{i=1}^m\beta_i[1-ξ_i-y^{(i)}(w^Tx^{(i)}+b)]-\sum_{i=1}^m\mu_iξ_i,\beta \geq0,\mu_i\geq0\)

優化目標變成:

  • \(min_{w,b,ξ}max_{\beta,\mu}Lw,b,ξ,\beta,\mu)\)

根據拉格朗日對偶性特性,化為等價的對偶問題,則優化目標為:

  • \(max_{\beta,\mu}min_{w,b,ξ}L(w,b,ξ,\beta,\mu)\)

使函式L極小化求w、b、ξ的取值:

  • \(\frac{\partial L}{\partial w}=0\rightarrow w-\sum_{i=1}^m\beta_iy^{(i)}x^{(i)}=0\rightarrow w=\sum_{i=1}^m\beta_i y^{(i)}x^{(i)}\)
  • \(\frac{\partial L}{\partial b}=0\rightarrow -\sum_{i=1}^m\beta_iy^{(i)}=0\rightarrow \sum_{i=1}^m\beta_i y^{(i)}=0\)
  • \(\frac{\partial L}{\partial ξ}=0\rightarrow C-\beta_i-\mu_i=0\)

將w,b,ξ帶入優化函式L中,優化函式為:

  • \(l(\beta)=\sum_{i=1}^m\beta_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\beta_i\beta_jy^{(i)}y^{(j)}x^{(i)^T}x^{(j)}\)

\(max l(\beta)\rightarrow min-l(\beta),\)優化函式為:

  • \(min\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\beta_i\beta_jy^{(i)}y^{(j)}x^{(i)^T}x^{(j)}-\sum_{i=1}^m\beta_i\)
  • \(s.t: \sum_{i=1}^m\beta_iy^{(i)}=0\)
  • \(\quad C-\beta_i-\mu_i=0\)
  • \(\quad \beta_i\geq0,i=1,2,\cdots,m\)
  • \(\quad \mu_i\geq0,i=1,2,\cdots,m\)

整理後的函式,軟硬間隔的優化函式一致,只條件不同:

  • \(min\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\beta_i\beta_jy^{(i)}y^{(j)}x^{(i)^T}x^{(j)}-\sum_{i=1}^m\beta_i\)
    • \(s.t: \sum_{i=1}^m\beta_iy^{(i)}=0\)
    • \(\quad 0\leq\beta_i<C,i=1,2,\cdots,m\)

\(\beta\)求解採用SMO方法

SVM 線性不可分

如果將資料對映到高維空間中,那麼資料就會變成線性可分的,從而就可以使用線性可分SVM模型或者軟間隔線性可分SVM模型

  • \(min\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\beta_i\beta_jy^{(i)}y^{(j)}\phi(x^{(i)})\cdot\phi(x^{(j)})-\sum_{i=1}^m\beta_i\)
  • \(s.t: \sum_{i=1}^m\beta_iy^{(i)}=0\)
  • \(\quad 0\leq\beta_i<C,i=1,2,\cdots,m\)
  • \(\phi\):定義的一個從低維特徵空間到高維特徵空間的對映函式

直接採用對映,會產生維度爆炸

核函式

核函式是從低維特徵空間到高維特徵空間的一個對映。

  • 核函式可以自定義:核函式必須是正定核函式,即Gram矩陣是半正定矩陣
  • 核函式的價值在於:它事先在低維空間上進行計算,而將實質上的分類效果表現在高維上。
  • 通過核函式,可以將非線性可分的資料轉換為線性可分資料

核函式分類:

  • 線性核函式:
    • \(K(x,z)=x\cdot z\)
  • 多項式核函式
    • \(K(x,z)=(\gamma x\cdot z+r)^d\)
  • 高斯核函式
    • \(K(x,z)=e^{-\gamma ||x-z||^2_2}\)
  • sigmoid函式:
    • \(K(x,z)=tanh(\gamma x\cdot z+r)\)

高斯核函式證明:

  • \(K(x,z)=e^{-\gamma ||x-z||^2_2}\)
  • \(=e^{-\gamma ||x||^2_2}e^{-\gamma ||z||^2_2}(\sum^{+\infty}_{i=0}\frac{(2\gamma x\cdots z)^i}{i!})\)
  • \(=\sum^{+\infty}_{i=0}(e^{-\gamma ||x||^2_2}e^{-\gamma ||z||^2_2}(\frac{(2\gamma x\cdots z)^i}{i!}))\)
  • \(=\sum^{+\infty}_{i=0}(e^{-\gamma ||x||^2_2}e^{-\gamma ||z||^2_2}\sqrt{\frac{(2\gamma)^i}{i!}}\sqrt{\frac{(2\gamma)^i}{i!}}||x||_2^i||z||_2^i)\)
  • \(\phi(x)\cdot\phi(z)\)

序列最小優化演算法SMO

拉格朗日乘子法和KKT的對偶互補條件為:

  • \(\beta_i(y^{(i)}(w^Tx^{(i)}+b)-1+ξ_i)=0\)
  • \(u_iξ_i=0\)

\(\beta,\mu,C\)之間的關係為:\(C-\beta_i-u_i=0\)

根據對偶互補條件可得以下關係式:

  • \(\beta_i=0\rightarrow \mu_i>0\rightarrowξ_i=0\rightarrow y^{(i)}(w^Tx^{(i)}+b)\geq1\)
  • \(0<\beta_i<C\rightarrow \mu_i>0\rightarrowξ_i=0\rightarrow y^{(i)}(w^Tx^{(i)}+b)=1\)
  • \(\beta_i=C\rightarrow \mu_i=0\rightarrowξ_i\geq0\rightarrow y^{(i)}(w^Tx^{(i)}+b)\leq1\)

也就是要找到的最優分割超平面必須滿足以下的目標條件\(g(x)\):

  • \(y^{(i)}g(x^{(i)})\geq1,\{(x^{(i)},y^{(i)})|\beta_i=0\}\)
  • \(y^{(i)}g(x^{(i)})=1,\{(x^{(i)},y^{(i)})|0<\beta_i<C\}\)
  • \(y^{(i)}g(x^{(i)})\geq1,\{(x^{(i)},y^{(i)})|\beta_i=C\}\)

拉格朗日對偶化要求的兩個限制的初始條件為

  • \(\sum_{i=1}^m\beta_iy^{(i)}=0\)
  • \(0\leq\beta_i\leq C,i=1,2,\cdots,m\)

從而得到解決問題的思路:

  1. 初始化一個\(\beta\)值,讓它滿足對偶條件的兩個初始限制條件
  2. 不斷優化\(\beta\)值,使得由他確定的分割超平面滿足滿足g(x)目標條件;且在過程中,始終保證\(\beta\)值滿足初始限制條件
  3. 注意:求解過程中,是讓g(x)目標條件儘可能的滿足

求解第一步:選擇\(\beta\)值

SMO是選擇兩個合適的β變數做迭代,其它變數作為常量來進行優化的一個過程,選擇\(\beta\)值遵循以下兩個原則:

  • 每次優化的時候,必須同時優化β的兩個分量;因為如果只優化一個分量的話,新的β值就沒法滿足初始限制條件中的等式約束條件了。
  • 每次優化的兩個分量應該是違反g(x)目標條件比較多的。也就是說,本來應當是大於等於1的,越是小於1違反g(x)目標條件就越多。

第一個\(\beta\)選擇:

  • 一般情況下,先選擇0<β<C的樣本點(即支援向量),只有當所有的支援向量都滿足KKT條件的時候,才會選擇其它樣本點。
  • 原因:選擇的樣本點違反KKT條件最嚴重,可以以更少的迭代次數讓模型達到g(x)目標條件
    • \(y^{(i)}g(x^{(i)})\geq1,\{(x^{(i)},y^{(i)})|\beta_i=0\}\)
    • \(y^{(i)}g(x^{(i)})=1,\{(x^{(i)},y^{(i)})|0<\beta_i<C\}\)
    • \(y^{(i)}g(x^{(i)})\geq1,\{(x^{(i)},y^{(i)})|\beta_i=C\}\)

第二個\(\beta\)選擇:

  • 在選擇第一個變數\(\beta_1\)後,在選擇第二個變數\(\beta_2\)的時候,希望能夠按照優化後的\(\beta_1\)和\(\beta_2\)有儘可能多的改變來選擇,也就是說讓|\(E_1\)-\(E_2\)|足夠的大,當\(E_1\)為正的時候,選擇最小的\(E_i\)作為\(E_2\);當\(E_1\)為負的時候,選擇最大的\(E_i\)作為\(E_2\)。
  • 備註:如果選擇的第二個變數不能夠讓目標函式有足夠的下降,那麼可以通過遍歷所有樣本點來作為\(\beta_2\),直到目標函式有足夠的下降,如果都沒有足夠的下降的話,那麼直接跳出迴圈,重新選擇\(\beta_1\);
    • \(E_i=g(x^{(i)})-y^{(i)}\)

求解第二步:優化\(\beta\)值

目標函式:

  • \(min\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\beta_i\beta_jy^{(i)}y^{(j)}K(x^{(i)},x^{(j)})-\sum_{i=1}^m\beta_i\)
  • \(s.t: \sum_{i=1}^m\beta_iy^{(i)}=0\)
  • \(\quad 0\leq\beta_i<C,i=1,2,\cdots,m\)

認為\(\beta_1\),\(\beta_2\)是變數,其他\(\beta\)值為常量,目標函式轉換如下:

  • \(min_{\beta_1,\beta_2}\frac{1}{2}K_{11}\beta_1^2 + \frac{1}{2}K_{22}\beta_2^2+K_{12}y^{(1)}y^{(2)}\beta_1\beta_2-\beta_1-\beta_2+y^{(1)}\beta_1\sum_{i=3}^my^{(i)}\beta_iK_{i1}+y^{(2)}\beta_2\sum_{i=3}^my^{(i)}\beta_iK_{i2}\)
  • \(s.t: \beta_1y^{(1)}+\beta_2y^{(2)}=-\sum_{i=3}^m\beta_iy^{(i)}=k\)
  • \(\quad 0\leq\beta_i<C,i=1,2\)

由於\(\beta_1y^{(1)}+\beta_2y^{(2)}=k\),且\(y^2=1\),用\(\beta_2\)表示\(\beta_1\):

  • \(\beta_1=y^{(1)}(k-\beta_2y^{(2)})\)

帶入目標優化函式,消去\(\beta_1\),可得:

  • \(W(\beta_2)=\frac{1}{2}K_{11}(k-\beta_2y^{(2)})^2 + \frac{1}{2}K_{22}\beta_2^2+K_{12}y^{(2)}(k-\beta_2y^{(2)})\beta_2-y^{(1)}(k-\beta_2y^{(2)})-\beta_2+(k-\beta_2y^{(2)})v_1+y^{(2)}\beta_2v_2\)
    • \(v_j=\sum_{i=3}^my^{(i)}\beta_iK_{ij}\)

求導:

  • \(\frac{\partial W}{\partial\beta_2}=K_{11}\beta_2-K_{11}ky^{(2)}+K_{22}\beta_2 +K_{12}ky^{(2)}-2K_{12}\beta_2+y^{(1)}y^{(2)}-1-y^{(2)}v_1+y^{(2)}v_2\)

令導數為0:

  • \((K_{11}+K_{22}-2K_{12})\beta_2=y^{(2)}(y^{(2)}-y^{(1)}+kK_{11}-kK_{12}+v_1-v_2)\)
  • \(=y^{(2)}(y^{(2)}-y^{(1)}+kK_{11}-kK_{12}+(g(x_1)-\sum_{i=1}^2\beta_iy^{(i)}K_{i1}-b)-(g(x_2)-\sum_{i=1}^2\beta_iy^{(i)}K_{i2}-b)\)

將\(k=\beta_1y^{(1)}+\beta_2y^{(2)}\)帶入得:

  • \((K_{11}+K_{22}-2K_{12})\beta_2=y^{(2)}(y^{(2)}-y^{(1)}+\beta_1^{old}y^{(1)}K_{11}+\beta_2^{old}y^{(2)}K_{11}-\beta_1^{old}y^{(1)}K_{12}-\beta_2^{old}y^{(2)}K_{12}+y^{(2)}(g(x_1)-\sum_{i=1}^2\beta_i^{old}y^{(i)}K_{i1}-b)-y^{(2)}(g(x_2)-\sum_{i=1}^2\beta_i^{old}y^{(i)}K_{i2}-b)\)
  • \(=y^{(2)}((K_{11}-2K_{12}+K_{22})\beta_2^{old}y^{(2)}+y^{(2)}-y^{(1)}+g(x^{(1)})-g(x^{(2)}))\)
  • \(=(K_{11}-2K_{12}+K_{22})\beta_2^{old}+y^{(2)}[(g(x^{(1)})-y^{(1)})-(g(x^{(2)})-y^{(2)})]\)

令\(E_i=g(x^{(i)})-y^{(i)}\)

  • \(\beta_2^{new,unt}=\beta_2=\beta_2^{old}+\frac{y^{(2)}(E_1-E_2)}{K_{11}+K_{22}-2K_{12}}\)

考慮\(\beta_1\),\(\beta_2\)的取值限定範圍,假定新求出來的β值是滿足我們的邊界限制的,即,

  • \(L\leq\beta_2^{new}\leq H\)
  • 當\(y_1=y_2\)的時候,\(\beta_1\)+\(\beta_2=k\),由於\(\beta\)的限制條件,可得
    • \(L=max(0,\beta_2^{old}+\beta_1^{old}-C)\)
    • \(H=min(C,\beta_2^{old}+\beta_1^{old})\)
    • 限制條件:
      • \(0\leq k-\beta_2^{new}\leq C\)
      • \(0\leq \beta_2^{new}\leq C\)
  • 當\(y_1\neq y_2\)的時候,\(\beta_1\)-\(\beta_2=k\),由於\(\beta\)的限制條件,可得
    • \(L=max(0,\beta_2^{old}-\beta_1^{old})\)
    • \(H=min(C,C+\beta_1^{old}-\beta_2^{old})\)
    • 限制條件:
      • \(0\leq k-\beta_2^{new}\leq C\)
      • \(0\leq \beta_2^{new}\leq C\)

結合β的取值限制範圍以及函式W的β最優解,我們可以得帶迭代過程中的最優解為:

  • \(\beta_2^{new}=H;\beta_2^{new,unt}>H\)
  • \(\beta_2^{new}=\beta_2^{new,unt};L\leq \beta_2^{new,unt}\leq H\)
  • \(\beta_2^{new}=L;\beta_2^{new,unt}\leq L\)

根據\(\beta_1\),\(\beta_2\)的關係,可得\(\beta_1\)迭代後的值:

  • \(\beta_1^{old}y^{(1)}+\beta_2^{old}y^{(2)}=\beta_1^{new}y^{(1)}+\beta_2^{new}y^{(2)}\rightarrow \beta_1^{new}=\beta_1^{old}+ y^{(1)}y^{(2)}(\beta_2^{old}-\beta_2^{new})\)

求解第三步:計算閾值和差值E

在每次完成兩個β變數的優化更新之後,需要重新計算閾值b和差值\(E_i\)

  • \(0\leq \beta^{new}\leq C \rightarrow y^{(1)}-\sum_{i=1}^m\beta_iy^{(i)}K_{i1}-b_1=0\)

化簡為:\(b^{new}=\frac{b_1^{new}+b_2^{new}}{2}\)

更新後的差值\(E_i\):

  • \(E_i=g(x^{(i)})-y^{(i)}=\sum_{j=3}^m\beta_jy^{(i)}K_{ij}+\beta_1^{new}y^{(1)}K_{11}+\beta_2^{new}y^{(2)}K_{12}+b^{new}-y^{(1)}\)

    SVR

    待補充

Python實現

待補