p121 - p146
今天負(fù)能量比較爆,所以現(xiàn)在沉下來(lái)看會(huì)書(shū)反而覺(jué)得心情好了些。
第六章 支持向量機(jī)
6.1 間隔和支持向量
給定一個(gè)訓(xùn)練集,最基本的想法就是找一個(gè)超平面劃分他們。
在這些超平面中,正中間的顯然“容忍性”最好,即“魯棒”性
超平面可用以下式子來(lái)描述:
w`x + b = 0
任意x到平面距離可寫(xiě)為:
r = |w'x+b| / ||w||
假設(shè)這個(gè)面能正確分類,即對(duì)于y=1,w'x+b>0;y=-1,w`x+b<0。
放在實(shí)際里,可能不僅是>0 <0,如>=1與<=-1。
距離超平面最近的幾個(gè)點(diǎn)使=1和=-1成立,這些點(diǎn)對(duì)應(yīng)的向量稱為支持向量(SV)
兩個(gè)異類SV到平面距離之和為 r = 2/ ||w||,稱為間隔(margin)
想要找到最大間隔的超平面,就是找w和b使得r最大,即:max 2/||w||
即min 1/2 * ||w||^2,s.t. yi (w`xi + b) >= 1。(※)
※式便是SVM的基本型。
6.2 對(duì)偶問(wèn)題
※式是一個(gè)凸二次規(guī)劃問(wèn)題,可以用現(xiàn)成包解決。
但有更高效方法:拉格朗日乘子法——得到對(duì)偶問(wèn)題。
具體過(guò)程見(jiàn)p123-p124。
最終得到一個(gè)性質(zhì):訓(xùn)練完成后,大部分訓(xùn)練樣本對(duì)計(jì)算過(guò)程是沒(méi)用的,即最終效果只與支持向量有關(guān)。
在問(wèn)題規(guī)模正比于樣本數(shù)情況下,如何具體求解?
高效算法SMO
具體過(guò)程見(jiàn)p124-125
6.3 核函數(shù)
不是線性可分咋辦?如異或問(wèn)題。
答:映射到高維空間。
這時(shí)應(yīng)用6.1與6.2的方法計(jì)算時(shí)會(huì)出現(xiàn)問(wèn)題:
特征維數(shù)太大,計(jì)算困難。
引出核函數(shù)。見(jiàn)p127
若知道怎么映射,即φ的具體形式,就能寫(xiě)出核函數(shù)k()的具體形式。
但通常不知道φ,那么怎么確定k()呢?
定理6.1(核函數(shù)定理)。p128
由此可見(jiàn),“核函數(shù)選擇”成為了SVM的最大變數(shù),核函數(shù)選擇的好性能就好。
p128 6.1列出了常用的核函數(shù)。
核函數(shù)的計(jì)算準(zhǔn)則:核函數(shù)的線性組合,直積、型都是核函數(shù)。
6.4 軟間隔與正則化
之前我們一直假定訓(xùn)練樣本在樣本空間或者特征空間是線性可分的。
但是,核函數(shù)難找。
退一步說(shuō),即使找到了,恰好找到一個(gè),也是有很大的過(guò)擬合嫌疑的。
緩解策略:允許SVM在一些樣本上出錯(cuò)。
引進(jìn)“軟間隔”概念
即允許某些樣本不滿足約束 yi(w'xi + b) >= 1。(※※)
同時(shí),不滿足的應(yīng)該盡可能少。
即優(yōu)化目標(biāo)為:
min 1/2 * ||w||^2 + C∑ bool_func(yi(w'xi + b) - 1) (※※※)
其中bool_func稱為0/1損失函數(shù)。
定義見(jiàn)p130 ,但實(shí)際上我們自己是能寫(xiě)出來(lái)的。。。
顯然,C為無(wú)窮大時(shí),可理解成迫使所有樣本滿足(※※)
然而,bool_func性質(zhì)不太好(非凸,非連續(xù)),使得優(yōu)化目標(biāo)不易求解。所以實(shí)際常用一些其他函數(shù)來(lái)代替bool_func,如p130 6.31-6.33三個(gè)函數(shù)。
若采用6.31的hinge損失: hinge(z) = max(0,1-z),并引入“松弛變量”
就是常用的“軟間隔支持向量機(jī)”
經(jīng)過(guò)復(fù)雜的計(jì)算推導(dǎo)過(guò)程(p131-132)。。
我們會(huì)發(fā)現(xiàn):
軟間隔SVM最終模型也是只和SV有關(guān),即hinge函數(shù)使訓(xùn)練保持了稀疏性
可以發(fā)現(xiàn),如果使用6.33作為bool_func,幾乎得到了第三章中的對(duì)率回歸模型。
注:博主第三章看的不太明白,因?yàn)閿?shù)學(xué)有些多,之后要找機(jī)會(huì)重刷一遍。
總而言之,無(wú)論使用什么模型,基本形式都會(huì)是※※※形式。
前一項(xiàng)稱作“結(jié)構(gòu)風(fēng)險(xiǎn)”
后一項(xiàng)稱作“經(jīng)驗(yàn)風(fēng)險(xiǎn)”
C用來(lái)對(duì)兩者進(jìn)行折中。
從這個(gè)角度來(lái)說(shuō),※※※這樣的式子稱為“正則化問(wèn)題”,前一項(xiàng)稱為正則化問(wèn)題,C稱為正則化常數(shù)。
6.5 支持向量回歸(SVR)
考慮回歸問(wèn)題,即希望得到一個(gè)類似w'x+b = 0這樣的模型。
與傳統(tǒng)回歸不同,傳統(tǒng)回歸當(dāng)且僅當(dāng)y與f(x)相同時(shí),才認(rèn)為損失為0
SVR假設(shè)我們能容忍f(x)與y之間最多有ε的偏差,即只有誤差大于ε才計(jì)算損失,落到中間寬度為2ε的間隔帶里不計(jì)算損失。
經(jīng)過(guò)復(fù)雜的數(shù)學(xué)推導(dǎo)。。。(p134-136),得到解:式6.53
SVR的支持向量是間隔帶之外的向量,即其解仍具有稀疏性。
若考慮特征映射? 就是式6.56。
6.6 核方法
回顧SVM和SVR,我們發(fā)現(xiàn)學(xué)得的模型總能表示成核函數(shù)的線性組合。
實(shí)際上會(huì)有一個(gè)更普遍的結(jié)論:
定理6.2 表示定理 p137
意味著對(duì)于一般的損失函數(shù)和正則化項(xiàng),優(yōu)化問(wèn)題的最優(yōu)解都可以表示為k的線性組合。
這說(shuō)明核函數(shù)真的很厲害。。
6.7 閱讀材料
SVM直接掀起了統(tǒng)計(jì)學(xué)習(xí)浪潮
SVM如何提高效率,應(yīng)用于大規(guī)模數(shù)據(jù)一直是研究熱點(diǎn)。
SVM是針對(duì)二分類設(shè)計(jì)的,對(duì)多分類要進(jìn)行專門的推廣。
核函數(shù)太關(guān)鍵,“多核學(xué)習(xí)”借助集成學(xué)習(xí)思想,使用多個(gè)核函數(shù)。
休息一會(huì)兒
Nothing is more practical than a good theory.
神經(jīng)網(wǎng)絡(luò)和SVM的神奇的聯(lián)系。(在注解中)
最后貼張圖,難得看書(shū)真的動(dòng)了動(dòng)筆