支援向量機(support vector machine)--模型的由來
1995年,Corinna Cortes(CC老師)靚照
CC老師首先給出資料集是二分類且線性可分的情況,設是上的資料集,即,其中,是的標籤,例:二維空間中資料集視覺化的表示(青色表示“-1”類,紅色表示+1類):
CC老師提出了第一個問題:既然能線性可分,那麼就有超平面(向量化表示
)將這資料集分開,使得一側是“+1”類,另一側是“-1類”,老師讓我和同學A、同學B求出超平面,例:二維空間中資料集線性可分的視覺化(黃色直線將資料集分在了兩側):
我和同學A、同學B分別給出了直線的方程,我求出的直線方程是,即求出的,同學A的給出的直線方程為,(注意在我直線方程兩側除以5就可以)即
CC老師向我們提出了第二個問題,既然這三個方程只代表一條直線,能不能想個辦法,把這條直線統一一下,標準一下,CC老師看出了我們三個的迷惑,就給我提示了一下,他說你們可以找到離這條直線最近的點,通過這個點改進你們的直線方程。
補充幾何知識:
第一個知識點:已知超平面和資料集,哪個一點離這條超平面最近,答案:哪一個點使得最小,哪一點離這個超平面最近
第二個知識點:已知超平面和點,,那麼這個點到這個超平面的距離為:,向量表示法為
通過幾何知識,我修改我的直線方程,在二維平面裡可直觀的看到離這黃色直線最近的點,我用黃色圓圈標註出來了,並給出了這個點的座標
我的直線方程改進過程:,然後把,同除以4.3,那麼最後,所以我修改後的直線方程變為了,注意離這條直線最近的點使得,那麼對任意的,都有。
同學B改進他的直線方程過程(我偷瞄的):,把,同除以2.15,那麼最後的,直線方程為。
同學A改進他的方程,按照上述步驟,最後和我的是一樣。
然後,我們三個把各自的答案給了CC老師,老師看後說,你們的給出的直線方程使得,但是出現了一個負號的差別。你們再想想對於這個問題還有什麼條件沒用上,我們回答對於的標籤,我們沒用到。我們知道在超平面一側的所有點
則對於直線當直線方程是時,左下方的點為負數,右上方的點為正數,而左下方的點是屬於-1類的,右上方的點是屬於+1類的,所以我們可以把去掉絕對值,使得。
而當直線方程是時,左下方為正數,右上方為負數,我們只需把同乘以-1,便得到了。
,直到現在我們三個終於把這條直線的直線方程給統一化了,即,而且這條把資料集分開的直線還滿足,老師看到這樣的結果還是高興!然後提出了一個小問題,這些資料集到我們求出的這條直線的最短距離是什麼?簡單啊,就是,即。老師微微點點頭,表示對我們反應速度的認可!
CC老師又拋給了我們一個問題,還有沒有別的超平面可以分開這兩個資料集,回答是肯定,會有無數個超平面分開這兩個資料集,
按照求統一黃色直線方式,我們又求出了圖中綠色和藍色的直線方程,其中綠色直線方程的的係數為我們用綠色的表示,且滿足,且這個資料集到綠色直線的最小距離為,藍色直線的係數為我們用藍色的表示,且滿足,且這個資料集到這條藍色直線的最小距離為。老師又拋給我們一個問題,既然有無數條,你們什麼時候才能求出這些所有的直線,我們也想對啊,老師又說那你們求出的這些直線有沒有共同的性質,我們說有啊,就是。
老師又著急了,既然有無數條,就是有無數個,且滿足的超平面能分開這兩個資料集,那麼哪一條才是最好的呢。我們思考了五分鐘,沒找到好的答案,老師又給我提示,你們已經求出了三條直線,那麼要你們從三條直線(係數分別為)裡選出一條呢,我們選資料集到這三條直線 最小距離(三個最小距離,,) 最大的那一條,作為最好的那一條直線,老師說答對了,那無數條直線也一樣,選資料集到直線 最小距離最大的那一個。
老師說你們能不能用"選資料集到直線 最小距離最大的那一個" 這句話抽象出一個模型或者公式,老師提示說用運籌學分支之一非線性規劃的知識,歸納一下這個模型,我們想了一想給出了這個模型公式:
老師微微點點頭,範數的平方好處理一些吧,再改改,我們修改如下:
然後,老師說原問題一般用最小值處理,我們又做了一下修改:
最後把原問題乘以0.5,最優化問題的解不變,所以最後模型為:
老師最後微笑了一下,說下課吧,你們的模型已經解釋出來了!我們著急的拉住CC老師說:老師,我們穿越過來不容易,你直接告訴我們,這個模型有無數個,那這個非線性規劃怎麼解啊?。老師說:所以你們就需要考慮這個問題的對偶問題啊。最後老師說:你們先去找找Harold W. Kuhn和Albert W. Tucker,去學習一下他們的kuhn-Ticker條件(KKT)。
本集結束!
下集預告:又要穿越去找Harold W. Kuhn和Albert W. Tucker,去學習他們的解非線性規劃的kuhn-Ticker條件(KKT)。
對於支援向量機比較好開源庫是臺灣大學林老師寫的libsvm,這個庫只有常用的三個核函式,我在原始碼的基礎上,加上了十個核函式。。。