日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

台湾大学林轩田机器学习技法课程学习笔记3 -- Kernel Support Vector Machine

發(fā)布時(shí)間:2025/3/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 台湾大学林轩田机器学习技法课程学习笔记3 -- Kernel Support Vector Machine 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

紅色石頭的個(gè)人網(wǎng)站:redstonewill.com

上節(jié)課我們主要介紹了SVM的對(duì)偶形式,即dual SVM。Dual SVM也是一個(gè)二次規(guī)劃問(wèn)題,可以用QP來(lái)進(jìn)行求解。之所以要推導(dǎo)SVM的對(duì)偶形式是因?yàn)?#xff1a;首先,它展示了SVM的幾何意義;然后,從計(jì)算上,求解過(guò)程“好像”與所在維度d^d^無(wú)關(guān),規(guī)避了d^d^很大時(shí)難以求解的情況。但是,上節(jié)課的最后,我們也提到dual SVM的計(jì)算過(guò)程其實(shí)跟d^d^還是有關(guān)系的。那么,能不能完全擺脫對(duì)d^d^的依賴,從而減少SVM計(jì)算量呢?這就是我們本節(jié)課所要講的主要內(nèi)容。

Kernel Trick

我們上節(jié)課推導(dǎo)的dual SVM是如下形式:

其中αα是拉格朗日因子,共N個(gè),這是我們要求解的,而條件共有N+1個(gè)。我們來(lái)看向量QDQD中的qn,m=ynymzTnzmqn,m=ynymznTzm,看似這個(gè)計(jì)算與d^d^無(wú)關(guān),但是zTnzmznTzm的內(nèi)積中不得不引入d^d^。也就是說(shuō),如果d^d^很大,計(jì)算zTnzmznTzm的復(fù)雜度也會(huì)很高,同樣會(huì)影響QP問(wèn)題的計(jì)算效率。可以說(shuō),qn,m=ynymzTnzmqn,m=ynymznTzm這一步是計(jì)算的瓶頸所在。

其實(shí)問(wèn)題的關(guān)鍵在于zTnzmznTzm內(nèi)積求解上。我們知道,z是由x經(jīng)過(guò)特征轉(zhuǎn)換而來(lái):

zTnzm=Φ(xn)Φ(xm)znTzm=Φ(xn)Φ(xm)

如果從x空間來(lái)看的話,zTnzmznTzm分為兩個(gè)步驟:1. 進(jìn)行特征轉(zhuǎn)換Φ(xn)Φ(xn)Φ(xm)Φ(xm);2. 計(jì)算Φ(xn)Φ(xn)Φ(xm)Φ(xm)的內(nèi)積。這種先轉(zhuǎn)換再計(jì)算內(nèi)積的方式,必然會(huì)引入d^d^參數(shù),從而在d^d^很大的時(shí)候影響計(jì)算速度。那么,若把這兩個(gè)步驟聯(lián)合起來(lái),是否可以有效地減小計(jì)算量,提高計(jì)算速度呢?

我們先來(lái)看一個(gè)簡(jiǎn)單的例子,對(duì)于二階多項(xiàng)式轉(zhuǎn)換,各種排列組合為:

這里提一下,為了簡(jiǎn)單起見(jiàn),我們把x0=1x0=1包含進(jìn)來(lái),同時(shí)將二次項(xiàng)x1x2x1x2x2x1x2x1也包含進(jìn)來(lái)。轉(zhuǎn)換之后再做內(nèi)積并進(jìn)行推導(dǎo),得到:

其中xTxxTx′是x空間中特征向量的內(nèi)積。所以,Φ2(x)Φ2(x)Φ2(x)Φ2(x′)的內(nèi)積的復(fù)雜度由原來(lái)的O(d2)O(d2)變成O(d)O(d),只與x空間的維度d有關(guān),而與z空間的維度d^d^無(wú)關(guān),這正是我們想要的!

至此,我們發(fā)現(xiàn)如果把特征轉(zhuǎn)換和z空間計(jì)算內(nèi)積這兩個(gè)步驟合并起來(lái),有可能會(huì)簡(jiǎn)化計(jì)算。因?yàn)槲覀冎皇峭茖?dǎo)了二階多項(xiàng)式會(huì)提高運(yùn)算速度,這個(gè)特例并不具有一般推論性。但是,我們還是看到了希望。

