機(jī)器學(xué)習(xí)入門(十七):SVM——非線性 SVM 和核函數(shù)

非線性分類問題

遇到分類問題的時(shí)候,最理想的狀態(tài),當(dāng)然是樣本在向量空間中都是線性可分的却舀,我們可以清晰無誤地把它們分隔成不同的類別——線性可分 SVM虫几。

如果實(shí)在不行,我們可以容忍少數(shù)不能被正確劃分禁筏,只要大多數(shù)線性可分就好——線性 SVM持钉。

可是,如果我們面對(duì)的分類問題篱昔,根本就是非線性的呢每强?比如像下面這樣:

image

圖中紅色的點(diǎn)是正類樣本,藍(lán)色的點(diǎn)是負(fù)類樣本州刽。通過我們的觀察可知空执,它們之間的界限是很分明的,用圖中綠色的圈本來可以把它們完全分開穗椅。

很可惜辨绊,“圓圈”在二維空間里無法用線性函數(shù)表示,也就是說這些樣本在二維空間里根本線性不可分匹表。所以门坷,無論是線性可分 SVM 還是線性 SVM,都無法在這些樣本上良好工作袍镀。

這可怎么辦呢默蚌?難道,這種情況我們就處理不了了苇羡?

并不是绸吸!

我們可以想個(gè)辦法,讓這些在二維空間中線性不可分的樣本设江,在更高維度的空間里線性可分锦茁。

比如說,如果我們能把上圖中那些正負(fù)類的樣本映射到三維空間中叉存,并且依據(jù)不同的類別給它們賦予不一樣的高度值——z 軸取值(就像下圖這樣)码俩,那么不就線性可分了嘛。

enter image description here

如此一來鹉胖,在二維空間團(tuán)團(tuán)轉(zhuǎn)的正負(fù)例握玛,在三維空間中分為兩層,中間用一個(gè)超平面甫菠,就可以完美分隔了。

非線性 SVM

非線性 SVM 分隔超平面

對(duì)于在有限維度向量空間中線性不可分的樣本冕屯,我們將其映射到更高維度的向量空間里寂诱,再通過間隔最大化的方式,學(xué)習(xí)得到支持向量機(jī)安聘,就是非線性 SVM痰洒。

我們將樣本映射到的這個(gè)更高維度的新空間叫做特征空間瓢棒。

注意:如果是理想狀態(tài),樣本從原始空間映射到特征空間后直接就成為線性可分的丘喻,那么接下來的學(xué)習(xí)是可以通過硬間隔最大化的方式來學(xué)的脯宿。

不過,一般的情況總沒有那么理想泉粉,因此连霉,通常情況下,我們還是按照軟間隔最大化嗡靡,在特征空間中學(xué)習(xí) SVM跺撼。

簡單理解就是:非線性 SVM = 核技巧 + 線性 SVM

我們用向量 x 表示位于原始空間中的樣本讨彼,?(x) 表示 x 映射到特征空間之后的新向量歉井。

非線性 SVM對(duì)應(yīng)的分隔超平面為:f(x)=w?(x)+b。

非線性 SVM 的對(duì)偶問題

套用上一篇線性 SVM 的對(duì)偶問題哈误,此處非線性 SVM 的對(duì)偶問題就變成了:

min(12∑mi=1∑mj=1αiαjyiyj?(xi)??(xj)?∑mi=1αi)

s.t.∑mi=1αiyi=0

0?αi?C,i=1,2,...,m

大家可以看到哩至,和線性 SVM 唯一的不同就是:之前的 xi 與 xj 的內(nèi)積(點(diǎn)乘) 變成了 ?(xi) 與 ?(xj) 的內(nèi)積

核函數(shù)

對(duì)于有限維的原始空間蜜自,一定存在更高維度的空間菩貌,使得前者中的樣本映射到新空間后可分。但是新空間(特征空間)的維度也許很大袁辈,甚至可能是無限維的菜谣。這樣的話,直接計(jì)算 ?(xi)??(xj) 就會(huì)很困難晚缩。

為了避免計(jì)算 ?(xi) 和 ?(xj) 的內(nèi)積尾膊,我們需要設(shè)置一個(gè)新的函數(shù)——k(xi,xj):

k(xi,xj)=?(xi)??(xj)

原始空間中的兩個(gè)樣本 xi 和 xj 經(jīng)過 k(?,?) 函數(shù)計(jì)算所得出的結(jié)果,是它們?cè)谔卣骺臻g中映射成的新向量的內(nèi)積荞彼。

