机器学习——第十二章 计算学习理论

12.1 基础知识

计算学习理论(computational learning theory)研究的是关于通过"计算"来进行"学习"的理论,即关于机器学习的理论基础,其目的是分析学习任务的困难本质,为学习算法提供理论保证,并根据分析结果指导算法设计。

经验误差和泛化误差:

假设给定训练集\(D=\{(\boldsymbol{x}{1},y{1}),(\boldsymbol{x}{2},y{2}),\ldots,(\boldsymbol{x}{m},y{m})\}, \boldsymbol{x}{i}\in\mathcal{X}\),本章主要讨论二分类问题,若无特别说明,\(y{i}\in\mathcal{Y}=\{-1,+1\}\)。其中所有的训练样本都服从一个未知的分布\(\mathcal{D}\),且它们都是在总体分布\(\mathcal{D}\)中独立采样得到,即独立同分布(independent and identically distributed,i.i.d.)。

令\(h\)为从\(\mathcal{X}\)到\(\mathcal{Y}\)的一个映射,其泛化误差为:

\(E(h;\mathcal{D})=P_{\boldsymbol{x}\sim\mathcal{D}}(h(\boldsymbol{x})\neq y)\)

\(h\)在D上的经验误差为:

\(\widehat{E}(h;D)=\frac{1}{m}\sum_{i=1}^{m}\mathbb{I}\big(h(x_{i})\neq y_{i}\big)\)

泛化误差指的是学习器在总体上的预测误差,经验误差则是学习器在某个特定数据集D上的预测误差
几个常用不等式:

  • Jensen 不等式:对任意凸函数\(f(x)\),有

\(f(\mathbb{E}(x))\leqslant\mathbb{E}(f(x))\)

  • HoefIding 不等式[HoefIding , 1963]: 若\(x_{1},x_{2},\ldots,x_{m}\)为m 个独立随机变
    量,且满足\(0\leqslant x_{i}\leqslant1\),则对任意\(\epsilon>0\)有

\(\begin{gathered}

P\left(\frac{1}{m}\sum_{i=1}^{m}x_{i}-\frac{1}{m}\Big|\sum_{i=1}^{m}\mathbb{E}(x_{i})\geqslant\epsilon\right)\leqslant\exp(-2m\epsilon^{2}) \\

P\left(\left|\frac{1}{m}\sum_{i=1}^{m}x_{i}-\frac{1}{m}\sum_{i=1}^{m}\mathbb{E}(x_{i})\right|\geqslant\epsilon\right)\leqslant2\exp(-2m\epsilon^{2})

\end{gathered}\)

  • McDiarmid 不等式[McDiarmid , 1989]:若\(x_{1},x_{2},\ldots,x_{m}\)为m 个独立随机变
    量,且对任意\(1\leqslant i\leqslant m\),函数\(f\)满足

\(\sup_{x_1,\ldots,x_m, x_i^{\prime}}|f(x_1,\ldots,x_m)-f(x_1,\ldots,x_{i-1},x_i^{\prime},x_{i+1},\ldots,x_m)|\leqslant c_i\)

则对任意\(\epsilon>0\) ,有

\(P\left(f\left(x_{1},\ldots,x_{m}\right)-\mathbb{E}\left(f\left(x_{1},\ldots,x_{m}\right)\right)\geqslant\epsilon\right)\leqslant\exp\left(\frac{-2\epsilon^{2}}{\sum_{i}c_{i}^{2}}\right) \\P\left(\left|f\left(x_{1},\ldots,x_{m}\right)-\mathbb{E}\left(f\left(x_{1},\ldots,x_{m}\right)\right)\right|\geqslant\epsilon\right)\leqslant2\exp\left(\frac{-2\epsilon^{2}}{\sum_{i}c_{i}^{2}}\right)\)

12.2 PAC学习

PAC学习原理(Probably Approximately Correct,概率近似正确)是计算学习理论中的一个核心概念。该原理旨在解释为什么一个假设(或模型、函数)在学习了训练样本后,能够在训练样本之外的数据上有效地进行预测。

