?
?
目錄
🍔 SVM引入
1.1什么是SVM?
1.2支持向量機分類
1.3 線性可分、線性和非線性的區分
🍔 小結
學習目標
知道SVM的概念
🍔 SVM引入
1.1什么是SVM?
看一個故事,故事是這樣子的:
在很久以前的情人節,一位大俠要去救他的愛人,但魔鬼需要大俠先攻克他設置的防線,于是和他玩了一個游戲game。
魔鬼在桌子上似乎有規律放了兩種顏色的球,說:“你用一根棍分開它們?要求:盡量在放更多球之后,仍然適用。”
于是大俠這樣放,干的不錯?
然后魔鬼,又在桌上放了更多的球,似乎有一個球站錯了陣營。
大俠苦思冥想似乎記得學過SVM技術,于是就采用SVM試試。
這里的 SVM就試圖把棍放在最佳位置,好讓在棍的兩邊有盡可能大的間隙。
現在即使魔鬼放了更多的球,棍仍然是一個好的分界線。
在SVM 工具箱中有另一個更加重要的 trick(招式) 。 魔鬼看到大俠已經學會了前面一個trick,于是魔鬼給了大俠一個新的挑戰。
現在,大俠沒有棍可以很好幫他分開兩種球了,現在怎么辦呢?當然又想起了放大招---SVM。像所有武俠片中一樣大俠桌子一拍,球飛到空中。然后,憑借大俠練就的輕功,大俠抓起一張紙,插到了兩種球的中間。
現在,從魔鬼的角度看這些球,這些球看起來像是被一條曲線分開了。
最后,魔鬼被折服了
再之后,無聊的大人們,把這些球叫做 「data」 ,把棍子叫做 「classifier」 , 最大間隙trick 叫做 「optimization」 , 拍桌子叫做 「kernelling」 , 那張紙叫做 「hyperplane」。
1.2支持向量機分類
支持向量機的基本模型是定義在特征空間上的間隔最大的線性分類器。它是一種二分類的模型,當采用了核技巧之后,支持向量機可以用于非線性分類。不同類型的支持向量機解決不同問題:
(1)線性可分支持向量機(硬間隔支持向量機):
當訓練數據線性可分的時候,通過硬間隔最大化,學習得到一個線性可分支持向量機。
(2)線性支持向量機(軟間隔支持向量機):
當訓練數據近似線性可分時,通過軟間隔最大化,學習一個線性支持向量機。
(3)非線性支持向量機:
當訓練數據不可分的時候,通過使用核技巧以及軟間隔最大化,學得一個非線性支持向量機。
1.3 線性可分、線性和非線性的區分
第一個圖是線性可分,我們借助線性可分支持向量機完成分類。第二個圖是不能完全線性可分,我們通過線性支持向量機解決。第三個圖是完全線性不可分的,需要借助非線性支持向量機分類。
通過上述描述,我們抽象其中的藍球和紅球,并將兩種顏色的球轉化為二維平面上的點坐標,籃球映射為黑球,紅球映射為白球。使用直線H1,H2和H3分類這兩類顏色的球,圖中的H1不能很好的區分黑球和白球,可以看到H2和H3都能很好的區分這兩種顏色的球。
區分數據集。 我們能夠想到和H2和H3這樣的直線一樣可以區分兩種顏色的球體有很多種條直線,雖然他們都能夠很好的分類已經存在的黑球和白球,也就是我們之前講到的訓練集分類效果很好,訓練誤差為0。但是不能保證這些超平面在未知的實例上運行效果會很好,和上面魔鬼和大俠的例子一樣,當魔鬼放置更多的黑球或白球的時候,我們提到的這些平面還能很好的讓這些未知的球得到很好的分類嗎?
我們這里考慮泛化誤差的影響。 根據在檢驗樣本上的運行效果,分類器必須從這些分類超平面中選擇一個來表示它的決策邊界。滿足這個條件的很多,但是使得泛化誤差最小的條件就是邊際margin最大的情況。如左圖的邊際不及右邊的邊際margin大,我們選擇右邊的圖作為邊界最好的劃分。因為 在有新的點出現的時候左邊圖的邊際會錯誤分類一些點,而右側就能很好的分類。
🍔 小結
1.SVM學習的目的在于找到具有最大邊緣的超平面。
為啥:因為最大邊緣超平面可以使得我們的訓練誤差很小的情況下,當有新數據的到來時也能使得測試誤差達到最小。
2.支持向量概念:
所有坐落在邊際兩邊的超平面上的點被稱作” 支持向量 (support vectors)"。
如下圖,這兩個特殊點是支撐我們構建最大邊緣超平面的。這些點所在的邊緣超平面上的點,稱為支持向量。下圖中紅色的點對右圖中的紅色的直線或平面有支撐作用,這些點是關鍵點。而其他點對最優超平面都沒有影響。
?