PAC learning

引自知乎,兴致勃勃地看了一会,太监了。。。
引自Leslie Valiant

说实话,网上很多关于PAC看完还是一头雾水,这篇文章主要是对英文的翻译和一些自己的理解

引言

PAC学习是莱斯利·瓦利安特(Leslie Valiant)于1984年发明的,自此诞生了计算机科学的一个新的领域——计算学习理论,文中提到可以去看一看这本书《An Introduction to Computational Learning Theory.》

Learning intervals

举个栗子,两个玩家,玩家1给出一个区间 [ a , b ] [a,b] [a,b],玩家2给出一个数字 x x x。当 a < x < b a<x<b a<x<b时,玩家1给出1,反正0。

接下来,玩家2不断的给出 x x x,获得 1 / 0 1/0 1/0来确定 [ a ^ , b ^ ] [\hat{a},\hat{b}] [a^,b^]的值。当玩家2猜测的次数很少(finite,有限)时,玩家2不可能完全猜出 a , b a,b a,b的值,但是如果(infinte,无限)时,玩家2 a ^ , b ^ \hat{a},\hat{b} a^,b^就很小很小,那么我们就可以说玩家2“学习”了玩家1的 a , b a,b a,b,这个区间问题可以被成为PAC-learnable

Distributions and Hypotheses

首先我们生成一些随机数集合 X X X,集合可以是有限的,也可以是无限的, X X X服从固定但是任意且随机的分布 D D D。严格的说,这些样本都是服从iid的。对于玩家1来说,他应该如何的生成随机数,从而让玩家2的算法陷入毁灭。

因此,玩家1被简化为 X X X上的分布 D D D。既然我们说过,无论D是多少,玩家2的算法都能很好地处理高概率,那么定义就变成了这样:

如果有一个算法 A A A使得其能够赢得 X X X D D D上分布的游戏,那么 A A A是PAC-learnable的。

现在我们开始讨论,“intervals”如何适用于通用的concept。因为如果我们将要讨论的是通用的学习方法,我们不会总是用“intervals”来做决定,为此我们让玩家1通过函数 c c c来将 X X X中的点分为 1 / 0 1/0 1/0。我们将其成为concept或者target,而玩家2要去学习。也就是说,玩家2通过自己的函数 h h h来标记 X X X中的点,然后将其与 c c c进行比较,我们将 h h h称为hypothesis(hence the use of the letter h)。

我们通过下面的方法来比较他们:

err c , D ( h ) = P D ( h ( x ) ≠ c ( x ) ) \text{err}_{c,D}(h)=P_D(h(x)≠c(x)) errc,D(h)=PD(h(x)=c(x))

假设 h h h关于函数 c c c以及分布 D D D的误差,是通过 D D D得到的 h ( x ) h(x) h(x) c ( x ) c(x) c(x)差异的概率。有些人可能将“差异”部分写为两个函数的对称差异,然后它就变成了一个概率密度。但是作者表示不喜欢这么表达。

现在对于一个PAC-learning的问题,我们可以表达为:

如果有一个算法 A A A,面对任意的分布 D D D和函数 c c c,能够以高概率描述出独立抽取样本时,仅产生较小的误差,那么这个方法是PAC-learnable的。

但是在定义中仍然存在一些模糊的界限,(比如:一些、小、高),也就是说存在太多不确定的概念了。即使对于有限集 2 n { 0 , 1 } 2^n\{0,1\} 2n{0,1},一组在 n n n个元素上的值函数,如果我们希望能够在多项式时间内运行,只能表达其中的一小部分。回到interval的游戏中,如果玩家1选择的concept是任意的,期望玩家2能够获得一个合理的 h h h是不合理的(无论是不是使用了interval)。作为数学家的我正在使用不可测量的集合来描绘一些疯狂的规则,但是只要说一句就足够了:您可能认为您知道有关实数的所有知识,但您不知道。

所以我们需要归纳出这些concept的可能性,以及学习者的表达能力。这就是concept class的作用。

