机器学习周志华学习笔记-第12章<计算学习理论>
12 计算学习理论
计算学习理论(computational learning theory)是通过“计算”来研究机器学习的理论,简而言之,其目的是分析学习任务的本质,例如:在什么条件下可进行有效的学习,需要多少训练样本能获得较好的精度等,从而为机器学习算法提供理论保证。
首先来谈谈经验误差和泛化误差。假设给定训练集D,其中所有的训练样本都服从一个未知的分布T,且它们都是在总体分布T中独立采样得到,即独立同分布(independent and identically distributed,i.i.d.),在《贝叶斯分类器》中我们已经提到:独立同分布是很多统计学习算法的基础假设,例如最大似然法,贝叶斯分类器,高斯混合聚类等,简单来理解独立同分布:每个样本都是从总体分布中独立采样得到水。
泛化误差指的是学习器在总体上的预测误差,经验误差则是学习器在某个特定数据集D上的预测误差。在实际问题中,往往我们并不能得到总体且数据集D是通过独立同分布采样得到的,因此我们常常使用经验误差作为泛化误差的近似。
12.1 PAC学习
对于机器学习算法,学习器也正是为了寻找合适的映射规则,即如何从条件属性得到目标属性。从样本空间到标记空间存在着很多的映射,我们将每个映射称之为概念(concept),定义:
- 若概念c对任何样本x满足c(x)=y,则称c为目标概念,即最理想的映射,所有的目标概念构成的集合称为“概念类”; 给定学习算法,它所有可能映射/概念的集合称为“假设空间”,其中单个的概念称为“假设”(hypothesis);
- 若一个算法的假设空间包含目标概念,则称该数据集对该算法是可分(separable)的,亦称一致(consistent)的;
- 若一个算法的假设空间不包含目标概念,则称该数据集对该算法是不可分(non-separable)的,或称不一致(non-consistent)的。
举个简单的例子:对于非线性分布的数据集,若使用一个线性分类器,则该线性分类器对应的假设空间就是空间中所有可能的超平面,显然假设空间不包含该数据集的目标概念,所以称数据集对该学习器是不可分的。给定一个数据集D,我们希望模型学得的假设h尽可能地与目标概念一致,这便是概率近似正确(Probably Approximately Correct,简称PAC)的来源,即以较大的概率学得模型满足误差的预设上限。
上述关于PAC的几个定义层层相扣:
定义12.1表达的是对于某种学习算法,如果能以一个置信度学得假设满足泛化误差的预设上限,则称该算法能PAC辨识概念类,即该算法的输出假设已经十分地逼近目标概念。
定义12.2则将样本数量考虑进来,当样本超过一定数量时,学习算法总是能PAC辨识概念类,则称概念类为PAC可学习的。
定义12.3将学习器运行时间也考虑进来,若运行时间为多项式时间,则称PAC学习算法。
12.2 有限假设空间
12.2.1 可分情形
可分或一致的情形指的是:目标概念包含在算法的假设空间中。对于目标概念,在训练集D中的经验误差一定为0,因此首先我们可以想到的是:不断地剔除那些出现预测错误的假设,直到找到经验误差为0的假设即为目标概念。但由于样本集有限,可能会出现多个假设在D上的经验误差都为0,因此问题转化为:需要多大规模的数据集D才能让学习算法以置信度的概率从这些经验误差都为0的假设中找到目标概念的有效近似。
通过上式可以得知:对于可分情形的有限假设空间,目标概念都是PAC可学习的,即当样本数量满足上述条件之后,在与训练集一致的假设中总是可以在1-σ概率下找到目标概念的有效近似。
12.2.2 不可分情形
不可分或不一致的情形指的是:目标概念不存在于假设空间中,这时我们就不能像可分情形时那样从假设空间中寻找目标概念的近似。但当假设空间给定时,必然存一个假设的泛化误差最小,若能找出此假设的有效近似也不失为一个好的目标,这便是不可知学习(agnostic learning)的来源。
这时候便要用到Hoeffding不等式:
对于假设空间中的所有假设,出现泛化误差与经验误差之差大于e的概率和为:
因此,可令不等式的右边小于(等于)
σ
\sigma
σ,便可以求出满足泛化误差与经验误差相差小于e所需的最少样本数,同时也可以求出泛化误差界。
12.3 VC维
现实中的学习任务通常都是无限假设空间,例如d维实数域空间中所有的超平面等,因此要对此种情形进行可学习研究,需要度量假设空间的复杂度。这便是VC维(Vapnik-Chervonenkis dimension)的来源。在介绍VC维之前,需要引入两个概念:
- 增长函数:对于给定数据集D,假设空间中的每个假设都能对数据集的样本赋予标记,因此一个假设对应着一种打标结果,不同假设对D的打标结果可能是相同的,也可能是不同的。随着样本数量m的增大,假设空间对样本集D的打标结果也会增多,增长函数则表示假设空间对m个样本的数据集D打标的最大可能结果数,因此增长函数描述了假设空间的表示能力与复杂度。
- 打散:例如对二分类问题来说,m个样本最多有2^m个可能结果,每种可能结果称为一种“对分”,若假设空间能实现数据集D的所有对分,则称数据集能被该假设空间打散。
因此尽管假设空间是无限的,但它对特定数据集打标的不同结果数是有限的,假设空间的VC维正是它能打散的最大数据集大小。通常这样来计算假设空间的VC维:若存在大小为d的数据集能被假设空间打散,但不存在任何大小为d+1的数据集能被假设空间打散,则其VC维为d。
同时给出了假设空间VC维与增长函数的两个关系:
在有限假设空间中,根据Hoeffding不等式便可以推导得出学习算法的泛化误差界;但在无限假设空间中,由于假设空间的大小无法计算,只能通过增长函数来描述其复杂度,因此无限假设空间中的泛化误差界需要引入增长函数。
定理 12.2 对假设空间 H , m ∈ N , 0 < ϵ < 1 和任意 h ∈ H 有 定理12.2 对假设空间 \mathcal{H}, m \in \mathbb{N}, 0<\epsilon<1 和任意 h \in \mathcal{H} 有 定理12.2对假设空间H,m∈N,0<ϵ<1和任意h∈H有
P ( ∣ E ( h ) − E ^ ( h ) ∣ > ϵ ) ⩽ 4 Π H ( 2 m ) exp ( − m ϵ 2 8 ) . P(|E(h)-\widehat{E}(h)|>\epsilon) \leqslant 4 \Pi_{\mathcal{H}}(2 m) \exp \left(-\frac{m \epsilon^{2}}{8}\right) . P(∣E(h)−E (h)∣>ϵ)⩽4ΠH(2m)exp(−8mϵ2).
将推论12.2式代入定理便得到了无限假设空间的泛代误差界:
P ( E ( h ) − E ^ ( h ) ⩽ 8 d ln 2 e m d + 8 ln 4 δ m ) ⩾ 1 − δ P\left(E(h)-\widehat{E}(h) \leqslant \sqrt{\frac{8 d \ln \frac{2 e m}{d}+8 \ln \frac{4}{\delta}}{m}}\right) \geqslant 1-\delta P E(h)−E (h)⩽m8dlnd2em+8lnδ4 ⩾1−δ
上界(多于此数目则可学到):
m ≥ 1 ϵ ( 4 log 2 ( 2 / δ ) + 8 V C ( H ) log 2 ( 13 / ϵ ) ) m \geq \frac{1}{\epsilon}\left(4 \log _{2}(2 / \delta)+8 V C(H) \log _{2}(13 / \epsilon)\right) m≥ϵ1(4log2(2/δ)+8VC(H)log2(13/ϵ))
下界(少于此数目则学不到):
max [ 1 ϵ log ( 1 / δ ) , V C ( C ) − 1 32 ϵ ] \max \left[\frac{1}{\epsilon} \log (1 / \delta), \frac{V C(C)-1}{32 \epsilon}\right] max[ϵ1log(1/δ),32ϵVC(C)−1]
12.4 Rademacher复杂度
基于 VC 维的泛化误差界是分布无关、数据独立的,也就是说,对任何数据分布都成立。这使得基于VC 维的可学习性分析结果具有一定的“普适性”;但从另一方面来说,由于没有考虑数据自身,基于VC 维得到的泛化误差界通常比较“松”,对那些与学习问题的典型情况相差甚远的较“坏”分布来说尤其如此。
Rademacher复杂度(Rademacher complexity)是另一种刻画假设空间复杂度的途径,与 VC 维不同的是,它在一定程度上考虑了数据分布。Rademacher复杂度是机器学习中用于衡量函数类泛化误差上界的一种工具。定义:
给定一个样本集合
(
S
=
x
1
,
x
2
,
…
,
x
m
⊂
X
)
( S = {x_1, x_2, \ldots, x_m} \subset \mathcal{X} )
(S=x1,x2,…,xm⊂X)和一个实值函数类
F
\mathcal{F}
F映射从
X
\mathcal{X}
X 到实数,Rademacher复杂度
R
(
F
,
S
)
R(\mathcal{F}, S)
R(F,S) 定义为:
[
R
(
F
,
S
)
=
E
σ
[
sup
f
∈
F
1
m
∑
i
=
1
m
σ
i
f
(
x
i
)
]
]
[ R(\mathcal{F}, S) = \mathbb{E}\sigma \left[ \sup{f \in \mathcal{F}} \frac{1}{m} \sum_{i=1}^{m} \sigma_i f(x_i) \right] ]
[R(F,S)=Eσ[supf∈Fm1i=1∑mσif(xi)]]
其中
σ
=
(
σ
1
,
σ
2
,
…
,
σ
m
)
\sigma = (\sigma_1, \sigma_2, \ldots, \sigma_m)
σ=(σ1,σ2,…,σm) 是一个由
−
1
,
+
1
{-1, +1}
−1,+1中元素组成的随机向量,每个元素独立且服从均匀分布,即
σ
i
\sigma_i
σi以相等的概率取+1或-1。期望
E
σ
\mathbb{E}_\sigma
Eσ是关于所有可能的
σ
\sigma
σ取值的。
Rademacher复杂度可以理解为函数类 F \mathcal{F} F在样本 S S S上与随机噪声的最大相关性。具体来说,它是这样的一个量:对于任意的 f ∈ F f \in \mathcal{F} f∈F,我们计算$f $ 在样本 S S S上的值与随机噪声 σ \sigma σ 的点积,然后对所有 f f f取这个点积的上确界(supremum),最后对所有的噪声 σ \sigma σ取期望。
主要有几个以下的用处:
- 在 PAC( Probably Approximately Correct)学习理论中,Rademacher复杂度用于证明学习算法的泛化能力。
- 在分析具体算法的泛化误差时,研究者常常会计算或估计该算法对应的函数类的Rademacher复杂度。
- 在模型选择过程中,可以通过比较不同模型的Rademacher复杂度来选择更可能泛化的模型。
12.5 稳定性
稳定性考察的是当算法的输入发生变化时,输出是否会随之发生较大的变化,输入的数据集D有以下两种变化:
事实上,若学习算法符合经验风险最小化原则(ERM)且满足 β \beta β-均匀稳定性,则假设空间是可学习的。稳定性通过损失函数与假设空间的可学习联系在了一起,区别在于:假设空间关注的是经验误差与泛化误差,需要考虑到所有可能的假设;而稳定性只关注当前的输出假设。