背景 html
上一篇文章總結了linear hard SVM,解法很直觀,直接從SVM的定義出發,通過等價變換,轉成QP問題求解。這一講,從另外一個角度描述hard SVM的解法,不那麼直觀,可是能夠避免feature轉換時的數據計算,這樣就能夠利用一些很高緯度(甚至是無限維度)的feature轉換,獲得一些更精細的解。 函數
拉格朗日乘子式 優化
首先,回顧一下SVM問題的定義,以下: spa
線性約束很煩,不方便優化,是否有一種方法能夠將線性約束放到優化問題自己,這樣就能夠無拘無束的優化,而不用考慮線性約束了。拉格朗日大神提供了一種方法,能夠達到這個目的,稱之爲拉格朗日乘子式(更通用的方法參考文章"簡易解說拉格朗日對偶"),形式以下, 3d
這個公式是否是很奇怪,無故的多處了N個變量,可是再看下面的變化,就知道這個拉格朗日乘子式的厲害了。 htm
什麼,SVM問題等於右邊那個min max?沒錯,雖然初看感受不科學,可是仔細分析,的確如此。首先,因爲,令f(w,b) = , blog
當f(w,b) > 0,在w,b固定的狀況下,,max會將放大到; 圖片
當f(w,b)0,那麼,那麼。 get
因此,綜合兩種狀況,SVM問題與min max變換公式等價。是否是很奇妙,不得不佩服拉格朗日大神。 it
對偶變換
上面的問題中min max的形式不方便求解,不過能夠經過一番變化,導出max min的形式,這樣就能夠從內到外,先計算裏面的min,而後計算外面的max。這種變化叫對偶變化。
首先選任意一個固定的,而且,那麼有
兩邊經過w,b取min,等式仍然成立,即
有多重選擇,可是上面的不等式一致成立,因此在衆多的選擇一個最大,上面的等式變形爲,
這樣,min max就和max min創建了必定的聯繫,可是因爲是"",稱之爲弱對偶(week duality)。""強對偶(strong duality)如何才能成立呢?須要知足下面的條件,
太橋了,SVM問題徹底符合上述約束,因此是對偶,這樣能夠經過解右邊max min的問題來獲得最終解!
問題化簡
通過上面的對偶變化,下面來一步一步的簡化咱們的原始問題,
首先對b求偏導數,而且爲0,有以下結果
帶入這個結果到上面的公司,化簡
接下啦,對w求偏導數,
因此,向量w爲
將w帶入,而且去掉min,獲得以下
執行到這裏,如今目標函數只與有關,形式知足QP,能夠輕易獲得,也就是獲得w。可是在計算過程當中,須要計算一箇中間矩陣Q,維度爲N*N,這個是主要計算開銷。上一講無需計算這個Q,由於Q的形式十分簡單。
問題來了,如何求解b,上面的目標函數中,在以前的簡化過程當中消去了b,已經與b無關。
計算b
如今只剩下最後一個問題,如何計算b? 在以前的簡化過程當中消去了b,上面的QP解與無關。
KKT條件幫助咱們解決這個問題。若是原始問題和對偶問題都有最優解,且解相同,那麼會知足KKT條件。這也是一個充分必要條件,其中很重要的一點是complementary slackness(互補鬆弛性),該條件有下面等式成立,
因爲(對偶條件),且(原始條件),那麼二者有一個不爲0時,另一個必然爲0。因此,只要找到一個,就能夠利用這個性質計算出b,計算方法以下:
兩邊乘以,
理論來講,只須要一個點就能夠,可是實際上因爲計算有偏差,可能會計算全部的b,而後求平均。而且這些能夠計算出b的點,就是支持向量,由於他們知足了原始問題中支撐向量的定義。可是,並非全部的支撐向量,都有對應的。通常的,咱們只用的向量稱爲支撐向量,而那些知足支撐向量定義的向量稱之爲候選支撐向量,有以下關係
而且,爲了簡化計算,在計算w的時候,的計算都可以省去,以下
w的哲學
經過上面的計算,其實最後w是()的線性組合。一樣的,PLA中w也是()的線性組合。只是SVM利用支撐向量求解這個線性組合,PLA使用錯誤的向量。同理,邏輯迴歸,線性迴歸也有相似規律,稱這種現象爲"w represented by data"。
總結
本節使用對偶問題,從另一個側面求解了SVM,而且數據學推導相對複雜,計算量也增長了許多,由於須要求解一個N*N維度的矩陣Q。可是,爲何要作這些事情呢,hard linear SVM要簡單許多復?其實換成對偶問題是爲了利用kernel作鋪墊,改kernel能夠將維度轉化的計算省略,從而能夠計算很複雜的轉化,這一點下一節討論。
PS:劃線部分段落是因爲包含公式,沒法正常顯示,因此採用圖片方式在下方顯示。