哪些常用的分類器是有VC維的,他們的VC維如何計算?

線性分類器,例如感知機、線性核SVM的VC維是維度加一,那其他有哪些常用的分類器是有VC維的,或者在某些限制條件下是有VC維的?


我嘗試著回答一下:

1,先說一些結論:

線性分類器:VC(H)=d+1(所有的線性分類器成立)

使用高斯核的分類器 VC(H)=infty

由上可知:線性SVM的VC維為d+1,而 高斯核函數的VCinfty (關於SVM的VC-d的內容可以參考 http://research.microsoft.com/pubs/67119/svmtutorial.pdf

最近鄰:

VC=infty

NN(Neural Networks ):VC=# parameters

3節點的decision tree :VC=4,8節點的decision tree :VC=9=節點數+1

,

2,從VC維的來源來看VC維有什麼作用:

如果假設空間中的hypothesis數是固定的,經過證明可以得到:error_{true}leq error_{train}(h)+sqrt{frac{ln|H|+lnfrac{1}{delta }}{2m}}

其中,error_{train}(h)是我們給定model 之後,訓練數據的誤差。而error_{true}是model真實的誤差,也就是我們最終關心的誤差。上式中可以得出真實誤差上界,所以此公式證明了在machine learning 真的具有學習能力。

但是,當H的個數為無窮的時候,上式就失效了,因為ln|H|是無限大的,因此科學家們有證明了如下公式:

error_{true}leq errot_{train}(h)+sqrt{frac{VC(H)(lnfrac{2m}{VC(H)}+1)+lnfrac{4}{delta }}{m}}

結論是error_{true}可以不依賴|H|而依賴於VC(H),而VC(H)就是樓主提到的VC維,VC維是用來證明誤差的上界的,知道常用的分類器的誤差上界,就會對分類器的分類效果有進一步的認識,從而選擇最優的分類器。

但是,實際使用中,VC維在模型選擇中別不是特別特別常用(因為他僅僅是提供了誤差上界的理論證明,而且此理論誤差上界限有時候和真實誤差聯繫並不緊密),而常用的模型選擇方法有:

  • CV(Cross-validation),應該是最常用的,也最容易理解的
  • AIC(Akaike Information Criterion)
  • BIC(Bayesian information Criterion)

3,最後說一下VC維定義以及簡單證明過程

先給定一些相關定義:

  • dichotomy : 把給定集S分成不想交的兩個子集。
  • shattered :我們說給定集S被一個假設空間(hypothesis space H)shattered,當且僅當:對於S任意的dichotomy,在H中都存在一個特定的h滿足此dichotomy。
  • VC dimension: 定義為假設空間(hypothesis space H)能夠shatter的最大的集合的維度,例如,2維感知機(一種線性分類器)的VC(H)=2+1=3

VC 維的證明過程一般分為兩步,第一步證明VC 維至少是多大(例如最小是p),第二步證明VC維最大是多大(例如還是p),因為可以得出VC(H)=p

給一個最近鄰VC維非常直觀的一個解釋:

所以,很容易看出最近鄰可以shatter任意數據集合,因此VC=infty


推薦閱讀:

從 1 到 1024 排成一個數除以 9,餘數是多少?
求解方程時,除了用牛頓法,可否使用梯度下降法?
如何證明一個數的數根(digital root)就是它對9的餘數?
程序員工作後看演算法書有用嗎?效果怎樣?
一道阿里前端筆試題,求思路?

TAG:程序員 | 演算法 | 機器學習 | 分類 | 大數據 |