支持向量機(SVM)中的對偶問題

前言

在SVM中有一個求極小值的問題轉換過程,轉換爲一個對偶問題,但是我不太清楚這個問題爲什麼可以轉換,而且還不太清楚爲什麼這麼轉換?不太明確轉換後有什麼優點,寫個文章來了解這些內容。

原始問題轉換

min12w2s.t.yi(xi+b)>=1i=1,2...,n \min \quad \frac{1}{2} ||w||^2 \\ s.t. \quad y_i(x_i+b) >=1 \qquad \text{i=1,2...,n}
拉格朗日乘子之後的公式爲:
F(w,b,a)=12w2+i=1nai[1yi(wxi+b)]s.t.ai>=0 F(w,b,a)= \frac{1}{2} ||w||^2+\sum_{i=1}^{n}a_{i}[1-y_i(wx_i+b)] \\ s.t. \quad a_i>=0
優化問題爲:
minF(w,b,a)=12w2+i=1nai[1yi(wxi+b)] \min \quad F(w,b,a)= \frac{1}{2} ||w||^2+\sum_{i=1}^{n}a_{i}[1-y_i(wx_i+b)]

  • 有一個疑惑,爲什麼是1yi(wxi+b)<=01-y_i(wx_i+b)<=0?
    這樣可以把ai>0a_i>0作爲約束條件,小於0 乘以-1就可以非常方便的轉換過去。

我們假設有一個最優解ww^*,則得到最小值f(w)=12w2f(w^*)= \frac{1}{2} ||w^*||^2,則會發現一些:
minF(w,b,a)<=f(w) \min \quad F(w^*,b,a)<= f(w^*)
最優解ww^*,使得1yi(wx+b)<=01-y_i(wx^*+b)<=0,則i=1nai[1yi(wxi+b)]<=0\sum_{i=1}^{n}a_{i}[1-y_i(w^*x_i+b)]<=0,這裏ai>=0a_i>=0,所以上述公式必然成立,但一般我們會把問題假設爲如下所示:
maxai>0F(w,b,a)=12w2+i=1nai[1yi(wxi+b)] \max_{a_i>0} \quad F(w,b,a)= \frac{1}{2} ||w||^2+\sum_{i=1}^{n}a_{i}[1-y_i(wx_i+b)]

因爲有這種考慮:

  • 滿足約束條件1yi(wxi+b)<=01-y_i(wx_i+b)<=0,要想使得maxai>0F(w,b,a)=12w2\max \limits_{a_i>0} \quad F(w,b,a)= \frac{1}{2} ||w||^2,則i=1nai[1yi(wxi+b)]=0\sum_{i=1}^{n}a_{i}[1-y_i(wx_i+b)]=0,這也是KKT條件之一。
  • 不滿足約束條件,1yi(wxi+b)>01-y_i(wx_i+b)>0,則maxai>0F(w,b,a)\max \limits_{a_i>0} \quad F(w,b,a)可以是無窮大,也就無解了

爲什麼要maxai\max \limits_{a_i},而不是minai\min \limits_{a_i}?我覺得如果是求最小值,則有:

  • 滿足約束條件1yi(wxi+b)<=01-y_i(wx_i+b)<=0,要想使得minai>0F(w,b,a)\min \limits_{a_i>0} \quad F(w,b,a) \to -\infty,則ai+a_i \to +\infty,無解
  • 不滿足約束條件,1yi(wxi+b)>01-y_i(wx_i+b)>0,則minai>0F(w,b,a)=12w2\min \limits_{a_i>0} \quad F(w,b,a)= \frac{1}{2} ||w||^2,則ai=0a_i =0

可以看出minai\min \limits_{a_i}是求解不了目標的,這只是我個人的理解,感興趣的朋友可以自己去了解一下背後的數學知識。不過從另一個角度來分析:逼近。可能會有一些結果,從上面的一個公式來繼續分析:
minF(w,b,a)<=f(w) \min \quad F(w^*,b,a)<= f(w^*)
該公式說明存在滿足約束條件的ww^*,那這樣F(w,b,a)F(w^*,b,a)只能去逼近這個f(w)f(w^*),所以是求F(w,b,a)F(w^*,b,a)的最大值,也就是:
minwimaxai>0F(w,b,a) \min_{w_i} \max_{a_i>0} \quad F(w,b,a)