Concept Classes

一个关于 X X X的concept class C C C是一个函数族 X → { 0 , 1 } X\rightarrow\{0,1\} X{0,1}

不,好吧,还有更多的事情要讲,但现在只是术语的转变。现在我们可以定义由区间选择引起的一类标记函数。我们可以取区间的所有特征函数的集合 χ [ a , b ] ( x ) = 1 _{\chi[a,b]}(x)=1 χ[a,b](x)=1,其中 a ≤ x ≤ b a≤x≤b axb,其他为 0 0 0。现在concept class成为了我们算法中唯一的焦点。也就是说,算法通过concept class的知识来表达假设,因此将工作定义为:

如果有一种算法 A A A,对于任意的样本的分布 D D D和任意的concept c ∈ C c\in C cC,会高概率的以较小的误差的假设 h ∈ C h\in C hC表达,那么concept class C C C就是PAC-learnable。

作为未来文章的一个简短的前奏:我们将能够证明,如果 C C C足够简单(想想“低维”),那么任何做得合理的算法都能够学习 C C C。但那是以后的事。现在我们来润色这个定义的其余部分。

Probably Approximately Correct Learning

我们并不想用游戏来定义,所以是时候将玩家从脑海中删除了。我们真正关心的是是否有一种算法能在给定随机数据时产生好的假设。但我们必须强化“给予”过程,以及对算法施加的具体限制。
这听起来令人生畏,但就计算复杂度而言,选择是相当标准的。我们希望算法能够决定它需要多少数据,而不是像在实践中那样将样本作为一个大数据集。为此,我们向它提供一个查询函数,当它被访问时,它会在单位时间内吐出一个样本。然后,我们感兴趣的是通过合理数量的查询函数调用来学习这个concept。
现在我们可以在我们的工作定义中去掉“一些”、“小”和“高”等词。既然我们想要误差尽可能的小,我们将引入一个参数 0 < ε < 1 / 2 0<\varepsilon<1/2 0ε<1/2来表达期望的误差范围。也就是说我们要找到一个假设 h h h以高概率满足 err c , D ( h ) ≤ ε \text{err}_{c,D}(h)≤\varepsilon errc,D(h)ε
随着 ε \varepsilon ε越来越小(正如我们期望那样),我们还希望算法可以在允许的时间下运行,所以我们要限制算法的时间和空间多项式在 1 / ε 1/\varepsilon 1/ε内。

我们还需要另一个参数来描述“高概率”这个内容,所以我们引用 0 < δ < 1 / 2 0<\delta<1/2 0<δ<1/2来表示允许的算法具有较高误差的一小部分。所以我们的目标是至少 1 − δ 1-\delta 1δ的概率下假设产生的误差小于 ε \varepsilon ε,即:
P D ( err c , D ( h ) ≤ ε ) > 1 − δ P_D(\text{err}_{c,D}(h)≤\varepsilon)>1-\delta PD(errc,D(h)ε)>1δ

其中, P D P_D PD指的是调用查询函数(以及算法所做的任何其他随机选择)时获得样本的概率。因此,“高概率”是指不太可能发生的事件,即你得到的数据不能代表产生它的分布。这不是选择分布的概率,无论D是多少,学习的算法都必须学习。

随着我们对 δ \delta δ的限制越来越多,我们希望算法有更多的运行时间,所以我们要求算法在a,b都是多项式时间的。

多项式时间代表时间/空间复杂度在 O ( 1 ) , O ( n ) , O ( n 2 ) , O ( n 3 ) O(1),O(n),O(n^2),O(n^3) O(1),O(n),O(n2),O(n3)内。

现在我们有了完整定义的所有部分。

