当大家通过示例设计并分析算法的时候,有没有可能对以下几个问题产生疑虑:
- 什么样的算法能够有效地学习数据特征?
- 学习起来的困难是什么?
- 用多少示例去训练算法才能叫成功的训练算法?
- 存在普遍的模型去学习吗?
这篇文章就通过介绍PAC学习框架来解决这些问题。PAC学习框架(Probably Approximately Correct (PAC) learning framework)就是从能够将算法训练成功的样本数量的角度出发,定义了一系列的可学习概念。例如,学习算法的样本复杂度(sample complexity),时间空间复杂度等等,都是一些决定算法执行时间效率或者花销等方面的概念。
接下来,我将讲述PAC学习框架,然后在假设集有限的情况下给出了该框架下的一般学习保证,既适用于假设集包含要学习的概念的一致情况,也适用于相反的不一致情况。
一、PAC学习模型
首先介绍一些关于进入PAC学习框架的数学概念,在以后的博文更新中也有可能会用到。
用 X \mathcal{X} X表示所有可能的示例集合,有的时候也指的是输入空间(input space)。用 Y \mathcal{Y} Y来表示样本所有可能的标签或目标值的集合。由于二分类在生活中和机器学习中是最常见的,所以只讨论 Y \mathcal{Y} Y被简化为二分类(两个标签)的情况,即 Y = { 0 , 1 } \mathcal{Y} =\{0,1\} Y={ 0,1}。以后如果有多分类再将二分类问题推广到一般的情况。
先定义一个概念 c c c: X \mathcal{X} X到 Y \mathcal{Y} Y的映射用 X → Y \mathcal{X}\rightarrow\mathcal{Y} X→Y来表示。则 c c c可以用来表示 X \mathcal{X} X的子集。在下面的例子中,我们可以将要学习的概念等价地引用为从 X \mathcal{X} X到 { 0 , 1 } \{0,1\} { 0,1}的映射,或者 X \mathcal{X} X子集的映射。概念类是我们希望学习的一组概念,用 c c c表示。例如,它可以是世界上所有西瓜的集合,但我们需要学习的就是某些特定的西瓜,并不是全部,即 X \mathcal{X} X子集。
机器学习中的一个重要问题就是预测样本分布问题,这就需要在仅有的样本中,预测新的样本与已有样本必须是独立同分布( i . i . d . i.i.d. i.i.d.)的关系,即所有的样本均在同一个未知的分布 D D D中。学习者需要考虑的情况就是能够找到 X → Y \mathcal{X}\rightarrow\mathcal{Y} X→Y,就是要找到能最好的能够映射的算法模型,这些模型的集合称为假设集( hypothesis set),但这个假设集可能和概念 c c c不一致。如果收到一个来自分布 D D D的样本集 S = ( x 1 , . . . . , x m ) S = (x_1,....,x_m) S=(x1,....,xm)和标签 ( c ( x 1 ) , . . . . . , c ( x m ) ) ) (c(x_1),.....,c(x_m))) (c(x1),.....,c(xm))),其中 c ∈ C c\in C c∈C是基于一个具体的目标概念来学习的。该任务是根据概念 c c c在使用有标签的样本下找到具有最小泛化误差的假设集 h S ∈ H h_S\in H hS∈H。下面将会介绍一下用 R ( h ) R(h) R(h)来表示的假设集 h s ∈ H h_s\in H hs∈H的泛化误差的含义。
定义1:泛化误差(generalization error)
在分布 D D D下的假设集 h s ∈ H h_s\in H hs∈H(目标概念 c c c)下的泛化误差( h h h的风险)是:
R ( h ) = Pr x ∼ D [ h ( x ) ≠ c ( x ) ] = E x ∼ D [ 1 h ( x ) ≠ c ( x ) ] R(h)=\Pr_{x\sim D}[h(x)\ne c(x)]=\mathop{E}\limits_{x\sim D}[1_{h(x)\ne c(x)}] R(h)=x∼DPr[h(x)=c(x)]=x∼DE[1h(x)=c(x)]其中 1 w 1_w 1w是指示函数,不等式成立返回值为 1 1 1,不等式不成立返回 0 0 0。
由于分布 D D D和目标概念 c c c都是未知的,所以我们无法直接获得假设集的泛化误差。所以我们可以在有标签的样本集 S S S上测量假设集的经验误差。
定义2:经验误差( empirical error)
在分布 D D D下的假设集 h s ∈ H h_s\in H hs∈H(目标概念 c c c)下的经验误差( h h h的经验风险)是:
R ^ ( h ) = 1 m ∑ i = 1 m 1 h ( x ) ≠ c ( x ) \widehat R(h)=\frac{1}{m}\sum_{i=1}^{m}1_{h(x)\ne c(x)} R
(h)=m1i=1∑m1h(x)=c(x)
显然,经验风险就是样本集 S