PAC学习原理的基本思想是:对于一个给定的概念类(即所有可能的目标概念的集合),如果存在一个多项式时间的学习算法,它能够从训练样本中学习到一个假设,使得该假设在训练样本之外的数据上的错误率以很大的概率(通常接近于1)低于一个预先设定的阈值,并且所需的训练样本数量和学习时间都是多项式级别的,那么我们就称这个概念类是PAC可学习的。

  • \(C\):概念类。表示从样本空间到标记空间的映射,对任意样例,都能使得\(c(x)=y\)。

  • \(H\):假设类。学习算法会把认为可能的目标概念集中起来构成\(H\)。

  • 若\(c\in H\),则说明假设能将所有示例按真实标记一致的方式完全分开,称为该问题对学习算法而言是"可分的";否则,称为"不可分的"
    对于训练集,我们希望学习算法学习到的模型所对应的假设\(h\)尽可能接近目标概念\(c\)。我们是希望以比较大的把握学得比较好的模型,也就是说,以较大的概率学得误差满足预设上限的模型,这就是"概率近似正确"的含义。形式化地说,令\(\delta\)表示置信度,可定义:

  • PAC辨识:对\(0\leq\epsilon,\delta<1\),所有的\(c\in \mathcal{C}\)和分布\(\mathcal{D}\),若存在学习算法,其输出假设\(h\in H\)满足:

\(\mathrm P(\mathrm E(\mathrm h)\leq\epsilon)\geq1-\delta \)

则称学习算法能从假设空间\(\mathcal{H}\)中PAC辨识概念类\(\mathcal{C}\)。这样的学习算法能以较大的概率(至少\(1-\delta\)学得目标概念\(c\)的近似 (误差最多为\(\epsilon \))。在此基础上可定义:

  • PAC可学习:令\(m\)表示从分布\(\mathcal{D}\)中独立同分布采样得到的样例数目,\(0\leq\epsilon,\delta<1\),对所有分布\(\mathcal{D}\),若存在学习算法和多项式函数\(poly(1/\epsilon,1/delta,size(x),size(c))\)(样例数目m与误差\(\epsilon \)、置信度\(1-\delta\)、数据本身的复杂度size(x)、目标概念的复杂度size(c)都有关),使得对于任何\(m\ge poly(1/\epsilon,1/delta,size(x),size(c))\),学习算法能从假设空间中PAC辨识概念类\(\mathcal{C}\),则称概念类\(\mathcal{C}\)对假设空间而言是PAC可学习的,有时也简称概念类\(\mathcal{C}\)是PAC 可学习的。
  • PAC学习算法:满足PAC可学习的算法。(假定学习算法处理每个样本的时间为常数,因此C 的时间复杂度等价于样本复杂度。于是,我们对算法时间复杂度的关心就转化为对样本复杂度的关心)
  • 样本复杂度(Sample Complexity):满足\(m \ge poly(1/\epsilon,1/\delta,size(x),size(c))\)的最小的m。
    PAC学习中一个关键因素是假设空间 \(\mathcal{H}\)的复杂度。\(\mathcal{H}\)包含了学习算法所有可能输出的假设,若在PAC学习中假设空间与概念类完全相同,即\(\mathcal{H}\)=\(\mathcal{C}\),这称为"恰PAC可学习" (properly PAC learnable)。直观地看,这意味着学习算法的能力与学习任务"恰好匹配"。然而,这种让所有候选假设都来自概念类的要求看似合理,但却并不实际,因为在现实应用中我们对概念类\(\mathcal{C}\)通常一无所知,更别说获得一个假设空间与概念类恰好相同的学习算法。显然,更重要的是研究假设空间与概念类不同的情形,即\(H \neq C\)。 一般而言,\(\mathcal{H}\)越大,其包含任意目标概念的可能性越大,但从中找到某个具体目标概念的难度也越大。\(|H|\)有限时,我们称究为"有限假设空间",否则称为"无限假设空间"。
相关推荐
南宫生4 分钟前
力扣-图论-17【算法学习day.67】
java·学习·算法·leetcode·图论
sanguine__20 分钟前
Web APIs学习 (操作DOM BOM)
学习
IT古董26 分钟前
【机器学习】机器学习的基本分类-强化学习-策略梯度(Policy Gradient,PG)
人工智能·机器学习·分类
centurysee28 分钟前
【最佳实践】Anthropic:Agentic系统实践案例
人工智能
mahuifa28 分钟前
混合开发环境---使用编程AI辅助开发Qt
人工智能·vscode·qt·qtcreator·编程ai
四口鲸鱼爱吃盐29 分钟前
Pytorch | 从零构建GoogleNet对CIFAR10进行分类
人工智能·pytorch·分类
蓝天星空42 分钟前
Python调用open ai接口
人工智能·python
睡觉狂魔er43 分钟前
自动驾驶控制与规划——Project 3: LQR车辆横向控制
人工智能·机器学习·自动驾驶
scan7241 小时前
LILAC采样算法
人工智能·算法·机器学习
leaf_leaves_leaf1 小时前
win11用一条命令给anaconda环境安装GPU版本pytorch,并检查是否为GPU版本
人工智能·pytorch·python