如此一來冈敛,我們就不必真的計(jì)算出 ?(xi) 點(diǎn)乘 ?(xj) 的結(jié)果,而可以直接用 k(?,?) 函數(shù)代替它們鸣皂。

我們把這個(gè) k(?,?) 函數(shù)叫做核函數(shù)∽デ矗現(xiàn)在我們給出它的正式定義:

設(shè) X 為原始空間(又稱輸入空間),H 為特征空間(特征空間是一個(gè)帶有內(nèi)積的完備向量空間寞缝,又稱完備內(nèi)積空間或希爾伯特空間)癌压。

如果存在一個(gè)映射: X×X ,使得對(duì)所有 xi,xj∈X荆陆,函數(shù) k(xi,xj) 滿足條件:k(xi,xj)=?(xi)??(xj)滩届,即 k(?,?) 函數(shù)為輸入空間中任意兩個(gè)向量映射到特征空間后的內(nèi)積。則稱 k(?,?) 為核函數(shù)被啼,?(?) 為映射函數(shù)帜消。

運(yùn)用核技巧求解非線性 SVM 的對(duì)偶問題

有了核函數(shù)棠枉,我們就可以將非線性 SVM 的對(duì)偶問題寫成:

min(12∑mi=1∑mj=1αiαjyiyjk(xi,xj)?∑mi=1αi)

s.t.∑mi=1αiyi=0

0?αi?C,i=1,2,...,m

之后的求解過程與線性 SVM 一致:先根據(jù)對(duì)偶問題求解 α,再根據(jù) α 的結(jié)果計(jì)算 w泡挺,然后根據(jù)支持向量求解 b辈讶,在此就不贅述了。

相應(yīng)地娄猫,最終求出的非線性 SVM 在特征空間的最大分隔超平面也就成了:

f(x)=w?(x)+b=∑mi=1αiyi?(xi)??(x)+b=∑mi=1αiyik(x,xi)+b

上述運(yùn)用核函數(shù)求解的過程贱除,稱為核技巧。

核函數(shù)的性質(zhì)

如果我們已經(jīng)知道了映射函數(shù)是什么稚新,當(dāng)然可以通過兩個(gè)向量映射后的內(nèi)積直接求得核函數(shù)勘伺。

但是,在我們還不知道映射函數(shù)本身是什么的時(shí)候褂删,有沒有可能直接判斷一個(gè)函數(shù)是不是核函數(shù)呢飞醉?

換句話說,一個(gè)函數(shù)需要具備怎樣的性質(zhì)屯阀,才是一個(gè)核函數(shù)缅帘?

以下是函數(shù) k(?,?) 可以作為核函數(shù)的充分必要條件

設(shè) X 是輸入空間,k(?,?) 是定義在 X×X 上的對(duì)稱函數(shù)难衰,當(dāng)且僅當(dāng)任意 x1,x2,...,xm∈X钦无, 核矩陣 K(如下所示)總是半正定時(shí),k(?,?) 就可以作為核函數(shù)使用盖袭。

核矩陣:

image

注意:下面是幾個(gè)線性代數(shù)的基礎(chǔ)概念失暂。

對(duì)稱函數(shù):函數(shù)的輸出值不隨輸入變量的順序改變而改變的函數(shù)叫做對(duì)稱函數(shù)。

因?yàn)檩斎肟臻g中的 xi和xj 是向量鳄虱,特征空間中的 ?(xi)和?(xj) 也是向量弟塞,k(xi,xj) 表示特征空間向量的內(nèi)積,而兩個(gè)向量的內(nèi)積并不因?yàn)槠漤樞蜃兓兓疽选R虼司黾牵琸(xi,xj)=k(xj,xi),即 k(?,?) 為對(duì)稱函數(shù)倍踪。

相應(yīng)地系宫,核矩陣 K 為對(duì)稱矩陣。

半正定矩陣:一個(gè) n×n 的實(shí)對(duì)稱矩陣 M 為半正定建车,當(dāng)且僅當(dāng)對(duì)于所有非零實(shí)系數(shù)向量 z扩借,均有: zTMz?0。

其中“非零實(shí)系數(shù)向量”的含義是:一個(gè)向量中所有元素均為實(shí)數(shù)缤至,且其中至少有一個(gè)元素值非零往枷。

