SVM-支持向量機原理詳解與實踐之三

SVM-支持向量機原理詳解與實踐之三

 

  1. SVM原理分析

    1. 核函數與核技巧

      1. 什麼是核

什麼是核,核其實就是一種特殊的函數,更確切的說是核技巧(Kernel trick),清楚的明白這一點很重要。

爲什麼說是核技巧呢?回顧到我們的對偶問題:

 

 

映射到特徵空間後約束條件不變,則爲:

 

 

在原始特徵空間中主要是求,也就是的內積(Inner Product),也稱數量積(Scalar Product)或是點積(Dot Product),映射到特徵空間後就變成了求,也就是的映射到特徵空間之後的內積,就如我前面所提到的在原始空間樣本線性不可分,但是映射到高維後可以得到一個線性可分的決策曲面,但是我們假如映射到的這個維度很高,甚至是無窮維怎麼辦?映射到高維空間後計算量無疑很大,但是運用核後計算量將大大降低,這就是爲什麼我們說核爲核技巧。

下面我們舉個例子可以更爲直觀的看到在原始樣本空間映射到高維空間後運算量爲什麼會很大,而運用核函數或是核技巧後計算量會大大降低。

設向量A = [a1,a2,a3];B = [b1,b2,b3];

則向量A和B的內積表示爲:
A·B=a1×b1+a2×b2+a3×b3;

而映射到了特徵空間後的分別爲:

= (a1*a1, a1*a2, a1*a3, a2*a1, a2*a2, a2*a3, a3*a1, a3*a2, a3*a3)

= (b1*b1, b1*b2, b1*b3, b2*b1, b2*b2, b2*b3, b3*b1, b3*b2, b3*b3)

假設實數向量:A = [1,2,3];B = [2,3,4];

= (1, 2, 3, 2, 4, 6, 3, 6, 9)

= (4, 6, 8, 6, 9, 12, 8, 12, 16)

= 4 + 12 + 24 + 12 + 36 + 72 + 24 + 72 + 144 = 400;

我們會發現三維的運算已經很繁瑣,如果更高維呢,運算量無疑大大增加,但是如果我們引入核函數:

再做計算

我們發現,但是的計算要簡便得多。

下面我們給出核的定義:

假如原始的內積形式是,給定一個特徵映射,映射之後的內積形式則爲,所以我們將相應的核定義爲:

以上的核函數我們稱爲內積核,或者簡稱核。

  1. 核函數選擇

通過前面這個簡單的例子我們知道了核的用途,就是將特徵空間龐大運算量問題(或者說無法計算的問題)通過核技巧轉化爲低維空間可計算的問題。

我們前面的例子比較簡單,我們可以手工構造對應於映射的核函數出來,但如果對於任意一個映射,想要構造出對應的核函數出來那就困難了,或者換句話說幾乎不可能,所以概括的說解決現實的問題時我們會遇到以下兩個問題:

  1. 想要找到將具體樣本數據和分佈映射到高維實現線性可分的映射函數很難
  1. 計算出核函數很難,或是幾乎不可能。

根據上面的例子我們看到運用核函數我們可以不用確切的知道同樣可以得到和一致的結果,所以可以不用知道具體形式,現在就剩下一個問題: 這個核函數怎麼來的?或者說我們怎麼才能找到合適的核函數。

    要想確切的找到這樣的核函數也幾乎是不可能的。但是我們能不能用其它的函數來代替或者說是表示核函數呢,答案是肯定的。再看核函數的定義:

其實就是兩個特徵映射函數的內積。它可以用多項式等函數表示。因爲根據高等數學泰勒展開式我們可以知道,任何函數都可以用多項式的方式去趨近,一些基礎的函數如等等都可以去趨近,而不同的函數曲線其實就是這些基礎函數的組合。理解這一點很重要!

