支援向量機推導及其實現
支援向量機
背景知識
最優化問題一般是指對於某一個函式而言,求解在其指定作用域上的全域性最小值
問題,一般分為以下三種情況(備註:除非函式是凸函式,否則以下方法求出來的解可能為區域性最優解)
- 無約束問題:求解方式一般求解方式梯度下降法、牛頓法、座標軸下降法等;
- 等式約束條件:求解方式一般為拉格朗日乘子法
- 不等式約束條件:求解方式一般為 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條件總結:
- 拉格朗日取得最優解的充要條件;
\(\nabla_xL(x,\alpha,\beta)=0\) - 將不等式約束轉換後的一個約束,稱為鬆弛互補條件;
\(\beta_i g_i(x)=0,i=1,2,\cdots,q\) - 初始的約束條件
\(h_i(x)=0,i=1,2,\cdots,p\) - 初始的約束條件
\(g_i(x)\leq0,i=1,2,\cdots,q\) - 不等式約束需要滿足的條件:
\(\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\)
從而得到解決問題的思路:
- 初始化一個\(\beta\)值,讓它滿足對偶條件的兩個初始限制條件
- 不斷優化\(\beta\)值,使得由他確定的分割超平面滿足滿足g(x)目標條件;且在過程中,始終保證\(\beta\)值滿足初始限制條件
- 注意:求解過程中,是讓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實現
待補