前言
在SVM中有一個求極小值的問題轉換過程,轉換爲一個對偶問題,但是我不太清楚這個問題爲什麼可以轉換,而且還不太清楚爲什麼這麼轉換?不太明確轉換後有什麼優點,寫個文章來了解這些內容。
原始問題轉換
min21∣∣w∣∣2s.t.yi(xi+b)>=1i=1,2...,n
拉格朗日乘子之後的公式爲:
F(w,b,a)=21∣∣w∣∣2+i=1∑nai[1−yi(wxi+b)]s.t.ai>=0
優化問題爲:
minF(w,b,a)=21∣∣w∣∣2+i=1∑nai[1−yi(wxi+b)]
- 有一個疑惑,爲什麼是1−yi(wxi+b)<=0?
這樣可以把ai>0作爲約束條件,小於0 乘以-1就可以非常方便的轉換過去。
我們假設有一個最優解w∗,則得到最小值f(w∗)=21∣∣w∗∣∣2,則會發現一些:
minF(w∗,b,a)<=f(w∗)
最優解w∗,使得1−yi(wx∗+b)<=0,則∑i=1nai[1−yi(w∗xi+b)]<=0,這裏ai>=0,所以上述公式必然成立,但一般我們會把問題假設爲如下所示:
ai>0maxF(w,b,a)=21∣∣w∣∣2+i=1∑nai[1−yi(wxi+b)]
因爲有這種考慮:
- 滿足約束條件1−yi(wxi+b)<=0,要想使得ai>0maxF(w,b,a)=21∣∣w∣∣2,則∑i=1nai[1−yi(wxi+b)]=0,這也是KKT條件之一。
- 不滿足約束條件,1−yi(wxi+b)>0,則ai>0maxF(w,b,a)可以是無窮大,也就無解了
爲什麼要aimax,而不是aimin?我覺得如果是求最小值,則有:
- 滿足約束條件1−yi(wxi+b)<=0,要想使得ai>0minF(w,b,a)→−∞,則ai→+∞,無解
- 不滿足約束條件,1−yi(wxi+b)>0,則ai>0minF(w,b,a)=21∣∣w∣∣2,則ai=0
可以看出aimin是求解不了目標的,這只是我個人的理解,感興趣的朋友可以自己去了解一下背後的數學知識。不過從另一個角度來分析:逼近。可能會有一些結果,從上面的一個公式來繼續分析:
minF(w∗,b,a)<=f(w∗)
該公式說明存在滿足約束條件的w∗,那這樣F(w∗,b,a)只能去逼近這個f(w∗),所以是求F(w∗,b,a)的最大值,也就是:
wiminai>0maxF(w,b,a)
先分析maxai>0F(w,b,a),得到的結果是逼近21∣∣w∣∣2,然後再通過minwi21∣∣w∣∣2從而達到目的。我們最終的公式爲:
wiminai>0maxF(w,b,a)=21∣∣w∣∣2+i=1∑nai[1−yi(wxi+b)]
max可以使得我們得到最接近21∣∣w∣∣2的F(w,b,a),然後再求min21∣∣w∣∣2,很多博客裏稱xminai>0maxF(w,b,a)爲原始問題,接下來就是求解該原始問題的對偶問題。
對偶問題
於是我們可以轉換問題爲min−max問題:
wminai>0max21∣∣w∣∣2+i=1∑nai[1−yi(wxi+b)]
對偶問題就是將min與max位置互換,爲什麼可以互換?確實是可以互換的,但是不太清楚原理,先直接放定理:若原始問題和對偶問題都有最優值,則對偶問題最優值d∗小於或等於原始問題最優值p∗。公式表示就是如下:
d∗=wmina,bmaxF(w,a,b)<=a,bmaxwminF(w,a,b)=p∗
其實我是非常想學習這個對偶問題的轉換,其相關知識涉及最優化理論、運籌學等數學知識,需要時間去研讀。不過就這個問題繼續轉換,就是得到原問題的對偶問題,這中間的轉換主要是:
-
minwF(w,b,ai) 對w、b求偏導,偏導等於零,求極值,得到:
w=i∑aiyixii∑ay=0
-
將w、b結果代入到原公式中得到:
maxai>0−21i∑j∑aiajyiyj(xi∗xj)+i∑ais.t.i∑aiyi=0ai>=0
在對這個函數求解,求解方法有SMO方法,也可以通過求極值方法,假設我們得到了a的值,然後再通過
w=i∑aiyixi
求解b 稍微複雜些,根據y=wx+b求的:
b=yj−i∑aiyi(xi∗xj)
這裏yj是支持向量的點,並不是所有樣本數據集,是aj>0的點,而且也不是隻有一個,應該有多個,最後求解平均值作爲b的值。
轉換爲對偶問題的優點
- 對偶問題往往更易於求解
爲什麼這麼講呢?原本的函數是minwmaxa,b變爲了maxa,bminw,這樣a,b的值可以用w來替換,這樣對求解方程方便。原問題的優化是一個二次規劃問題,求解較麻煩,用拉格朗日乘子法轉換後可以用smo等算法更簡單地優化。
- 自然引入核函數,推廣到非線性分類問題的求解
由於轉換後的假設函數主要由內積運算構成,可以使用核函數簡化特徵映射到高維空間後的內積運算,高效地求解非線性問題。
總結
對偶問題還是比較難理解,本文沒有去分析其原理,而且本文是基於一個min問題來看到對偶問題,如果是一個max問題,它的對偶問題如何,其實也是一樣的,思想是換成了求上限,對上限求min,逼近真實值,大家可以看下參考博客的知乎,Cyber的回答,這篇文章會繼續完善。
參考博客
深入理解SVM之對偶問題
如何通俗地講解對偶問題?尤其是拉格朗日對偶lagrangian duality?
KKT 條件
【分類戰車SVM】第四話:拉格朗日對偶問題(原來這麼簡單,你也可以輕鬆學會)
一文理解拉格朗日對偶和KKT條件