PAC学习相关理论的一个重要总结:同等条件下,模型越复杂泛化误差越大。同一模型在样本满足一定条件的情况下,其数量越大,模型泛化误差越小,因此还可以说模型越复杂越吃样本。本文旨在让大家快速了解这句话的含义。您只需要提前了解假设空间、泛化误差、经验误差的概念(不明白的百度20分钟)及任何一本概率论教材前两章内容就能看懂这篇文章。
为什么要学习PAC学习理论?
此理论可以帮助我们更深入的了解机器学习的学习机制。
已经入门或者从事过一段时间机器学习相关工作的你有没有想过为什么在训练样本上学习了一个假设(函数?模型?下文统一叫假设)就能保证这个假设在训练样本之外的数据上有效?看完这篇文章你就会明白有效性是有严谨的理论保证的。
几千条样本数据就敢用CNN/RNN?你心也够大的。如果你非要这么做,老司机会语重心长的教育你:“数据太少,会导致过拟合”。看完这篇文章就会明白为什么了。
如果看完这篇文章后你能回答这两问题,那么恭喜你,你已经对PAC学习理论有了大致的了解了。
什么是PAC学习理论?
先说一下机器学习。机器学习有两个元素:模型与数据。其中模型又包含两部分:优化算法与假设空间。所谓机器学习就是用优化算法从假设空间中选择一个假设,使此假设能符合给定的数据描述。因此优化算法通俗的讲就是假设选择算法。
而PAC学习理论不关心假设选择算法,他关心的是能否从假设空间
中学习一个好的假设
h
。看到能否二字了没?此理论不关心怎样在假设空间中寻找好的假设,只关心能不能找得到。现在我们在来看一下什么叫“好假设”?只要满足两个条件(PAC辨识条件)即可
-
近似正确:泛化误差 E(h) 足够小
E(h) 越小越好,最好泛化误差能能于0,但一般是不可能的。那我们就把 E(h) 限定在一个很小的数 ϵ 之内,即只要假设 h 满足 E(h)≤ϵ ,我们就认为 h 是正确的。
-
可能正确
不指望选择的假设 h 百分之百是近似正确的(按上段所述,即 E(h)≤ϵ ),只要很可能是近似正确的就可以,即我们给定一个值 δ ,假设 h 满足 P(h近似正确)≥1−δ 。
综上两点,就得到了PAC(可能近似正确,probably approximate correct)可学习的定义。简单的讲就是模型在短时间内利用少量的(多项式级别)样本能够找到一个假设 h′ ,使其满足 P(E(h)≤ϵ)≥1−δ0<ϵ,δ<1 。
什么条件能满足PAC可学习?
先介绍下Hoeffding不等式
Hoeffding不等式:给定m个取值 [0,1] 之间的独立随机变量 x1,x2,…,xn ,对任意 ϵ>0 有如下等式成立:
P(|1m∑i=1mxi−1m∑i=1mE(xi)|≥ϵ)≤2e−2mϵ2
由泛化误差
E(h)
与经验误差
Ê (h)
的定义易知
E(Ê (h))=E(h)
,因此可推出公式(1):
P(|E(h)−Ê (h)|≥ϵ)≤2e−2mϵ2公式(1)
根据不等式(1)可推出公式(2):
证明过程如下(看不懂也没关系,不会影响你对理论的理解,直觉比证明过程更重要):
P(∀h∈:|E(h)−Ê (h)|≤ϵ)=1−P(∃h∈:|E(h)−Ê (h)|≥ϵ)=1−P((|E(h1)−Ê (h1)|≥ϵ)∨(|E(h2)−Ê (h2)|≥ϵ)∨⋯∨(|E(h||)−Ê (h||)|≥ϵ))≥1−∑i=1||P(|E(hi)−Ê (hi)|≥ϵ)≥1−2||e−2mϵ2P(∀h∈:|E(h)−Ê (h)|≤ϵ)=1−P(∃h∈:|E(h)−Ê (h)|≥ϵ)=1−P((|E(h1)−Ê (h1)|≥ϵ)∨(|E(h2)−Ê (h2)|≥ϵ)∨⋯∨(|E(h||)−Ê (h||)|≥ϵ))≥1−∑i=1||P(|E(hi)−Ê (hi)|≥ϵ)≥1−2||e−2mϵ2
公式(2)说明了什么?说明了对于任意
ϵ
,只要样本数量
m
足够大,
|E(h)−Ê (h)|≤ϵ
发生的可能性就非常大,此时我们可以用经验误差近似泛化误差。回到一开始我们提出的那两个问题:
1. 为什么在训练样本上学习得到的假设会在真实样本上有效?公式(2)很好的说明了这一问题。只要样本数量
m
足够大或者假设空间的大小
||
足够小,公式(2)就能保证学到的假设
h′
的泛化误差
E(h′)
与经验误差
Ê (h′)
足够接近。
h′
在训练样本上的表现与在真实样本上一致。
2. 为什么少量样本能用CNN/RNN等复杂模型会导致过拟合?还是看公式(2)。样本数量m太小的话
|E(h′)−Ê (h′)|≤ϵ
发生的可能性变小。即学到的
h′
在训练样本上的表现与在真实样本上不一致,这是过拟合直接的表现形式。
对以上两点的解释没有考虑 || 为无穷大情况,但不影响大家理解。实际上如果 || 为无穷大,下一节的VC维照样可以给出类似解释。