VC維(
Vapnik-Chervonenkis Dimension)的概念是為了研究學習過程一致收斂的速度和推廣性,由統計學習理論定義的有關函數集學習效能的一個重要指標。傳統的定義是:對一個指標函數集,如果存在H 個樣本能夠被函數集中的函數按所有可能的2的K次方種形式分開,則稱函數集能夠把H個樣本打散;函數集的VC維就是它能打散的最大樣本數目H。若對任意數 目的樣本都有函數能將它們打散,則函數集的VC維是無窮大,有界實函數的VC維可以通過用一定的閥值將它轉化成指示函數來定義。VC維反映了函數集的學習能力,VC維越大則學習機器越複雜(容量越大),遺憾的是,目前尚沒有通用的關於任意函數集VC維計算的理論,只對一些特殊的函數集知道其VC維。例如在N維空間中線形分類器和線形實函數的VC維是n+1。========================================================================
“支援向量機方法是建立在統計學習理論的VC 維理論和結構風險最小原理基礎上”
結構化風險
結構化風險 = 經驗風險 + 置信風險
經驗風險 = 分類器在給定樣本上的誤差
置信風險 = 分類器在未知文本上分類的結果的誤差
置信風險因素:
- 樣本數量,給定的樣本數量越大,學習結果越有可能正確,此時置信風險越小;
- 分類函數的VC維,顯然VC維越大,推廣能力越差,置信風險會變大。
提高樣本數量,降低VC維,降低置信風險。
機器學習導論 的解釋 :假定我們有一個資料集,包含N個點。這N個點可以用 種方法標記為正例和負例(屬於和不屬於某個類)。因此,N個資料點可以定義 種不同的學習問題。假如(,)逗號前的是屬於,逗號都的是不屬於。比如1個點,可以分為( a , )( , a );2個點可以分為( ab , )( , ab ) ( a , b ) ( b , a )四種;依次類推...如果對於這些問題中的任何一個,我們都能夠找到一個假設h∈ 將正例和負例分開,那麼我們就稱 散列(shatter )N個點。也就是說,可以用N個點定義的任何的學習問題都能夠用一個從中抽取的假設無誤差地學習。可以被散列的點的最大數量稱為 的VC 維(Vapnik 和Cortes ),記為VC( ),它度量假設類 的學習能力(capactiy )。
=================================================================
故有這樣的結論,平面內只能找到3個點能被直線打散而不找到第4個。
對於這個結論我是如下理解的:
(1)平面內只能找到3個點能被直線打散:直線只能把一堆點分成兩堆,對於3個點,要分成兩堆加上順序就有23種。其中A、B、C表示3個點,+1,-1表示堆的類別, {A→-1,BC→+1}表示A分在標號為-1的那堆,B和C分在標號為+1的那堆。這就是一種分發。以此類推。則有如下8種分法:
{A→-1,BC→+1},{A→+1,BC→-1}
{B→-1,AC→+1},{B→+1,BC→-1}
{C→-1,AB→+1},{C→+1,BC→-1}
{ABC→-1},{ABC→+1}
(2)找不到4個點。假設有,則應該有24=16分法,但是把四個點分成兩堆有:一堆一個點另一對三個點(1,3);兩兩均分(2,2);一堆四個另一堆沒有(0,4)三種情況。對於第一種情況,4個點可分別做一次一個一堆的,加上順序就有8種:
{A→-1,BCD→+1},{A→+1,BCD→-1}
{B→-1,ACD→+1},{B→+1,ACD→-1}
{C→-1,ABD→+1},{C→+1,ABD→-1}
{D→-1,ABC→+1},{D→+1,ABC→-1};
對於第二種情況有4種:
{AB→-1,CD→+1},{AB→+1,CD→-1}
{AC→-1,BD→+1},{AC→+1,BD→-1}
沒有一條直線能使AD在一堆,BC在一堆, 因為A、D處在對角線位置,B、C處在對角線位置。(這是我直觀在圖上找出來的)
對於第三種情況有2種;
{ABCD→-1}
{ABCD→+1}
所以總共加起來只有8+4+2=14種分法,不滿足24=16分法,所以平面找不到4個點能被直線打散。
================================================================
vc維的本質和結構風險最小化
http://hi.baidu.com/jipyjyxfkubhtxq/item/a04bc83f71f33f9cb90c03f9
VC維在有限的訓練樣本情況下,當樣本數 n 固定時,此時學習機器的 VC 維越高學習機器的複雜性越高。VC 維反映了函數集的學習能力,VC 維越大則學習機器越複雜(容量越大)。
所謂的結構風險最小化就是在保證分類精度(經驗風險)的同時,降低學習機器的 VC 維,可以使學習機器在整個樣本集上的期望風險得到控制。
推廣的界(經驗風險和實際風險之間的關係,注意引入這個原因是什嗎?因為訓練誤差再小也就是在這個訓練集合上,實際的推廣能力不行就會引起過擬合問題還。 所以說要引入置信範圍也就是經驗誤差和實際期望誤差之間的關係):期望誤差R(ω) ≤ Remp (ω)+ Φ(n/h)注意Remp (ω)是經驗誤差也就是訓練誤差(線性中使得所有的都訓練正確),Φ(n/h)是置信範圍,它是和樣本數和VC維有關的。上式中置信範圍Φ 隨n/h增加,單調下降。即當n/h較小時,置信範圍Φ 較大,用經驗風險近似實際風險就存在較大的誤差,因此,用採用經驗風險最小化準則,取得的最優解可能具有較差的推廣性;如果樣本數較多,n/h較大,則置 信範圍就會很小,採用經驗風險最小化準則,求得的最優解就接近實際的最優解。可知:影響期望風險上界的因子有兩個方面:首先是訓練集的規模 n,其次是 VC 維 h。可見,在保證分類精度(經驗風險)的同時,降低學習機器的 VC 維,可以使學習機器在整個樣本集上的期望風險得到控制,這就是結構風險最小化(Structure Risk Minimization,簡稱 SRM)的由來。在有限的訓練樣本情況下,當樣本數 n 固定時,此時學習機器的 VC 維越高(學習機器的複雜性越高),則置信範圍就越大,此時,真實風險與經驗風險之間的差別就越大,這就是為什麼會出現過學習現象的原因。機器學習過程不但 要使經驗風險最小,還要使其 VC 維盡量小,以縮小置信範圍,才能取得較小的實際風險,即對未來樣本有較好的推廣性,它與學習機器的 VC 維及訓練樣本數有關。
線性可分的問題就是滿足最優分類面的面要求分類面不但能將兩類樣本正確分開(訓練錯誤率為 0),而且要使兩類的分類間隔最大(這個是怎麼回事呢?原來是有根據的,這個讓俺鬱悶了好久呢。在 @ 間隔下,超平面集合的 VC 維 h 滿足下面關係:
h = f (1/@*@)
其 中, f().是單調增函數,即 h 與@的平方成反比關係。因此,當訓練樣本給定時,分類間隔越大,則對應的分類超平面集合的 VC 維就越小。)。根據結構風險最小化原則,前者是保證經驗風險(經驗風險和期望風險依賴於學習機器函數族的選擇)最小,而後者使分類間隔最大,導致 VC 維最小,實際上就是使推廣性的界中的置信範圍最小,從而達到使真實風險最小。注意:置信範圍大說明真實風險和經驗風險的差別較大。
解釋到這裡了,終於有點眉目了,哦原來就是這麼回事啊,真是的。總結一下就是訓練樣本線上性可分的情況下,全部樣本能被正確地分類(咦這個不就是傳說中的 yi*(w*xi+b))>=1的條件嗎),即經驗風險Remp 為 0 的前提下,通過對分類間隔最大化(咦,這個就是Φ(w)=(1/2)*w*w嘛),使分類器獲得最好的推廣效能。
那麼解釋完線性可分了,我們知道其實很多時候是線性不可分的啊,那麼有什麼區別沒有啊?廢話區別當然會有啦,嘿嘿那麼什麼是本質的區別啊?本質的區別就是 不知道是否線性可分但是允許有錯分的樣本存在(這個咋回事還是沒明白hoho)但是正是由於允許存在錯分樣本,此時的軟間隔分類超平面表示在剔除那些錯分 樣本後最大分類間隔的超平面。這裡就出現了新詞松馳因子,幹嗎用滴?就是用來控制錯分樣本的啊。這樣的話經驗風險就要跟松馳因子聯絡在一起了。而C就是松 馳因子前面的係數,C>0 是一個自訂的懲罰因子,它控制對錯分樣本懲罰的程度,用來控制樣本偏差與機器推廣能力之間的折衷。c越小,懲罰越小,那麼訓練誤差就越大,使得結構風險 也變大,而C 越大呢,懲罰就越大,對錯分樣本的約束程度就越大,但是這樣會使得第二項置信範圍的權重變大那麼分類間隔的權重就相對變小了,系統的泛化能力就變差了。所 以選擇合適的C還是很有必要的。
選擇核函數。
核函數有很多種,如線性核、多項式核、Sigmoid 核和 RBF(Radial Basis function)核。本文選定 RBF 核為 SVM 的核函數(RBF 核K(x, y) = exp(-γ || x -y ||的平方),γ > 0)。因為RBF 核可以將樣本映射到一個更高維的空間,可以處理當類標籤(Class Labels)和特徵之間的關係是非線性時的範例。Keerthi 等[25]證明了一個有懲罰參數C 的線性核同有參數(C,γ )(其中C 為懲罰因子,γ 為核參數)的 RBF 核具有相同的效能。對某些參數,Sigmoid核同 RBF 核具有相似的效能[26]。另外,RBF 核與多項式核相比具有參數少的優點。因為參數的個數直接影響到模型選擇的複雜性。非常重要的一點是0< Kij ≤1與多項式核相反,核值可能趨向無限(γxi xj + r >1)或者0 < γxi xj + r <1,跨度非常大。而且,必須注意的是Sigmoid 核在某些參數下是不正確的(例如,沒有兩個向量的內積)。
(4)用交叉驗證找 到最好的參數 C 和γ 。使用 RBF 核時,要考慮兩個參數 C 和γ 。因為參數的選擇並沒有一定的先驗知識,必須做某種類型的模型選擇(參數搜尋)。目的是確定好的(C,γ)使得分類器能正確的預測未知資料(即測試集數 據),有較高的分類精確率。值得注意的是得到高的訓練正確率即是分類器預測類標籤已知的訓練資料的正確率)不能保證在測試集上具有高的預測精度。因此,通 常採用交叉驗證方法提高預測精度。k 折交叉驗證(k-fold cross validation)
是將訓練集合分成 k 個大小相同的子集。其中一個子集用於測試,其它 k-1 個子集用於對分類器進行訓練。這樣,整個訓練集中的每一個子集被預測一次,交叉驗證的正確率是 k次正確分類資料百分比的平均值。它可以防止過擬合的問題。
=============================================================================http://www.caogenit.com/caogenxueyuan/yingyongfangxiang/rengongzhineng/1194.htmlhttp://blog.csdn.net/marising/article/details/5888531http://liujian.jigsy.com/entries/blog/vc%E7%BB%B4-vapnik-chervonekis-theorem