機器學習基礎 VC維與模型複雜度 樣本複雜度

2021-07-26 15:55:36 字數 1355 閱讀 8316

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

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

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

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

這時,vc維變成了我們乙個重要的選擇,我們可以用vc維提供的資訊來選擇更好的模型和假設空間。

我們可以根據vc bound公式,設發生壞事情的概率是δ,將其恒等變換可以得到訓練誤差和測試誤差的差別ε。所以反過來講,好事情(訓練誤差和測試誤差的差別小於ε)發生時,eout(g)被限制在乙個範圍內。這裡根號內的式子定義為ω(n,η,δ),稱作模型複雜度,這個引數描述的意義是,我們的假設空間h有多麼的強,使得我們的演算法在泛化能力上需要付出多少代價。通俗的來講,假設空間的容量越大,vc維越大,那麼模型就越難學習。

model_complexity

如下圖所示,我們可以看出隨vc維變化,ein、eout、模型複雜度都是如何變化的。

這裡乙個很直接的資訊就是模型複雜度隨著vc維的變大不斷變大,呈正相關趨勢。

因為vc維變大時,資料中可以shatter的點就變多了,那麼假設空間的容量就變大了,如果是乙個合理的學習演算法的話,就有機會找到乙個更好的假設,使得ein更小。

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

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

vc_message

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

我們這裡介紹的vc bound的條件是非常寬鬆的,這使得在樣本複雜度的估計上可以和理論值相差很大,原因如下:

以上有關vc bound傳遞的哲學資訊可以很好的指導我們進行機器學習演算法的實踐。

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

機器學習基石課程,林軒田,台灣大學

github主頁(

csdn部落格(

機器學習基礎 VC維與模型複雜度 樣本複雜度

上一小節,我們引入了vc維的概念,用它來描述假設集合的表達能力。這一小節中,我們將從vc維的物理意義出發,進一步學習如何根據vc維傳達的資訊來選擇模型和假設集合。如果我們將假設集合的數量 h 比作假設集合的自由度,那麼vc維就是假設集合在做二元分類的有效的自由度,即這個假設空間能夠產生多少dicho...

機器學習十二 誤差原因與模型複雜度

誤差原因 error 用於測量模型效能的基本指標。在模型 中,模型可能出現的誤差來自兩個主要 即 因模型無法表示基本資料的複雜度而造成的 偏差 bias 或者因模型對訓練它所用的有限資料過度敏感而造成的 方差 variance 偏差 準確率和欠擬合 如果模型具有足夠的資料,但因不夠複雜而無法捕捉基本...

演算法基礎 簡介時間複雜度與空間複雜度

演算法是為求解乙個問題所需要遵循的 被清楚地指定的簡單指令的集合。對於乙個問題,一旦給定某種演算法並且確定其實正確的,那麼重要的一步就是確定該演算法將需要多少諸如時間或空間等資源量的問題,這就是時間複雜度和空間複雜度存在的意義。常用時間複雜度和空間複雜度來衡量不同演算法的優劣。一 從數學的角度理解 ...