【干貨】支持向量機SVM算法推演

【干貨】支持向量機SVM算法推演

來源:海闊心

盡管早就聽說SVM比較復雜,當真正下筆推導時其復雜程度還是出乎意料瘤缩,上周花了整整兩天的時間把支持向量機分類算法的每一個細節(jié)推導了一遍喇完,但很遺憾智力及時間有限,最核心的SMO算法仍然有幾個公式?jīng)]能推導出為什么剥啤,因此本文將只推導出一個完整的SVM算法锦溪,SMO部分留待日后再續(xù)不脯。

本文旨在進一步理順SVM的算法思路,加深理解刻诊,關于SMO算法防楷、KKT法則以及核函數(shù)的介紹并不細致(以后有機會逐個拿出來介紹),算是一個粗略的學習筆記则涯,歡迎各位大神指正复局、拍磚、給出好的建議粟判,無論是關于SVM的還是其他算法抑或機器學習的任何方面亿昏。

當然,關于SVM的內(nèi)容已經(jīng)有很多經(jīng)典的論文档礁、書籍包括博文問世角钩,最基本的原理部分免不了會有重復,文末會給出本文的參考文獻及其版本呻澜。好了递礼,步入正題。

一羹幸、邏輯回歸

支持向量機(support?vector?machine)脊髓,簡稱SVM,是一種二類分類模型睹欲。理解SVM需要先理解邏輯回歸供炼,我們先簡單回顧邏輯回歸的知識,再引出SVM窘疮。

給出一堆n維樣本數(shù)據(jù)(x,y)其中x是表示樣本的特征數(shù)據(jù),y表示樣本的類別標簽(-1,1)冀墨,此處-1和1并無特別含義闸衫,僅僅是代表兩個不同的類別,SVM分類器的學習目標便是在這堆樣本數(shù)據(jù)中找到一個超平面可以將這些樣本分成兩類诽嘉,這個超平面的方程可以表示為:

邏輯回歸的目的是通過訓練從樣本數(shù)據(jù)中學習特征蔚出,訓練出一個0/1分類器,通常以樣本所有特征列(不包括標簽列虫腋,假設標簽為0,1)為自變量骄酗,表前列為作為因變量,模型對因變量的預測結果是從負無窮到正無窮悦冀。成熟做法是用logistic函數(shù)將預測結果映射到(0,1)上趋翻,映射后的值被認為是y=1的概率。

假設函數(shù)

其中x是n維自變量盒蟆,函數(shù)g即為logistic函數(shù)踏烙,而

的圖像如下:

可以看到师骗,logistic 函數(shù)將因變量映射到(0,1)范圍內(nèi),上述假設函數(shù)即為y=1的概率

那么當新的樣本點到來時讨惩,我們只需要算

即可辟癌,若大于0.5,就認為是屬于y=1的類,反之屬于y=0的類荐捻。

下面我們對邏輯回歸做一個變形黍少,首先將標簽由(0,1)變?yōu)椋?1,1),然后將

)中的替換為b处面,最后將后面的

替換為

仍侥,則有了

,由此看來鸳君,除了將因變量標簽由(0,1)變?yōu)椋?1,1)外农渊,邏輯回歸函數(shù)與SVM分類器函數(shù)

并沒有什么區(qū)別。我們通過以下映射函數(shù)將y映射到(-1,1)

二或颊、函數(shù)間隔(function margin)和幾何間隔(geometrical margin)

對于一個樣本點砸紊,在超平面(w,b)確定的情況下,|w*x+b|可以表示該樣本點到超平面的遠近(注意不是距離)囱挑,而通過觀察w*x+b與標簽y的符號是否一致可以判斷分類器分類的正確性醉顽,于是,引出函數(shù)間隔的概念:

而超平面(w,b)關于所有樣本點的函數(shù)間隔最小值便為超平面(w,b)關于訓練數(shù)據(jù)集(xi,yi)的函數(shù)間隔(其中x表示特征平挑,y表示類別標簽游添,i表示第i個樣本):

=min

i ?(i=1,...n)

此時若成比例的改變w和b(比如2w,2b)通熄,那么函數(shù)間隔也會同比例改變唆涝,而此時超平面并未發(fā)生改變,間隔卻是不確定的唇辨!因此需要引出幾何間隔廊酣,才能更精準的描述樣本點到超平面度的距離。

假定對于一個點x赏枚,其垂直投影到超平面上的對應點是x0, w是垂直于超平面的一個向量亡驰,

為樣本x到超平面的距離,如下圖:

由平面幾何知識知道有:

其中||w||是w的二階范數(shù)饿幅,

為單位向量凡辱,又有x0位于超平面上,滿足f(x0)=0, 帶入

栗恩。

兩邊同時乘以

透乾, 再有

可以算出:

乘上對應的類別y,即得出幾何間隔的定義:

由函數(shù)間隔和幾何間隔的定義知道,幾何間隔就是函數(shù)間隔除以||w||,而函數(shù)間隔y*(w*x+b)其實就是|f(x)|, 只是認為定義的一個度量续徽,而幾何間隔才是直觀上點到超平面的距離蚓曼。

