vc維與模型復雜度、樣本復雜度

jopen 9年前發布 | 35K 次閱讀 算法 機器學習

引言

上一小節,我們引入了VC維的概念,用它來描述假設集合的表達能力。這一小節中,我們將從VC維的物理意義出發,進一步學習如何根據VC維傳達的信息來選擇模型和假設集合。

VC維的物理意義

如果我們將假設集合的數量|H|比作假設集合的自由度,那么VC維就是假設集合在做二元分類的有效的自由度,即這個假設空間能夠產生多少Dichotomies的能力(VC維說的是,到什么時候,假設集合還能shatter,還能產生最多的Dichotomies)。

VC維、真實錯誤率、訓練錯誤率

在上一節中,我們討論要做到好的預測要滿足兩個條件,第一是訓練誤差要接近真實誤差,即Ein(g)約等于Eout(g);第二是訓練誤差要盡量接近0,即Ein(g)約等于0。

現在,我們用VC維這個工具來描述。

  • 如果VC維很小,那么發生預測偏差很大的壞事情的可能性也就很小,那這有利于Ein(g)接近Eout(g);但是,這是我們的假設空間的表達能力受到了限制,這樣Ein(g)可能就沒有辦法做到很小。
  • 如果VC維很大,那么假設空間的表達能力很強,我們很有可能選到一個Ein(g)很小的假設,但是Ein(g)和Eout(g)之差很大的壞事情 發生的情況發生的可能性就變得很大,這樣Ein(g)和Eout(g)根本不接近,我們就無法確定選擇的假設在測試數據的時候表現的很好。
 vc維與模型復雜度、樣本復雜度
differentDvc.jpg 758x207 55.1 KB
</a> </div>

這時,VC維變成了我們一個重要的選擇,我們可以用VC維提供的信息來選擇更好的模型和假設空間。

模型復雜度(Model Complexity)

我們可以根據VC Bound公式,設發生壞事情的概率是δ,將其恒等變換可以得到訓練誤差和測試誤差的差別ε。所以反過來講,好事情(訓練誤差和測試誤差的差別小于ε)發 生時,Eout(g)被限制在一個范圍內。這里根號內的式子定義為**Ω(N,Η,δ),稱作模型復雜度,這個參數描述的意義是,我們的假設空間H有多么 的強,使得我們的算法在泛化能力上需要付出多少代價。通俗的來講,假設空間的容量越大,VC維越大,那么模型就越難學習。**

 vc維與模型復雜度、樣本復雜度
model_complexity.jpg 827x547 114 KB
</a> </div>

VC維傳遞的信息

如下圖所示,我們可以看出隨VC維變化,Ein、Eout、模型復雜度都是如何變化的。

這里一個很直接的信息就是模型復雜度隨著VC維的變大不斷變大,呈正相關趨勢。

因為VC維變大時,數據中可以shatter的點就變多了,那么假設空間的容量就變大了,如果是一個合理的學習算法的話,就有機會找到一個更好的假設,使得Ein更小。

而Eout呢?在一開始的時候,Eout隨著Ein的下降也下降,但是到某個點,因為我們要付出的代價變大了,Eout開始上升,所以最好的Eout是在中間的某個位置。

這里得到一個重要的結論,VC維越大或者假設空間能力越強大,雖然可以使得訓練誤差很小,但不見得是最好的選擇,因為要為模型復雜度付出代價。

 vc維與模型復雜度、樣本復雜度
VC_message.jpg 805x342 58.9 KB
</a> </div>

樣本復雜度(Sample Complexity)

根據理論而言,樣本復雜度大約是VC維的10000倍,而實際應用中,只需要VC維的10倍的量就夠了。

我們這里介紹的VC Bound的條件是非常寬松的,這使得在樣本復雜度的估計上可以和理論值相差很大,原因如下:

  • 我們利用Hoeffding對任何的分布和任何的目標函數來推測真實的錯誤率
  • 我們利用成長函數mH(N)來代替假設集合的數量,確保可以使用任何數據
  • 用VC維表示的多項式來代替成長函數,使得我們只通過VC維就可以了解某個假設空間的性質
  • 使用union bound來避免最差的狀況

以上有關VC Bound傳遞的哲學信息可以很好的指導我們進行機器學習算法的實踐。

最后一句話

最后總結一句話,如果我們假設集合的VC維是有限的,并且有足夠多的數據,我們的算法又可以找到一個假設使得訓練錯誤率很低的話,我們就可以學習到有效的模型或知識。

參考資料

</div> 來自

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!