先分析maxai>0F(w,b,a)\max_{a_i>0} \quad F(w,b,a),得到的結果是逼近12w2\frac{1}{2} ||w||^2,然後再通過minwi12w2\min_{w_i}\frac{1}{2} ||w||^2從而達到目的。我們最終的公式爲:
minwimaxai>0F(w,b,a)=12w2+i=1nai[1yi(wxi+b)] \min_{w_i} \max_{a_i>0} \quad F(w,b,a)= \frac{1}{2} ||w||^2+\sum_{i=1}^{n}a_{i}[1-y_i(wx_i+b)]
max\max可以使得我們得到最接近12w2\frac{1}{2} ||w||^2F(w,b,a)F(w,b,a),然後再求min12w2\min \frac{1}{2} ||w||^2,很多博客裏稱minxmaxai>0F(w,b,a)\quad \min \limits_x \max \limits_{a_i>0} F(w,b,a)爲原始問題,接下來就是求解該原始問題的對偶問題。

對偶問題

於是我們可以轉換問題爲minmaxmin-max問題:
minwmaxai>012w2+i=1nai[1yi(wxi+b)] \min_{w} \max_{a_i>0} \quad \frac{1}{2} ||w||^2+\sum_{i=1}^{n}a_{i}[1-y_i(wx_i+b)]

對偶問題就是將min與max位置互換,爲什麼可以互換?確實是可以互換的,但是不太清楚原理,先直接放定理:若原始問題和對偶問題都有最優值,則對偶問題最優值dd^∗小於或等於原始問題最優值pp^∗。公式表示就是如下:
d=minwmaxa,bF(w,a,b)<=maxa,bminwF(w,a,b)=p d^*=\min_{w}\max_{a,b}F(w,a,b) <= \max_{a,b}\min_{w}F(w,a,b) =p^*
其實我是非常想學習這個對偶問題的轉換,其相關知識涉及最優化理論、運籌學等數學知識,需要時間去研讀。不過就這個問題繼續轉換,就是得到原問題的對偶問題,這中間的轉換主要是:

  • minwF(w,b,ai)\min_{w}F(w,b,a_i) 對w、b求偏導,偏導等於零,求極值,得到:
    w=iaiyixiiay=0 w=\sum_{i}a_iy_ix_i \\ \sum_{i}ay=0

  • 將w、b結果代入到原公式中得到:
    maxai>012ijaiajyiyj(xixj)+iais.t.iaiyi=0ai>=0 max_{a_i>0} -\frac{1}{2}\sum_{i} \sum_{j}a_{i}a_{j}y_{i}y_{j}(x_i * x_j) + \sum_{i}a_i \\ s.t. \sum_i a_iy_i =0 \\ a_i>=0
    在對這個函數求解,求解方法有SMO方法,也可以通過求極值方法,假設我們得到了aa的值,然後再通過

w=iaiyixi w=\sum_{i}a_iy_ix_i
求解b 稍微複雜些,根據y=wx+by=wx+b求的:
b=yjiaiyi(xixj) b = y_j-\sum_{i}a_iy_i(x_i*x_j)
這裏yjy_j是支持向量的點,並不是所有樣本數據集,是aj>0a_j>0的點,而且也不是隻有一個,應該有多個,最後求解平均值作爲b的值。

轉換爲對偶問題的優點

  • 對偶問題往往更易於求解
    爲什麼這麼講呢?原本的函數是minwmaxa,bmin_{w} max_{a,b}變爲了maxa,bminwmax_{a,b}min_{w},這樣a,ba,b的值可以用ww來替換,這樣對求解方程方便。原問題的優化是一個二次規劃問題,求解較麻煩,用拉格朗日乘子法轉換後可以用smo等算法更簡單地優化。
  • 自然引入核函數,推廣到非線性分類問題的求解
    由於轉換後的假設函數主要由內積運算構成,可以使用核函數簡化特徵映射到高維空間後的內積運算,高效地求解非線性問題。

總結

對偶問題還是比較難理解,本文沒有去分析其原理,而且本文是基於一個min問題來看到對偶問題,如果是一個max問題,它的對偶問題如何,其實也是一樣的,思想是換成了求上限,對上限求min,逼近真實值,大家可以看下參考博客的知乎,Cyber的回答,這篇文章會繼續完善。

參考博客

深入理解SVM之對偶問題
如何通俗地講解對偶問題?尤其是拉格朗日對偶lagrangian duality?
KKT 條件
【分類戰車SVM】第四話:拉格朗日對偶問題(原來這麼簡單,你也可以輕鬆學會)
一文理解拉格朗日對偶和KKT條件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章