我們把合并特征轉(zhuǎn)換和計(jì)算內(nèi)積這兩個(gè)步驟的操作叫做Kernel Function,用大寫(xiě)字母K表示。例如剛剛講的二階多項(xiàng)式例子,它的kernel function為:

KΦ(x,x)=Φ(x)TΦ(x)KΦ(x,x′)=Φ(x)TΦ(x′)

KΦ2(x,x)=1+(xTx)+(xTx)2KΦ2(x,x′)=1+(xTx′)+(xTx′)2

有了kernel function之后,我們來(lái)看看它在SVM里面如何使用。在dual SVM中,二次項(xiàng)系數(shù)qn,mqn,m中有z的內(nèi)積計(jì)算,就可以用kernel function替換:

qn,m=ynymzTnzm=ynymK(xn,xm)qn,m=ynymznTzm=ynymK(xn,xm)

所以,直接計(jì)算出K(xn,xm)K(xn,xm),再代入上式,就能得到qn,mqn,m的值。

qn,mqn,m值計(jì)算之后,就能通過(guò)QP得到拉格朗日因子αnαn。然后,下一步就是計(jì)算b(取αnαn>0的點(diǎn),即SV),b的表達(dá)式中包含z,可以作如下推導(dǎo):

b=ys?wTzs=ys?(n=1Nαnynzn)Tzs=ys?n=1Nαnyn(K(xn,xs))b=ys?wTzs=ys?(∑n=1Nαnynzn)Tzs=ys?∑n=1Nαnyn(K(xn,xs))

這樣得到的b就可以用kernel function表示,而與z空間無(wú)關(guān)。

最終我們要求的矩gSVMgSVM可以作如下推導(dǎo):

gSVM(x)=sign(wTΦ(x)+b)=sign((n=1Nαnynzn)Tz+b)=sign(n=1Nαnyn(K(xn,x))+b)gSVM(x)=sign(wTΦ(x)+b)=sign((∑n=1Nαnynzn)Tz+b)=sign(∑n=1Nαnyn(K(xn,x))+b)

至此,dual SVM中我們所有需要求解的參數(shù)都已經(jīng)得到了,而且整個(gè)計(jì)算過(guò)程中都沒(méi)有在z空間作內(nèi)積,即與z無(wú)關(guān)。我們把這個(gè)過(guò)程稱為kernel trick,也就是把特征轉(zhuǎn)換和計(jì)算內(nèi)積兩個(gè)步驟結(jié)合起來(lái),用kernel function來(lái)避免計(jì)算過(guò)程中受d^d^的影響,從而提高運(yùn)算速度。

那么總結(jié)一下,引入kernel funtion后,SVM算法變成:

分析每個(gè)步驟的時(shí)間復(fù)雜度為:

我們把這種引入kernel function的SVM稱為kernel SVM,它是基于dual SVM推導(dǎo)而來(lái)的。kernel SVM同樣只用SV(αnαn>0)就能得到最佳分類面,而且整個(gè)計(jì)算過(guò)程中擺脫了d^d^的影響,大大提高了計(jì)算速度。

Polynomial Kernel

我們剛剛通過(guò)一個(gè)特殊的二次多項(xiàng)式導(dǎo)出了相對(duì)應(yīng)的kernel,其實(shí)二次多項(xiàng)式的kernel形式是多種的。例如,相應(yīng)系數(shù)的放縮構(gòu)成完全平方公式等。下面列舉了幾種常用的二次多項(xiàng)式kernel形式:

比較一下,第一種Φ2(x)Φ2(x)(藍(lán)色標(biāo)記)和第三種Φ2(x)Φ2(x)(綠色標(biāo)記)從某種角度來(lái)說(shuō)是一樣的,因?yàn)槎际嵌无D(zhuǎn)換,對(duì)應(yīng)到同一個(gè)z空間。但是,它們系數(shù)不同,內(nèi)積就會(huì)有差異,那么就代表有不同的距離,最終可能會(huì)得到不同的SVM margin。所以,系數(shù)不同,可能會(huì)得到不同的SVM分界線。通常情況下,第三種Φ2(x)Φ2(x)(綠色標(biāo)記)簡(jiǎn)單一些,更加常用。