所以我們完全可以用一些基礎函數去無線趨近實際的核函數,例如多項式,還有高斯函數, 也就是指數函數的擴展形式,這些都是基礎函數,所以這些函數都可以作爲核函數。(相信很多人都曾疑惑爲什麼在絕大多數講解核函數文章或是書籍的時候都會跳到核函數的具體形式如多項式核、高斯核等,而卻爲什麼沒有講解這些函數爲什麼可以作爲核函數)。

下面就是一些常用的核函數介紹:

回到本章的具體問題,我們應該如何選取這些核函數並應用到我們的學習器中呢?它有什麼經驗可以遵循?本人自認經驗還很欠缺,不敢做深入分析,以下收集一些網上和論文的經驗:

  1. 線性核(Linear)主要應用與線性可分的情形,參數少,速度塊,對於一般的數據可以嘗試首先運用線性核。 Linear和是
  2. RBF也就是徑向基函數,也叫高斯核,應用最爲廣泛,主要應用線性不可分的情形,參數多,分類結果非常依賴於參數。通過交叉驗證來尋找合適的參數,通過大量的訓練可以達到比線性核更好的效果。
  3. 多項式核需要確定的參數要比RBF多,而參數多少直接影響了模型的複雜度。
  4. Sigmoid核,對於某些參數RBFsigmoid具有相似的性能。

 

  1. 核函數判定與再生核希爾伯特空間(reproducing kernel Hilbert space, RKHS)

通過前面的介紹我們知道核函數的用途,也知道一些常用的核函數,當然不是任何基礎函數都可以做爲核函數的,作爲核函數還必須要滿足一些性質,這一章節要講解做爲核函數所必須具有的一些性質。

如果K是有效的核函數,那麼根據核的定義可知:

從上式可知,K矩陣必須是對稱的。並且讓表示第k座標的屬性值,對任意向量z有:

從上面的對到可以看出只要是K是個有效的核函數,由於z是任意的,所以核K是半正定的(K>=0)。

下面的Mercer定理很好的總結該性質:

    如果函數K是上的映射(也就是從兩個n維向量映射到實數域)。那麼如果K是一個有效的核函數,也稱爲Mercer核函數,那麼當且僅當對於訓練樣例, 其相應的核函數矩陣是半正定的。

簡單的說就是隻要一個對稱函數所對應的核矩陣半正定就可以作爲核函數使用。對於一個半正定核矩陣,總能找到一個與之對應的映射,換言之,任何一個核函數都隱式地定義一個稱爲"再生核希爾伯特空間"(reproducing kernel Hilbert space, RKHS)的特徵空間

  1. 再生核希爾伯特空間

我們知道希爾伯特空間就是完備的內積空間(如果對函數空間知識不是很瞭解,可以看看函數空間的相關知識,上海交大的公開課講的挺不錯,上海交通大學公開課:數學之旅——函數空間),詳細一點的說就是描述就是:

  1. 賦予範數的集合稱爲賦範空間
  2. 賦予距離的集合稱爲度量空間。

賦範空間有向量的模長,也就是範數,但是兩個向量是有夾角的,範數沒有夾角的概念,所以爲了表示這樣的兩個向量,引入內積的概念,所以有接着的第三個:

  1. 賦予內積的集合稱爲內積空間

注意內積空間有幾個屬性,即對稱性(例如距離的d|x-y|=d|y-x|)和正定性等和前面討論的Mercer定理是一一對應的。

如果在內積空間加上完備性就構成了希爾伯特空間,完備性簡單點說就是極限運算中不能跑出度量的範圍。

在瞭解了希爾伯特空間後,我們看再生核希爾伯特空間的定義:

這裏暫且不進行進一步的討論,主要是由於自己對再生核理解得還不夠透徹,希望能在下一篇文章中做進一步的闡述。

軟間隔和正則化

  1. 離羣樣本點和損失函數分析

前面我們提到,當我們嘗試將原始空間上的線性不可分的問題轉化爲高維空間的線性可分的問題,但是現實的情況非常複雜,即使在維度比較高的特徵空間也很難找到合適的核函數使得訓練樣本線性可分。

