1. 程式人生 > >【轉載】VC維,結構風險最小化

【轉載】VC維,結構風險最小化

.html pos 成員 滿足 平衡點 pac 不能 進行 line

以下文章轉載自http://blog.sina.com.cn/s/blog_7103b28a0102w9tr.html

如有侵權,請留言,立即刪除。

1 VC維的描述和理解

給定一個集合S={x1,x2,...xd},如果一個假設類H(hypothesis hH)能夠實現集合S中所有元素的任意一種標記方式,則稱H能夠打散S。有了打散的定義,就得到VC維的定義:H的VC維表示能夠被H打散的最大集合的大小。若H能分散任意大小的集合,那麽VC(H)為無窮大。

?VC維反應的是hypothesis space的容量,容量度量的是空間的復雜度,表達能力,方程集合的靈活性,這種度量是通過評估hypothesis space中成員的wiggly程度實現的。

以二維線性分類器?為例進行說明,其VC維就等於3,即最多能夠將三個樣本的集合打散,無法將四個樣本的集合打散。

對於三個樣本點:對其?進行二分類標記,有2^3=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=16種分法,一堆一個點另一堆三個點(1,3);兩兩均分(2,2);一堆四個另一堆沒有(0,4)三種情況。

第一種情況,有如下八種分法:?

?{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}

第三種情況,有兩種分法:

{ABCD→-1}

{ABCD→+1}

對第二種情況,沒有辦法實現對所有可能的情況進行分類,可以實現的情況有四種:

?{AB→-1,CD→+1},{AB→+1,CD→-1}

{AC→-1,BD→+1},{AC→+1,BD→-1}

但是無法實現AD一堆,BC一堆的分類。所以總共可以實現14種分法,不滿足16種,二維平面上找不到四個點可以被線性分類器被打散。

但是註意,二維平面中並不是只有線性分類器一種模型,例如,以下圖為例說明,與坐標平行的矩形可以打散四個點,所以二維空間中與坐標平行的矩形假設空間的VC維是4。?

技術分享圖片

2 結構風險最小化

2.1 經驗風險最小化

?預測與問題真實解之間的誤差,就叫做風險(更嚴格的說,誤差的累積叫做風險)。選擇了一個假設之後(更直觀點說,得到了一個分類器以後),真實誤差無從得知,但可以用某些可以掌握的量來逼近它。最直觀的想法就是使用分類器在樣本數據上的分類的結果與真實結果(因為樣本是已經標註過的數據,是準確的數據)之間的差值來表示。這個差值叫做經驗風險Remp(w)。

以前的機器學習方法都把經驗風險最小化作為努力的目標,但後來發現很多分類函數能夠在樣本集上輕易達到100%的正確率,在真實分類時卻一塌糊塗(即所謂的推廣能力差,或泛化能力差)。此時的情況便是選擇了一個足夠復雜的分類函數(它的VC維很高),能夠精確的記住每一個樣本,但對樣本之外的數據效果很差。

此原則適用的大前提是經驗風險要確實能夠逼近真實風險才行,但實際上能逼近麽?答案是不能,因為樣本數相對於現實世界要分類的文本數來說簡直九牛一毛,經驗風險最小化原則只在這占很小比例的樣本上做到沒有誤差,當然不能保證在更大比例的真實文本上也沒有誤差。?

2.2 結構風險最小化

?為了解決經驗風險最小化中存在的問題,引入泛化誤差界的概念。

該思想認為,真實風險?應該由兩部分內容刻畫,一是經驗風險,代表了分類器在給定樣本上的誤差;二是置信風險,代表了在多大程度上可以信任分類器在未知文本上分類的結果。很顯然,第二部分是沒有辦法精確計算的,因此只能給出一個估計的區間,也使得整個誤差只能計算上界,而無法計算準確的值(所以叫做泛化誤差界,而不叫泛化誤差)。

其中,?置信風險與兩個量有關,一是樣本數量,顯然給定的樣本數量越大,學習結果越有可能正確,此時置信風險越小;二是分類函數的VC維,顯然VC維越大,推廣能力越差,置信風險會變大。

泛化誤差界的公式為:

R(w)≤Remp(w)+Ф(n/h)?

?公式中R(w)就是真實風險,Remp(w)就是經驗風險,Ф(n/h)就是置信風險。統計學習的目標從經驗風險最小化變為了尋求經驗風險與置信風險的和最小,即結構風險最小。

我的理解是,關於置信風險,樣本數量增多,?會降低置信風險,但同時為了保證準確率,會是VC維升高,不利於置信風險的降低;降低VC維,模型就會相對簡單,不能保證在樣本數量較多的時候的正確率。所以這兩種之間需要權衡,找到平衡點。

此外,結構風險中包含的經驗風險和置信風險,我覺得也可以理解成訓練誤差和模型復雜度的問題。經驗風險是模型在已有樣本上的誤差,置信風險中利用VC維對模型的復雜度進行度量,並希望能夠盡量降低復雜度,增加模型的泛化能力,使得模型的測試誤差降低。

【轉載】VC維,結構風險最小化