不同的轉(zhuǎn)換,對(duì)應(yīng)到不同的幾何距離,得到不同的距離,這是什么意思呢?舉個(gè)例子,對(duì)于我們之前介紹的一般的二次多項(xiàng)式kernel,它的SVM margin和對(duì)應(yīng)的SV如下圖(中)所示。對(duì)于上面介紹的完全平方公式形式,自由度γ=0.001γ=0.001,它的SVM margin和對(duì)應(yīng)的SV如下圖(左)所示。比較發(fā)現(xiàn),這種SVM margin比較簡(jiǎn)單一些。對(duì)于自由度γ=1000γ=1000,它的SVM margin和對(duì)應(yīng)的SV如下圖(右)所示。與前兩種比較,margin和SV都有所不同。

通過(guò)改變不同的系數(shù),得到不同的SVM margin和SV,如何選擇正確的kernel,非常重要。

歸納一下,引入ζ0ζ≥0γ>0γ>0,對(duì)于Q次多項(xiàng)式一般的kernel形式可表示為:

所以,使用高階的多項(xiàng)式kernel有兩個(gè)優(yōu)點(diǎn):

  • 得到最大SVM margin,SV數(shù)量不會(huì)太多,分類面不會(huì)太復(fù)雜,防止過(guò)擬合,減少?gòu)?fù)雜度

  • 計(jì)算過(guò)程避免了對(duì)d^d^的依賴,大大簡(jiǎn)化了計(jì)算量。

順便提一下,當(dāng)多項(xiàng)式階數(shù)Q=1時(shí),那么對(duì)應(yīng)的kernel就是線性的,即本系列課程第一節(jié)課所介紹的內(nèi)容。對(duì)于linear kernel,計(jì)算方法是簡(jiǎn)單的,而且也是我們解決SVM問(wèn)題的首選。還記得機(jī)器學(xué)習(xí)基石課程中介紹的奧卡姆剃刀定律(Occam’s Razor)嗎?

Gaussian Kernel

剛剛我們介紹的Q階多項(xiàng)式kernel的階數(shù)是有限的,即特征轉(zhuǎn)換的d^d^是有限的。但是,如果是無(wú)限多維的轉(zhuǎn)換Φ(x)Φ(x),是否還能通過(guò)kernel的思想,來(lái)簡(jiǎn)化SVM的計(jì)算呢?答案是肯定的。

先舉個(gè)例子,簡(jiǎn)單起見(jiàn),假設(shè)原空間是一維的,只有一個(gè)特征x,我們構(gòu)造一個(gè)kernel function為高斯函數(shù):

K(x,x)=e?(x?x)2K(x,x′)=e?(x?x′)2

構(gòu)造的過(guò)程正好與二次多項(xiàng)式kernel的相反,利用反推法,先將上式分解并做泰勒展開(kāi):

將構(gòu)造的K(x,x’)推導(dǎo)展開(kāi)為兩個(gè)Φ(x)Φ(x)Φ(x)Φ(x′)的乘積,其中:

Φ(x)=e?x2?(1,21!??x,222!???x2,?)Φ(x)=e?x2?(1,21!x,222!x2,?)

通過(guò)反推,我們得到了Φ(x)Φ(x)Φ(x)Φ(x)是無(wú)限多維的,它就可以當(dāng)成特征轉(zhuǎn)換的函數(shù),且d^d^是無(wú)限的。這種Φ(x)Φ(x)得到的核函數(shù)即為Gaussian kernel。

更一般地,對(duì)于原空間不止一維的情況(d>1),引入縮放因子γ>0γ>0,它對(duì)應(yīng)的Gaussian kernel表達(dá)式為:

K(x,x)=e?γ||x?x||2K(x,x′)=e?γ||x?x′||2

那么引入了高斯核函數(shù),將有限維度的特征轉(zhuǎn)換拓展到無(wú)限的特征轉(zhuǎn)換中。根據(jù)本節(jié)課上一小節(jié)的內(nèi)容,由K,計(jì)算得到αnαn和b,進(jìn)而得到矩gSVMgSVM。將其中的核函數(shù)K用高斯核函數(shù)代替,得到:

gSVM(x)=sign(SVαnynK(xn,x)+b)=sign(SVαnyne(?γ||x?xn||2)+b)gSVM(x)=sign(∑SVαnynK(xn,x)+b)=sign(∑SVαnyne(?γ||x?xn||2)+b)

