關於SVM的閱讀報告


關於SVM的閱讀報告

組員:曾文麗 楊頊 倪元元

2020-03-12

paper的題目中看到一個關鍵詞——SVM,由於不清楚SVM是什么。尋得兩篇博文:

http://www.blogjava.net/zhenandaci/category/31868.html

https://blog.csdn.net/baidu_36557924/article/details/79517365

本文中的文字、圖片、公式全部來自於兩位博主。拜讀之后整理了一些(不知道對不對的)理解:

SVM要解決的問題是,找到具有最大分類間隔的最優決策面。核函數和松弛因子都是解決樣本線性不可分問題的方法。懲罰因子越大,表示越重視離群點帶來的損失,最優分類器也就越容易受少數點控制。可以通過對不同樣本使用不同的懲罰因子來處理數據集偏斜的問題。

1. SVM是什么

SVM的全稱是Support Vector Machine,即支持向量機,主要用於解決模式識別領域中的數據分類問題,屬於有監督學習算法的一種

2. SVM要解決什么問題

SVM要解決的問題可以用一個經典的二分類問題加以描述順便了解一些相關的名詞,為了方便閱讀,一些名詞被設置稱粗體了。

 

二分類問題描述

 

1(a)展示了一個二維坐標、一些二維數據點(樣本)在該坐標中的位置,顏色用於區分數據點(樣本)的類別。

這些數據點可以被一條直線A分開,如圖1(b),直線A就是一個分類函數。一般的,如果一個線性函數能將樣本(數據)完全的分開,就稱這些數據(樣本)是線性可分的。

線性函數在一維空間里就是一個點,在二維空間就是一條直線,三維空間里就是一個平面,可以如此想象下去,如果不關注空間的維數,這種線性函數還有一個統一的名稱——超平面

將兩類數據點分開的直線不止一條,如圖1(c)所示,直線B也能將數據點完全分開。直線A和直線B也叫做決策面。每個決策面對應了一個線性分類器。如圖1所示,這兩個分類器都能將數據分開,但如果考慮潛在的其它數據,則兩者的分類性能是有差別的。

1中的數據都是准確已知的數據(先驗知識),因此該算法屬於有監督學習算法。分類器在樣本數據上的分類結果與真實結果(樣本是已經標注過的數據,是准確的數據)之間的差值,叫做經驗風險。以前的機器學習方法都把經驗風險最小化作為目標,但后來發現很多分類函數能夠在樣本集上輕易達到100%的正確率,在真實分類時卻一塌糊塗(即所謂的推廣能力差,或泛化能力差)。

SVM算法認為圖1中分類器A在性能上優於分類器B,其依據是A的分類間隔B要大。在保證決策面方向不變且不會出現錯分樣本的情況下移動決策面,會在原來的決策面兩側找到兩個極限位置(越過該位置就會產生錯分現象),如虛線所示虛線的位置由決策面的方向和距離原決策面最近的幾個樣本的位置決定。而這兩條平行虛線正中間的分界線就是在保持當前決策面方向不變的前提下的最優決策面虛線穿過的樣本點在坐標軸中對應的向量就叫做支持向量兩條虛線之間的垂直距離就是這個最優決策面對應的分類間隔

SVM要尋找的最優解就是那個具有最大“分類間隔”的最優決策面

3. 描述問題——建模

最優化問題通常有兩個最基本的因素,目標函數和約束條件。這里的目標函數的值表示分類間隔的最大值,約束條件是對應的決策面能將樣本完全分開。

接下來需要用數學語言描述該問題。

3.1決策面方程

暫時只考慮二維空間中的最優線性分類器問題,決策面是一條直線,該直線的方程形式為公式(3.1)。

                (3.1)

代替,用代替,於是有公式(3.3)。

               (3.2)

            (3.3)

公式(3.1)的向量形式可寫成公式(3.4)。

          (3.4)

公式(3.5)是一個更加一般的向量表達形式。

                (3.5)

向量,與直線垂直。也就是說向量控制了直線(決策面)的方向。另外控制了直線的位置。注意在n維空間中n-1維的超平面的方程形式也是公式(3.5)的樣子。

3.2分類間隔

 

分類間隔計算

 

分類間隔W是支持向量樣本點到決策面的距離d的2倍,追求W的最大化也就是追求d的最大化,看起來最優化問題的目標函數已經被找到了。計算d就是計算點到直線的距離,點到直線距離的公式如下:

              (3.6)

叫做向量的范數,范數是對向量長度的一種度量。常說的向量長度其實指的是它的2-范數,范數最一般的表示形式為p-范數。

向量p-范數為

 

3.3約束條件

約束條件1:直線能夠將所有的樣本點都正確分類。

約束條件2:決策面必須在間隔區域的中軸線上,也就是不能自由的優化。

約束條件3:公式(3.6)中的不是隨隨便便的一個樣本點,而是支持向量樣本點。

接下來用數學語言對3條約束條件進行描述。雖然有3條約束條件,但SVM算法通過一些巧妙的技巧,將這三條約束條件融合在了一個不等式里面。

先對圖2中的每個樣本點加上一個類別標簽

            (3.7)

將決策面兩側的點的值帶入決策面方程會產生不同的結果:

          (3.8)

當決策面正好處於間隔區域的中軸線上時:

       (3.9)

對公式(3.9)中的兩個不等式的左右同時除以d,得到公式(3.10):

        (3.10)

其中

直線和直線其實是同一條直線,因此約束條件可表示為:

          (3.11)

公式(3.11)就是SVM優化問題的約束條件。

3.4簡化目標函數和約束條件

是決策面所對應的支持向量樣本點時,公式(3.11)中等式或者等式成立。所以對於這些支持向量樣本點有:

