機(jī)器學(xué)習(xí)算法-支持向量機(jī)SVM

1. 算法

1.1 從最簡(jiǎn)單的數(shù)學(xué)問題說起

要理解SVM算法霉囚,首先就要理解SVM解決的問題是什么达椰,損失函數(shù)是如何推導(dǎo)來的,這是最關(guān)鍵最基礎(chǔ)的部分堤尾,請(qǐng)看下面這張圖。

我們以二維特征空間中的一個(gè)二分類問題為例來講解迁客。SVM就是希望尋找一個(gè)最優(yōu)的決策邊界郭宝,這個(gè)邊界距離兩個(gè)類別的最近的樣本點(diǎn)最遠(yuǎn)。這里有兩個(gè)重要概念掷漱,這個(gè)最優(yōu)決策邊界就叫做超平面粘室,而兩個(gè)類別中距離這個(gè)決策邊界最近的點(diǎn)就叫做支持向量。也就是說我們希望各類別的支持向量到超平面的距離最常卜范,這就是SVM研究的基本問題衔统,下面我們將這個(gè)問題轉(zhuǎn)化成數(shù)學(xué)形式,并推導(dǎo)他的損失函數(shù)海雪,這個(gè)推導(dǎo)過程需要的數(shù)學(xué)基礎(chǔ)非常簡(jiǎn)單好理解锦爵。

超平面的描述方程:w^Tx+b=0

二維空間點(diǎn)(x,y)到直線Ax+By+C=0距離:\frac{\vert Ax+By+C \vert }{\sqrt{A^2+B^2 } }

擴(kuò)展到n維空間點(diǎn)(x_{1}, x_{2}...x_{n})
 到直線w^Tx+b=0距離:\frac{\vert w^Tx+b \vert }{\vert \vert w \vert \vert } \vert \vert w \vert  \vert =\sqrt{w_{1}^2+w_{2}^2+...+w_{n}^2 }

根據(jù)支持向量的定義我們知道喳魏,支持向量到超平面的距離為 d棉浸,其他點(diǎn)到超平面的距離大于 d。于是我們寫出這樣一個(gè)公式:

稍作轉(zhuǎn)化可以得到:

\vert \vert w \vert  \vert d?是正數(shù)刺彩,我們暫且令它為 1(之所以令它等于 1迷郑,是為了方便推導(dǎo)和優(yōu)化枝恋,且這樣做對(duì)目標(biāo)函數(shù)的優(yōu)化沒有影響),故:

將兩個(gè)方程合并嗡害,我們可以簡(jiǎn)寫為:

這個(gè)方程的含義是:支持向量到超平面的距離等于 d焚碌,其他點(diǎn)到超平面的距離大于 d。y是每個(gè)點(diǎn)的類別標(biāo)簽霸妹,在超平面一側(cè)的為1十电,超平面另一側(cè)的為-1。

每個(gè)支持向量到超平面的距離可以寫為:

由:

得到:

所以每個(gè)支持向量到超平面的距離可以化為:

支持向量的方程為y(w^Tx+b)=1(這個(gè)方程如果不理解請(qǐng)仔細(xì)再理解一下前面關(guān)于每個(gè)點(diǎn)到超平面的距離推導(dǎo))叹螟,所以上面那個(gè)方程又可以簡(jiǎn)化為:d=\frac{1}{\vert \vert w \vert \vert }

還記得我們最開始提到的SVM基本數(shù)學(xué)問題嗎鹃骂?我們需要將支持向量到超平面的距離最大化,因此我們求解的優(yōu)化問題是:max\frac{1}{\vert \vert w \vert \vert }

為了求解的方便罢绽,我們需要對(duì)這個(gè)優(yōu)化問題做一系列的簡(jiǎn)單轉(zhuǎn)化畏线,例如,分?jǐn)?shù)求導(dǎo)不方便良价,因此我們可以將最大化\frac{1}{\vert \vert w \vert \vert } 寝殴,轉(zhuǎn)化成最小化\vert \vert w \vert \vert \vert \vert w \vert \vert 有根號(hào)計(jì)算明垢,因此轉(zhuǎn)化成最小化\frac{1}{2} \vert \vert w \vert \vert ^2蚣常,由此就得到了我們最后的優(yōu)化問題:

寫成以下形式:

1.2 拉格朗日乘子與KKT條件

SVM優(yōu)化是一個(gè)不等式約束條件下的優(yōu)化問題,數(shù)學(xué)核心理論就是拉格朗日乘子和針對(duì)不等式優(yōu)化的KKT條件痊银,具體可以參考這兩個(gè)鏈接:

https://www.zhihu.com/question/38586401?如何理解拉格朗日乘子法(講的特別好)

https://www.zhihu.com/question/23311674?不等式優(yōu)化中的KKT條件

我們得到以下這個(gè)式子:

1.3 繁瑣的優(yōu)化推導(dǎo)

這個(gè)優(yōu)化問題的求解過程是非常繁瑣的抵蚊,感興趣的可以自己推一推,主要是以下幾個(gè)步驟:

以上就是線性可分情況下曼验,二分類問題的SVM算法求解過程泌射。需要注意的是,SVM的編程實(shí)現(xiàn)過程是SMO算法:首先驗(yàn)證KKT條件鬓照,然后固定迭代求解得到\lambda ,根據(jù)上文中的公式計(jì)算得到wb孤紧,最后根據(jù)分類決策函數(shù)判斷類別豺裆。

2. 補(bǔ)充

2.1 軟間隔

