上節課我們主要介紹了線性支援向量機(Linear Support Vector Machine)。Linear SVM的目標是找出最“胖”的分割線進行正負類的分離,方法是使用二次規劃來求出分類線。本節課將從另一個方面入手,研究對偶支援向量機(Dual Support Vector Machine),嘗試從新的角度計算得出分類線,推廣SVM的應用範圍。
1. Motivation of Dual SVM
首先,我們回顧一下,對於非線性SVM,我們通常可以使用非線性變換將變數從x域轉換到z域中。然後,在z域中,根據上一節課的內容,使用線性SVM解決問題即可。上一節課我們說過,使用SVM得到large-margin,減少了有效的VC Dimension,限制了模型複雜度;另一方面,使用特徵轉換,目的是讓模型更復雜,減小E_{in}。所以說,非線性SVM是把這兩者目的結合起來,平衡這兩者的關係。那麼,特徵轉換下,求解QP問題在z域中的維度設為\hat d +1,如果模型越複雜,則\hat d +1越大,相應求解這個QP問題也變得很困難。當\hat d無限大的時候,問題將會變得難以求解,那麼有沒有什麼辦法可以解決這個問題呢?一種方法就是使SVM的求解過程不依賴\hat d,這就是我們本節課所要討論的主要內容。
比較一下,我們上一節課所講的Original SVM二次規劃問題的變數個數是\hat d +1,有N個限制條件;而本節課,我們把問題轉化為對偶問題(’Equivalent’ SVM),同樣是二次規劃,只不過變數個數變成N個,有N+1個限制條件。這種對偶SVM的好處就是問題只跟N有關,與\hat d無關,這樣就不存在上文提到的當\hat d無限大時難以求解的情況。
如何把問題轉化為對偶問題(’Equivalent’ SVM),其中的數學推導非常複雜,本文不做詳細數學論證,但是會從概念和原理上進行簡單的推導。
還記得我們在《機器學習基石》課程中介紹的Regularization中,在最小化E_{in}的過程中,也新增了限制條件:w^Tw\leq C。我們的求解方法是引入拉格朗日因子\lambda,將有條件的最小化問題轉換為無條件的最小化問題:min\ E_{aug}(w)=E_{in}(w)+\frac{\lambda}{N}w^Tw,最終得到的w的最優化解為:
\nabla E_{in}(w)+\frac{2\lambda}{N}w=0
所以,在regularization問題中,\lambda是已知常量,求解過程變得容易。那麼,對於dual SVM問題,同樣可以引入\lambda,將條件問題轉換為非條件問題,只不過\lambda是未知引數,且個數是N,需要對其進行求解。
如何將條件問題轉換為非條件問題?上一節課我們介紹的SVM中,目標是:min\ \frac12w^Tw,條件是:y_n(w^Tz_n+b)\geq 1,\ for\ n=1,2,\cdots,N。首先,我們令拉格朗日因子為\alpha_n(區別於regularization),構造一個函式:
L(b,w,\alpha)=\frac12w^Tw+\sum_{n=1}^N\alpha_n(1-y_n(w^Tz_n+b))
這個函式右邊第一項是SVM的目標,第二項是SVM的條件和拉格朗日因子\alpha_n的乘積。我們把這個函式稱為拉格朗日函式,其中包含三個引數:b,w,\alpha_n。
下面,我們利用拉格朗日函式,把SVM構造成一個非條件問題:
該最小化問題中包含了最大化問題,怎麼解釋呢?首先我們規定拉格朗日因子\alpha_n\geq0,根據SVM的限定條件可得:(1-y_n(w^Tz_n+b))\leq0,如果沒有達到最優解,即有不滿足(1-y_n(w^Tz_n+b))\leq0的情況,因為\alpha_n\geq0,那麼必然有\sum_n\alpha_n(1-y_n(w^Tz_n+b))\geq0。對於這種大於零的情況,其最大值是無解的。如果對於所有的點,均滿足(1-y_n(w^Tz_n+b))\leq0,那麼必然有\sum_n\alpha_n(1-y_n(w^Tz_n+b))\leq0,則當\sum_n\alpha_n(1-y_n(w^Tz_n+b))=0時,其有最大值,最大值就是我們SVM的目標:\frac12w^Tw。因此,這種轉化為非條件的SVM建構函式的形式是可行的。
2. Lagrange Dual SVM
現在,我們已經將SVM問題轉化為與拉格朗日因子\alpha_n有關的最大最小值形式。已知\alpha_n\geq0,那麼對於任何固定的\alpha’,且\alpha_n’\geq0,一定有如下不等式成立:
對上述不等式右邊取最大值,不等式同樣成立:
上述不等式表明,我們對SVM的min和max做了對調,滿足這樣的關係,這叫做Lagrange dual problem。不等式右邊是SVM問題的下界,我們接下來的目的就是求出這個下界。
已知\geq是一種弱對偶關係,在二次規劃QP問題中,如果滿足以下三個條件:
- 函式是凸的(convex primal)
-
函式有解(feasible primal)
-
條件是線性的(linear constraints)
那麼,上述不等式關係就變成強對偶關係,\geq變成=,即一定存在滿足條件的解(b,w,\alpha),使等式左邊和右邊都成立,SVM的解就轉化為右邊的形式。
經過推導,SVM對偶問題的解已經轉化為無條件形式:
其中,上式括號裡面的是對拉格朗日函式L(b,w,\alpha)計算最小值。那麼根據梯度下降演算法思想:最小值位置滿足梯度為零。首先,令L(b,w,\alpha)對引數b的梯度為零:
\frac{\partial L(b,w,\alpha)}{\partial b}=0=-\sum_{n=1}^N\alpha_ny_n
也就是說,最優解一定滿足\sum_{n=1}^N\alpha_ny_n=0。那麼,我們把這個條件代入計算max條件中(與\alpha_n\geq0同為條件),並進行化簡:
這樣,SVM表示式消去了b,問題化簡了一些。然後,再根據最小值思想,令L(b,w,\alpha)對引數w的梯度為零:
\frac{\partial L(b,w,\alpha}{\partial w}=0=w-\sum_{n=1}^N\alpha_ny_nz_n
即得到:
w=\sum_{n=1}^N\alpha_ny_nz_n
也就是說,最優解一定滿足w=\sum_{n=1}^N\alpha_ny_nz_n。那麼,同樣我們把這個條件代入並進行化簡:
這樣,SVM表示式消去了w,問題更加簡化了。這時候的條件有3個:
- all \alpha_n\geq0
-
\sum_{n=1}^N\alpha_ny_n=0
-
w=\sum_{n=1}^N\alpha_ny_nz_n
SVM簡化為只有\alpha_n的最佳化問題,即計算滿足上述三個條件下,函式-\frac12||\sum_{n=1}^N\alpha_ny_nz_n||^2+\sum_{n=1}^N\alpha_n最小值時對應的\alpha_n是多少。
總結一下,SVM最佳化形式轉化為只與\alpha_n有關:
其中,滿足最佳化的條件稱之為Karush-Kuhn-Tucker(KKT):
在下一部分中,我們將利用KKT條件來計算最優化問題中的\alpha,進而得到b和w。
3. Solving Dual SVM
上面我們已經得到了dual SVM的簡化版了,接下來,我們繼續對它進行一些優化。首先,將max問題轉化為min問題,再做一些條件整理和推導,得到:
顯然,這是一個convex的QP問題,且有N個變數\alpha_n,限制條件有N+1個。則根據上一節課講的QP解法,找到Q,p,A,c對應的值,用軟體工具包進行求解即可。
求解過程很清晰,但是值得注意的是,q_{n,m}=y_ny_mz^T_nz_m,大部分值是非零的,稱為dense。當N很大的時候,例如N=30000,那麼對應的Q_D的計算量將會很大,儲存空間也很大。所以一般情況下,對dual SVM問題的矩陣Q_D,需要使用一些特殊的方法,這部分內容就不再贅述了。
得到\alpha_n之後,再根據之前的KKT條件,就可以計算出w和b了。首先利用條件w=\sum\alpha_ny_nz_n得到w,然後利用條件\alpha_n(1-y_n(w^Tz_n+b))=0,取任一\alpha_n\neq0即\alpha_n>0的點,得到1-y_n(w^Tz_n+b)=0,進而求得b=y_n-w^Tz_n。
值得注意的是,計算b值,\alpha_n>0時,有y_n(w^Tz_n+b)=1成立。y_n(w^Tz_n+b)=1正好表示的是該點在SVM分類線上,即fat boundary。也就是說,滿足\alpha_n>0的點一定落在fat boundary上,這些點就是Support Vector。這是一個非常有趣的特性。
4. Messages behind Dual SVM
回憶一下,上一節課中,我們把位於分類線邊界上的點稱為support vector(candidates)。本節課前面介紹了\alpha_n>0的點一定落在分類線邊界上,這些點稱之為support vector(注意沒有candidates)。也就是說分類線上的點不一定都是支援向量,但是滿足\alpha_n>0的點,一定是支援向量。
SV只由\alpha_n>0的點決定,根據上一部分推導的w和b的計算公式,我們發現,w和b僅由SV即\alpha_n>0的點決定,簡化了計算量。這跟我們上一節課介紹的分類線只由“胖”邊界上的點所決定是一個道理。也就是說,樣本點可以分成兩類:一類是support vectors,通過support vectors可以求得fattest hyperplane;另一類不是support vectors,對我們求得fattest hyperplane沒有影響。
回過頭來,我們來比較一下SVM和PLA的w公式:
我們發現,二者在形式上是相似的。w_{SVM}由fattest hyperplane邊界上所有的SV決定,w_{PLA}由所有當前分類錯誤的點決定。w_{SVM}和w_{PLA}都是原始資料點y_nz_n的線性組合形式,是原始資料的代表。
總結一下,本節課和上節課主要介紹了兩種形式的SVM,一種是Primal Hard-Margin SVM,另一種是Dual Hard_Margin SVM。Primal Hard-Margin SVM有\hat d+1個引數,有N個限制條件。當\hat d+1很大時,求解困難。而Dual Hard_Margin SVM有N個引數,有N+1個限制條件。當資料量N很大時,也同樣會增大計算難度。兩種形式都能得到w和b,求得fattest hyperplane。通常情況下,如果N不是很大,一般使用Dual SVM來解決問題。
這節課提出的Dual SVM的目的是為了避免計算過程中對\hat d的依賴,而只與N有關。但是,Dual SVM是否真的消除了對\hat d的依賴呢?其實並沒有。因為在計算q_{n,m}=y_ny_mz_n^Tz_m的過程中,由z向量引入了\hat d,實際上覆雜度已經隱藏在計算過程中了。所以,我們的目標並沒有實現。下一節課我們將繼續研究探討如何消除對\hat d的依賴。
5. 總結
本節課主要介紹了SVM的另一種形式:Dual SVM。我們這樣做的出發點是為了移除計算過程對\hat d的依賴。Dual SVM的推導過程是通過引入拉格朗日因子\alpha,將SVM轉化為新的非條件形式。然後,利用QP,得到最佳解的拉格朗日因子\alpha。再通過KKT條件,計算得到對應的w和b。最終求得fattest hyperplane。下一節課,我們將解決Dual SVM計算過程中對\hat d的依賴問題。
註明:
文章中所有的圖片均來自臺灣大學林軒田《機器學習技法》課程
更多AI資源請關注公眾號:紅色石頭的機器學習之路(ID:redstonewill)