機(jī)器學(xué)習(xí)算法總結(jié)1——支持向量機(jī)

自學(xué)機(jī)器學(xué)習(xí)一個月严就,接觸到很多算法荒辕,但總覺得沒有體會到各個算法的精髓汗销,暈暈呼呼的。現(xiàn)在決定將每個算法總結(jié)一遍抵窒,白紙黑子寫下來弛针,隨著時光慢慢體會各個算法間不同。

較早的分類模型——感知機(jī)(1957)是二類分類的線性模型李皇,也是后來神經(jīng)網(wǎng)絡(luò)和支持向量機(jī)的基礎(chǔ)削茁。支持向量機(jī)(Support vector

machines)最早也是一種二類分類模型,經(jīng)過演進(jìn)掉房,現(xiàn)在成為既能處理多元線性和非線性的問題茧跋,也能處理回歸問題。在深度學(xué)習(xí)風(fēng)靡之前算是最好的分類算法卓囚。但目前SVM的應(yīng)用仍然很多瘾杭,尤其是在小樣本集上。

1.感知機(jī)模型

感知機(jī)模型是一種二分類的線性分類器哪亿,只能處理線性可分的問題粥烁,就是嘗試找到一個超平面將數(shù)據(jù)集分開贤笆,在二維空間這個超平面就是一條直線,在三維空間就是一個平面讨阻。感知機(jī)模型如下:


sign函數(shù)是指示函數(shù)(當(dāng)wx+b> 0芥永,f(x)= 1; wx+b < 0,f(x)= -1)钝吮。感知機(jī)的超平面是wx+b= 0埋涧。


將上述分段函數(shù)(wx+b> 0,f(x)= 1; wx+b < 0f(x)= -1)整合成f(x)(wx+b)>0搀绣,即y(wx+ b) >0飞袋。滿足該式子的樣本點即分類正確的點,不滿足的即分類錯誤的點链患。目標(biāo)是找到這樣一組參數(shù)w和b巧鸭,使得將訓(xùn)練集中的正類點和負(fù)類點分開。


接下來定義損失函數(shù)(損失函數(shù)是衡量錯誤的程度的函數(shù)麻捻。當(dāng)損失函數(shù)等于零時纲仍,意味著預(yù)測值=實際值)。


其中M是表示誤分類的樣本集合贸毕。

2.支持向量機(jī)

感知機(jī)模型中郑叠,我們的目標(biāo)是將訓(xùn)練集分開,只要是能將樣本分開的超平面都滿足我們的要求明棍,而這樣的超平面有很多乡革。支持向量機(jī)本質(zhì)上和感知機(jī)類似,只是要求更加苛刻摊腋。在分類過程中沸版,遠(yuǎn)離超平面的點肯定比超平面附近的點安全,更不容易被誤分類兴蒸。支持向量機(jī)的思想就是重點關(guān)注這些離超平面很近的點视粮,一句話就是在分類正確的同時,讓離超平面最近的點到超平面的間隔最大橙凳。


 γ是離超平面最近的點的到超平面的幾何間隔蕾殴,將幾何間隔用函數(shù)間隔替代,可以將式子表示為:


γ(帽子)表示的是函數(shù)間隔岛啸,而函數(shù)間隔的取值是會隨著w钓觉,b成倍數(shù)變化而變化的,并不會影響最終的結(jié)果坚踩,因此令γ(帽子)

= 1议谷,則我們最終的問題可以表述為:


在這里引出了支持向量機(jī)的第一個亮點:最大化間隔,最大化間隔能使得分類更加精確,且該最大間隔超平面是存在且唯一的卧晓。

上面的問題中的1/2||w||2?是凸函數(shù)芬首,同時約束不等式是仿射函數(shù),因此這是一個凸二次規(guī)劃問題逼裆,根據(jù)凸優(yōu)化理論郁稍,我們可以借助拉格朗日函數(shù)將我們的約束問題轉(zhuǎn)化為無約束的問題來求解,我們的優(yōu)化函數(shù)可以表達(dá)為:


αi?是拉格朗日乘子胜宇,?

? ? ?αi?≥0?

i = 1, 2, 3, ....., n 耀怜。

根據(jù)拉格朗日的對偶性,可以將原始問題轉(zhuǎn)化為對偶問題(只要對偶問題存在桐愉,對偶問題的最優(yōu)化解就是原問題的最優(yōu)化解财破,一般對偶問題都比原始問題更容易求解)極大極小問題:


先對w,b求導(dǎo)求極小問題从诲,可以得到w左痢,b的值:

將求得的解代入到拉格朗日函數(shù)中,可以得到下面的優(yōu)化函數(shù)(將代入后原本的求α的極大問題轉(zhuǎn)換成了極小問題):

因此只需要求得我們的α的值就可以求得我們的w系洛,b的值(求α的常用算法是SMO算法俊性,可以參考https://www.cnblogs.com/pinard/p/6111471.html)假設(shè)最終求得的α的值為α*,則w描扯,b可以表述成:


引入KTT條件(KTT條件是上面拉格朗日函數(shù)求最優(yōu)解的必要條件):


從KTT條件中可以看出定页,當(dāng)yi(w*xi?+b*) - 1 > 0 時,αi*= 0绽诚;當(dāng)αi*> 0 時典徊,yi(w*xi?+b*) - 1 = 0;

結(jié)合上面的w恩够,b表達(dá)式可以引出支持向量機(jī)的第二個亮點:w卒落,b參數(shù)只與滿足yi(w*xi?+b*) - 1 = 0的樣本有關(guān),而這些樣本點就是離最大間隔超平面最近的點玫鸟,我們將這些點稱之為支持向量。因此很多時候支持向量在小樣本集分類時也能表現(xiàn)的很好犀勒,也正是因為這個原因屎飘。(另外需注意:α向量的個數(shù)是和訓(xùn)練集數(shù)量相等的,對與大的訓(xùn)練集贾费,會導(dǎo)致所需要的參數(shù)數(shù)量增多钦购,因此SVM在處理大的訓(xùn)練集時會比其他常見的機(jī)器學(xué)習(xí)算法要慢)

3.軟間隔最大化

通常情況下的訓(xùn)練集中都會存在一些異常點,而這些異常點會導(dǎo)致訓(xùn)練集線性不可分褂萧,但除去這些異常點之后押桃,剩下的樣本就是線性可分的,而上面講到的硬間隔最大化是無法處理線性不可分的問題导犹,線性不可分意味著有些樣本點的函數(shù)間隔是不能滿足大于等于1的約束條件唱凯。因此我們對每個樣本(xi,yi)引入一個松弛變量?ξi羡忘,則我們的約束條件變?yōu)椋?/p>


  目標(biāo)函數(shù)中加入對松弛變量的懲罰項,懲罰參數(shù)C> 0磕昼,目標(biāo)優(yōu)化函數(shù)變?yōu)椋?/p>


  因為整個求解的原始問題可以描述為:


  采用和之前同樣的求解方法卷雕,利用拉格朗日將約束問題轉(zhuǎn)化為無約束的問題,將原始問題轉(zhuǎn)化為求極大極小問題的對偶問題票从,可以得到我們的最終結(jié)果:


  和第二部分中的結(jié)果唯一不同的是αi?的取值范圍多了一個上限C值漫雕,對于軟間隔最大化時,其支持向量描述要復(fù)雜一些峰鄙,因為其支持向量可以在間隔邊界上(如下圖中的虛線)浸间,也可以在間隔邊界和超平面之間,或者在分離超平面誤分的一側(cè)吟榴。


4魁蒜、合頁損失函數(shù)

  合頁損失函數(shù)又稱為hinge損失函數(shù),其表達(dá)式如下:


  因此我們上面的優(yōu)化問題可以描述為:


  對上述損失函數(shù)中的第一項可以理解為當(dāng)樣本分類正確且間隔大于1煤墙,即yi(wxi?+b) ≥ 1時梅惯,損失為0;而當(dāng)?yi(wxi?+b) < 1 時仿野,損失為

1-?yi(wxi?+b)铣减,注意在這里即使樣本分類正確,但是間隔小于1的也會計入損失脚作,這就是支持向量機(jī)的苛刻性葫哗。

  下圖是hinge損失函數(shù)和其他一些損失函數(shù)的比較:


5、線性不可分

  上面講到的軟間隔最大化只能解決由于異常點而導(dǎo)致的線性不可分問題球涛,而對于本身的數(shù)據(jù)集就是非線性的問題就無能為力劣针,根據(jù)相關(guān)理論對于在低維空間線性不可分的問題,一般將其映射到高維空間后都是線性可分的亿扁,我們可以將這一理論運(yùn)用到支持向量機(jī)中捺典,可以引入一個函數(shù)??(x),將樣本集從當(dāng)前維度映射到更高的維度从祝,回過頭來看我們之前的優(yōu)化函數(shù):


  我們只需要將優(yōu)化函數(shù)中的內(nèi)積xi??·?xj?轉(zhuǎn)化成?(xi)?·??(xj)即可解決我們的非線性問題襟己,但與此同時也引入了新的問題我們的數(shù)據(jù)維度增大后,內(nèi)積的計算量也增大了牍陌,當(dāng)映射后的維度很高擎浴,甚至是達(dá)到無窮維之后,求解模型時的計算量也會顯著增大毒涧,那么如何來處理這個問題呢贮预?這就需要引入我們的核函數(shù)了。

  我們知道即使在映射到高維后,內(nèi)積?(xi)?·??(xj)的值也依然是一個常數(shù)仿吞,那么是否存在這樣一個函數(shù)K(?xi?·?xj?)=??(xi)?·??(xj)滑频,有理論證明當(dāng)這樣的函數(shù)是存在的(Mercer定理已證明),我們將其稱為核函數(shù)茫藏。

  在此引出了支持向量機(jī)的第三個亮點:在不需要將樣本映射到高維空間误趴,而利用核函數(shù)解決非線性分類問題

  通過借助核函數(shù)就解決了我們的問題务傲,當(dāng)然不是什么函數(shù)都能作為核函數(shù)的凉当,已經(jīng)被證明的核函數(shù)并不多,而常用的核函數(shù)也就那么幾個售葡,接下來我們介紹下常見的幾種核函數(shù):

  1)線性核函數(shù)

  線性核函數(shù)很好理解看杭,只能用來處理線性問題,其表達(dá)式如下:


  因此我們可以將線性SVM和非線性SVM放在一起挟伙,只需要通過設(shè)定核函數(shù)和處理它們

  2)多項式核函數(shù)


  其中的a楼雹,c,d的值都是需要我們?nèi)ネㄟ^調(diào)參設(shè)置的尖阔。

  3)徑向基核函數(shù)

  徑向基核函數(shù)也稱為高斯核函數(shù)


  參數(shù)較少贮缅,只需要自己去設(shè)置參數(shù)σ

  4)Sigmoid核函數(shù)

  K(x,y) = tanh (ax?·?z+ r)

  需要設(shè)置調(diào)試的參數(shù)a,r介却,其中 tanh函數(shù)雙曲正切函數(shù)谴供,也被常用來作神經(jīng)網(wǎng)絡(luò)中的激活函數(shù)。

  根據(jù)泰勒展開式齿坷,我們知道高階可導(dǎo)的函數(shù)都可以用多項式函數(shù)表示桂肌,在這里徑向基核函數(shù)和Sigmoid核函數(shù)都是高階可導(dǎo)的,因此都可以用多項式來表述永淌。換句話說崎场,徑向基核函數(shù)和Sigmoid核函數(shù)都是可以表述高階多項式的,因此在選擇核函數(shù)時遂蛀,徑向基核函數(shù)和Sigmoid核函數(shù)通常要比多項式核函數(shù)表現(xiàn)的要好谭跨,因為可以自動的去匹配階數(shù),而不需要我們?nèi)ブ付ǘ囗検胶撕瘮?shù)的階數(shù)李滴,此外多項式核函數(shù)需要調(diào)試的參數(shù)也比較多螃宙,因此通常選擇徑向基核函數(shù)。

