7-ML的可行性(4)
1. vc-dimension及vc-bound
-
定义scater:如果一个h在处理包含N个样本点的某一个数据集D时能产生 \(2^N\) 个dichtopy,就说h能schater这N个样本点。【看清楚,我只说存在一个D,并没有说面对所有的N-input,我的这个h都能产生 \(2^N\) 个dichtomy】
-
定义vc-dimension:
- 从上述讨论我们看出,开始N很小的时候,h都能schater这N个样本点,但是N越来越大时,总会【存】在一个阈值K,使得h无法schater这K个样本点。这个阈值K就是第一个break-point,也就是【最小】的的break-point。因为往后,任意一个N>K,h都无法schater掉这N个样本点了【原因在于,当前的h连K的最大dichtomy数 \(2^K\) 都无法产生,更别提更大的dichtomy数了】。
- 联系上述【最小】的break point,我们取【最大】的一个non-break point,即K-1,定义这个K-1为vc-dimension,记做 \(d_{vc}\) 。显然,这个 \(d_{vc}\) 标识了【能shcater的最多的样本点数目为 \(d_{vc}\) 】的一组h【即与具体h无关】,再多输入一个样本点,h就不能shcater任意一个包含 \(d_{vc}+1\) 个样本点集合D了,因为 \(d_{vc}+1\) 是这一组h的【最小】的break-point。
-
vc-dimension的物理含义:
至少目前我理解了两个含义:- 从直观的角度:
因为 \(d_{vc}\) 表示当前h能够schater掉 \(d_{vc}\) 个样本点,即产生 \(2^{d_{vc}}\) 个dichtomy,这其实就表示了当前h的powerfulness,因为它能产生这么多的分界直线{分界面},那么进而找到了一个很合适的h,使得 \(E_{in} \approx 0\) - 从BAD DATA的角度看:
当前h的|group|的upper-bound的upper-bound的upper-bound是指数函数的,即 \(2^{d_{vc}}\) ,对应着当前h产生BAD-DATA的概率很大。这表明:当前h在面对“这样一个样本点规模 \(d_{vc}\) 时”,存在风险,这是vc-dimension给我们的一个信息。(说明当前N还不够大,需要继续增大N) - 我们的目标就是:因为当 \(N > d_{vc}\) 时, \(B(N,K) = o(N^{K-1})\) ,那么找一个恰当的N,上述h的风险就有可能降低。\(d_{vc}\) 就是我们研究这个恰当的N的关键线索。
- 从直观的角度:
-
vc-bound:(证明过程见“|group|可以代替M”那里)
\[ \mathbb{P}[BAD] = \mathbb{P}[\exists h \in \mathcal{H}\text{ s.t. } |E_{in}(h)-E_{out}(h)|\gt \epsilon] \\ \leq 4m_{\mathcal{H}}(2N)exp(-\frac{1}{8}\epsilon^2N) \\ = 4(2N)^{d_{vc}}exp(-\frac{1}{8}\epsilon^2N) \\ \]根据上式,我们得出结论:
- h存在break point,即 \(d_{vc}(H)\) 是有限的(definite),这样的H才是good的【保证BAD-DATA的概率很小,故而 \(E_{out} = E_{in}\) 】
- 训练数据数目N足够大【能保证BAD-DATA的概率很小,故而 \(E_{out} = E_{in}\) 】
- 算法A能在 \(D_{in}\) 中找到 \(E_{in} \approx 0\) 的那个h
满足了上述三个条件,则Machine Learning 是可行的,有意义的。如下以2D perceptrons为例:
-
求解 $d_{vc} ;of; \mathcal{H} $
由上面推导知, \(d_{vc}\) 是对假设空间 $\mathcal{H} $ 的一个描述,与具体的hypothesis、D、f均无关,如果用定义求太过繁琐而不具备可操作性。
先定义模型的自由参数及自由度,比如PLA中的w0,w1,...wn就是自由参数,再定义【自由参数的个数】为【模型的自由度】,则PLA的模型自由度为n+1。发现前面的推导已知PLA的 $d_{vc} = n+1 $ ,即【模型自由度= \(d_{vc}\) 】,这不是巧合,而是一种经验规律。后面就可以以【模型自由度】近似代替【 \(d_{vc}\) 】 -
vc-bound的物理含义:
已知,\[\]= 4(2N){d_{vc}}exp(-\frac{1}{8}\epsilon2N)
\[ \]\[\]\[ \]\[\]\[ \]根据上图可知, \(d_{vc}\) 的最佳值应该是一个折中值,它在保证【 \(min \; E_{in}\) 】与【减小model complexity】这两个目标之间做了折中。
- 这个图的含义很丰富:并不是你的 \(\mathcal{H}\) 越强大越好, $E_{in} ; is ; too ; small $ 往往伴随着过拟合的问题。这对应着奥卡姆剃刀理论,“简单的模型就是好的”【即 model complexity小但是 \(E_{in}\) 稍微大一点的model is good model】
-
样本复杂度N对P(BAD)的影响:
由上图知,理论上需要的样本点个数N是 \(10000d_{vc}\) ,但实际上 \(10d_{vc}\) 就足以满足 \(\epsilon \; and \; \delta\) 的精度要求。究其本质是因为我们所求的vc-bound一直是|group|的upper-bound的upper-bound的upper-bound,把P(BAD)放大了三次,也就是说【没有考虑具体的 \(\mathcal{H},\mathcal{A},D\) 】,而都是一概取相应的max。
2. 最后总结一下本次5节课的主题:
介绍了break-point,schater, vc-dimension,vc-bound,vc-dimension的近似代替,vc-dimension的物理含义,vc-bound对泛化误差 \(E_{out}\) 的一个定量评估,以及最终导出了ML可行性的条件:
- \(the \; d_{vc} \; of \; \mathcal{H} \; is \; definite\)
- 样本点个数N足够大
- 存在一个合适的h使得 \(E_{in} smallest\)