我們看到左圖中間隔曲線將兩個類別分開,並且最小間隔比較大,右圖則是另一種情況,左上角出現一個樣本點,它更靠近正例(我們說它是離羣點),這時候我們仍然要將它從正例中區別出來,並且將它正確的預測分類爲負類,那麼我們的間隔曲線就必須做一定的調整,也就是從原來的虛線轉變爲實線,這樣纔能有效的將新的樣本區別開來,這個例子說明我們前面介紹的模型對這些離羣的點或者說是樣本的噪聲非常敏感。

這裏要提到的軟間隔就是,就是支持向量機允許一些樣本出錯,即允許存在一些不滿足約束的離羣的點,如下圖紅色高顯的點,就是一些不滿足約束的離羣點。

 

即這些點不滿足約束:

優化目標寫爲:

 

(3-10-1)

 

上式中C是一個大於0的常數,是0/1損失函數

由前面兩個式子可以看出,C取無窮大時,爲了讓優化目標取得最小值,則取;意思就是後面的項歸0(otherwise),也就是, 這也就是說,

  1. C取無窮大時,爲了達到目標的最優化,所有樣本就必須滿足約束條件

而當C取有限值時,爲了讓優化目標取得最小值,可以允許,即允許加上一個有限值C*1=C, 即

  1. 即當C去有限值的,允許有一些樣本不滿足約束,對應到上面的兩個圖,就是那些離羣的樣本點。
    1. 替代損失(surrogate loss)簡介與鬆弛變量(Slack variables)

替代損失,顧名思義,就是替代前面介紹的爲了優化有樣本離羣這種情況的目標函數而引入的損失函數。那爲什麼需要替代函數呢?因爲非凸,不好求極值,而我們的最小化問題就是一個求極值的問題,所以我們需要這麼一個替代的函數來代替,以下是三個比較常用的替代函數:

  1. hinge損失:
  2. 指數損失(exponential loss)
  3. 對率損失(logistic loss):

 

若採用hinge損失:則優化目標(3-10-1)可以有以下的轉化:

這就是常用的"軟間隔支持向量機",這和線性可分模式下分析時候的二次規劃問題很類似,觀察(3-10-2)式,很顯然每個樣本都對應有一個鬆弛變量,我們可以看到首先鬆弛變量非負,約束條件同時也表明允許某些樣本點的函數間隔小於1或是函數間隔爲負,讓我們再看下圖分析:

  1. 函數間隔小於1的樣本點在最大間隔區間裏面,如下圖中的藍圈圈住的樣本。
  2. 函數間隔爲負數的樣本點則在在相反的樣本分類裏面,如下圖中的紅圈圈住的樣本。

通過上面的描述我們可以總結的重要特性,即:

表徵了該樣本不滿足約束條件的程度。

我們可以看到(3-10-2)式的約束條件相對於約束條件這個條件也是我們在線性可分模式下的時候必須服從的約束條件放寬了很多,而放寬了這些限制後我們就必須對目標函數進行調整。

再看(3-10-2)式中的,我們發現它有兩個特點:

  1. 表示離羣點越多,目標函數就越大,這和我們最小化目標函數是相悖的。
  2. 表示的是離羣點的權重,C越大表示離羣點對目標函數的影響就越大。
  3. 目標函數控制着離羣點的數目和程度,使得大部分樣本仍然服從限制條件。
  1. 拉格朗日求解軟間隔目標函數

爲了求解軟間隔的優化目標函數(3-10-2),回想我們在求解最優間隔分類器對偶問題時的拉格朗日乘子法,通過目標函數和約束條件構造拉格朗日函數,

其中是拉格朗日乘子,然後根據以下步驟分別求導:

  • 對偶問題則是先固定,優化出最優的,最後確定參數

固定拉格朗日乘子,對w求導得到:

 

(3.10.3-2)

對b求導得到:

 

(3.10.3-3)

求導得到:

 

(3.10.3-4)