三、最優(yōu)間隔分類器

對數(shù)據(jù)點進行分類時钦扭,數(shù)據(jù)點距離超平面的間隔越大則超平面分類的確信度就越高纫版,因此我們需要讓找到的超平面使得數(shù)據(jù)點距離超平面的間隔最大化,如下圖間隔:

因為函數(shù)間隔

會因為w和b的縮放而等比例縮放客情,因此認為幾何間隔比較適合用來最大化“間隔”其弊,則最大間隔分類器的目標函數(shù)可以為:

根據(jù)函數(shù)間隔的定義有:

又有幾何間隔的定義有:

若令函數(shù)間隔

為1,則易知

=1/||w||膀斋,且

梭伐,那么目標函數(shù)轉化為:

如下圖中間的實線就是所找的超平面,兩條虛線間隔邊界上的點就是支持向量仰担,這些支持向量在虛線間隔邊界上糊识,那么滿足:

,而所有不在虛線上的點有:

摔蓝。

四赂苗、原始問題轉化為對偶問題

前文已得到最優(yōu)化函數(shù):

等價于:

顯然目標函數(shù)是二次的,又有線性約束條件贮尉,它是一個凸二次規(guī)劃問題拌滋,我們可以使用現(xiàn)有的優(yōu)化包求解,也可以通過拉格朗日對偶性變換到對偶變量的優(yōu)化問題猜谚,即通過求解與原問題等價的的對偶問題來求解超平面败砂。

定義拉格朗日函數(shù)(不知道的請自行查閱高等數(shù)學或百度百科):

令:

在滿足約束條件的情況下最小化1/2||w||^2,目標函數(shù)變?yōu)椋?/p>

表示此問題的最優(yōu)值,同原始問題等價魏铅。為易于求解昌犹,我們調換最大和最小的位置:

下面可以先求L對w,b的極小值,再求L對

的極大沦零。

五祭隔、對偶問題的求解

(1)、先固定

路操,讓L對w,b求偏導:

將偏導結果帶入L函數(shù)有:

化簡可得(此化簡過程用到了線性代數(shù)的轉置和乘積運算,感興趣可以自己推導千贯,并不難):

此時拉格朗日函數(shù)只包含一個變量

(求出了

就能求出w,b)屯仗。

(2)、求拉格朗日函數(shù)對

的極大

由(1)得知:

這樣求出

搔谴,又有可以求出w:

那么只剩下b可以這樣表示

這樣就得出了分離超平面和分類函數(shù)魁袜。

在L對w,b最小化以及對

最大化時,最后一步可以用SMO算法求解拉個讓日乘子

,本文并不推導SMO算(以后會單獨拿出一篇的章節(jié)來介紹和推導SMO)峰弹,下面介紹非線性求解情況店量,并以此引入核函數(shù)。

六鞠呈、線性不可分情況

通過以上推導我們知道所謂超平面其實就是把自變量x帶入:

得到結果后以正負號劃分分類融师。并有w:

分類函數(shù)為:

仔細觀察分類函數(shù),對于一個新的需要預測的點來說蚁吝,只需要計算它與訓練數(shù)據(jù)點的內(nèi)積即可旱爆。另外回憶一下我們之前得到的一個目標函數(shù):

注意到若數(shù)據(jù)點xi是支持向量的話,上式中紅色部分為0(支持向量的函數(shù)間隔為1)窘茁,而所有非支持向量的函數(shù)和間隔均大于1怀伦,紅色部分大于0,

是非負的山林,為滿足最大化房待,非支持向量的

均必須為0,因此針對新點的預測只需要針對少量支持向量進行計算即可驼抹。

目前我們的支持向量機分類器還只能處理線性分類桑孩,為推廣到非線性形式,下面稍稍介紹下核函數(shù)砂蔽。

七洼怔、核函數(shù)

對于非線性數(shù)據(jù)分類的問題,SVM的通常做法是用一個和函數(shù)將數(shù)據(jù)由低維空間映射到高維空間左驾,在高維空間中解決原始空間中線性不可分問題镣隶。

如下圖一堆數(shù)據(jù)點在二維空間中不可分,映射帶到三維空間中劃分:

由于對偶形式是線性學習器的一個重要性質诡右,這意味著假設集可以表示為訓練點的線性組合安岂,因此決策規(guī)則可以用測試點和訓練點的內(nèi)積來表示:

若可以在特征空間中直接計算內(nèi)積〈φ(xi?·?φ(x)〉,就像在原始輸入點的函數(shù)中一樣帆吻,將兩個步驟融合到一起建立一個非線性的學習器域那,這樣直接計算法的方法稱為核函數(shù)方法。

八猜煮、引入松弛變量處理 outliers

現(xiàn)實世界中的數(shù)據(jù)集常常是伴隨著大量的噪音次员,他們偏離正常的位置很遠,我們成為outliers王带,這些outliers對超平面的劃分會有很大的干擾淑蔚,因為超平面本身就是由幾個支持向量決定的,如圖:

用黑圈圈起來的那個藍點是一個 outlier 愕撰,它偏離了自己本應所在的那個半空間刹衫,若直接忽略掉它醋寝,超平面還是挺好的,但是由于 outlier 的出現(xiàn)带迟,分隔超平面被擠歪音羞,變成途中黑色虛線,同時間隔也相應變小了仓犬。若這個 outlier 再往右上移動一點嗅绰,也許我們將無法建立成超平面。

在原本我們的約束條件上考慮到outliers的因素:

為松弛變量婶肩,表示我們能夠容忍對應的數(shù)據(jù)點偏離函數(shù)間隔的程度办陷,松弛變量不能無限大,在目標函數(shù)加上一項約束他:

其中C是一個常數(shù)律歼,用來平衡“尋找最優(yōu)超平面”和“保證數(shù)據(jù)點偏差總量最小”這兩個約束的權重民镜。將新的約束條件加入到目標函數(shù)又有新的拉格朗日函數(shù):

同樣轉為對偶問題,讓L先對w,b和

極小化险毁,

將以上結果帶入L函數(shù)然后化簡制圈,你會驚奇的發(fā)現(xiàn)松弛變量竟然消失了!得到了和之前一樣的目標函數(shù):

上面化簡得到

畔况,又有

鲸鹦,因此有

,那么整個目標函數(shù)和約束條件可以寫做:

把目標函數(shù)和約束條件同之前對比發(fā)現(xiàn)只是對

的約束多了一個C,Kernel 化的非線性形式只需要把(xi,xj)換成K(xi,xj)。這樣一個完整的病蛉,可以處理線性和非線性并能容忍噪音和 outliers 的支持向量機就終于介紹完畢了弧蝇。

SVM本質上是一個分類方法闰歪,用w^T+b定義分類函數(shù),于是求w、b,為尋最大間隔眯停,引出1/2||w||^2,繼而引入拉格朗日因子卿泽,化為對拉格朗日乘子

的求解(求解過程中會涉及到一系列最優(yōu)化或凸二次規(guī)劃等問題)莺债,如此,求w.b與求

等價签夭,而

的求解可以用一種快速學習算法SMO齐邦,至于核函數(shù),是為處理非線性情況第租,若直接映射到高維計算恐維度爆炸侄旬,故在低維計算,等效高維表現(xiàn)煌妈。

關于SVM的深層理論我也不是理解的很透徹,本文僅作學習筆記之用,還有很多細節(jié)需要來回追究璧诵,還是那句話汰蜘,歡迎各位大神指正、拍磚之宿、給出好的建議族操,無論是關于SVM的還是其他算法抑或機器學習的任何方面。

參考文獻:

《深度學習》周志華版本

《統(tǒng)計學習方法》李航

《數(shù)據(jù)挖掘導論》Pang-Ning Tan, Michacl Sterinbach, Vipin Kumar

《支持向量機導論》Nello Cristianini, John Shawe-Taylor

了解更多:

http://blog.pluskid.org/?page_id=683

http://www.cnblogs.com/jerrylead/

http://blog.csdn.net/johnnyconstantine/article/details/46335763

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末比被,一起剝皮案震驚了整個濱河市色难,隨后出現(xiàn)的幾起案子等缀,更是在濱河造成了極大的恐慌,老刑警劉巖毒姨,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件判沟,死亡現(xiàn)場離奇詭異帝美,居然都是意外死亡,警方通過查閱死者的電腦和手機晤硕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門悼潭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來庇忌,“玉大人,你說我怎么就攤上這事女责∑崦叮” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵抵知,是天一觀的道長。 經(jīng)常有香客問我软族,道長刷喜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任立砸,我火速辦了婚禮掖疮,結果婚禮上,老公的妹妹穿的比我還像新娘颗祝。我一直安慰自己浊闪,他們只是感情好,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布螺戳。 她就那樣靜靜地躺著搁宾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪倔幼。 梳的紋絲不亂的頭發(fā)上盖腿,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天,我揣著相機與錄音损同,去河邊找鬼翩腐。 笑死,一個胖子當著我的面吹牛膏燃,可吹牛的內(nèi)容都是我干的茂卦。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼组哩,長吁一口氣:“原來是場噩夢啊……” “哼等龙!你這毒婦竟也來了?” 一聲冷哼從身側響起禁炒,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤而咆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后幕袱,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體暴备,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年们豌,在試婚紗的時候發(fā)現(xiàn)自己被綠了涯捻。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片浅妆。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖障癌,靈堂內(nèi)的尸體忽然破棺而出凌外,到底是詐尸還是另有隱情,我是刑警寧澤涛浙,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布康辑,位于F島的核電站,受9級特大地震影響轿亮,放射性物質發(fā)生泄漏疮薇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一我注、第九天 我趴在偏房一處隱蔽的房頂上張望按咒。 院中可真熱鬧,春花似錦但骨、人聲如沸励七。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽掠抬。三九已至,卻和暖如春添坊,著一層夾襖步出監(jiān)牢的瞬間剿另,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工贬蛙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留雨女,地道東北人。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓阳准,卻偏偏與公主長得像氛堕,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子野蝇,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容