1. 程式人生 > >機器學習:核方法和soft svm

機器學習:核方法和soft svm

                 淺談SVM核方法

       在用svm進行二分類的時候,如果資料在當前維上不是線性可分的,那麼就需要把原始的樣本資料投影到高維的空間上。高維可分之後在大會到現在的維度,但是這裡有一個問題就是:這樣做的運算量太大了。如下所示:             在上面的圖片中,紅色區域就是我們最終的計算結果。Z代表的是投影之後的資料,我們知道Z.T*Z計算的是兩個樣本之間的相似度,前面的那一坨可以認為是係數。我們最後想要的是最小化樣本之間的距離。也就是說你可以認為SVM是找出支撐點之後,然後挨個的計算每一個樣本點和支撐點的距離。但是但是哈,你不認為這裡的計算量也太大了吧。當原始資料點是二維平面上的點的時候,進行投影對映之後得到的是4維度,這個時候計算的複雜度是4,那麼原始樣本點是100維呢?你試試。。。
           這裡我們想想,SVM在把資料對映到高維之後計算和僅僅是資料的內積,有沒有一種方法,可以可以不去直接計算向量的乘機,還能得到相同的結果。如圖所示:
          下面就看看什麼是核方法:如下所示
       第一行表示的是原始的樣本(x1,x2.....xn)在進行高維對映之後的樣本點。第二行表示高維樣本資料向量的乘積,觀察一下最終的額結果是什麼。就是結果的樣子。最終的結果是原始樣本的另一種表示方法。因為原始樣本都是一次,那麼高維的當然也就最高次數也就是二。這個時候我們就可以來定義核方法啦。也就是第三行所示。這叫做多項式核。最終的結果可以寫成這樣。     
在繼續看一下核方法更加抽象的定義              第一行中每一個原始資料的前面的係數都是1,退到符號右面是所對應的核函式。第二行我們加上係數根號2,推到符號右面所對應的就是2。那麼抽象點:我們定義在最後一行。這裡的Q代表的是次冪大小。伽馬就是懲罰因子,為了更加清楚的說明伽馬是幹什麼的,來看看這張圖片:                上面的三幅圖片設定了不同的伽馬係數。觀察得到假如是1000,這裡就發生了過擬合。想想物理意義當兩個點的距離有一點的不相似,表現在數值上就是表示為兩個向量的乘機,數值越大表示兩個向量距離越遠,這個時候懲罰因子1000如此之大,就會在高維空間認為你們兩個根本就不是一家人,硬生生的分開這兩向量。 
         看看最常用的高斯核
     高斯核的厲害之處就是僅僅用一個引數就可以叨叨和多項式核相同的結果。並且直接可以到無窮維度的對映。對映的維度越高,那也就可達到更加理想的結果。利用高斯核,最終的徑向基函式表示如下
  效果如下,很明顯最後的那付圖,嚴重的過擬合了。               到這裡你會想,不對哈,對映的高維空間是什麼樣子呢?呵呵,管他呢,最終能達到想要的結果不就可以了。對吧。根據某一個理論,當計算得到的向量乘積是非負正定矩陣,就一定存在一個高維空間使得可以計算得到最終的結果,至於最終高維空間是什麼,咱不理會。。。