SVM 詳解2

SVM入門(四)線性分類器的求解——問題的描述Part1



上節說到我們有了一個線性分類函數,也有了判斷解優劣的標準——即有了優化的目標,這個目標就是最大化幾何間隔,但是看過一些關於SVM的論文的人一定記得什麼優化的目標是要最小化||w||這樣的說法,這是怎麼回事呢?回頭再看看我們對間隔和幾何間隔的定義:

間隔:δ=y(wx+b)=|g(x)|

幾何間隔:clip_image002

 

可以看出δ=||w||δ幾何。注意到幾何間隔與||w||是成反比的,因此最大化幾何間隔與最小化||w||完全是一回事。而我們常用的方法並不是固定||w||的大小而尋求最大幾何間隔,而是固定間隔(例如固定爲1),尋找最小的||w||。

而凡是求一個函數的最小值(或最大值)的問題都可以稱爲尋優問題(也叫作一個規劃問題),又由於找最大值的問題總可以通過加一個負號變爲找最小值的問題,因此我們下面討論的時候都針對找最小值的過程來進行。一個尋優問題最重要的部分是目標函數,顧名思義,就是指尋優的目標。例如我們想尋找最小的||w||這件事,就可以用下面的式子表示:

clip_image002[4]

但實際上對於這個目標,我們常常使用另一個完全等價的目標函數來代替,那就是:

clip_image002[6](式1)

不難看出當||w||2達到最小時,||w||也達到最小,反之亦然(前提當然是||w||描述的是向量的長度,因而是非負的)。之所以採用這種形式,是因爲後面的求解過程會對目標函數作一系列變換,而式(1)的形式會使變換後的形式更爲簡潔(正如聰明的讀者所料,添加的係數二分之一和平方,皆是爲求導數所需)。

接下來我們自然會問的就是,這個式子是否就描述了我們的問題呢?(回想一下,我們的問題是有一堆點,可以被分成兩類,我們要找出最好的分類面)

如果直接來解這個求最小值問題,很容易看出當||w||=0的時候就得到了目標函數的最小值。但是你也會發現,無論你給什麼樣的數據,都是這個解!反映在圖中,就是H1與H2兩條直線間的距離無限大,這個時候,所有的樣本點(無論正樣本還是負樣本)都跑到了H1和H2中間,而我們原本的意圖是,H1右側的被分爲正類,H2 左側的被分爲負類,位於兩類中間的樣本則拒絕分類(拒絕分類的另一種理解是分給哪一類都有道理,因而分給哪一類也都沒有道理)。這下可好,所有樣本點都進入了無法分類的灰色地帶。

 
 
  clip_image002[8]

造成這種結果的原因是在描述問題的時候只考慮了目標,而沒有加入約束條件,約束條件就是在求解過程中必須滿足的條件,體現在我們的問題中就是樣本點必須在H1或H2的某一側(或者至少在H1和H2上),而不能跑到兩者中間。我們前文提到過把間隔固定爲1,這是指把所有樣本點中間隔最小的那一點的間隔定爲1(這也是集合的間隔的定義,有點繞嘴),也就意味着集合中的其他點間隔都不會小於1,按照間隔的定義,滿足這些條件就相當於讓下面的式子總是成立:

    yi[(w·xi)+b]≥1 (i=1,2,…,l) (l是總的樣本數)

但我們常常習慣讓式子的值和0比較,因而經常用變換過的形式:

    yi[(w·xi)+b]-1≥0 (i=1,2,…,l) (l是總的樣本數)

因此我們的兩類分類問題也被我們轉化成了它的數學形式,一個帶約束的最小值的問題:

clip_image002[10]

下一節我們從最一般的意義上看看一個求最小值的問題有何特徵,以及如何來解。


http://www.blogjava.net/zhenandaci/archive/2009/02/13/254578.html

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