將上面三個等式帶入目標函數(3-10-2)可得到(解法參考前面的詳細推導):

 

(3.10.3-5)

 

 

對比上式和最優間隔分類器中對偶問題的求解結果可知,兩者之間只是約束不一樣,求解的結果中並不包括鬆弛變量,但是包括了參數C。

    同樣參考拉格朗日對偶性中對KKT條件的描述:

我們的軟間隔支持向量機即(3-10-2)

 

 
  1. 軟間隔的KKT條件分析

緊接着求相應的軟間隔的KKT條件可得:

分析軟間隔的KKT條件,也如拉格朗日對偶性章節中分析的一樣,軟間隔的KKT條件仍滿足KKT的對偶互補條件即,也就是說對任意樣本,總有或是,所以

  1. ,則很顯然該樣本不會對產生任何影響
  1. ,則必然有即該樣本就是支持向量

另外根據(3.10.3-4)即,分析以下幾種情況:

  1. ,則因爲,所以,,又根據,進而有鬆弛變量,這表明該樣本恰好在最大間隔的邊界上,如下圖紅圈點:

  1. ,則有,又根據的,這個時候有以下兩種情況:
  1. 則樣本落在最大間隔內部,但是在超平面的正確一側,如下圖紅圈點:

  2. 則該樣本被錯誤分類,即落在超平面的錯誤一側,如下圖紅圈的樣本點

    總結:上面通過對軟間隔的KKT條件分析,我們得出結論:軟間隔支持向量機的模型只與

支持向量有關。

  1. 過擬合(overfitting)與正則化(regularization)

過擬合就是說學習器把訓練樣本自身的一些特徵當做所有潛在樣本都會具有的一般性質,導致泛化性能下降。與過擬合相對的是欠擬合,也就是說學習器連樣本的一般性質都沒有學習好,下圖中比較好的詮釋了過擬合和欠擬合的分類效果。

      1. X1爲欠擬合的情況,也就是不能很好的區分類別。
  1. X2爲分類剛剛好,就是即使有些樣本沒有分類出來,但是可以保證絕大部分情況下有效的分類,沒有將樣本特有的一些屬性添加到模型,在真實情況時候往往可以達到理想的效果。
  2. X3爲過擬合,也就是說分類只適合訓練樣本,到了真實環境中的時候效果會不理想。

 

A: 欠擬合的情況可以通過在學習過程中擴展分支或是在神經網絡學習中增加訓練輪數來解決。

B: 過擬合的情況不可避免,只能是緩解,各種機器學習算法中都有一些針對過擬合的措施,正則化就是一個防止過擬合的有效手段。

正則化就是爲模型添加調整參數的過程,目的是爲了防止過擬合(overfitting), 增加平滑度。通常會以向現有的權向量(weight vector)添加常倍數的方式來完成,這個常數一般爲L1(Lasso)或者L2(ridge), 但是實際上可以是任何形式的。

在修改後的模型中,從正則化訓練集得出的損失函數,平均值應當降至最低。

 

 

再看(3-10-2-1)式子中是hinge損失函數,如下圖可知hinge損失函數有一段"平坦"的零區域,這使得支持向量機的解具有稀疏性

如果用其他的損失函數代替hinge損失做0/1損失函數,就可以得到其他的學習模型,它的一般形式爲:

(3.10.5-1)上式就是正則化問題,其中:稱爲"結構風險"(structural risk), 也稱爲正則化項,用於描述模型f的某些性質;  

  1. 稱爲"經驗風險"(empirical risk),用於描述模型與訓練數據的契合程度;
  1. C用於對前面兩個進行折中,稱爲正則化常數。

 

常用的正則化項有: 範數是常用的正則化項,其中範數傾向於w的分量取值儘量的均衡,即非零分量個數儘量稠密。而範數範數 則傾向於w的分量儘量的稀疏,即非零分量個數儘量少。


接下篇:SVM-支持向量機原理詳解與實踐之四






發佈了27 篇原創文章 · 獲贊 98 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章