通過(guò)上式可以看出,gSVMgSVM有n個(gè)高斯函數(shù)線性組合而成,其中n是SV的個(gè)數(shù)。而且,每個(gè)高斯函數(shù)的中心都是對(duì)應(yīng)的SV。通常我們也把高斯核函數(shù)稱為徑向基函數(shù)(Radial Basis Function, RBF)。

總結(jié)一下,kernel SVM可以獲得large-margin的hyperplanes,并且可以通過(guò)高階的特征轉(zhuǎn)換使EinEin盡可能地小。kernel的引入大大簡(jiǎn)化了dual SVM的計(jì)算量。而且,Gaussian kernel能將特征轉(zhuǎn)換擴(kuò)展到無(wú)限維,并使用有限個(gè)SV數(shù)量的高斯函數(shù)構(gòu)造出矩gSVMgSVM

值得注意的是,縮放因子γγ取值不同,會(huì)得到不同的高斯核函數(shù),hyperplanes不同,分類效果也有很大的差異。舉個(gè)例子,γγ分別取1, 10, 100時(shí)對(duì)應(yīng)的分類效果如下:

從圖中可以看出,當(dāng)γγ比較小的時(shí)候,分類線比較光滑,當(dāng)γγ越來(lái)越大的時(shí)候,分類線變得越來(lái)越復(fù)雜和扭曲,直到最后,分類線變成一個(gè)個(gè)獨(dú)立的小區(qū)域,像小島一樣將每個(gè)樣本單獨(dú)包起來(lái)了。為什么會(huì)出現(xiàn)這種區(qū)別呢?這是因?yàn)?span id="ozvdkddzhkzd" class="MathJax_Preview" style="color: inherit; display: none;">γγ越大,其對(duì)應(yīng)的高斯核函數(shù)越尖瘦,那么有限個(gè)高斯核函數(shù)的線性組合就比較離散,分類效果并不好。所以,SVM也會(huì)出現(xiàn)過(guò)擬合現(xiàn)象,γγ的正確選擇尤為重要,不能太大。

Comparison of Kernels

目前為止,我們已經(jīng)介紹了幾種kernel,下面來(lái)對(duì)幾種kernel進(jìn)行比較。

首先,Linear Kernel是最簡(jiǎn)單最基本的核,平面上對(duì)應(yīng)一條直線,三維空間里對(duì)應(yīng)一個(gè)平面。Linear Kernel可以使用上一節(jié)課介紹的Dual SVM中的QP直接計(jì)算得到。

Linear Kernel的優(yōu)點(diǎn)是計(jì)算簡(jiǎn)單、快速,可以直接使用QP快速得到參數(shù)值,而且從視覺(jué)上分類效果非常直觀,便于理解;缺點(diǎn)是如果數(shù)據(jù)不是線性可分的情況,Linear Kernel就不能使用了。

然后,Polynomial Kernel的hyperplanes是由多項(xiàng)式曲線構(gòu)成。

Polynomial Kernel的優(yōu)點(diǎn)是階數(shù)Q可以靈活設(shè)置,相比linear kernel限制更少,更貼近實(shí)際樣本分布;缺點(diǎn)是當(dāng)Q很大時(shí),K的數(shù)值范圍波動(dòng)很大,而且參數(shù)個(gè)數(shù)較多,難以選擇合適的值。

對(duì)于Gaussian Kernel,表示為高斯函數(shù)形式。

Gaussian Kernel的優(yōu)點(diǎn)是邊界更加復(fù)雜多樣,能最準(zhǔn)確地區(qū)分?jǐn)?shù)據(jù)樣本,數(shù)值計(jì)算K值波動(dòng)較小,而且只有一個(gè)參數(shù),容易選擇;缺點(diǎn)是由于特征轉(zhuǎn)換到無(wú)限維度中,w沒(méi)有求解出來(lái),計(jì)算速度要低于linear kernel,而且可能會(huì)發(fā)生過(guò)擬合。

除了這三種kernel之外,我們還可以使用其它形式的kernel。首先,我們考慮kernel是什么?實(shí)際上kernel代表的是兩筆資料x(chóng)和x’,特征變換后的相似性即內(nèi)積。但是不能說(shuō)任何計(jì)算相似性的函數(shù)都可以是kernel。有效的kernel還需滿足幾個(gè)條件:

  • K是對(duì)稱的

  • K是半正定的

