簡(jiǎn)介
支持向量機(jī)可能是最流行和最受關(guān)注的機(jī)器學(xué)習(xí)算法之一预侯。
超平面是分割輸入變量空間的線致开。在SVM中,通過選擇一個(gè)超平面萎馅,并根據(jù)輸入變量空間中的類(類0或類1)双戳,來最好地分離輸入變量空間中的點(diǎn)。
在二維中校坑,你可以把它想象成一條直線拣技,并假設(shè)所有的輸入點(diǎn)都可以被這條直線分開。支持向量機(jī)學(xué)習(xí)算法通過超平面的方法耍目,找出使得類間達(dá)到最佳分離的系數(shù)膏斤。
超平面與最近的數(shù)據(jù)點(diǎn)之間的距離稱為邊距,能夠?qū)蓚€(gè)類分離得最好的或最優(yōu)的超平面是具有最大邊距的那條線邪驮,它是由幾個(gè)關(guān)鍵點(diǎn)決定的莫辨,這些點(diǎn)與定義超平面和構(gòu)造分類器直接相關(guān),被稱為支持向量毅访。
SVM可能是最強(qiáng)大的開箱即用分類器之一沮榜,非常值得在您的數(shù)據(jù)集中進(jìn)行這樣的嘗試。
支持向量機(jī)喻粹,一種監(jiān)督學(xué)習(xí)方法蟆融,因其英文名為Support Vector Machine,故一般簡(jiǎn)稱SVM守呜。
通俗來講型酥,它是一種二類分類模型山憨,其基本模型定義為特征空間上的間隔最大的線性分類器,其學(xué)習(xí)策略便是間隔最大化弥喉,最終可轉(zhuǎn)化為一個(gè)凸二次規(guī)劃問題的求解郁竟。
支持向量機(jī)建構(gòu)一個(gè)或多個(gè)高維(甚至是無限多維)的超平面來分類數(shù)據(jù)點(diǎn),這個(gè)超平面即為分類邊界由境。 直觀來說棚亩,好的分類邊界要距離最近的訓(xùn)練數(shù)據(jù)點(diǎn)越遠(yuǎn)越好,因?yàn)檫@樣可以減低分類器的泛化誤差虏杰。
在支持向量機(jī)中讥蟆,分類邊界與最近的訓(xùn)練數(shù)據(jù)點(diǎn)之間的距離稱為間隔(margin); 支持向量機(jī)的目標(biāo)即為找出間隔最大的超平面來作為分類邊界嘹屯。
支持向量機(jī)的支持向量指的就是那些與分類邊界距離最近的訓(xùn)練數(shù)據(jù)點(diǎn)攻询。 從支持向量機(jī)的最佳化問題可以推導(dǎo)出一個(gè)重要的性質(zhì):支持向量機(jī)的分類邊界可以被那些支持向量決定,而與其他數(shù)據(jù)點(diǎn)無關(guān)州弟。 這也是它們被稱為“支持向量”的原因钧栖。
注:一個(gè)機(jī)器學(xué)習(xí)模型的泛化誤差(Generalization error),是一個(gè)描述學(xué)生機(jī)器在從樣品數(shù)據(jù)中學(xué)習(xí)之后婆翔,離教師機(jī)器之間的差距的函數(shù)拯杠。使用這個(gè)名字是因?yàn)檫@個(gè)函數(shù)表明一個(gè)機(jī)器的推理能力,即從樣品數(shù)據(jù)中推導(dǎo)出的規(guī)則能夠適用于新的數(shù)據(jù)的能力啃奴。
優(yōu)點(diǎn)
- 1潭陪、可以解決小樣本情況下的機(jī)器學(xué)習(xí)問題。
- 2最蕾、可以提高泛化性能依溯。
- 3、可以解決高維問題瘟则。
- 4黎炉、可以解決非線性問題。
- 5醋拧、可以避免神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)選擇和局部極小點(diǎn)問題慷嗜。
缺點(diǎn)
- 1、對(duì)缺失數(shù)據(jù)敏感丹壕。
- 2庆械、對(duì)非線性問題沒有通用解決方案,必須謹(jǐn)慎選擇Kernel function來處理菌赖。
支持向量機(jī)(SVM)的由來
首先我們先來看一個(gè)3維的平面方程:Ax+By+Cz+D=0
這就是我們中學(xué)所學(xué)的缭乘,從這個(gè)方程我們可以推導(dǎo)出二維空間的一條直線:Ax+By+D=0
那么,依次類推琉用,更高維的空間叫做一個(gè)超平面:
x代表的是一個(gè)向量堕绩,接下來我們看下二維空間的幾何表示:
SVM的目標(biāo)是找到一個(gè)超平面薄啥,這個(gè)超平面能夠很好的解決二分類問題,所以先找到各個(gè)分類的樣本點(diǎn)離這個(gè)超平面最近的點(diǎn)逛尚,使得這個(gè)點(diǎn)到超平面的距離最大化,最近的點(diǎn)就是虛線所畫的刁愿。由以上超平面公式計(jì)算得出大于1的就屬于打叉分類绰寞,如果小于0的屬于圓圈分類。
這些點(diǎn)能夠很好地確定一個(gè)超平面铣口,而且在幾何空間中表示的也是一個(gè)向量滤钱,那么就把這些能夠用來確定超平面的向量稱為支持向量(直接支持超平面的生成),于是該算法就叫做支持向量機(jī)(SVM)了脑题。
如何找到超平面
函數(shù)間隔
在超平面wx+b=0確定的情況下件缸,|wx+b|能夠表示點(diǎn)x到距離超平面的遠(yuǎn)近,而通過觀察wx+b的符號(hào)與類標(biāo)記y的符號(hào)是否一致可判斷分類是否正確叔遂,所以他炊,可以用(y(w*x+b))的正負(fù)性來判定或表示分類的正確性。于此已艰,我們便引出了函數(shù)間隔(functional margin)的概念痊末。定義函數(shù)間隔(用
但是這個(gè)函數(shù)間隔有個(gè)問題,就是我成倍的增加w和b的值哩掺,則函數(shù)值也會(huì)跟著成倍增加凿叠,但這個(gè)超平面沒有改變。所以有函數(shù)間隔還不夠嚼吞,需要一個(gè)幾何間隔盒件。
幾何間隔
我們把w做一個(gè)約束條件,假定對(duì)于一個(gè)點(diǎn) x 舱禽,令其垂直投影到超平面上的對(duì)應(yīng)點(diǎn)為 x0 炒刁,w 是垂直于超平面的一個(gè)向量,為樣本x到超平面的距離呢蔫,如下圖所示:
根據(jù)平面幾何知識(shí)切心,有
最大間隔分類器
對(duì)一個(gè)數(shù)據(jù)點(diǎn)進(jìn)行分類,當(dāng)超平面離數(shù)據(jù)點(diǎn)的“間隔”越大片吊,分類的確信度(confidence)也越大绽昏。所以,為了使得分類的確信度盡量高俏脊,需要讓所選擇的超平面能夠最大化這個(gè)“間隔”值全谤。這個(gè)間隔就是下圖中的Gap的一半。
后續(xù)問題
至此爷贫,SVM的第一層已經(jīng)了解了认然,就是求最大的幾何間隔补憾,對(duì)于那些只關(guān)心怎么用SVM的朋友便已足夠,不必再更進(jìn)一層深究其更深的原理卷员。
SVM要深入的話有很多內(nèi)容需要講到盈匾,比如:線性不可分問題、核函數(shù)毕骡、SMO算法等削饵。