核函數(shù)的種類

要知道,非線性 SVM 的關(guān)鍵在于將輸入空間中線性不可分的樣本映射到線性可分的特征空間中去凄杯。特征空間的好壞直接影響到了 SVM 的效果错洁。

****如何選擇核函數(shù)也就成了一個(gè)關(guān)鍵性的問題。

雖然我們已經(jīng)學(xué)習(xí)了核函數(shù)的定義和性質(zhì)戒突,但讓我們憑空去自己構(gòu)建一個(gè)核函數(shù)出來屯碴,還是一個(gè)非常困難的任務(wù)。

即使真得構(gòu)造出來了膊存,這個(gè)核函數(shù)在具體問題上的效果如何导而,還需要通過大量測(cè)試來證明,很可能費(fèi)了好大勁隔崎,最后效果還不理想今艺。

好在前人已經(jīng)給我們留下來一些經(jīng)歷了長久磨練的常用核函數(shù),讓我們可以直接拿來用爵卒。接下來虚缎,我們分別看下這些核函數(shù)。

線性核(Linear Kernel)

k(xi,xj)=xTixj

使用時(shí)無須指定參數(shù)(Parameter)钓株,它直接計(jì)算兩個(gè)輸入向量的內(nèi)積实牡。經(jīng)過線性核函數(shù)轉(zhuǎn)換的樣本,特征空間與輸入空間重合轴合,相當(dāng)于并沒有將樣本映射到更高維度的空間里去创坞。

很顯然這是最簡單的核函數(shù),實(shí)際訓(xùn)練受葛、使用 SVM 的時(shí)候题涨,在不知道用什么核的情況下,可以先試試線性核的效果总滩。

多項(xiàng)式核(Polynomial Kernel)

k(xi,xj)=(γxTixj+r)d,γ>0,d?1

需要指定三個(gè)參數(shù):γ纲堵、r 和 d。

這是一個(gè)不平穩(wěn)的核咳秉,適用于數(shù)據(jù)做了歸一化(Normalization婉支,參見本文最后一節(jié))的情況。

RBF 核(Radial Basis Function Kernel)

k(xi,xj)=exp(?γ||xi?xj||2),γ>0

RBF 核又名高斯核 (Gaussian Kernel)澜建,是一個(gè)核函數(shù)家族向挖。它會(huì)將輸入空間的樣本以非線性的方式映射到更高維度的空間(特征空間)里去,因此它可以處理類標(biāo)簽和樣本屬性之間是非線性關(guān)系的狀況炕舵。

它有一個(gè)參數(shù):γ何之,這個(gè)參數(shù)的設(shè)置非常關(guān)鍵!

如果設(shè)置過大咽筋,則整個(gè) RBF 核會(huì)向線性核方向退化溶推,向更高維度非線性投影的能力就會(huì)減弱;但如果設(shè)置過小,則會(huì)使得樣本中噪音的影響加大蒜危,從而干擾最終 SVM 的有效性虱痕。

不過相對(duì)于多項(xiàng)式核的3個(gè)參數(shù),RBF 核只有一個(gè)參數(shù)需要調(diào)辐赞,還是相對(duì)簡單的。

當(dāng)線性核效果不是很好時(shí)响委,可以用 RBF 試試新思〖星簦或者,很多情況下可以直接使用 RBF荸哟。

著名的 LIBSVM(臺(tái)灣大學(xué)林智仁/Lin Chih-Jen 教授等設(shè)計(jì)開發(fā)的一款簡單、易用蛔翅、快速有效的 SVM/SVR 支持包)的默認(rèn)核函數(shù),就是 RBF 核山析。

Sigmoid 核(Sigmoid Kernel)

k(xi,xj)=tanh(γxTixj+r)

有兩個(gè)參數(shù),γ 和 r笋轨,在某些參數(shù)設(shè)置之下,Sigmoid 核矩陣可能不是半正定的爵政,此時(shí) Sigmoid 核也就不是有效的核函數(shù)了。因此參數(shù)設(shè)置要非常小心钾挟。

整體而言洁灵,Sigmoid 核并不比線性核或者 RBF 核更好。但是掺出,當(dāng)參數(shù)設(shè)置適宜時(shí)徽千,它會(huì)有不俗的表現(xiàn)。

在具體應(yīng)用核函數(shù)時(shí)汤锨,最好針對(duì)具體問題參照前人的經(jīng)驗(yàn)双抽。

