1. 程式人生 > >結構化風險最小、VC維到SVM的理解

結構化風險最小、VC維到SVM的理解

支援向量機方法是建立在統計學習理論的VC 維理論和結構風險最小原理基礎上。

置信風險: 分類器對 未知樣本進行分類,得到的誤差。 經驗風險: 訓練好的分類器,對訓練樣本重新分類得到的誤差。即樣本誤差 結構風險:置信風險 + 經驗風險 結構風險最小化就是為了防止過擬合而提出來的策略,貝葉斯估計中最大後驗概率估計就是結構風險最小化的一個例子。當模型的條件概率分佈、損失函式是對數損失函式、模型複雜度由模型先驗概率表示時,結構風險最小化等價於最大後驗概率估計。監督學習問題變成經驗風險或結構風險函式的最優化問題,這時經驗風險或結構風險函式是最優化的目標函式。 SVM在小樣本訓練集上能夠得到比其它演算法好很多的結果。支援向量機之所以成為目前最常用,效果最好的分類器之一,在於其優秀的泛化能力,這是是因為其本身的優化目標是結構化風險最小,而不是經驗風險最小,因此,通過margin的概念,得到對資料分佈的結構化描述,因此減低了對資料規模和資料分佈的要求。SVM也並不是在任何場景都比其他演算法好,對於每種應用,最好嘗試多種演算法,然後評估結果。如SVM在郵件分類上,還不如邏輯迴歸、KNN、bayes的效果好。
VC維:將N個點進行分類,如分成兩類,那麼可以有2^N種分法,即可以理解成有2^N個學習問題。若存在一個假設H,能準確無誤地將2^N種問題進行分類。那麼這些點的數量N,就是H的VC維。 這個定義真生硬,只能先記住。一個例項就平面上3個點的線性劃分的VC維是3. 而平面上 VC維不是4,是因為不存在4個樣本點,能被劃分成2^4 = 16種劃分法,因為對角的兩對點不能被線性劃分為兩類。更一般地,在r 維空間中,線性決策面的VC維為r+1。 置信風險的影響因素有: 訓練樣本數目和分類函式的VC維。訓練樣本數目,即樣本越多,置信風險就可以比較小;VC維越大,問題的解的種類就越多,推廣能力就越差,置信風險也就越大。因此,增加樣本數,降低VC維,才能降低置信風險。而一般的分類函式,需要提高VC維,即樣本的特徵資料量,來降低經驗風險,如多項式分類函式。如此就會導致置信風險變高,結構風險也相應變高。過度學習即overfit,就是置信風險變高的緣故。

結構風險最小化SRM(structured risk minimize)就是同時考慮經驗風險與結構風險。在小樣本情況下,取得比較好的分類效果。保證分類精度(經驗風險)的同時,降低學習機器的 VC 維,可以使學習機器在整個樣本集上的期望風險得到控制,這應該就是SRM的原則。
當訓練樣本給定時,分類間隔越大,則對應的分類超平面集合的 VC 維就越小。(分類間隔的要求,對VC維的影響)
根據結構風險最小化原則,前者是保證經驗風險(經驗風險和期望風險依賴於學習機器函式族的選擇)最小,而後者使分類間隔最大,導致 VC 維最小,實際上就是使推廣性的界中的置信範圍最小,從而達到使真實風險最小。

訓練樣本線上性可分的情況下,全部樣本能被正確地分類(咦這個不就是傳說中的yi*(w*xi+b))>=1的條件嗎),即經驗風險Remp 為 0 的前提下,通過對分類間隔最大化(咦,這個就是Φ(w)=(1/2)*w*w嘛),使分類器獲得最好的推廣效能。
對於線性不可分的狀況,可以允許錯分。即對於離群點降低分類間隔。將距離原來的分類面越遠,離群就越嚴重,這個距離,可以用一個值--鬆弛變數來表示,只有離群點才有鬆弛變數。當然,要對這個值加以限制,即在最小化函式裡,加入一個懲罰項,裡面還有一個可以人為設定的懲罰項C。當C無限的大,那麼就退化為硬間隔問題,不允許有離群點,問題可能無解。若C=0,無視離群點。有時C值需要多次嘗試,獲取一個較好的值。