在上一小節中,我們介紹,用二次規劃的方法來求解支援向量機的問題。如果用非線性的特徵轉化的方式,可以在乙個更複雜的z空間裡做二次規劃。這種思想是希望通過最大間隔的方式來控制模型的複雜度,通過特徵轉換來實現複雜的邊界。
但是這引入了新的問題:在進行特徵轉換之後,在新的高維空間中,求解二次規劃問題就會變得很困難。甚至在無限大的維度上求解最佳化的問題就變得不可能了。
所以,這一小節,我們要解答的是,通過非常複雜的特徵轉換,甚至無限維的特徵轉換,該如何移除在z空間上對高維度的依賴。
對於原始的svm問題,進行特徵轉換之後,問題有d+1個變數(d為z空間的維度),n個限制條件。我們要轉化為乙個對等的問題,在這種情況下,問題只有n個變數,n+1個限制條件。
所以,不管是變數的數量也好,條件的數量也好,都只有和資料量有關係,和轉換到什麼維度的空間中沒有關係。變數的數量不會隨著特徵轉換有所變化。
svm和正則化的思想有些類似,是求解乙個有條件的最佳化問題。
由上面這個圖可以知道,左側是原始的有條件的最佳化問題,右側是使用拉格朗日乘數αn >= 0將條件加入到表示式中去。
於是,我們得到了下面這個svm表示式:
這個式子的意思是,當b和w向量固定的時候,調整α使得拉格朗日函式的值最大,然後再求乙個最小值的問題。
下面再解釋一下這裡的max的過程:
當b和w是違反約束條件的,那麼造成αn與乙個正數相乘,對其求解乙個最大值問題,只能得到乙個無限大的值,這樣再求解乙個最小化的問題,就可以將這些違反條件的b和w排除掉;
當b和w是符合約束條件的,那麼造成αn與乙個非正數相乘,就能得到乙個有邊界的最大值。
這一步,我們就可以將乙個有條件的最佳化問題,通過拉格朗日乘數轉換成乙個表示式,從而方便後面的求解。
對於乙個給定的α,對拉格朗日函式的最大化的值總是大於任意乙個拉格朗日函式的值,如下:
任何乙個給定的α都會有上圖的結果,於是我們對右邊的式子去乙個最大值的動作,就得到了下面的不等式:
這樣看上去是將原來的式子的最大化和最小化作了乙個交換,這被稱為拉格朗日對偶問題。這樣就得到了原來問題解法的下限。
強對偶關係需要滿足條件
凸函式(convex primal)如果滿足上述強對偶關係的話,那麼不等式的左右就是等價相等的了。於是,我們就可以來求解右邊的問題。原來的問題是有解的,在z空間中可分(feasible primal)
線性條件(linear constraints)
右邊的式子有個好處,本來,我們將約束條件通過拉格朗日乘數加入到求解問題中,但這樣我們沒有辦法求解,現在對於max來說,求解裡面的最小化問題時α是固定的(可以看做乙個常數),那麼這就是乙個凸二次規劃問題,於是我們就可以用二次規劃的方法來求解了。
這是上面我們得到的式子進行展開的結果,接下來,我們要對其進行化簡。
首先我們將拉格朗日函式l對b求偏微分,得到乙個條件,化簡了待求解的式子:
然後我們再將拉格朗日函式l對w求偏微分,得到另外乙個條件,繼續化簡式子:
可以看到我們的化簡結果,我們幾乎將b和w都消去了,同時min也去掉了。最終得到了乙個只有α的最佳化問題(拉格朗日對偶問題的簡化版)!
kkt條件(b、w、α之間需要滿足的條件):
基於上面的化簡,我們得到了標準的硬間隔svm對偶問題:
使用一般的二次規劃的形式,來求解最佳解:
雖然,按照上面的二次規劃形式去套用這個方法貌似很簡單,但是對於資料量很大的情況,求解這個問題就需要很大的記憶體,所以需要特殊的專用方法來求解。
最後我們可以通過kkt條件和α來求解b和w:
得到w之後,通過kkt的這個條件,計算得到w:
αn > 0 的情況就對應於在邊界上的支援向量。
通過上面的求解,我們將α和原始的svm的支援向量關聯上,即αn > 0 對應支援向量。
這樣,我們只需要計算使用支援向量來計算w和b就可以了。
這裡我們比較一下svm和pla演算法,我們把svm的w表示成資料yn*zn和αn的線性組合形式,其中αn是由對偶問題算出來的。
我們可以看出svm和pla最後得到的w都是原始資料的線性組合,這種情況我們可以說w可以被資料表示出來,而svm不同的是,w只需要svm中的支援向量表示出來就可以了。
回到最初我們要解決的問題,我們通過對偶問題將待求解的問題的難度只依賴資料的數量n,但是其實我們發現在高維空間中,其維度隱藏在二次規劃問題中的矩陣中去了。
那麼我們該如何才能避開這個計算的難度呢?在下一節中,我們通過核技巧的方法來避免這個內積的計算。
github部落格主頁(
csdn部落格(
機器學習 支援向量機(對偶)
上節說到我們把svm抽象成了二次規劃問題 mi n12 2s.t yi txi 1,i 1,2 m我們看看怎麼求解這個問題 拉格朗日乘數法 lagrange multiplier method 是求解等式約束優化問題的一種方法。對於任何的帶等式約束優化問題,都可以寫成 mi nf0 x s.t.hi...
機器學習 支援向量機
線性可分支援向量機 1.回顧感知機模型 2.函式間隔與幾何間隔 3.支援向量 4.svm模型目標函式與優化 5.線性可分svm的演算法過程 線性可分支援向量機 1.軟間隔最大化 2.線性分類svm的軟間隔最大化目標函式的優化 3.軟間隔最大化時的支援向量 4.軟間隔最大化的線性可分svm的演算法過程...
機器學習 支援向量機
svm就是試圖把棍放在最佳位置,好讓在棍的兩邊有盡可能大的間隙。這個間隙就是球到棍的距離。這裡我們看到兩種不同顏色的小球 我們找到乙個棍子放在其中,把他們分割開來,但是僅僅是這麼簡單嘛,不不,我們還要考慮怎麼放這根棍子,能夠分開這兩種小球的棍子在中間有無數種方法哪種最好呢?保證決策面方向不變且不會出...