線性模型
支持向量機(Support Vector Machine)
今天主要來說一說 SVM 的美时捌,那么什么是 SVM 的美呢?SVM 的美源于她的嚴(yán)謹(jǐn)炉抒、源于她的精巧匣椰。雖然 SVM 很美同時也是很難追求,望塵莫及端礼。因為其公式推導(dǎo)比較繁瑣禽笑,這也就是在 AI 工程師面試時都喜歡問 SVM 問題入录,而且如果不假思索能夠把 SVM 手推導(dǎo)出來。網(wǎng)上有學(xué)多關(guān)于 SVM 的分享和講座佳镜,但是其中能把 SVM 推導(dǎo)過程將很通透的的確不多僚稿,并不是這些大佬沒有吃透 SVM,可能是因為時間上問題蟀伸,或者顆粒度不夠的原因吧蚀同。我也是看了不下 5 6 個關(guān)于 SVM,到現(xiàn)在為止啊掏,還在熟悉 SVM 的推導(dǎo)過程蠢络。
在 2003 到 2007 年是 SVM 時代,到現(xiàn)在對于小樣本依舊有自己的優(yōu)勢迟蜜。SVM 優(yōu)點是其容錯性刹孔,也就是具有很高魯棒性。
前蘇聯(lián) vapnik 早在 70 年代中期就已經(jīng)提出 SVM 算法娜睛,當(dāng)冷戰(zhàn)結(jié)束蘇聯(lián)解體后去了美國髓霞,經(jīng)過一段時間,終于在 1995 年提出 SVM畦戒。
有關(guān) SVM 對目標(biāo)問題就比較難于理解方库,SVM 目標(biāo)就是找到一個合理分割面(對于高維空間),首先我們來說一說什么線性可分(Linear Separable)障斋,可以找到一條分割線將兩個類別分開纵潦,這樣數(shù)據(jù)集就是線性可分?jǐn)?shù)據(jù)集。如果數(shù)據(jù)集是線性可分的垃环,那么就存在無數(shù)條分割線酪穿,SVM 的任務(wù)是從這些分割線中找到最優(yōu)的分割線。
<img src="./images/svm_001.jpg">
如果一個線性可分?jǐn)?shù)據(jù)集存在分割線晴裹,那么也就是存在無數(shù)條線性可分的分割線被济,那么在這么多線性可分分割線中哪一條線是最優(yōu)的呢。以及我們?nèi)绾味x最優(yōu)的分割線涧团。當(dāng)?shù)玫揭粭l分割線只磷,可以通過對這條線做平行向上或者向下移動直到與一側(cè)接觸到樣本停止(也就是樣本點穿過該平行于分割線的線)。找到距離 d(剛剛我們通過平移得到分別在分割線兩側(cè)且通過樣本點的兩條直線之間距離)泌绣,能夠使 d 距離最大的分割線,d 就是 margin 間隔钮追,將左右(或者說上下)移動平行線通過點樣本點是支持向量(Support Vector),只與這些支持向量有關(guān)阿迈,所以 SVM 可以用在小樣本的數(shù)據(jù)集上元媚。
支持向量機,對于樣本數(shù)很少樣本,背后一個非常漂亮算法支持刊棕。