在第 3 节和第 4 节中,我们通过将线性模型拟合到训练数据来解决回归和分类问题。在这两种情况下,我们都提供了实用的算法来寻找使观察到的训练标签的可能性最大化的参数。然后,在每一章的末尾,我们回忆起拟合训练数据只是一个中间目标。我们一直以来真正的追求是发现一般模式,在此基础上我们甚至可以对来自相同潜在人群的新样本做出准确的预测。机器学习研究人员是消费者 的优化算法。有时,我们甚至必须开发新的优化算法。但归根结底,优化只是达到目的的一种手段。机器学习的核心是一门统计学科,我们希望仅在某些统计原理(已知或未知)导致生成的模型泛化到训练集之外的范围内优化训练损失。
从好的方面来看,事实证明,通过随机梯度下降训练的深度神经网络在跨越计算机视觉的无数预测问题上表现得非常好;自然语言处理;时间序列数据;推荐系统;电子健康记录;蛋白质折叠;视频游戏和棋盘游戏中的价值函数逼近;和无数其他领域。不利的一面是,如果您正在寻找优化故事(为什么我们可以将它们拟合到训练数据)或泛化故事(为什么生成的模型泛化到看不见的例子)的直接说明,那么您可能想给自己倒一个喝。虽然我们优化线性模型的程序和解决方案的统计特性都通过综合理论体系进行了很好的描述,
深度学习的理论和实践在这两个方面都在迅速发展,理论家们采用新的策略来解释正在发生的事情,而实践者则继续以惊人的速度进行创新,建立用于训练深度网络的启发式武器库和大量的直觉和为决定在何种情况下应用何种技术提供指导的民间知识。
目前的 TL;DR 是深度学习理论已经产生了有前途的攻击线和分散的迷人结果,但仍然远未全面说明(i)为什么我们能够优化神经网络和(ii) ) 通过梯度下降学习的模型如何能够很好地泛化,即使是在高维任务上。然而,在实践中,(i) 很少成为问题(我们总能找到适合我们所有训练数据的参数),因此理解泛化是一个更大的问题。另一方面,即使缺乏连贯的科学理论,从业者也已经开发出大量技术,可以帮助您生成在实践中具有良好泛化能力的模型。虽然没有精辟的总结可以公正地描述深度学习中泛化的广泛主题,
5.5.1. 重新审视过度拟合和正则化
根据Wolpert等人的“没有免费的午餐”定理。( 1995 ),任何学习算法都可以更好地概括具有某些分布的数据,而对其他分布则更差。 因此,给定一个有限的训练集,模型依赖于某些假设:为了达到人类水平的表现,识别反映人类如何看待世界的归纳偏差可能是有用的。这种归纳偏差显示出对具有某些属性的解决方案的偏好。例如,深度 MLP 倾向于通过将更简单的函数组合在一起来构建复杂的函数。
通过编码归纳偏差的机器学习模型,我们训练它们的方法通常包括两个阶段:(i)拟合训练数据;(ii)通过评估 holdout 数据模型来估计泛化误差(基础群体的真实误差)。我们对训练数据的拟合与对测试数据的拟合之间的差异称为泛化差距,当泛化差距很大时,我们说我们的模型过度拟合到训练数据。在过度拟合的极端情况下,我们可能会准确地拟合训练数据,即使测试误差仍然很大。在经典观点中,解释是我们的模型太复杂,要求我们要么缩小特征数量、学习的非零参数数量,要么缩小量化参数的大小。回忆一下3.6 节中模型复杂度与损失的关系图(图 3.6.1) 。
然而,深度学习以违反直觉的方式使这幅图复杂化。首先,对于分类问题,我们的模型通常具有足够的表现力以完美地适合每个训练示例,即使在由数百万组成的数据集中也是如此(Zhang等人,2021 年)。在经典图片中,我们可能认为此设置位于模型复杂性轴的最右端,泛化误差的任何改进都必须通过正则化来实现,要么通过降低模型类的复杂性,要么通过应用惩罚,严格限制我们的参数可能采用的值集。但这就是事情开始变得奇怪的地方。
奇怪的是,对于许多深度学习任务(例如,图像识别和文本分类),我们通常在模型架构中进行选择,所有这些架构都可以实现任意低的训练损失(和零训练错误)。因为考虑中的所有模型都实现了零训练误差,所以进一步提高的唯一途径是减少过度拟合。更奇怪的是,通常情况下,尽管完美地拟合了训练数据,但我们实际上可以通过使模型更具表现力来进一步减少泛化误差,例如,添加层、节点或训练更多的 epoch。更奇怪的是,将泛化差距与复杂性联系起来的模式模型的一部分(如捕获的那样,例如,在网络的深度或宽度中)可以是非单调的,复杂性越高,起初会受到伤害,但随后有助于形成所谓的“双下降”模式(Nakkiran等人, 2021 年)。因此,深度学习从业者拥有一大堆技巧,其中一些似乎以某种方式限制了模型,而另一些似乎使模型更具表现力,并且在某种意义上,所有这些都用于减轻过度拟合。
更复杂的是,虽然经典学习理论提供的保证即使对于经典模型也可能是保守的,但它们似乎无力解释为什么深度神经网络首先要进行泛化。因为深度神经网络即使对于大型数据集也能够拟合任意标签,尽管使用了熟悉的方法,如ℓ2正则化,传统的基于复杂性的泛化边界,例如,那些基于假设类的 VC 维度或 Rademacher 复杂性的泛化边界无法解释为什么神经网络会泛化。
5.5.2. 来自非参数的灵感
第一次接触深度学习,很容易将它们视为参数模型。毕竟,模型确实有数百万个参数。当我们更新模型时,我们更新它们的参数。当我们保存模型时,我们将它们的参数写入磁盘。然而,数学和计算机科学充斥着违反直觉的视角变化,以及看似不同的问题的惊人同构。虽然神经网络显然有参数,在某些方面,将它们视为表现得像非参数模型会更有成效。那么究竟是什么使模型成为非参数的呢?虽然这个名称涵盖了多种方法,但一个共同的主题是非参数方法往往具有一定程度的复杂性,随着可用数据量的增加而增加。
也许非参数模型最简单的例子是 k-最近邻算法(我们将在后面介绍更多非参数模型,例如在第 11.2 节中)。在这里,在训练时,学习者只需记住数据集。然后,在预测时,当遇到一个新点时x,学习者查找k最近邻(k 积分xi′最小化一些距离 d(x,xi′)). 什么时候k=1,这种算法称为 1-最近邻算法,该算法将始终实现零训练误差。然而,这并不意味着该算法不会泛化。事实上,事实证明,在一些温和的条件下,1-最近邻算法是一致的(最终收敛到最优预测器)。
请注意,1 最近邻要求我们指定一些距离函数d,或者等价地,我们指定一些向量值基函数ϕ(x)用于特征化我们的数据。对于距离度量的任何选择,我们将实现 0 训练错误并最终达到最佳预测器,但不同的距离度量 d对不同的归纳偏差进行编码,并且使用有限数量的可用数据将产生不同的预测变量。距离度量的不同选择d代表关于基本模式的不同假设,不同预测变量的性能将取决于假设与观察到的数据的兼容性。
从某种意义上说,由于神经网络过度参数化,拥有比拟合训练数据所需的参数多得多的参数,它们倾向于对训练数据进行插值(完美拟合),因此在某些方面表现得更像非参数模型。最近的理论研究已经在大型神经网络和非参数方法(尤其是核方法)之间建立了深刻的联系。特别是,Jacot等人。( 2018 )证明了在极限情况下,随着具有随机初始化权重的多层感知器无限宽地增长,它们变得等效于(非参数)核方法,用于特定选择核函数(本质上是距离函数),他们称之为神经正切核。虽然当前的神经正切核模型可能无法完全解释现代深度网络的行为,但它们作为分析工具的成功强调了非参数建模对于理解过度参数化深度网络行为的有用性。
5.5.3. 提前停止
尽管深度神经网络能够拟合任意标签,即使标签分配不正确或随机 (Zhang等人,2021 年),这种能力也只会在多次迭代训练中出现。一项新的工作 (Rolnick等人,2017 年)表明,在标签噪声的设置中,神经网络倾向于首先拟合干净标记的数据,然后才对错误标记的数据进行插值。此外,已经确定这种现象直接转化为泛化的保证:只要模型拟合了干净标记的数据而不是训练集中包含的随机标记的示例,它实际上已经泛化了 (加格等。, 2021 年)。
这些发现共同有助于激发早期停止,这是一种使深度神经网络正则化的经典技术。在这里,不是直接限制权重的值,而是限制训练时期的数量。确定停止标准的最常见方法是在整个训练过程中监控验证错误(通常通过在每个时期后检查一次)并在验证错误没有减少超过一些小量时停止训练ϵ对于一些时代。这有时称为耐心标准。除了可能导致更好的泛化,在嘈杂标签的设置中,提前停止的另一个好处是节省时间。一旦满足耐心标准,就可以终止训练。对于可能需要在 8 个或更多 GPU 上同时训练数天的大型模型,调整良好的提前停止可以为研究人员节省数天的时间,并可以为他们的雇主节省数千美元。
值得注意的是,当没有标签噪声并且数据集是可实现的(类是真正可分离的,例如,区分猫和狗)时,早期停止往往不会导致泛化的显着改进。另一方面,当标签中存在标签噪声或内在可变性时(例如,预测患者的死亡率),早期停止至关重要。在对噪声数据进行插值之前训练模型通常不是一个好主意。