這兩個(gè)條件不僅是必要條件,同時(shí)也是充分條件。所以,只要我們構(gòu)造的K同時(shí)滿足這兩個(gè)條件,那它就是一個(gè)有效的kernel。這被稱為Mercer 定理。事實(shí)上,構(gòu)造一個(gè)有效的kernel是比較困難的。

總結(jié)

本節(jié)課主要介紹了Kernel Support Vector Machine。首先,我們將特征轉(zhuǎn)換和計(jì)算內(nèi)積的操作合并到一起,消除了d^d^的影響,提高了計(jì)算速度。然后,分別推導(dǎo)了Polynomial Kernel和Gaussian Kernel,并列舉了各自的優(yōu)缺點(diǎn)并做了比較。對(duì)于不同的問(wèn)題,應(yīng)該選擇合適的核函數(shù)進(jìn)行求解,以達(dá)到最佳的分類效果。

注明:

文章中所有的圖片均來(lái)自臺(tái)灣大學(xué)林軒田《機(jī)器學(xué)習(xí)技法》課程

更多AI資源請(qǐng)關(guān)注公眾號(hào):紅色石頭的機(jī)器學(xué)習(xí)之路(ID:redstonewill)

總結(jié)

以上是生活随笔為你收集整理的台湾大学林轩田机器学习技法课程学习笔记3 -- Kernel Support Vector Machine的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 婷婷五月花 | 国产精品成人va在线观看 | 日韩男人天堂 | 男人和女人日批视频 | 成人毛片18女人毛片 | 日本女人hd| 欧美 变态 另类 人妖 | 国产精品扒开腿做爽爽爽男男 | 欧美另类在线播放 | 天堂网在线看 | 69av一区二区三区 | 丰满少妇高潮一区二区 | 国产香蕉视频在线播放 | 亚洲一级黄色大片 | 亚洲九九爱| 波多野吉衣毛片 | 天天精品| 精品无码国产av一区二区三区 | 好吊色青青草 | 国产精品成人在线观看 | 天天射夜夜操 | 一区二区三区四区亚洲 | 先锋av资源在线 | 午夜小电影| 国产做爰xxxⅹ高潮视频12p | 青草视频在线观看视频 | 久久精品亚洲无码 | 欧美中文一区 | 国产a∨精品一区二区三区仙踪林 | 污污视频网站在线免费观看 | 一级片www | 日韩美女激情视频 | 一区二区成人精品 | av日韩一区 | 国产欧美一区二区三区鸳鸯浴 | 日本美女交配 | 在线视频观看你懂得 | 91视频在线观看免费 | zzjj国产精品一区二区 | 国产三级全黄裸体 | 亚洲天堂av免费在线观看 | 精品一区二区三区久久 | 好看的av网址 | 少妇久久久久久被弄到高潮 | 亚洲欧美日韩精品一区 | 欧美精品色婷婷五月综合 | 国产成人aⅴ | 天天艹天天操 | 激情综合久久 | 日韩毛片儿 | 欧美高跟鞋交xxxxxhd | 911成人网| 性色视频网站 | 亚洲最新av网址 | 激情视频91 | 国产青青在线 | 国产精品-区区久久久狼 | 精品人妻一区二区免费视频 | 最新高清无码专区 | 国产亚洲av综合人人澡精品 | 亚洲女优一区 | 亚洲天堂欧美在线 | 国产精美视频 | 国产精选一区二区三区 | 久久伊人精品视频 | 成人在线视频网址 | 国产精品地址 | 亚洲.www | 国产第一页第二页 | 免费性爱视频 | av在线片| 黄色av网站网址 | 欧美少妇视频 | 国产亚洲精品美女 | 日本网站黄色 | 国产视频导航 | 国产一线av | 怡红院av在线 | 日本欧美日韩 | 日本东京热一区二区 | 吻胸摸激情床激烈视频 | 成人777| 国产精品久久久久久久一区二区 | 蜜桃精品成人影片 | 97av视频在线 | 日韩午夜激情电影 | 成人网一区 | 亚洲自啪| 九九在线观看高清免费 | 精品一区二区在线看 | 色综合天天操 | 奇米四色影视 | 男生插女生视频 | 天天综合网久久综合网 | 成人免费大片黄在线播放 | 一级片黄色 | 成片免费观看视频大全 | 最新免费黄色网址 | 国产理论一区 |