
机器学习的核心挑战不仅仅是将模型拟合到现有数据,更是构建一个能够对新的、未见过的数据做出准确可靠预测的模型。这种能力,即泛化,是衡量模型成功与否的真正标准。一个在训练数据上看起来完美的模型,往往只是陷入了完美的假象;它没有学到潜在的模式,而仅仅是记住了特定数据集的噪声和怪癖,这个陷阱被称为“过拟合”。这样的模型是脆弱的,在面对真实世界的复杂性时会失败。
本文为理解、衡量和实现稳健的泛化能力提供了一份全面的指南。我们将通过两大主要部分,揭开这个关键概念的神秘面纱。在“原理与机制”部分,您将学习泛化背后的基本理论,探索穿越损失景观的史诗之旅、优雅的偏差-方差权衡,以及诚实评估模型性能所需的严谨统计技术。随后,在“应用与跨学科联系”部分,我们将看到这些原则如何变为现实,我们将穿越化学、材料科学和生物学领域,见证泛化如何成为科学发现的引擎,将抽象模型转变为强大的创新工具。让我们首先剖析那些区分“学习”模型与“记忆”模型的核心原则。
想象一位年轻的研究员,试图利用机器学习发现新的稳定材料。他们整理了一个包含1000种已知材料及其稳定性得分的数据库。怀着极大的兴奋,他们用全部1000种材料训练了一个强大而复杂的模型。为了检验其性能,他们让模型预测它刚刚学习过的那1000种材料的稳定性。结果令人惊叹:模型的预测近乎完美,平均绝对误差(MAE)仅为微不足道的0.1 meV/atom。研究员得出结论,这个模型取得了惊人的成功,准备好预测宇宙中任何新材料的稳定性。
但事实果真如此吗?一位持怀疑态度的导师提出了另一种方法。这一次,他们预留了200种材料作为秘密的“测试集”,仅用剩下的800种材料训练模型。模型再次很好地学习了这800种材料,在这个训练数据上实现了0.5 meV/atom的低MAE。但是,当它被用于测试集中的200种未见过的材料时,模型却灾难性地失败了,产生了高达50.0 meV/atom的巨大误差。发生了什么?
这个故事揭示了机器学习的核心挑战:记忆与学习之间的区别。第一个模型并没有学会材料稳定性的潜在物理原理;它只是记忆了它所看到的1000个例子,包括它们所有的随机怪癖和实验噪声。这种现象被称为过拟合。这个模型就像一个为了应付考试而死记硬背去年试卷答案的学生。他们可能会在那次特定的考试中取得优异成绩,但当面对需要真正理解的新问题时,他们会完全不知所措。
任何科学模型的真正考验,不在于它多好地解释了构建它的数据,而在于其泛化的能力——对新的、未见过的数据做出准确预测的能力。将数据简单地划分为训练集和测试集,是我们衡量这种能力的第一个也是最基本的工具。测试集扮演着未来的替身,一个诚实而无情的法官,判断我们的模型是真正学到了知识,还是仅仅制造了完美的幻象。
为了更深入地理解泛化,我们可以将训练过程想象成一次史诗般的旅程。想象一下,对于我们模型内部参数的每一种可能配置,都存在一个相应的误差,或称“损失”。我们可以将其想象成一个广阔、起伏的景观,一个误差的势能面,任何一点的海拔都代表了模型的损失。训练模型就像在这个景观上放一个球,让它滚下山坡,寻找海拔最低的点——即最小损失。
一个过拟合的模型,那个仅仅记忆了数据的模型,找到了一个非常奇特的位置:一个极其尖锐、狭窄的峡谷。这个峡谷的底部非常低(训练误差接近于零),但它的四壁却陡峭得可怕。即使是微小的推动——代表训练样本和新的、未见过的测试样本之间的微小差异——也会让球沿着峭壁飞速上升到高得多的海拔,导致巨大的预测误差。这个模型是脆弱的,它的成功仅限于景观中一个无限小的区域。
相比之下,一个泛化良好的模型,则落入了一个宽阔、平坦的山谷。这个山谷的底部可能不如尖锐峡谷的底部那么完美地低(训练误差可能稍高一些),但其决定性特征是它的宽度。任何方向的微小推动都不会显著改变海拔。这个模型是稳健的;它的预测是稳定的,对输入数据中微小、不相关的变化不敏感。它捕捉到了潜在的模式,而不是分散注意力的噪声。
这不仅仅是一个优美的比喻。“损失景观”的“平坦度”是一个深刻的几何概念,与模型的内部数学相关。一个平坦的最小值以低曲率——对于熟悉数学的人来说,是Hessian矩阵的小特征值——为特征。不仅如此,一个真正稳健的解是那种当我们围绕最小值移动时,曲率本身保持稳定并且不会不规律地变化的解。这种几何上的稳健性正是泛化的灵魂。一个找到了宽阔、稳定吸引盆的模型,发现了一个很可能是普适真理的解,而不仅仅是它碰巧看到的数据的短暂产物。
如果目标是找到这些宽阔、平坦的山谷,我们该如何引导我们的学习算法走向它们呢?关键在于驯服它们内在的复杂性。这把我们引向了统计学习中一个最优雅、最基本的原则:偏差-方差权衡。
让我们考虑一个现代科学中常见的挑战:一个高维、小样本问题,即我们拥有的潜在解释性特征远多于数据点(这种情况通常表示为)。想象一下,试图从细菌的质谱图(一个拥有数千个特征但只有几十个样本的数据集)来预测细菌种类。一个无限灵活、不受约束的模型(低偏差)将毫无困难地找到一个复杂的、扭曲的函数,完美地穿过每一个数据点。但这个函数将极度不稳定。改变一个数据点,整个函数就会剧烈震荡。这样的模型具有巨大的方差;其结构更多地由特定样本中的随机噪声决定,而非真实的潜在信号。
这就是正则化发挥作用的地方。正则化是一套对模型施加约束的技术,实际上就像一条缰绳,防止其参数变得过于极端。一种常见的技术,正则化,会对模型拥有大的参数值进行惩罚。在我们的景观比喻中,这就像是抹平了最尖锐的裂缝,使球更难陷入其中。
通过应用正则化,我们正在进行一次深思熟虑的权衡。我们引入了少量的偏差——我们阻止模型完美地拟合训练数据,迫使它忽略一些细微之处。作为回报,我们实现了方差的急剧下降——模型变得更加稳定,对它所看到的特定训练样本不那么敏感。最终的模型更简单、更平滑,而且至关重要的是,更有可能泛化到新数据。机器学习的艺术不仅仅在于最小化误差,更在于明智地平衡偏差和方差,以找到一个“恰到好处”的模型。
一旦我们训练好了正则化模型,我们需要一种诚实的方式来衡量其性能。正如我们所见,这是一项出人意料的棘手任务,充满了统计陷阱。
单次训练-测试划分是一个好的开始,但它受制于抽签的运气。万一,碰巧测试集最终包含了所有“简单”的例子怎么办?为了得到一个更可靠和稳定的估计,我们可以使用k-折交叉验证。在这个过程中,我们将数据分成(比如说)5个块或“折”。然后我们进行5次实验。在每一次实验中,我们保留一个不同的折用于测试,并在剩下的4个折上训练模型。然后我们计算所有5个测试折上性能的平均值。这个过程给出的性能估计具有低得多的方差,为模型的真实能力提供了一个更可信的画面。这需要更多的工作——我们训练5个模型而不是1个——但所增加的信心几乎总是值得的。
然而,一个更微妙的陷阱在等待着我们。大多数模型都有“超参数”——我们可以调整的旋钮,比如正则化缰绳的强度。为了找到最佳设置,我们可能会尝试十几个不同的值,为每个值运行交叉验证,然后挑选那个给出最佳平均分数的。接着,人们很容易将这个最佳分数报告为我们模型的最终性能。这是一个严重的错误。正如问题2383462所解释的,通过从多次试验中选择最佳结果,我们“挑选”了一个受益于我们数据中随机统计波动的结果。我们引入了一种乐观选择偏差。我们报告的性能是一个谎言,因为验证数据不仅被用作评判者,还被用作调优过程的一部分。
为了保持真正的学术诚信,黄金标准是嵌套交叉验证。这个出色但计算量大的过程涉及两个交叉验证循环,一个嵌套在另一个内部。外层循环负责生成最终的性能估计。对于外层循环的每一折,一部分数据被保留下来作为原始的测试集。在剩余的数据上,执行一个完整的内层交叉验证循环,其唯一目的是调整超参数。一旦找到最佳超参数,就在整个外层训练集上训练一个新模型,并在原始的外层测试集上评估仅一次。通过平均来自外层测试折的分数,我们获得了对整个建模流程(包括超参数选择过程)的泛化性能的近乎无偏的估计。这有力地证明了要得出一个你真正能站得住脚的结果所需的纪律。
我们已经建立了一个复杂的统计框架来衡量泛化。但我们必须以一个超越统计学、进入科学哲学领域的问题来结束:我们所说的“未见过”到底意味着什么?答案完全取决于我们试图回答的问题。
默认的程序——随机打乱和划分我们的数据——带有一个隐藏的假设:未来将看起来就像我们过去的随机样本。这通常是危险的天真想法。
再次考虑发现新合金的任务。如果我们的数据集包含了铁-铬-镍体系内的许多变体,标准的随机划分会将非常相似的合金成分放入训练集和测试集。模型可能会取得出色的分数,但它真正证明的只是插值的能力——为一个位于它已经见过的两个非常相似的成分之间的成分做出一个好的猜测。它并没有证明它能泛化到一个真正新颖的化学族系。这是一种微妙的数据泄露形式,测试集属性的信息通过成分相似性泄露到训练过程中,导致了极度过于乐观的评估。
评估策略必须反映科学的雄心。如果我们的目标是找到全新的化学体系,我们的测试集必须由模型从未遇到过的化学体系组成。这需要进行成分划分,即将整个元素族或化学计量族保留用于测试。模型被迫向未知领域外推,这才是发现的真正核心。测试的难度必须与目标的宏伟相匹配。从这个角度看,泛化不再仅仅是一个统计属性;它变成了衡量我们模型推动科学边界、探索真正新事物的能力的直接标尺。
在我们上次的讨论中,我们探讨了泛化的原理和机制——即如何以及为何要构建能够在从未见过的数据上做出合理预测的模型。我们讨论了在偏差和方差之间的钢丝上行走、过拟合的危险以及划分数据的纪律。这些是游戏规则。现在,是时候上场了。
我们将看到这些抽象概念如何变为现实。我们将穿越化学实验室、生物学洁净室和超级计算集群。我们将看到,泛化不是一个枯燥的统计学脚注;它是科学机器学习的灵魂。它是一个模型是仅仅成为一个戏法,还是能够发现新材料、诊断疾病,甚至揭示进化秘密的区别。它是一种创造力,一个诊断工具,也是一种深刻的洞见的来源。
任何预测模型面临的第一个也是最残酷的考验,是它与现实的相遇。一个模型在纸面上可能看起来很美,在它所训练的数据上达到近乎完美的准确度,但这通常是一种诱人的幻觉。真正的问题是:它在下一个样本上是否有效?那个来自不同实验室、不同人群、宇宙不同角落的样本?
想象一下,你是一位计算化学家,肩负着一项重大责任:筛选一个庞大的、尚未合成的新分子库,以寻找潜在的毒性。一个错误可能是灾难性的。你构建了一个模型,它接受一个分子的结构并预测其毒性。在你的训练数据上,它表现出色,获得了很高的决定系数。这个模型惊人地简单,仅依赖于单一的分子属性。你应该信任它吗?泛化的原则告诉我们要深表怀疑。这样一个过分依赖单一特征的模型,很可能发现了一个只在你的有限训练集中成立的伪相关性。当面对一个真正多样化的新分子库时,它不仅可能失败——它还可能以危险的误导性方式失败。它对其从未见过的广阔、复杂的化学空间视而不见,使其预测成为对未知的鲁莽外推。
这不仅仅是一个假设性的担忧;这是任何依赖校准仪器(无论是机器学习还是其他)的领域的核心关切。在分析化学中,科学家们创建标准参考物质(SRMs)以确保全球范围内的测量是一致的。假设你建立一个模型来预测原油的硫含量——这是炼油厂操作的关键参数——通过在美国国家标准与技术研究院(NIST)的FT-IR光谱库上训练它。该模型在其他NIST样本上表现出色。但是,当你在来自欧洲来源的一套新的认证参考物质(CRMs)上测试它时,会发生什么?这是泛化的终极考验。你在检查你的模型是否学到了光谱和硫含量之间的基本关系,还是仅仅记住了NIST生产线的怪癖。量化模型在这个新的、分布外数据集上的偏差和误差不仅仅是一个学术练习;这是了解你的模型是一个稳健的科学工具,还是一个无法走出国门的“地方特产”的唯一方法。
你可能会认为这种对泛化的强烈关注是一种新现象,是“大数据”时代的产物。但这种思维方式早已成为科学的核心。思考一下计算化学的主力,被称为B3LYP的密度泛函理论(DFT)泛函。它在几十年前被开发出来,其数学形式包含一些经验参数。这些参数的值是如何选择的?它们被调整以再现一组特定的小分子集合(“G2数据集”)的已知热化学性质。用现代的说法,G2数据集是训练语料库。B3LYP在该集合上的性能是其“训练误差”。但其传奇般的成功并非来自其在G2上的表现,而是来自其卓越的泛化能力——为它从未接受过训练的广阔宇宙中的分子和反应提供有用的预测。
这个类比揭示了一个永恒的真理:任何带有可调参数的模型,无论是深度神经网络还是DFT泛函,都受泛化法则的约束。其在“训练集”上的表现是对其真实价值的乐观偏倚的衡量。其真正的价值只有在它经受更广阔世界的检验时才会显现,而当我们将它应用于与赋予其形式的数据截然不同的问题时——比如大生物分子或过渡金属的化学——我们必须始终保持警惕。
我们常常被教导将错误视为失败。但在科学机器学习的世界里,模型泛化的失败往往比其成功更有启发性。当我们期望一个模型能工作,但它在某种特定类型的新数据上失败时,它就像一面镜子,照出了我们自己的盲点。其失败的模式是一条线索,是来自数据的信号,表明我们有某些东西理解错了或忽略了。
让我们回到材料科学的世界。一个团队建立了一个机器学习模型来预测新半导体材料的电子带隙,这是设计电子产品的关键属性。该模型在一个巨大的已知材料数据库上进行训练,并使用基于元素组成的简单特征。它对大多数新化合物都工作得很好。但随后出现了一个奇怪的模式:对于每一个包含元素Tellurium的化合物,模型都有系统地、显著地高估了带隙。
为什么?模型正在大声喊出答案。Tellurium是一个重元素。在重原子中,像自旋-轨道耦合这样的相对论效应变得显著。这些效应,源于量子力学和狭义相对论的结合,倾向于减小带隙。给予模型的简单特征——比如平均原子序数和电负性——对Einstein或自旋-轨道耦合一无所知。此外,很可能原始训练数据库中缺少含有如此重元素的材料的例子。因此,模型的系统性失败不是一个bug;它是一个发现。它以完美的清晰度告诉我们,我们当前对问题的描述是不完整的。要泛化到重元素的世界,模型需要能捕捉相关物理的更好特征,并且需要更多来自该领域的例子来学习[@problem-id:1312296]。
我们可以将这个想法更进一步,设计实验,使泛化失败成为发现的主要工具。想象一下,我们想了解是什么使得染色体上的一个特定位点成为复制起点,即DNA复制开始的地方。从酵母到人类,其基本机制是保守的,但选择这些位点的具体“规则”可能在十亿年的进化中已经分化。
我们可以在酵母中训练一个机器学习模型来寻找复制起点。如果我们仅使用DNA序列特征来构建它,比如著名的“ARS共有序列”,它在酵多中寻找复制起点几乎是完美的。但是,当我们将这个完全相同的模型应用于人类基因组时,其性能崩溃到接近随机猜测。模型泛化失败了。相比之下,如果我们用描述局部“染色质环境”——即DNA的可及性——的特征在酵母上训练一个不同的模型,它在酵母中也工作得很好。但这一次,当我们将它转移到人类身上时,它仍然出人意料地工作得很好!
故事就写在这些成功与失败之中。基于序列的模型的失败告诉我们,酵母用来标记其复制起点的简单DNA密码是一种谱系特有的发明,而不是一个普遍规则。基于染色质的模型的成功告诉我们,复制起点偏好位于基因组“开放”、可及区域的原则是一个深度保守的原则,在酵母和人类之间共享。通过将迁移学习用作计算实验,模型泛化失败的行为本身就成为了剖析生物机制进化的强大工具。
我们已经看到了失败可以提供多少信息。但我们能做得更好吗?我们能否从被动地观察泛化,转变为主动地设计它?我们能否从一开始就设计我们的模型和实验,以鼓励泛化并防止失败,而不仅仅是诊断失败?答案是响亮的“是”。这要求我们将我们的领域知识与机器学习的艺术相融合。
实现这一点最优雅的方法之一,是将物理定律直接构建到问题的结构中。考虑预测一根热棒随时间冷却的过程。该过程由热方程控制,其解取决于诸如棒的长度、其热扩散系数和温标等参数。我们可以尝试训练一个神经网络从头开始学习这种关系,给它输入并要求得到温度。这是一个难题;网络需要大量数据才能发现隐藏在物理学中的复杂尺度定律。
但我们有更好的方法。物理学家会立即认识到,这个问题可以通过无量纲化来简化。通过为温度、长度和时间定义无量纲变量(例如,),控制偏微分方程及其边界条件会转化为一种通用的、无参数的形式。解变成了一个单一的函数,。任何具体的物理棒都只是这个通用解的一个缩放版本。如果我们训练我们的神经网络学习这个简单的、通用的函数,而不是那个混乱的、多参数的函数,我们就实现了一种完美的泛化。一旦网络从几个例子中学到了通用曲线,它就可以通过应用正确的缩放因子,准确预测任何长度或材料的任何棒的行为。通过注入我们的物理知识,我们将一个困难的学习问题转化为了一个微不足道的问题,保证了在所有物理尺度上的泛化。
当潜在的物理学不那么简单时,我们仍然可以引导学习过程。在计算化学中,训练一个神经网络来表示一个势能面(PES)是一项巨大的任务。能量和力可以变化几个数量级,特别是在原子被挤压在一起的高度排斥区域。如果我们通过向模型展示来自整个表面的随机构型来训练它,来自排斥壁的巨大力将产生剧烈的、高方差的梯度,使训练不稳定。
一个更聪明的方法是像一个好老师一样,使用课程学习。我们首先只给模型看“简单”的数据:靠近分子稳定、平衡几何结构的构型,那里的力很温和。模型学到了坚实的基础。然后,我们逐渐扩展课程,慢慢引入越来越远的、进入高能区域的构型。这个增量过程稳定了训练,并帮助模型建立对能量景观的稳健、全局的理解,防止了当它从一开始就被扔进深水区时可能发生的那种灾难性的外推。
最后,也许工程泛化最关键的组成部分是验证实验本身的设计。获得对模型真实世界性能的诚实估计是非常困难的,特别是在处理复杂、混乱的生物数据时。假设你想构建一个预测基因功能的分类器。你的数据来自三个不同组织的测量:肝脏、肌肉和大脑。科学问题至关重要:在肝脏和肌肉上训练的模型能否泛化到大脑?
一种天真的方法,比如随机混合所有数据并执行标准交叉验证,会给你一个极度乐观且完全错误的答案。因为模型在训练期间得以窥视大脑数据,它并没有学会向一个新组织泛化;它只是学会了所有三个组织的平均值。回答这个问题的唯一正确方法是使用严格的协议,比如嵌套的、留一组织交叉验证。整个大脑数据集被保留为最终的、不可触碰的测试集。模型及其超参数的调整仅使用肝脏和肌肉数据。这种严谨的分离是模拟真实泛化任务并避免自欺欺人的唯一方法。在跨队列研究中,例如在微生物学中,这个挑战变得更加尖锐,其中来自不同研究的数据必须经过艰苦的协调和批次校正,并且每一个转换参数都必须仅从给定折叠中的训练研究中学习,以防止来自测试研究的任何信息泄漏到模型构建过程中。
我们已经看到,泛化是一种实践上的必需品,一个诊断工具,也是一项设计原则。但它也是一个具有深刻理论美感的主题。随着我们提供更多数据,模型的性能通常会提高。这产生了一条“学习曲线”,该曲线绘制了模型的泛化误差与训练集大小的函数关系。我们可以想象这条曲线一直向右延伸,朝向一个理想化的无限大小的训练集。在这个极限下的误差,代表了我们模型的不可约误差,即即使拥有关于数据生成分布的完美知识,它也会有的误差。
这是一个美丽的理论概念,但我们能知道它是什么吗?我们永远只有有限的数据。在这里,一个来自看似不相关领域——数值分析——的聪明想法为我们提供了帮助。我们通常可以用渐近展开来描述大时的误差,。如果我们在几种不同大小的数据集上训练我们的模型——比如,和——我们就在这条曲线上得到了三个点。然后我们可以使用一种称为*Richardson外推法*的经典技术,以一种可以抵消主要误差项(和)的方式组合这三个误差测量值,从而给我们一个对极限误差的惊人准确的估计。这是一种奇妙的数学炼金术,让我们能够用我们有限的经验去窥探无限的地平线。
我们的旅程已经从实践走向了深刻。我们看到,泛化这一个概念将救命药物的设计、新材料的寻找、科学仪器的验证、我们进化历史的解码以及学习本身的理论极限联系在一起。它提醒我们,一个模型的优劣取决于它与产生它的数据之外的世界的联系。对泛化的追求,本质上,就是对持久科学真理的追求。