一、前言
什么是机器学习的可行性?
算法是否具备学习能力。衡量学习能力是通过在训练数据集之外的数据来进行验证。这个学习能力,也就是算法的泛化能力。在机器学习中,我们的目标是要寻找高泛化能力的模型。
二、从概率论到机器学习
构建一个弹珠罐子模型,其中装满绿色和橘色弹珠,从中抓一把个数为N的弹珠作为样本。如下图所示。
用数学语言来描述上图中ν\nuν和μ\muμ的关系,就是著名的霍夫丁不等式(Hoeffding’s Inequality)
P[∣ν−μ∣>ϵ]≤2exp(−2ϵ2N)(1)P[|\nu-\mu| > \epsilon]\le 2 exp(-2\epsilon^2N) \tag 1P[∣ν−μ∣>ϵ]≤2exp(−2ϵ2N)(1)
公式(1)说明,ν\nuν和μ\muμ是否相似,与μ\muμ的具体数值无关,只与样本容量N,容忍度ϵ\epsilonϵ有关。
接下来,我们从弹珠罐子模型转到机器学习模型。
如上图所示的一一对应。
在罐子里,我们不知道橘色真实占据全部弹珠的比例,同样,对于某个固定的假设h(x)h(x)h(x),我们不知道是否就是目标函数f(x)f(x)f(x)。
样本空间中的每一个样本点x∈X
对应于bin中的每一个marble,当假设h(x)和f(x)不一样时,我们就把球漆成橘色;一样时,我们就把球漆成绿色。
从球罐中抽取的size-N marble对应到学习问题中的训练集D,采样方式均为iid采样。
球罐模型的目的是用抽样计算出的比例估计真实的比例,而学习问题中我们的目的是用样本内误差in sample error估计样本外误差out sample error。
对于某个固定的h假设,我们可以将样本内外误差做如下定义:
Eout(h)=εx→P[h(x)≠f(x)]E_{out}(h)=\varepsilon_{x\rightarrow P}[h(x)\ne f(x)]Eout(h)=εx→P[h(x)=f(x)]
Ein(h)=1N∑n=1N[h(xn)≠yn]E_{in}(h)=\frac{1}{N}\sum_{n=1}^N[h(x_n)\ne y_n]Ein(h)=N1n=1∑N[h(xn)=yn]
其中EoutE_{out}Eout表示out-of-sample Error,整个P中犯错误的概率,样本外误差,期望损失;EinE_{in}Ein表示in-sample Error,在样本空间N中犯错误的概率,样本内误差。
现在,我们就可以使用EoutE_{out}Eout和EinE_{in}Ein重写霍夫丁不等式:
P[∣Ein(h)−Eout(h)∣>ϵ]≤2exp(−2ϵ2N)(2)P[|E_{in}(h)-E_{out}(h)| > \epsilon]\le 2 exp(-2\epsilon^2N) \tag 2P[∣Ein(h)−Eout(h)∣>ϵ]≤2exp(−2ϵ2N)(2)
同样,在使用样本求出来的EinE_{in}Ein,在样本数量N足够大的情况下,也能近似表示EoutE_{out}Eout,前提是都是针对该固定的h假设。
所以在手中拿着fixed的假设h的时候,如果Ein(h)E_{in}(h)Ein(h)很小的话,根据公式(2)也可以PAC(probably approximately correct)的说明Eout(h)E_{out}(h)Eout(h)也很小。也就说明,这时候的h和f很接近。
但是,截止目前为止,我们所有推论仅仅用于验证h是否是一个好的假设。至于固定的这个hhh,我们没办法保证他一定会生成很小的Ein(h)E_{in}(h)Ein(h)
三、在假说集合中挑选h
在上一节的基础上做拓展。我们一个假说,对应一个bin,那么有很多假说时候,就表示我们有很多bin。很容易做出推断,判断某个假说是否为好的假说,就是在看Ein(hi)E_{in}(h_i)Ein(hi)是否足够小。
真的是这样吗?
如上图所示,在假设hMh_MhM下,我们get到全为绿色的球,说明使用该假说的话,能够达到100%的准确率。但是从上帝视角来看,该EinE_{in}Ein和EoutE_{out}Eout还差很多。
接下来,我们来量化分析下,在多种h假设中选取最佳h的情境,对应的数学模型。
首先,定义坏的sample。
如果这份样本使得EinE_{in}Ein和EoutE_{out}Eout相差很多,我们将这份sample称为 BAD sample。
霍夫丁不等式告诉我们,对于某个fixed h,出现BAD sample的概率是有限的。如下图所示:
但是,当整个学习过程中存在选择的时候,我们往往会选择对应EinE_{in}Ein小的h,这其中就有了偏见,不再公平。
用铜板举例子:
用铜板丢正反面,一次试验(一个固定的h)的时候,五次都为正面的概率为1/32, 如果重复150次试验(150个h),那么其中出现五次正面的概率高达99%。如果我们在其中挑选最好的那个h,基本拿到5次正面的那个h的概率就是99%以上。
我们来看在很多假设h的时候,如何定义bad sample
只要存在h使得该sample属于bad sample,我们就将其定义为bad sample
那么在算法可以自由在h中做挑选的时候,选中的概率bad sample的概率计算方法如下:
综上,如果∣H∣=M|H|=M∣H∣=M,其中M有限(H假设空间的h个数有限),N足够大,那么我们总能找到h,使得Ein(h)E_{in}(h)Ein(h)最接近0,同样对应Eout(h)E_{out}(h)Eout(h)也最接近0
这说明机器学习在一定范围内是可行的,我们的确能够学到一些东西,使得算法拥有对应的泛化能力。
四、总结
上图中黑色实线流程,与之前机器学习流程没有差别。
虚线部分,就是本章的重点,左侧指向training examples表示产生样本的方式。右侧的x表明,用于验证算法g的数据。
同样说明,用于测试和用于训练的数据,都是来源于同一个distribution。
最后,本节面向的对象是假说集hypothesis set H中容量有限的(finited M),如果M无限多的情况怎么办(LPA中无限条的线),我们会在接下来章节重点研究解决。