1. SVM要解決的問題
SVM的全稱Support Vector Machine,即支持向量機(jī),主要用于解決模式識別領(lǐng)域中的數(shù)據(jù)分類問題,屬于有監(jiān)督學(xué)習(xí)算法的一種。
SVM要解決的問題可以用一個經(jīng)典的二分類問題加以描述。如圖1所示,紅色和藍(lán)色的二維數(shù)據(jù)點(diǎn)顯然是可以被一條直線分開的,在模式識別領(lǐng)域稱為線性可分問題。然而將兩類數(shù)據(jù)點(diǎn)分開的直線顯然不止一條。圖1(b)和(c)分別給出了A、B兩種不同的分類方案,其中黑色實線為分界線,術(shù)語稱為“決策面”。每個決策面對應(yīng)了一個線性分類器。雖然在目前的數(shù)據(jù)上看,這兩個分類器的分類結(jié)果是一樣的,但如果考慮潛在的其他數(shù)據(jù),則兩者的分類性能是有差別的。

SVM算法認(rèn)為圖1中的分類器A在性能上優(yōu)于分類器B,其依據(jù)是A的分類間隔比B要大。這里涉及到第一個SVM獨(dú)有的概念“分類間隔”。在保證決策面方向不變且不會出現(xiàn)錯分樣本的情況下移動決策面,會在原來的決策面兩側(cè)找到兩個極限位置(越過該位置就會產(chǎn)生錯分現(xiàn)象),如虛線所示。虛線的位置由決策面的方向和距離原決策面最近的幾個樣本的位置決定。而這兩條平行虛線正中間的分界線就是在保持當(dāng)前決策面方向不變的前提下的最優(yōu)決策面。兩條虛線之間的垂直距離就是這個最優(yōu)決策面對應(yīng)的分類間隔。顯然每一個可能把數(shù)據(jù)集正確分開的方向都有一個最優(yōu)決策面(有些方向無論如何移動決策面的位置也不可能將兩類樣本完全分開),而不同方向的最優(yōu)決策面的分類間隔通常是不同的,那個具有“最大間隔”的決策面就是SVM要尋找的最優(yōu)解。而這個真正的最優(yōu)解對應(yīng)的兩側(cè)虛線所穿過的樣本點(diǎn),就是SVM中的支持樣本點(diǎn),稱為“支持向量”。對于圖1中的數(shù)據(jù),A決策面就是SVM尋找的最優(yōu)解,而相應(yīng)的三個位于虛線上的樣本點(diǎn)在坐標(biāo)系中對應(yīng)的向量就叫做支持向量。
從表面上看,我們優(yōu)化的對象似乎是這個決策面的方向和位置。但實際上最優(yōu)決策面的方向和位置完全取決于選擇哪些樣本作為支持向量。而在經(jīng)過漫長的公式推導(dǎo)后,你最終會發(fā)現(xiàn),其實與線性決策面的方向和位置直接相關(guān)的參數(shù)都會被約減掉,最終結(jié)果只取決于樣本點(diǎn)的選擇結(jié)果。
到這里,我們明確了SVM算法要解決的是一個最優(yōu)分類器的設(shè)計問題。既然叫作最優(yōu)分類器,其本質(zhì)必然是個最優(yōu)化問題。所以,接下來我們要討論的就是如何把SVM變成用數(shù)學(xué)語言描述的最優(yōu)化問題模型,這就是我們在第二部分要講的“線性SVM算法的數(shù)學(xué)建?!薄?/p>
*關(guān)于“決策面”,為什么叫決策面,而不是決策線?好吧,在圖1里,樣本是二維空間中的點(diǎn),也就是數(shù)據(jù)的維度是2,因此1維的直線可以分開它們。但是在更加一般的情況下,樣本點(diǎn)的維度是n,則將它們分開的決策面的維度就是n-1維的超平面(可以想象一下3維空間中的點(diǎn)集被平面分開),所以叫“決策面”更加具有普適性,或者你可以認(rèn)為直線是決策面的一個特例。
2.線性SVM算法的數(shù)學(xué)建模
一個最優(yōu)化問題通常有兩個最基本的因素:
1)目標(biāo)函數(shù),也就是你希望什么東西的什么指標(biāo)達(dá)到最好;
2)優(yōu)化對象,你期望通過改變哪些因素來使你的目標(biāo)函數(shù)達(dá)到最優(yōu)。
在線性SVM算法中,目標(biāo)函數(shù)顯然就是那個“分類間隔”,而優(yōu)化對象則是決策面。所以要對SVM問題進(jìn)行數(shù)學(xué)建模,首先要對上述兩個對象(“分類間隔”和“決策面”)進(jìn)行數(shù)學(xué)描述。按照一般的思維習(xí)慣,我們先描述決策面。