6悬嗓、總結(jié)

  總的來說污呼,在集成算法和神經(jīng)網(wǎng)絡(luò)風(fēng)靡之前裕坊,SVM基本上是最好的分類算法包竹,但即使在今天,它依然占有較高的地位。

  SVM的主要優(yōu)點有:

  1)引入最大間隔周瞎,分類精確度高

  2)在樣本量較小時苗缩,也能準(zhǔn)確的分類,并且具有不錯的泛化能力

  3)引入核函數(shù)声诸,能輕松的解決非線性問題

  4)能解決高維特征的分類酱讶、回歸問題,即使特征維度大于樣本的數(shù)據(jù)彼乌,也能有很好的表現(xiàn)

  SVM的主要缺點有:

  1)在樣本量非常大時泻肯,核函數(shù)中內(nèi)積的計算,求解拉格朗日乘子α值的計算都是和樣本個數(shù)有關(guān)的慰照,會導(dǎo)致在求解模型時的計算量過大

  2)核函數(shù)的選擇通常沒有明確的指導(dǎo)灶挟,有時候難以選擇一個合適的核函數(shù),而且像多項式核函數(shù)毒租,需要調(diào)試的參數(shù)也非常多

  3)SVM對缺失數(shù)據(jù)敏感(好像很多算法都對缺失值敏感稚铣,對于缺失值,要么在特征工程時處理好墅垮,要么使用樹模型)惕医。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市算色,隨后出現(xiàn)的幾起案子抬伺,更是在濱河造成了極大的恐慌,老刑警劉巖剃允,帶你破解...
    沈念sama閱讀 211,423評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沛简,死亡現(xiàn)場離奇詭異,居然都是意外死亡斥废,警方通過查閱死者的電腦和手機(jī)椒楣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,147評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來牡肉,“玉大人捧灰,你說我怎么就攤上這事⊥炒福” “怎么了毛俏?”我有些...
    開封第一講書人閱讀 157,019評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長饲窿。 經(jīng)常有香客問我煌寇,道長,這世上最難降的妖魔是什么逾雄? 我笑而不...
    開封第一講書人閱讀 56,443評論 1 283
  • 正文 為了忘掉前任阀溶,我火速辦了婚禮腻脏,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘银锻。我一直安慰自己永品,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,535評論 6 385
  • 文/花漫 我一把揭開白布击纬。 她就那樣靜靜地躺著鼎姐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪更振。 梳的紋絲不亂的頭發(fā)上炕桨,一...
    開封第一講書人閱讀 49,798評論 1 290
  • 那天,我揣著相機(jī)與錄音肯腕,去河邊找鬼谋作。 笑死,一個胖子當(dāng)著我的面吹牛乎芳,可吹牛的內(nèi)容都是我干的遵蚜。 我是一名探鬼主播,決...
    沈念sama閱讀 38,941評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼奈惑,長吁一口氣:“原來是場噩夢啊……” “哼吭净!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起肴甸,我...
    開封第一講書人閱讀 37,704評論 0 266
  • 序言:老撾萬榮一對情侶失蹤寂殉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后原在,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體友扰,經(jīng)...
    沈念sama閱讀 44,152評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,494評論 2 327
  • 正文 我和宋清朗相戀三年庶柿,在試婚紗的時候發(fā)現(xiàn)自己被綠了村怪。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,629評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡浮庐,死狀恐怖甚负,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情审残,我是刑警寧澤梭域,帶...
    沈念sama閱讀 34,295評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站搅轿,受9級特大地震影響病涨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜璧坟,卻給世界環(huán)境...
    茶點故事閱讀 39,901評論 3 313
  • 文/蒙蒙 一既穆、第九天 我趴在偏房一處隱蔽的房頂上張望凌彬。 院中可真熱鬧,春花似錦循衰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至工三,卻和暖如春迁酸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背俭正。 一陣腳步聲響...
    開封第一講書人閱讀 31,978評論 1 266
  • 我被黑心中介騙來泰國打工奸鬓, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人掸读。 一個月前我還...
    沈念sama閱讀 46,333評論 2 360
  • 正文 我出身青樓串远,卻偏偏與公主長得像,于是被迫代替她去往敵國和親儿惫。 傳聞我的和親對象是個殘疾皇子澡罚,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,499評論 2 348

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

  • 【概述】 SVM訓(xùn)練分類器的方法是尋找到超平面,使正負(fù)樣本在超平面的兩側(cè)(分類正確性即“分得開”)肾请,且樣本到超平面...
    sealaes閱讀 11,044評論 0 7
  • 本章涉及到的知識點清單:1留搔、決策面方程2、函數(shù)間隔和幾何間隔3铛铁、不等式約束條件4隔显、SVM最優(yōu)化模型的數(shù)學(xué)描述(凸二...
    PrivateEye_zzy閱讀 13,210評論 3 10
  • 本文主要是學(xué)習(xí)支持向量機(jī)的算法原理,并且用Python來實現(xiàn)相關(guān)算法饵逐。內(nèi)容包括:SVM概述括眠、線性可分支持向量機(jī)、線...
    keepStriving閱讀 16,717評論 6 57
  • 參考Jerrylead和july-支持向量機(jī)通俗導(dǎo)論 一倍权、由邏輯回歸哺窄,引申出SVM(線性可分的SVM) 1.1 邏...
    小碧小琳閱讀 1,433評論 0 2
  • 在學(xué)校的兩年,終于把周圍的店都給吃膩了账锹。 新發(fā)現(xiàn)的一家店萌业,只吃過兩次,上次點的牛奶冰粉奸柬。 我想說關(guān)東煮和麻辣燙有啥...
    螢火蟲zcf閱讀 472評論 1 1