本文属于概率与测度系列。
在本系列的上一篇文章中,我偷偷留了一个问题:为什么具体试验所得到的频率是趋向于该事件的概率的。这个问题似乎是显而易见的,但是仔细想想似乎也并不显然,并不能一下子得出这个结论来。事实上,历史上有以这个性质作为基础来构建概率论的理论体系的尝试,不过在现在的概率论公理化体系下面,这个可以作为一个结论推导出来,具体来说,它是大数定理的一个特殊情况。不过如本文标题所说,这次只是闲扯,因为我们目前的进度还没有到大数定理那里,所以就不仔细介绍众多形式的大数定理了,下面只给一个常见的形式,并且暂时省略证明:
依概率收敛就是依测度收敛的特殊情况,这里具体来说,就是对任意的 $\epsilon >0$ ,有
\[
\lim_{n\rightarrow \infty} P\left(\left|\frac{S_n}{n} – \mu\right| < \epsilon\right) = 1
\]
现在回头来看我们的频率趋向于概率的问题。由于一系列重复试验中事件发生的频率是依赖于这些试验的一个随机变量(而不是一个数),并不能像正常意义下那样趋向于一个数,因此我们很自然地需要用到依概率收敛的概念。具体来说,我们希望控制频率这个随机变量与概率值之间的偏差尽量小。再具体一点,就是希望对任意的 $\epsilon > 0$ 和 $\delta > 0$ ,能够达到
\[
P\left(\left|\hat{p}_n – p\right| \geq \epsilon\right) < \delta
\]
这里小写的 $p$ 表示该事件发生的概率,$\hat{p}_n$ 表示经过 $n$ 次重复试验之后统计出来的该事件发生的频率。这个式子的意思就是说,频率和真实概率的偏差大于 $\epsilon$ 的概率可以控制到很小(小于 $\delta$ )。这个式子等价于
\[
\lim_{n\rightarrow} P\left(\left|\hat{p}_n - p\right| < \epsilon\right) = 1
\]
从这里就可以看出其实这个结论可以很容易从大数定理得到了。考虑随机重复试验,每次事件发生的概率为 $p$ ,第 $i$ 次试验里事件发生时 $X_i=1$ ,否则 $X_i=0$ ,则 $S_n=X_1+\ldots+X_n$ 就等于 $n$ 次试验中事件发生的次数,另一方面,对于所有 $i$ ,我们有 $\mu=\mathbb{E}(X_i)=p$ ,直接带入大数定理,即得到上面的结论。
这样,我们就证明了重复试验中事件发生的频率确实是(依概率)趋向于该事件的频率的。在结束本文之前,我还想闲扯两句关于学习理论 (learning theory) 的东西。常见的机器学习的设定是这样的:设我们有样本空间 $\mathcal{X}$ 和结果空间 $\mathcal{Y}$ ,以及 $\mathcal{X}\times \mathcal{Y}$ 上的一个(未知的)概率分布 $\mathcal{P}$ ,给定一个损失函数 (loss function) $\ell:\mathcal{Y}^{\mathcal{X}}\times \mathcal{X}\times\mathcal{Y}\rightarrow \mathbb{R}$ ,寻找最优的一个函数 $f^*$ ,使得如下的风险泛函 (Risk functional)
\[
R_{\mathcal{P}}(f) = \int\ell(f,x,y)d\mathcal{P}
\]
达到最小。一个在分类问题中常用的损失函数是
\[
\ell(f,x,y) = \begin{cases}0 & f(x) = y\\ 1 & f(x) \neq y\end{cases}
\]
这里的问题在于,$\mathcal{P}$ 是未知的,因此这个泛函无法直接求值。在实际问题中,我们会得到从 $\mathcal{P}$ 中抽样出来的 $n$ 对训练数据 $\{x_1,y_1\},\ldots,\{x_n,y_n\}$ ,用这些样本可以构造一个离散的经验分布 $\mathcal{P}_n$,也就是把概率平均地分配到每个观察到的样本对上了。然后可以得到“经验风险泛函”
\[
R_{\mathcal{P}_n}(f) = \int\ell(f,x,y)d\mathcal{P}_n
\]
对于某一个给定的 $f$ ,根据大数定理,我们可以得到,当 $n$ 趋向于无穷时,经验风险泛函是(依概率)收敛于风险泛函的。然而这对于机器学习来说还不够,因为机器学习是在一个给定的函数空间 $\mathcal{H}$ 中搜索一个最优的(使得风险泛函最小的)函数,因此为了保证这个搜索过程是合理的,需要保证对于整个空间 $\mathcal{H}$ 中的所有函数(也就是说,我们现在考虑的是要保证最坏情况也能处理好)能一致收敛。这里实际上是把传统的大数定理推广到了函数空间上——似乎 Vapnik 大神的统计学习理论中把这个推广作为学习理论的关键定理。
就我目前非常肤浅的了解来看,Vapnik 的统计学习理论除了给出了这里提到的收敛性以外,更重要的是分析了 $n$ 有限的情况。因为虽然 $n\rightarrow \infty$ 的情况在理论上是很重要的需要搞清楚的,但是当 $n\rightarrow \infty$ 时是好的并不是就代表 $n$ 有限的时候同样的做法就是好的,而实际学习问题中我们所能拿到的 $n$ 总是有限的。具体来说,在 $n$ 有限时,直接去最小化经验风险泛函并不一定是最优的,会造成 overfitting 等问题。
因此,除了分析 $n\rightarrow\infty$ 的情况,我们还分析在给定的 $n$ 时,给出一个 $R_{\mathcal{P}_n}$ 和 $R_{\mathcal{P}}$ 之间的差别的 bound ,这个 bound 不仅依赖于 $n$ 的大小,还依赖于我们所用的目标函数空间的“大小”——这里用 VC 维之类的东西来刻画。因此,在最小化经验风险泛函的同时,通过正则化的方法同时去最小化目标函数空间的“大小”——这个原则被 Vapnik 老人家称为“结构风险最小化”。由这个原则,就设计出了我们熟知的 Support Vector Machine 算法——具有优良的抗 overfitting 性能。
请问你blog中的公式是怎么设计的?
还有验证码太糊了,输了好多遍
你好,公式是用 MathJaX ,验证码是因为垃圾评论太多了,所以不得不用比较难的验证码……暂时换另一种基于 JS 的反垃圾工具吧,如果挡不住的话,可能还得换回来。
请教楼主:最小化目标函数空间的“大小”,这个目标在SVM的推导中,是在哪一步(哪个公式)体现的呢?谢谢。
直观来看,在 SVM 中可以体现为 large margin 的要求:比如,原本的目标函数空间是“所有的线性分类器”,现在变成“所有 large margin 的线性分类器”,于是空间的”大小“被缩小了。
原来那个最大化间隔的步骤,就是最小化VC维的考虑。但从直观上很难发现两者的直接联系,感觉VC维是很抽象的一个概念,不想其他概念能具体形象的理解。也可能是我的抽象能力不够:(。
感谢的迅速回复 🙂
建议你看一下 Caltech 的机器学习课程:https://gist.github.com/3205809 ,在 5、6、7 三课有比较详细地介绍 VC 维。当然学习理论的这些东西本来就是很复杂的。
计算学习理论应该是由霍夫丁定理推出来的,而不是大数定理。