定义:
设一个集合 X X X,以及一个关于 X X X的concept class C C C。当一个算法 A ( ε , δ ) A(\varepsilon,\delta) A(ε,δ)能够去表达所有 C C C,比如 c ∈ C c\in C cC以及关于 X X X的分布 D D D,并且保证时间复杂度在 O ( poly ( 1 ε , 1 δ ) ) O(\text{poly}(\frac{1}{\varepsilon},\frac{1}{\delta})) O(poly(ε1,δ1)) 0 < ε , δ < 1 2 0<\varepsilon,\delta<\frac{1}{2} 0<ε,δ<21 A A A产生假设 h h h的误差最大不超过 ε \varepsilon ε的概率小于 1 − δ 1-\delta 1δ,即:

P D ( P x ∼ D ( h ( x ) ≠ c ( x ) ) ≤ ε ) ≥ 1 − δ P_D(P_{x\sim D}(h(x)≠c(x))≤\varepsilon)≥1-\delta PD(PxD(h(x)=c(x))ε)1δ

其中 P D P_D PD表示了从 D D D中抽取样本产生 h h h的概率,同样,也可以表达为

P D ( err c , D ( h ) ≤ ε ) ≥ 1 − δ P_D(\text{err}_{c,D}(h)≤\varepsilon)≥1-\delta PD(errc,D(h)ε)1δ

Intervals are PAC-Learnable

既然我们有了这个定义,我们就可以回到实际的学习间隔问题上来。我们的concept类是所有区间特征函数的集合(对于默认情况,我们将添加空的集合)。我们提出的学习这些区间的算法非常简单:只需抓取一堆样本点,取最大和最小的正样本,并将这些作为假设区间的终点。

现在我们来证明这个算法可以学习任意分布在实数上的区间。此证明将采用以下形式:

  1. 假设选择任意数量的样本数 m m m
  2. 得出在 m m m下的概率关于我们产生的假设的总误差 > ε >\varepsilon >ε
  3. 选择 m m m足够大,使该事件(未能达到低误差)以小概率发生。

因此,对于任意分布 D D D假设我们有 m m m个样本,然后我们取最小值 I = [ a 1 , b 1 ] I=[a_1,b_1] I=[a1,b1],目标concept J = [ a 0 , b 0 ] J=[a_0,b_0] J=[a0,b0]。我们注意到一件事情,我们的假设包含在真实的区间内,即 I ⊂ J I\subset J IJ。因为样本永远不会说谎,所以最大的样本一定小于最大的正样本,反之亦然。也就是说 a 0 < a 1 < b 1 < b 0 a_0<a_1<b_1<b_0 a0<a1<b1<b0。所以假设产生错误的概率就是 D D D A = [ a 0 , a 1 ] A=[a_0,a_1] A=[a0,a1] B = [ b 1 , b 0 ] B=[b_1,b_0] B=[b1,b0]两个区间内产生正例子的概率。

这就是上面第二个要点的全部设置。总误差不超过 A A A B B B中出现一个正样本的概率之和。

err J , D ≤ P x ∼ D ( x ∈ A ) + P x ∼ D ( x ∈ B ) \text{err}_{J,D}≤P_{x\sim D}(x\in A)+P_{x\sim D}(x\in B) errJ,DPxD(xA)+PxD(xB)

在这里插入图片描述

图中两个绿色的间隔是可能发生错误的区域。如果我们能保证每个绿色部分都有高概率小于 ε / 2 \varepsilon/2 ε/2,那么我们就完成了。让我们来看看 A A A,这同样也适用于B。定义 A ′ A' A是一个大很大区间 [ a 0 , y ] [a_0,y] [a0,y],在这个区间内, A A A D D D中得到一个正例的概率刚好为 ε / 2 \varepsilon/2 ε/2,如图。

在这里插入图片描述

粉色区域 A ′ A' A的总概率权重为 ε / 2 \varepsilon/2 ε/2,如果绿色区域A更大,我们就会冒很大的错误风险,无法进行PAC-learnable。

