如何將有限維的特征映射到無限維/支持向量機(jī)(3)

省略了很多公式和背景,不然要寫好久。感興趣的可以自己查閱相關(guān)背景書籍。

我們處理分類問題的常用方法一般是將特征向量映射到一個(gè)高維空間然后進(jìn)行切分,但這種方法的分類能力受限于映射模型本身的VC維,那是否存在一個(gè)映射模型,它可以將特征映射到無限維度的空間(希爾伯特空間)?
sklearn的SVC分類器中默認(rèn)的rbf核函數(shù)就是這樣一種方法。

Gauss 徑向基核函數(shù)(rbf)

K(x,x')=exp(-||x-x'||^2/\sigma^2)
有人有問,這不就是正態(tài)分布嗎,小學(xué)奧數(shù)題都會用呀。確實(shí),它的應(yīng)用范圍很廣,這也間接說明了它本身的維度很廣,那接下來我們會證明這個(gè)核函數(shù)有能力將特征向量逼近到無限維。

既然涉及到無限,毫無疑問,我們會使用到泰勒多項(xiàng)式。在這里,我們需要用到一個(gè)非常常用的泰勒展開:
e^x=\sum_{i=0}^{n} \frac{x^n}{n!} + o(x^n)為了好寫,我們令\gamma=-1/\sigma^2,接下來,我們對高斯核函數(shù)進(jìn)行分解:
K(x,x')=e^{\gamma ||x-x'||^2}=e^{\gamma (x^2+x'^2+2xx')}=e^{\gamma (x^2+x'^2)}e^{2\gamma (xx')}接下來,我們將e^{2\gamma (xx')} 進(jìn)行泰勒展開:
e^{2\gamma (xx')} = \sum_{i=0}^{n} \frac{2\gamma (xx')^n}{n!} + o(x^n)當(dāng)n趨近于無窮時(shí),我們可以忽略余項(xiàng),便得到:
K(x,x')=\sum_{i=0}^{n} \frac{2\gamma (xx')^n}{n!}e^{\gamma (x^2+x'^2)} = \sum_{i=0}^{n} \frac{2\gamma (xx')^n}{n!}e^{\gamma x^2} e^{\gamma x'^2}=\sum_{i=0}^{n} \sqrt\frac{2\gamma }{n!}x^n e^{\gamma x^2} \sqrt\frac{2\gamma }{n!} x'^ne^{\gamma x'^2}顯然,該式可以轉(zhuǎn)換為兩個(gè)向量的內(nèi)積形式,令
\phi(x)= \left[ \begin{matrix} \sqrt\frac{2\gamma }{0!}x^0 e^{\gamma x^2} \\ \sqrt\frac{2\gamma }{1!}x^1 e^{\gamma x^2} \\ \sqrt\frac{2\gamma }{2!}x^2 e^{\gamma x^2} \\ … \end{matrix} \right]
K(x,x')=\phi(x)^{T}\phi(x')可以看到,核函數(shù)此時(shí)被分解成了特征函數(shù)\phi(x)上兩個(gè)向量的內(nèi)積,而這個(gè)特征函數(shù)\phi(x)具有無窮維度。
(限于篇幅, 本節(jié)省略了支持向量機(jī)公式推導(dǎo)、KKT條件說明拉格朗日對偶問題的證明以及核函數(shù)的推導(dǎo)證明,需要參考之前的章節(jié))

無窮維度下的維度災(zāi)難問題

可能有人會問,維度越高,樣本在特征空間中的分布越稀疏,那在無限維度中如何控制由于維度災(zāi)難導(dǎo)致的過擬合問題呢?
其實(shí)rbf核函數(shù)本身已經(jīng)通過正則因子控制了過擬合的問題,如高斯核的\sigma以及懲罰系數(shù)C 均可以起到正則化的作用,這也是支持向量機(jī)的基本思想,既最大化約束(最小化結(jié)構(gòu)風(fēng)險(xiǎn))下的最大化自由。

支持向量機(jī)的表現(xiàn)

支持向量機(jī)本身就是一個(gè)追求極致的算法,在小規(guī)模數(shù)據(jù)下,它的表現(xiàn)是要優(yōu)于其他算法的,下圖為處理一些簡單數(shù)據(jù)集時(shí)SVM和多層神經(jīng)網(wǎng)絡(luò)的分類效果,可以發(fā)現(xiàn),此時(shí)SVM的分類效果以及對數(shù)據(jù)特征本質(zhì)的刻畫描述是要優(yōu)于神經(jīng)網(wǎng)絡(luò)的。



非線性支持向量機(jī)分類實(shí)現(xiàn)

  • 導(dǎo)入相關(guān)模塊


  • 使用 make_moons 生成一組線性不可分?jǐn)?shù)據(jù),可以看到生成的數(shù)據(jù)集合非常像月牙。
  • 先定義一個(gè)簡單的高斯核函數(shù),這個(gè)高斯核只是為了看看先升維的效果


  • 繪制二維空間點(diǎn)映射到三維空間后的效果圖



    可以看到,長得和以前不一樣了,雖然感覺沒什么用,但也還行吧。

  • 接下來sklearn 中 SVC 方法提供的 rbf 進(jìn)行實(shí)驗(yàn)。



    可以看到,rbf處理非線性數(shù)據(jù)集的分類效果十分不錯(cuò)。

  • 接下來看看懲罰系數(shù) C 變化時(shí)決策邊界和支持向量的變化情況:
    C=1

    C=100

    C=100000

    可以看到,懲罰系數(shù)越小,正則化效果越好,分類線越平滑。懲罰系數(shù)越大,分類越嚴(yán)格,但同時(shí)也犧牲了一定的泛化能力,增大了局限性和過擬合的風(fēng)險(xiǎn),尤其是懲罰系數(shù)增加到100000時(shí),出現(xiàn)了一些奇怪的線條,說明模型對懲罰過于敏感,此時(shí)已經(jīng)無法理性地處理離群數(shù)據(jù)點(diǎn),過于強(qiáng)調(diào)對個(gè)別離群數(shù)據(jù)的解釋,丟了西瓜撿芝麻。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容