機器學習技法 學習筆記03 Kernel技巧

2022-04-09 03:51:58 字數 1370 閱讀 1449

背景

上一講從對偶問題的角度描述了svm問題,但是始終需要計算原始資料feature轉換後的資料。這一講,通過乙個kernel(核函式)技巧,可以省去feature轉換計算,但是仍然可以利用feature轉換的特性。

什麼是kernel

kernel的其實就是將向量feature轉換與點積運算合併後的運算,如下,

概念上很簡單,但是並不是所有的feature轉換函式都有kernel的特性。

kernel化的svm

在對偶化的svm解中,有三個地方會使用到kernel

使用了kernel,w的具體值都無需計算,因為沒有地方會直接使用w。這也是為什麼上一講花了那麼大的精力描述對偶化的svm解。

常見kernel

常見kernel有多項式,高斯和線性,各有利弊。

線性kernel

不做feature轉換,直接使用。不需要使用對偶技巧,直接使用linear hard svm解。

優點:計算效率高;結果解釋性好。

缺點:需要資料線性可分

多項kernel

對x進行多項式展開,一般的形式為

其中a,b,q為常量。

優點:相比線性kernel,對資料要求沒有那麼嚴格

缺點:需要選擇的係數較多;q太大會超出一些計算機的精度,一般q<=3。

高斯kernel

有些資料也稱為rbf(radial base function),一般形式為

其中a(>0)是常量。高斯kernel厲害的地方是可以將原始資料x對映到無線維度空間中,x下面取a=1的例子

上面的變化採用了taylor展開,接著

其中特徵轉化為

這樣,就完成了向無線維度轉換,rbf是不是很厲害!

優點:除錯的係數較少;比線性和多項式更強大,幾乎可以適應所有資料;不容易出現計算精度問題

缺點:無線維度無法解釋;太強大,容易過擬合;計算開銷大。

總結

個人感覺,核函式是svm畫龍點睛之筆,真的很佩服發現kernel的科學家。在實際使用svm的過程中,很大一部分精力可能就是選擇kernel和相關係數。kernel還可以自定義,但是需要滿足一些條件,具體可以參考講義相關部分。

機器學習技法 學習筆記04 Soft SVM

背景 之前所討論的svm都是非常嚴格的hard版本,必須要求每個點都被正確的區分開。但是,實際情況時很少出現這種情況的,因為雜訊資料時無法避免的。所以,需要在hard svm上新增容錯機制,使得可以容忍少量雜訊資料。軟 化問題 軟化svm的思路有點類似正規化,在目標函式新增錯誤累加項,然後加乙個係數...

筆記 機器學習技法 Random Forest

permutation test的原理 隨機排序的方式來測試某個特徵的重要性 原本的表現 該特徵資料的隨機打亂後的表現。在面對非線性的問題的時候會首先用random forest來進行初步的特徵選擇。上圖一 一棵樹劃分情況,圖二 bagging的小樹的結果 bootstrap隨機產生的一顆樹的情況,...

機器學習技法筆記(1)

一 承前啟後 kernel method 這一段話還是很重要的 1 如何處理feature很多很複雜的情況?kernel 2 如何將多個feature聯絡起來使用?boost和blend 3 如何學習隱藏的feature?deeplearning 首先還是引出了svm,為什麼需要使用svm呢,簡單的...