構(gòu)建自己的核函數(shù)

除了常見的核函數(shù),我們還可以根據(jù)以下規(guī)律進(jìn)行核函數(shù)的組合闲礼。

  1. 與正數(shù)相乘: k(?,?) 是核函數(shù)牍汹,對(duì)于任意正數(shù)(標(biāo)量)α?0,αk(?,?) 也是核函數(shù)铐维。

  2. 與正數(shù)相加: k(?,?) 是核函數(shù),對(duì)于任意正數(shù)(標(biāo)量)α?0,α+k(?,?) 也是核函數(shù)慎菲。

  3. 線性組合: k(?,?) 是核函數(shù)嫁蛇,則如下線性組合也是核函數(shù):∑ni=1αiki(?,?),αi?0。

  4. 乘積: k1(?,?) 和 k2(?,?) 都是核函數(shù)钧嘶,則它們的乘積——k1(?,?)k2(?,?)——也是核函數(shù)棠众。

  5. 正系數(shù)多項(xiàng)式函數(shù): 設(shè) P 為實(shí)數(shù)域內(nèi)的正系數(shù)多項(xiàng)式函數(shù),k(?,?) 是核函數(shù)有决,則 P(k(?,?)) 也是核函數(shù)。

  6. 指數(shù)函數(shù): k(?,?) 是核函數(shù)空盼,則 exp(k(?,?)) 也是核函數(shù)书幕。

掌握了這些規(guī)律,我們也可以嘗試根據(jù)需要構(gòu)建自己的核函數(shù)揽趾。

數(shù)據(jù)歸一化(Data Normalization)

數(shù)據(jù)歸一化是一種數(shù)據(jù)處理方法台汇,具體所做的就是對(duì)取值范疇不同的數(shù)據(jù)進(jìn)行歸一化處理,使它們處在同一數(shù)量級(jí)上篱瞎。

最常見的苟呐,就是把各種數(shù)據(jù)都變成 (0,1) 之間的小數(shù)。

enter image description here

上圖是一個(gè)歸一化過程在二維中的直觀顯示俐筋。

大家可以看到牵素, “扁長”的數(shù)據(jù)分布,經(jīng)過歸一化處理之后澄者,變成了一個(gè)“正圓”笆呆。

常用的歸一化算法有:

(1)線性轉(zhuǎn)換

x′=(x?min)(max?min)

(2)標(biāo)準(zhǔn)分

x′=(x–μ)γ

原本的 x 符合正態(tài)分布,μ 為其分布的均值粱挡,而 γ 為分布的方差赠幕。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市询筏,隨后出現(xiàn)的幾起案子嫌套,更是在濱河造成了極大的恐慌,老刑警劉巖康二,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沫勿,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡诫惭,警方通過查閱死者的電腦和手機(jī)蔓挖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門瘟判,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人篮撑,你說我怎么就攤上這事赢笨⊥灾ǎ” “怎么了左冬?”我有些...
    開封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵又碌,是天一觀的道長。 經(jīng)常有香客問我铸鹰,道長蹋笼,這世上最難降的妖魔是什么躁垛? 我笑而不...
    開封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任教馆,我火速辦了婚禮,結(jié)果婚禮上胶滋,老公的妹妹穿的比我還像新娘。我一直安慰自己俭令,他們只是感情好部宿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開白布理张。 她就那樣靜靜地躺著涯穷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上掘殴,一...
    開封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天起意,我揣著相機(jī)與錄音病瞳,去河邊找鬼。 笑死亲善,一個(gè)胖子當(dāng)著我的面吹牛蛹头,可吹牛的內(nèi)容都是我干的戏溺。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼耕拷,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼骚烧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起止潘,我...
    開封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤凭戴,失蹤者是張志新(化名)和其女友劉穎么夫,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體档痪,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡腐螟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年衬廷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吗跋。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡跌宛,死狀恐怖疆拘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情入问,我是刑警寧澤芬失,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布棱烂,位于F島的核電站阶女,受9級(jí)特大地震影響哩治,放射性物質(zhì)發(fā)生泄漏业筏。R本人自食惡果不足惜鸟赫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一抛蚤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧朋沮,春花似錦樊拓、人聲如沸塘慕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽岳瞭。三九已至蚊锹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間姚炕,已是汗流浹背丢烘。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來泰國打工播瞳, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人赢乓。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像蚓炬,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子经宏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

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