文章内容主要是笔记
可学性
基本概念
拿到一个ai相关的项目我们第一步应该是干嘛?
答:判断数据是否能够建立一个合理的模型,或者说判断建立的模型是否是可学的。
我们现在拿二分类任务做例子,说一下我们研究需要知道的信息:
-
假设我们用的样本集是:D=(x1,y1),(x2,y2).....(xn,yn)其中xi∈X,yi∈Y={−1,+1}。(X与Y分别代表全部样本空间D中的成分,而D只是D的一部分。
-
假设D是X×Y上的联合分布,DX是样本空间X上的边缘分布。D中所有的样本都是独立同分布的从D中采集来的。
再稍微讲一下概率的分布的问题:
联合分布函数:也就是F(x,y)=P(X<=x,Y<=y)。
边缘分布:就是算在x固定的条件下,把y的影响去掉,简而言之就是去掉y的影响,只看x的概率情况例如:P(x=1,y=1)=1/5,P(x=2,y=1)=2/5,那么P(y=1) = 3/5。
条件分布:p(x|Y=y),就是把Y=y的不同部分抽出来,对应不同的x进行归一化,例如:P(x=1,y=1)=1/5,P(x=2,y=1)=2/5,那么P(y=1) = 3/5,根据公式p(x = 1|Y=1) = 1/3,p(x = 2|Y=1) = 2/3。
泛化误差与经验误差
设h为从X到Y的映射(就比如y =h(x) = ax,就是类似这种映射) ,下面给出泛化误差跟经验误差的定义:
泛化误差:
E(h;D)=P(x,y) D(h(x)=y)=E(x,y) D(∥(h(x)=y))
ps:(∥(判断的内容)是一个判断函数,如果符合括号内的就为1,不符合就为0)
理解:在任务全部可能的结果上h(x)通过x算出来的结果与真实结果不同的概率。可以理解为测试集上的误差。
测试集选取的数据是在全集D 中获取的数据
经验误差:
E(h;D)=m1i=1∑m∥(h(x)=y)
理解:在样本集D上通过h(x)算出y跟真实结果不同的概率。
也就是在训练集D上求的误差。
误差参数
我们把E(h;D),与E(h;D)简记为E(h)与E(h)。
设ϵ为E(h)的上界,那么ϵ≥E(h)。
我们训练模型一般会预先设定一个ϵ,最后求出的经验误差必须小于等于ϵ。
假设空间是否可分
如果h在D上的经验误差为0,则称h与D一致,反正则不一致。
对于任意两个X到Y的映射h1,h2我们可以通过不合来测量它们之间的差别。
dis(h1,h2)=Px∼Dx(h1(x)=h2(x))
令c表示概念,c就是X到Y的映射,对所有D中的数据c(x) = y一直成立,则称c为目标概念,我们把想要得到的所有的目标概念的集合称为概念类,用C表示。
给定学习算法ξ,它所考虑的所有可能概念的集合称为假设空间,用符号H表示,通常情况下H与C是不同的,算法会把自认为可能的目标概念集中起来组成H,对于任意h∈H。
我们不能确定h是否是目标概念,所有称其为假设。显然假设也是X到Y的映射,但是不能保证所有D中的数据c(x) = y一直成立。
如果目标概念c∈H,那么则称以c为目标的这个学习问题对假设空间是可分的,如果c∈/H那么H中就不存在任何假设能把所有的样本完全正确的分开,也就是说没有一个正确的h能把D中所有的X到Y映射表示出来。
概率近似正确(PAC)理论
在现实中的项目里,有很多问题使得我们根本得不到目标概念c,比如:
- 样本数量有限
- 经常有一些等效的样本
- 样本获取的正确性不能保证
那给定我们一个训练集D,我们希望基于学习的算法ξ学到的模型所对应的h尽可能接近目标概念c。所以我们设出一个置信度参数来表示模型必须有多大的可信度才能符合我们的要求,置信度参数设为δ。
PCA只关心能否用现有数据训练出一个好的模型,而不在乎模型是什么
PAC辨识:对0<ϵ,δ<1,所有c∈C和分布D,若存在学习算法ξ,其输出的假设h∈H满足:
P(E(h)≤ϵ)≥1−δ
就称学习算法ξ能从假设空间H中PAC辨识概念类C。
公式的意思就是h对应的经验误差小于等于咱们预先设定的误差参数ϵ的概率,小于1−δ。
PAC可学
PAC可学的定义:令m表示从分布D独立同分布采样得到的样本数目,0<ϵ,δ<1,所有分布D,若存在学习算法ξ和多项式函数poly(,,,)使得对于任何poly(1/ϵ,1/δ,size(x),size(c))≤m,ξ 能从假设空间 H中PAC辨识概念类C,则称概念类C对假设空间H而言是PAC可学的。
对于计算机算法来说,我们都得考虑下时间复杂度,就得到下面的算法:
PAC学习算法: 若学习算法ξ使概念类C为PAC可学,如果ξ运行的时间也是多项式函数poly(1/ϵ,1/δ,size(x),size(c)),则称概念类C是高效PAC可学的,
称ξ为概念类C的PAC学习算法。
假定学习算法ξ处理每个样本的时间为常数,则ξ的时间复杂度等于样本复杂度,那么我们对时间复杂度的关系可以转化为对样本复杂度的关心。
样本复杂度:满足PAC学习算法ξ的poly(1/ϵ,1/δ,size(x),size(c))≤m中最小的m称为学习算法ξ的样本复杂度。
PAC抽象刻画了一个判断机器学习能力的框架,基于这个问题,我们可以去分析在某些条件下,模型是否能学习或者说学的更好。
如果假设空间H包含学习算法ξ的所有可能输出的假设,若在PAC学习理论中假设空间和概念类完全相同,即H=C,这称为恰PAC可学,但是吧在现实生活中,我们根本不知道C到底是什么样子,所有我们研究的大多数是假设空间和概念类不同的时候的问题,即H=C。
不可知PAC可学
因为现实生活中训练的模型很难达到根本不出错的状态,对于任何h∈H,E=0,也就是说我们训练的模型或多或少都会出现错误。
下几个是Hodeffding不等式推出的引理:
若训练集D包含m个从分布D上独立同分布采样而得到的样本,对任意h∈H有:
引理一、P(E(h)−E(h)≥ϵ)≤e−2mϵ2
引理二、P(E(h)−E(h)≥ϵ)≤e−2mϵ2
引理三、P(∣E(h)−E(h)∣≥ϵ)≤2e−2mϵ2
若训练集D包含m个从分布D上独立同分布采样而得到的样本,对任意h∈H,以至少1−δ的概率成立以下定理:
E^(h)−2m1lnδ2<E(h)<E^(h)+2m1lnδ2
证明上面的定理:
不妨令δ=2e−2mϵ2,也就是ϵ=2m1lnδ2,把上面的式子带入引理三可以得到:
P(∣E(h)−E(h)∣≥2m1lnδ2)≤δ
即至少有1−δ概率有:
∣E(h)−E(h)∣≤2m1lnδ2
证明完毕.
通过上面的定理我们可以看出当m接近于无穷的时候,h的经验误差与泛化误差近似。显然我们可以得到一个结论,c∈/H的时候,学习算法ξ无法让E(h)=0,但是我们可以去找一个泛化误差最小的假设,也就是找:argminh∈HE(h),于是以此为目标把PAC学习推广到c∈/H的情况,这就是不可知学习。
不可知PAC可学:令m表示从分布D独立同部分采样得到的样本数目,对0<ϵ,δ<1,所有分布D,若存在学习算法ξ和多项式函数poly(,,,)使得对于任何poly(1/ϵ,1/δ,size(x),size(c))≤m,ξ 能从假设空间H中输出满足下面式子的假设h:
P(E(h)−h′∈HminE(h′)≤ϵ)≥1−δ
满足上面式子就称假设空间H是不可知PAC可学的。
与PAC可学类似,如果ξ运行的时间也是多项式函数poly(1/ϵ,1/δ,size(x),size(c)),则称概念类H是高效不可知PAC可学的,称ξ为假设空间H的不可知PAC学习算法。
假设空间的复杂度
PAC学习中一个关键因素就是假设空间H的复杂度,一般而言H越大,其中包含任意目标概念的可能性就越大,但是从中找到某个具体的目标概念的难度就越大,∣H∣有限的时候,我们称H为有限假设空间,反之为无限假设空间。有限假设空间可以用概念个数去描述,无限假设空间则不行。我们就需要学习复杂度的知识。
PAC可学考虑的是算法ξ输出假设的泛化误差与最优假设的泛化误差的差别,但是由于真实分布D是未知的,通常无法直接激素按,由于经验误差与泛化误差有密切联系,我们可借助经验误差来比较,所有我们需要学习泛化界去考虑经验误差和泛化误差的差别。
复杂度
从之前的学习可以得到结论,PAC可学习性与假设空间H的复杂的成都是密切相关的,H越复杂,寻找目标概念的难度就越大,对于有限的假设空间,可以用H中包含的假设h的数目来描述H的空间复杂度,在可分情况下,可以通过层层筛选的方式从有限的假设空间中寻找到目标概念。然而,对大多数学习问题来说,学习算法ξ考虑的假设空间并非是有限的,因而无法直接使用假设的数目来刻画假设空间的复杂度。
一些基本概念
样本集是:D=(x1,y1),(x2,y2)…(xn,yn)
xi∈X是问题的变量,yi∈Y={−1,+1}
H在D上的限制是从D到{−1,+1}m的一族映射,限制表示为:
H∣D={(h(x1),h(x2)....,h(xm))∣h∈H}
其中h在D上的限制是一个m维向量。
ps:H在D上的限制的意思是,基于D样本集的函数上的数据,必须是D样本集中的;其中h在D上的限制的意思是,基于模型h必须用的D内的样本集必须得是m维的。
那么对于m∈N,用假设空间H的增长函数去表示符合限制的样本数目:
ΠH(m)={x1,....,xm}⊂Xmax∣{(h(x1),h(x2)....,h(xm))∣h∈H}∣
上面ΠH(m)函数表示假设空间H对m个样本所能赋予标记的最大可能的结果数,这个值越大,H的表示能力就越强,代表H对学习任务的适应性越强,这样,增长函数在一定程度上描述了假设空间H的学习能力,反映了假设空间的复杂程度。
假设空间H里的不同的假设(函数),对于相同的x可能求出不同的y,因为假设空间H里的假设(函数)是有限的,所以对m个样本的二分类问题一共有2m种结果。
二分问题把问题分为正负两类,这就是对样本集D的一种对分,如果假设空间H能实现样本集D上的所有对分,即ΠH(m)=2m,这就是D被H打散。
数据分布无关时的复杂度
VC维
假设空间H的VC维是能被H打散的最大样本集的大小(能正确分类的最大样本数量)
公式是:
VC(H)=max{m:ΠH(m)=2m}
VC(H)=d,表示最大有样本大小d的样本能被H打散。
这并不意味着所有样本大小为d的样本集都能被H打散,只是存在大小d的样本能被H打散,我们不知道样本分布的时候依旧可以计算出假设空间H的VC维,VC维的定义与数据分布无关。
若假设空间\mathcal{H}的VC维为d,则对任意m∈N有:
ΠH(m)≤i=0∑d(im)
ps: (im)=Cnk
以上公式可以算出增长函数ΠH(m)的上界。
从而可以继续推出下面定理,若假设空间\mathcal{H}的VC维为d,则对任意整数m≥d有:
ΠH(m)≤(de∗m)d
其中e=2.7.....
Natarajan维
VC维是针对二分类问题,而Natarajan维是针对多分类问题去讨论的,显而易见,其与VC维唯一不同的是Y={0,1,2,3...n},x与y的关系不再是二分类问题了,而是多分类。
多分类问题的增长函数的概念与二分类问题一样:
增长函数:
ΠH(m)={x1,....,xm}⊂Xmax∣{(h(x1),h(x2)....,h(xm))∣h∈H}∣
打散:
对于给定的集合D⊂X,若假设空间\mathcal{H}中存在两个假设f0,f1:D−>mathcalY满足以下两个条件:
- 对于任意x∈D,f0(x)=f1(x)
- 对于任意集合B⊂D存在h∈H使得∀x∈B,h(x)=f0(x)且∀x∈BD,h(x)=f1(x)
就称为集合D能被假设空间H打散。
Natarajan维就是能被H打散的最大样本集的大小,记作Natarajan(H)
若多分类问题假设空间H的Natarajan维为d,类别数为K,则对任意m∈N有:
ΠH(m)≤mdK2d
数据分布相关时的复杂度
VC维对于任意数据集都成立,这使得基于VC维的分布结果具有一定的普适性,但是其的分析结果一般比较松。
Rademacher复杂度
与VC维跟Natarajan维不同的是,Rademacher复杂度考虑了数据的分布相关性,在二分问题上均匀分布的问题,给定数据集D,h∈H的经验误差为:
E^(h)=m1i=0∑mI(h(xi)=yi)=m1i=0∑m21−yih(xi)=21−2m1i=0∑myih(xi)
其中yih(xi)体现了预测值h(xi)与样本真实标记yi之间的一致性。
所以经验误差最小的时候yih(xi)是最大的:
h∈Hargmaxm1i=0∑myih(xi)
现实生活中,样本的标记有时会受到噪声的影响,不再是正确的标记,这时候,经验误差最小的模型说不定还不如其他的模型。
考虑随机噪声的影响,有随机变量σi,其以0.5的概率取值-1,称其为Rademacher随机变量,可以把yih(xi)求最大的公式改为:suph∈Hm1∑i=1mσih(xi) 因为H空间可能是无限的,所以有可能找不到最大值,只能用上确界更科学一些。
对σ={σ1,σ....σn}求期望可得:
Eσ[h∈Hsupm1i=1∑mσih(xi)]
上面的式子跟增长函数有相似的作用,体现了假设空间H在数据集D上的表示能力,取值范围为[0,1],当期望越接近于1的时候,假设空间H的表示能力越强。
之前我们说的H是理论上的假设空间,考虑实际的函数空间F:Z→R令Z={z1,z2...zn},其中zi∈Z,求期望的公式放在实际函数空间中的时候:
R^Z(F)=Eσ[f∈Fsupm1i=1∑mσif(zi)]
上面的Z是一个给定的集合,我们通常更关系Z服从分布D时函数空间的复杂度,因此,对从分布D独立同分布采样得到的大小为m的集合Z求期望可以得到Rademacher复杂度:
函数空间F关于Z在分布D上的Rademacher复杂度为:
Rm(F)=EZ⊂Z:∣Z∣=m[R^Z(F)]
Rademacher复杂度与增长函数也有一定的关系,这里直接给出关系啦:
假设空间F的Rademacher复杂度Rm(H)与增长函数ΠH(m)之间满足:
ΠH(m)≤m2lnΠH(m)
Gaussian复杂度
Rademacher复杂度是讲的σ在[-1,+1]上均匀分布的随机变量,如果换成其他分布,就会得到一些其他复杂度的定义。
Gaussian复杂度就是在标准正态分布N(0,1)下的复杂度,gi服从高斯分布:
G^Z(F)=Eg[f∈Fsupm1i=1∑mgif(zi)]
同理函数空间F关于Z在分布D上的Gaussian复杂度为:
Gm(F)=EZ⊂Z:∣Z∣=m[G^Z(F)]
通过泛化界的学习,可以了解到数据分布相关求复杂度可以得到更紧的泛化误差界。
泛化界
泛化误差上界
ps:会用到前面有限假设空间,无限假设空间,目标概念c在H中可分与不可分的概念。
有限假设空间的可分情形
剔除在训练集D上犯错的目标概念c,如果D很大的话,那么c想符合肯定是越来越难,然而实践中,我们使用的数据只是总体数据的一部分,所以一般能找到不犯错的c的,但是这时候找到的c肯定是特别准确,只要符合PAC可学即可。
当H为可分的有限假设空间,D为从D独立同分布采样得到的大小为m的数据集,学习算法ξ基于D输出与训练集一致的的假设(模型)h∈H,对于ε>0,σ<1,若m≥ε1(ln∣H∣+lnσ1)则有:
P(E(h)≤ε)≥1−σ
即E(h)≤ϵ以至少1-σ的概率成立。
这一定理表明假设空间H是有限可分的,学习算法ξ输出假设的泛化误差依赖于假设空间的大小∣H∣和训练集的大小m,随着训练集中样本数目的逐渐增加,泛化误差的上界逐渐趋近于0,收敛率是O(1/m)。
(看看像不像之前说的ploy(,,,),haha)
有限假设空间的不可分情形
不可分情形中,目标概念不在假设空间中,假设空间中的每个假设都会或多或少地出现分类错误,我们不再奢望找到目标概念的ϵ近似,而是希望找到假设空间中泛化误差最小的ϵ近似,对于学习算法输出的假设
h来说,泛化误差是其在未见数据上的预测能力,无法直接观测得到,但其在训练集上的经验误差是可以直接观测得到的。
令H为有限假设空间,D是从D独立同分布采样得到的大小为m的训练集,大小为m,h∈H,对于0<σ<1有:
P(∣E(h)−E^(h)∣≤2mln∣H∣+ln(σ2))≥1−σ
由上面的公式可得E(h)≤E^(h)+2mln∣H∣+ln(σ2)以至少1-σ的概率成立。由于2mln∣H∣+ln(σ2)=O(1/m)所以在有限不可分的情形下,泛化误差的收敛率为O(1/m)
无限假设空间
有限VC维假设空间的泛化误差界
对于无限假设空间,通过VC维我们可以得到一个看泛化能力的公式:
对于假设空间H,h∈H,m∈N和1>ε>0,当m>=2/ε2时有:
P(E(h)−E^(h)>ε)≤4ΠH(2m)exp(−8mε2)
如果加上假设空间VC维为d的条件可以得到下面的式子:
P(∣E(h)−E^(h)∣≤m8dlnd2em+8ln(σ4))≥1−σ
下面这个定理还表明了泛化误差的收敛率为O(m/dln(m/d))也就是说VC维越大,那么假设空间就越复杂,泛化误差的收敛域就越慢。有限VC维的不可分假设空间比有限不可分假设空间更难收敛。
基于Rademacher复杂度的泛化误差界
对于从独立同分布采样得到的大小为m的训练集Z,函数空间F关于Z的经验Rademacher复杂度,和关于D的Rademacher复杂度分别是R^Z(F)与Rm(F),基于上面两个复杂度那么我们可以求F的泛化误差界。
对于实值函数空间F:Z→[0,1],从分布D独立同分布采样得到的大小为m的训练集Z={z1,z2,...,zm},zi∈Z,f∈F和0<σ<1,以至少1-σ的概率有:
E[f(z)]≤m1i=1∑mf(zi)+2Rm(F)+2mln(1/σ)E[f(z)]≤m1i=1∑mf(zi)+2R^Z(F)+32mln(2/σ)
上面的结论适用于回归问题,如果是分类的问题呢?
对于假设空间H:X∈{-1,+1},独立同分布采样得到大小为m的训练集D,h∈H和0<σ<1,那么至少有1-σ的概率有:
E(h)≤E(h)^+R(H)+2mln(1/σ)E(h)≤E(h)^+R1(H)+32mln(2/σ)
泛化误差下界
基于VC维也可以分析泛化误差下界,这一下界的意义在于指出对于任何学习算法存在某一数据分布,当样本数目有限时,学习算法不能以较大概率输出目标概率的近似,其中的要点是如何找这样一种数据分布。
可分情形
若假设空间H的VC维d>1,对任意m>1和学习算法ξ,存在分布D和目标概念c∈H使得:
P(E(hD,c)>32md−1)≥1001
其中hD为学习算法ξ基于大小为m的训练集D输出的假设。
以上公式说明,对于任意的学习算法ξ,都肯定存在一个”坏“分布D以及一个目标概念c∗,使得ξ输出的假设hD总会以较高概率产生O(d/m)的错误。
不可分情形
对于不可分假设空间的泛化误差下界,主要比较学习算法ξ的泛化误差与贝叶斯最优分类器泛化误差之间的关系。
若假设空间H的VC维d>1,则对任意m>1和学习算法ξ存在分布D使得:
PZ∼Dm(E(hZ)−h∈HinfE(h)>320md)≥641
其中hZ为学习算法ξ基于大小为m的训练集Z输出的假设。
上面定理表明对于任意学习算法ξ,在不可分情况下,必存在一种”坏"的分布Dσ,使得ξ输出的假设hZ的泛化误差以常数概率为O(md)
参考
[1] 周志华 王魏 高尉 张利军 《机器学习理论导引》
[2] Candy_GL的博客 blog.csdn.net/Candy_GL/ar…