前言
注意事项:
- 这个系列的文章虽然题为书本《Foundation of Machine Learning》的读书笔记,但实际我是直接对书本的部分内容进行了个人翻译,如果这个行为有不妥当的地方,敬请告知。
- 由于知识面限制,部分名词的翻译可能存在错误,部分难以翻译的名词保留英文原词。为了防止误导大家,在这里声明本文仅供参考。
- 本文基本翻译自《Foundation of Machine Learning》的2.1节。
正文
在设计和分析学习算法的时候我们会产生几个问题:哪些任务是可以有效地学习的?算法在学习过程中有哪些固有困难?要成功地学习一个任务需要提供多少样本?存在通用的学习模型吗?在这一章中,我们通过引入Probably Approximately Correct ( PAC ) 学习框架,把这些问题形式化,并将解决这些问题。根据算法要取得近似解所需要的样本数——称为样本复杂度,和学习算法所需要的时间和空间复杂度,PAC框架定义了一种可学习 ( learnable ) 的 concept。
PAC学习模型
为了理解PAC模型,我们首先引入几个定义和概念。
我们使用 χ 来表示所有可能的样本。 χ 有时候也代表着输入空间 ( input space )。所有标签和目标值的集合用 Y 表示。因为这一章是介绍性的章节,我们仅讨论 Y 只有两种标签的情况, Y={0,1} ,即二分类问题。接下来的章节会把这里的结果拓展到更加一般的背景。
定义 concept
c:X→Y
为一个从
X
到
Y
的映射。由于
Y={0,1}
,我们可以把
c
等同地看作
我们假设样本都是从某个确定但未知的分布 D 中独立抽取出来的,也就是说样本都是独立同分布的 (i.i.d) 。那么学习问题就能用下面的数学语言来表示。学习主体从某个固定的 concept 的集合 H 选择合适的 concept,称 H 为假设集 ( hypothesis set ),H 不一定和C 重合。学习主体可以接收样本集 S=(x1,...,xm) 和标签 (c(x1),...,c(xm)) ,其中样本集根据 D 独立同分布地抽取得到,标签是基于特定等待学习的目标 concept c∈C 得到的。学习主体的任务就是使用带标签的样本集 S 去选择一个与 concept c 相比有较小泛化误差 ( generalization error ) 的假设 hS∈H 。一个假设 h∈H 的泛化误差也被称为真误差 (true error) 或者直接就是误差 (error),使用 R(h) 表示,它的定义如下所示。
定义 2.1 泛化误差
给定一个假设 h∈H ,一个目标 concept c∈C ,以及一个潜在的分布 D,泛化误差,或者说 h 的风险可以定义为
因为分布 D 和目标 concept c 都是未知的,所以学习主体不能直接得到一个假设的泛化误差。但是它可以测量假设在某个带标签的样本集上的经验误差 ( empirical error )。
定义 2.2 经验误差
给定一个假设 h∈H ,一个目标 concept c∈C ,以及一个样本集 S=(x1,...,xm) ,h 的经验误差,或者称为经验风险,定义为
因此,
h∈H
的经验误差就是它在一个样本集
S
上的平均误差,相对的,
接下来引入 PAC 学习框架。我们使用
O(n)
来表示任意
x∈X
的运算表示成本的上限,用 size(
c
) 表示
定义 2.3 PAC学习
称一个 concept class
C
是 PAC 可学习的 ( PAC-learnable ),如果存在一个算法
对于某个 concept class
PAC的定义中有几个值得强调的关键点。首先,PAC学习是一个对分布没有限制的模型:这里没有对样本抽取的分布
在很多情况下,特别在 concept 的计算表示不明确的时候,我们可以忽略 PAC 定义中对
n
和 size(