是支持向量樣本點         (3.12)

d本來就是支持向量樣本點到決策面的距離,將支持向量帶入公式(3.6)發現分子為1。因此目標函數成了公式(3.12)。追求分類間隔d的最大值就成了追求的最小值,也等效於追求的最小值。

另外將公式(3.11)中的類別標簽和兩個不等式的左邊相乘,得到:

          (3.13)

其中m代表樣本點的總個數。

最終,線性SVM最優化問題的數學描述為:

 

s.t.           (3.14)

在這個問題中是自變量,目標函數是的二次函數,所有不等式約束條件都是的線性函數。需要注意代表樣本,而不是變量。

文章[2]介紹了如何把不等式約束問題轉化為只帶等式約束的問題。進而可以求解該問題。

4. 核函數

之前一直討論的是線性分類器,線性分類器只能處理線性可分的樣本。如果樣本線性不可分,線性分類器的求解程序就會無限循環,永遠也解不出來。圖3是樣本線性不可分的例子。

 

樣本線性不可分的例子

 

3中的樣本在二維空間中,二維空間中的線性函數是一條直線,無法找到一條直線將紅色線段和黑色線段完全分開。

在二維空間中,可找到很多曲線將圖3中的樣本完全分開。圖4展示了其中一條。

 

二維空間中將線性不可分的樣本完全分開的曲線

 

曲線的函數表達式為:

            (4.1)

新建向量y和:

,

於是是四維空間中的線性函數。

原來在二維空間中的一個線性不可分的問題,映射到四維空間后,變成線性可分的了。

分類過程是,先輸入一個一維的向量x,將x變換為三維的向量y,然后求這個變換后的向量y與向量a的內積,將結果與閾值比較得出分類結果。圖5構建了坐標系,確定了四維空間中一個線性函數的具體表達式,並進行了分類嘗試。

分類嘗試

 

我們關心高維空間中線性函數的輸出結果,並不在意x到y的映射關系。

核函數接收低維空間的輸入值,卻能計算出高維空間中線性函數的輸出結果。

核函數不止一個,對核函數的選擇,還缺乏指導原則。

使用核函數向高維空間映射后,問題仍然可能是線性不可分的。

5. 松弛變量

把一個本來線性不可分的問題,通過映射到高維空間而變成線性可分的,決策面的方向、位置可能如圖6所示。

 

高維空間中線性可分問題

 

新加入的樣本點可能在如圖7所示黃色方塊的位置。

新加入的樣本點

 

新加入的一個樣本使得原本線性可分的問題變成了線性不可分。這樣類似的問題(僅有少數點線性不可分)叫做近似線性可分”的問題。

要求所有樣本點都滿足和分類平面間的距離必須大於某個值的解法叫做硬間隔”分類法,其結果容易受少數點的控制。像圖7這種有噪聲的情況甚至會使整個問題無解。

解決方法是允許一些點到決策面的距離不滿足原先的要求。

公式(3.9)可寫成:

            (5.1)

公式(5.1)的意思是說每個樣本點到決策面的距離要大於d。如果要引入容錯性,就給d加上一個松弛變量。

於是約束條件公式(3.14)就變成:

s.t.           (5.2)

這種間隔比d小的點也叫做離群點,放棄這些點對分類器來說是種損失。但也使分類面不必向這些點的方向移動,因而可以得到更大的分類間隔。

引入松弛變量給目標函數帶來了損失,有兩種衡量損失的方式,使用來衡量損失的分類器叫做二階軟間隔分類器,使用來衡量損失的分類器叫做一階軟間隔分類器。把損失加入到目標函數時,需要一個懲罰因子C。原來的優化問題就變成了下面這樣:

 

s.t.          (5.3)

需要注意幾點:

1)並非所有點都有一個松弛變量與其對應。實際上只有“離群點”才有。

2)松弛變量的值實際上標示了對應的點到底離群有多遠,值越大,點就越遠。

3)懲罰因子C決定了你有多重視離群點帶來的損失。

4)懲罰因子C不是一個變量,C是一個必須事先指定的值。指定這個值之后,解一下,得到一個分類器,然后用測試數據看看結果怎么樣,如果不夠好,換一個C值,再解一次優化問題,得到另一個分類器,再看看效果,如此就是一個參數尋優的過程。

核函數和松弛變量都是解決線性不可分問題的方法。以文本分類為例,在原始低維空間種,樣本相當不可分,此時用核函數向高維空間映射一下,結果仍然可能不可分,但比原始空間里的要更加接近線性可分的狀態(也就是近似線性可分的狀態),此時再用松弛變量處理那些少數離群點,就簡單有效得多了。

6. 數據集偏斜

數據集偏斜是指參與分類的兩個類別樣本數量差異很大,比如正類有10000個樣本,而父類只有100個。這種現象使得數量多的正類可以把決策面向負類的方向“推”,因而影響結果的准確性。

 

數據集偏斜

 

如圖8所示,沒提供圖中兩個灰色的方形點時,決策面為H;提供這兩個灰色方形點時,決策面為H’

解決方法是給樣本數量少的負類更大的懲罰因子,表示我們重視這部分樣本。因此目標函數中因松弛變量而損失的部分就變成了:

  

其中i=1...p都是正樣本,j=p+1...p+q都是負樣本。的大小是試出來的。根據具體分類問題,可參考兩類樣本數的比例或兩類樣本占據體積的比例確定出的比值。

7. 參考文獻

[1] http://www.blogjava.net/zhenandaci/category/31868.html,2009

[2] https://blog.csdn.net/baidu_36557924/article/details/79517365,2018

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM