VC維再理解

2021-09-24 10:19:36 字數 2393 閱讀 7148

為什麼80%的碼農都做不了架構師?>>>

看了台大的機器學習基石的課。講了很多周的vc維的知識,對vc維的認識還是有點模糊,在這裡梳理一下。

vc維被認為是數學和電腦科學中非常重要的定量化概念,它可用來刻畫分類系統的效能。在機器學習裡我們常常看到這樣的說法:一般而言,vc越大, 學習能力就越強,學習也越複雜;可以通過vc計算學習風險的上界。

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

vc維越大,ein(隨機抽樣得到的樣本錯誤率)越小,ω(n,η,δ)(模型複雜度)越大

vc維越小,ω(n,η,δ)越小,ein越大

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

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

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

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

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

所以並不是vc維越大越好,一般我們考慮的都是在中間位置取值。

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

對乙個指示函式集,如果存在h個樣本能夠被函式集中的函式按所有可能的2^h種形式分開,則稱函式集能夠把h個樣本打散,函式集的vc維就是它能打散的最大樣本數目h,若對任意數目的樣本都有函式能將它們打散.則函式集的vc維是無窮大。有界實函式的vc維可以通過用一定的閾值將它轉化成指示函式來定義。vc維反映了函式集的學習能力,vc維越大則學習機器越複雜,所以vc維又是學習機器複雜程度的一種衡量。

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

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

這裡舉個例子,來說明vc維

對於三個樣本點的情況,下面的s1所有的標記方式是可以使用線性分類器進行分類的,因此其vc維至少為3

雖然存在下面這種情況的s2,其中一種標記方式無法用線性分類器分類

但這種情況並不影響,這是因為,上一種的s1中,我們的h=可以實現其所有可能標籤情況的分類,這和s2不能用h分散無關。(所以說只要有一種情況能用h分散即可)

而對於4個樣本點的情況,我們的h不能實現其所有可能標籤情況的分類(這是經過證明的,過程不詳)如下圖中某個s和其中一種標籤分配情況:

如果某函式的vc維無窮大,也就意味著,任意多個點無論怎樣標註都能將其打散。例如sin(ax)。它可以將任意多樣本的任意標註情況精確分開,即在訓練集上達到100%的分類正確率。

關於VC維的理解

簡介 vc維,全稱為vapnik chervonenkis dimension,它反映了模型的學習能力,vc維越大,則模型的容量越大。通俗定義 vc維的通俗定義是 對於乙個指示函式集,如果存在h hh個樣本能夠被函式集中的函式按所有可能的2h2 2h種形式分開,則稱函式集能夠將h hh個樣本打散,函...

再理解敏捷

2009年1月24日 2008年春,專案做的對敏捷有了點興趣,花了兩個晚上瀏覽了 敏捷迭代開發 管理者指南 理念式的書,看起來比較輕鬆,摘錄一些自己的體會。有些需求在開始的時候是提不出來的,或者說沒法細化的,強行的過渡需求分析是浪費時間的行為,到後來多半還是要改。瀑布 其實royce大大提出的瀑布模...

遞迴再理解

其實關於遞迴,我也是比較模糊的,至今能理解和能用的遞迴演算法,基本是靠記憶和經驗,要是讓我自己設計乙個遞迴,估計又得難半天,很早都想總結一下,喜歡瀏覽技術網 站,總是能找到好東西,現在將遞迴演算法總結如下,也不是多麼深刻,多麼高大上,可以說還是拙見吧 定義遞迴演算法 基本思想 那麼什麼是遞迴演算法呢...