如果 A ⊂ A ′ A\subset A' AA,那么情况就很好了,这意味着我们有可能从 A A A中至少以 ε / 2 \varepsilon/2 ε/2的概率取得一个正例。所以我们不希 A ′ ⊂ A A'\subset A AA。但这只有在我们在算法运行期间从未看到 A ′ A' A中的点作为样本的情况下才会发生。当我们有 m m m个样本时,我们可以用 m m m表示从未看到 A ′ A' A样本的概率。

一个样本不在 A ′ A' A的概率仅为 1 − ε / 2 1-\varepsilon/2 1ε/2(根据定义)。回顾一下我们的基本概率论,两次平局是独立的事件,所以 A ′ A' A错失 m m m次的概率等于每一次未命中的概率的乘积。也就是说,我们选择的贡献误差大于 ε / 2 \varepsilon/2 ε/2的概率最大为

P D ( A ′ ⊂ A ) ≤ ( 1 − ε / 2 ) m P_D(A'\subset A)≤(1-\varepsilon/2)^m PD(AA)(1ε/2)m

关于 B B B与上文中内容一样,所以通过并集,在 A A A B B B中发生错误 > ε / 2 >\varepsilon/2 >ε/2的概率,是两者的和。

P D ( err J , D ( I ) > ε ) ≤ 2 ( 1 − ε / 2 ) m P_D(\text{err}_{J,D}(I)>\varepsilon)≤2(1-\varepsilon/2)^m PD(errJ,D(I)>ε)2(1ε/2)m

接下来是第三点,我们希望误差很大的概率小于 δ \delta δ,以便于误差小于 1 − δ 1-\delta 1δ,所以:

2 ( 1 − ε / 2 ) m ≤ δ 2(1-\varepsilon/2)^m≤\delta 2(1ε/2)mδ

接下来我们去解决 m m m,利用 ( 1 − x ) ≤ e − x (1-x)≤e^{-x} (1x)ex,所以:

2 e ε m / 2 ≤ δ 2e^{\varepsilon m/2}≤\delta 2eεm/2δ

则:

m ≥ ( 2 / ε log ⁡ ( 2 / δ ) ) m≥(2/\varepsilon\log(2/\delta)) m(2/εlog(2/δ))

现在,我们涵盖了所有基础:我们的算法只是为其输入 ε , δ \varepsilon,\delta ε,δ,样本数 m m m,查询多个样本,并计算包含正例的最匹配区间。由于需要的样本数是关于 1 ε , 1 δ \frac{1}{\varepsilon},\frac{1}{\delta} ε1,δ1的多项式的(我们的算法不会做任何复杂的事情),所以我们遵守了时间和空间的限制。最后,我们证明了我们的算法对从D中提取的新点进行错误分类的概率最大为 δ \delta δ。所以我们证明了定理:

定理:实数轴上的区间是PAC-learnable的。

其实PAC到这里,已经差不多知道干了什么了,这里给出了一个proof
引自知乎

L D , f ( h ) = Pr ⁡ x ∼ D [ h ( x ) ≠ f ( x ) ] L_{D,f}(h)=\Pr_{x\sim D}[h(x)≠f(x)] LD,f(h)=xDPr[h(x)=f(x)]

其中 D D D代表样本的分布, f f f代表正确的 f : X → Y f:X\rightarrow Y f:XY y i = f ( x i ) y_i=f(x_i) yi=f(xi) h h h代表假设,也就是分类器。

L S ( h ) ≡ 1 m ∑ i = 1 m 1 { h ( x i ) ≠ y i } L_S(h)\equiv\frac{1}{m}\sum_{i=1}^m1\{h(x_i)≠y_i\} LS(h)m1i=1m1{h(xi)=yi}

∃ h ∗ ∈ H , L ( D , f ) ( h ∗ ) = 0 \exist h^*\in H,L_{(D,f)}(h^*)=0 hH,L(D,f)(h)=0,那么训练集 S S S L S ( h ∗ ) = 0 L_S(h^*)=0 LS(h)=0,称为ERM(Empirical Risk Minimization)。

L D , f ( h S ) ≤ ε L_{D,f}(h_S)≤\varepsilon LD,f(hS)ε是成功的,反之则不是,那么失败概率的上界
Pr ⁡ ( L D , f ( h S ) > ε ) \Pr(L_{D,f}(h_S)>\varepsilon) Pr(LD,f(hS)>ε)

但是假设 L ( D , f ) ( h β ) > ε L_(D,f)(h_\beta)>\varepsilon L(D,f)(hβ)>ε,并且 L S ( h β ) = 0 L_S(h_\beta)=0 LS(hβ)=0,那么这是欺骗了ERM。

如果 A ⇒ B A\Rightarrow B AB,那么 Pr ⁡ ( A ) ≤ Pr ⁡ ( B ) \Pr(A)≤\Pr(B) Pr(A)Pr(B)

Pr ⁡ ( L D , f ( h S ) > ε ) ≤ Pr ⁡ ( ⋃ h ∈ H B L S ( h ) = 0 ) ≤ ∑ h ∈ H B Pr ⁡ ( L S ( h ) = 0 ) ( 1 ) \Pr(L_{D,f}(h_S)>\varepsilon)≤\Pr(\bigcup_{h\in H_B}L_S(h)=0)≤\sum_{h\in H_B}\Pr(L_S(h)=0)\qquad(1) Pr(LD,f(hS)>ε)Pr(hHBLS(h)=0)hHBPr(LS(h)=0)(1)
其中第二个不等号是来自于布尔不等式(Boole’s Inequality)
Pr ⁡ ( A ∪ B ) ≤ Pr ⁡ ( A ) + Pr ⁡ ( B ) \Pr(A\cup B)≤\Pr(A)+\Pr(B) Pr(AB)Pr(A)+Pr(B)

现在只需要针对一些 h ∈ H B h\in H_B hHB,求出这些 H B H_B HB在训练集上不犯错

Pr ⁡ ( L S ( h ) ) = Pr ⁡ ( h ( x i ) = y i , i = 1 , ⋯   , m ) = ∏ i = 1 m Pr ⁡ ( h ( x i ) = y i ) ≤ ( 1 − ε ) m ≤ e − m ε ( 2 ) \Pr(L_S(h))=\Pr(h(x_i)=y_i,i=1,\cdots,m)=\prod_{i=1}^m\Pr(h(x_i)=y_i)≤(1-\varepsilon)^m≤e^{-m\varepsilon} \qquad(2) Pr(LS(h))=Pr(h(xi)=yi,i=1,,m)=i=1mPr(h(xi)=yi)(1ε)memε(2)

其中第一个不等号是来源于 H B H_B HB的正确率小于 1 − ε 1-\varepsilon 1ε,第二个是来源于 1 − ε ≤ e − ε 1-\varepsilon≤e^{-\varepsilon} 1εeε

结合(1)(2),可以得到

Pr ⁡ ( L D , f ( h S ) > ε ) ≤ ∣ H B ∣ e − ε m ≤ ∣ H ∣ e − ε m \Pr(L_{D,f}(h_S)>\varepsilon)≤|H_B|e^{-\varepsilon m}≤|H|e^{-\varepsilon m} Pr(LD,f(hS)>ε)HBeεmHeεm

由于 H H H是无限的,所以我们用 ∣ H ∣ |H| H来代替这个无限的集合,以表达一个量。


然后,我们考虑一下机器学习的理论性,引自知乎的一个回答,Alexnet为什么有 7 层 feature layer(可能记错数字了),不是8层,不是6层?仅仅是因为是不同架构试了一下,7层效果不错,完全没有理论上的 motivation。超参数为什么是这么定的?为什么卷积层之间要放 dropout layer?完全就是,“过去的人弄了,效果不错”,或者“我试了一下,效果不错”。好像是 David Duvenaud 说的,现在的神经网络设计,就想是物理学出现前的造桥。有人造桥,放了栏杆,效果不错,发篇论文;有人加了几个柱子,效果不错,再发一篇。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值