【Kernal Support Vector Machine】林軒田機器學習技術

來源:互聯網
上載者:User

標籤:

考慮dual SVM 問題:如果對原輸入變數做了non-linear transform,那麼在二次規劃計算Q矩陣的時候,就面臨著:先做轉換,再做內積;如果轉換後的項數很多(如100次多項式轉換),那麼耗費的時間就比較多。

能否在計算Q矩陣這一步的時候,把transform+inner product合成一步呢?

這裡就用到了一些kernel trick。

簡單來說:某些特殊形式的transfrom,利用kernel trick就是只用計算一次transform之前的輸入向量內積(X‘X),transform之後的內積結果可以用X‘X來表示,這樣計算複雜度就維持在了O(d)。

如下的2nd order polynomial transform為例:

只要能用上kernel trick,所有Z‘Z都可以用K(X,X‘)來代替。

接下來看,如果能使用上kernel trick,計算dual SVM的時候會帶來哪些好處。

可以用上K(X,X‘)的地方有:

(1)計算qn,m的時可以直接用

(2)計算bias b的時候可以用上

(3)當輸入一個測試樣本的時候,可以直接用上(否則先得做轉換,再用求出來的公式)

因此,Kernel SVM的QP過程可以利用kernel trick在各個環節都獲得簡化。

下面分別介紹幾個常用的kernel類型。

General Poly-2 Kernel

上面這種K2 kernel的好處:

(1)在計算上非常簡潔,只需要計算一次X‘X,加1再平方就OK了。

(2)又不失一般性,因為在QP的過程中,常數項、一次項、二次項前面的係數會隨著最佳化而吃掉

但是K2 kernel前面的係數也不能亂選,因為這影響到了最終的W是多少(即margin definition)

K2不同的係數,選擇的SV也不同。

一般先從最簡單的SVM開始實驗,然後再逐漸複雜。

Gaussian SVM

Gaussian SVM是一個無窮維的多項式變換。

無窮維的好處就是學習power增強了,缺點就是參數選的不好就....

即使是SVM 過擬合依然會出現,要慎用Gaussian SVM。

幾種Kernel各有好處,但原則還是要慎用,能用簡單的不用複雜的。

 

【Kernal Support Vector Machine】林軒田機器學習技術

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.