如下圖所示,在實(shí)際分類中号显,二分類問題基本都不能找到一個(gè)完美的超平面臭猜,因?yàn)閮蓚€(gè)類別的交界處總是會(huì)存在錯(cuò)分的情況,因此我們引入軟間隔的概念押蚤。

相比于硬間隔的苛刻條件蔑歌,我們?cè)试S個(gè)別樣本點(diǎn)出現(xiàn)在間隔帶里面,比如:

在兩條虛線內(nèi)的向量都是支持向量揽碘,那么我們求解的優(yōu)化問題就變成了了如下次屠,具體的推導(dǎo)過程在此略去园匹。

2.2 核函數(shù)

對(duì)于線性不可分的問題,我們使用核函數(shù)劫灶,將向量映射到高維空間裸违,使其變得線性可分。

二維特征空間本昏,線性不可分
映射到三維空間變得線性可分

2.3 多分類問題

以上我們已經(jīng)解決了二分類問題中的所有情況供汛,但針對(duì)多分類問題如何解決呢?

方式一:將訓(xùn)練樣本集中的某一類當(dāng)成一類涌穆,其他所有類當(dāng)成一類怔昨,進(jìn)行二分類。這種方式下宿稀,n個(gè)類別就需要建立n個(gè)分類器朱监。

方式二:將訓(xùn)練樣本集中的類別每?jī)深惗紗为?dú)訓(xùn)練一個(gè)分類器。n個(gè)類別就需要建立C_{n}^2個(gè)分類器原叮。

在預(yù)測(cè)的時(shí)候赫编,所有分類器都跑一遍,得到的所有結(jié)果中奋隶,出現(xiàn)次數(shù)最多的標(biāo)簽就是該樣本的類別擂送。

通常情況下使用方式一解決多分類問題,因?yàn)楸M管方式二更加精確唯欣,但耗費(fèi)的時(shí)間也更多嘹吨。時(shí)間與空間,速度與質(zhì)量進(jìn)行權(quán)衡境氢。

3. 優(yōu)缺點(diǎn)

3.1 優(yōu)點(diǎn)

有嚴(yán)格的數(shù)學(xué)理論支持蟀拷,可解釋性強(qiáng),不依靠統(tǒng)計(jì)方法萍聊,從而簡(jiǎn)化了通常的分類和回歸問題问芬;

能找出對(duì)任務(wù)至關(guān)重要的關(guān)鍵樣本(即:支持向量);

采用核技巧之后寿桨,可以處理非線性分類/回歸任務(wù)此衅;

最終決策函數(shù)只由少數(shù)的支持向量所確定,計(jì)算的復(fù)雜性取決于支持向量的數(shù)目亭螟,而不是樣本空間的維數(shù)挡鞍,這在某種意義上避免了“維數(shù)災(zāi)難”。

3.2 缺點(diǎn)

訓(xùn)練時(shí)間長(zhǎng)预烙。當(dāng)采用 SMO 算法時(shí)墨微,由于每次都需要挑選一對(duì)參數(shù),因此時(shí)間復(fù)雜度為 O(n^2)扁掸,其中 N 為訓(xùn)練樣本的數(shù)量翘县;

當(dāng)采用核技巧時(shí)最域,如果需要存儲(chǔ)核矩陣,則空間復(fù)雜度為 O(n^2)炼蹦;

模型預(yù)測(cè)時(shí)羡宙,預(yù)測(cè)時(shí)間與支持向量的個(gè)數(shù)成正比。當(dāng)支持向量的數(shù)量較大時(shí)掐隐,預(yù)測(cè)計(jì)算復(fù)雜度較高狗热。

因此支持向量機(jī)目前只適合小批量樣本的任務(wù),無法適應(yīng)百萬甚至上億樣本的任務(wù)虑省。

4. 調(diào)參




5. 相關(guān)鏈接

【機(jī)器學(xué)習(xí)】支持向量機(jī) SVM(非常詳細(xì))

https://zhuanlan.zhihu.com/p/77750026

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末匿刮,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子探颈,更是在濱河造成了極大的恐慌熟丸,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件伪节,死亡現(xiàn)場(chǎng)離奇詭異光羞,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)怀大,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門纱兑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人化借,你說我怎么就攤上這事潜慎。” “怎么了蓖康?”我有些...
    開封第一講書人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵铐炫,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我蒜焊,道長(zhǎng)倒信,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任山涡,我火速辦了婚禮堤结,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鸭丛。我一直安慰自己,他們只是感情好唐责,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開白布鳞溉。 她就那樣靜靜地躺著,像睡著了一般鼠哥。 火紅的嫁衣襯著肌膚如雪熟菲。 梳的紋絲不亂的頭發(fā)上看政,一...
    開封第一講書人閱讀 52,475評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音抄罕,去河邊找鬼允蚣。 笑死,一個(gè)胖子當(dāng)著我的面吹牛呆贿,可吹牛的內(nèi)容都是我干的嚷兔。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼做入,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼冒晰!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起竟块,我...
    開封第一講書人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤壶运,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后浪秘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蒋情,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年耸携,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了棵癣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡违帆,死狀恐怖浙巫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情刷后,我是刑警寧澤的畴,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站尝胆,受9級(jí)特大地震影響丧裁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜含衔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一煎娇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧贪染,春花似錦缓呛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至痰憎,卻和暖如春票髓,著一層夾襖步出監(jiān)牢的瞬間攀涵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工洽沟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留以故,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓裆操,卻偏偏與公主長(zhǎng)得像怒详,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子跷车,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

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