用于贝叶斯优化的预训练高斯过程

1725440554044.jpg

我们描述了一个可定制的接口,称为 Hyper BayesOpt,用于深度神经网络的超参数优化,避免了在贝叶斯优化中量化高斯过程的模型参数的需要。

贝叶斯优化(BayesOpt) 是一种强大的工具,广泛用于全局优化任务,例如超参数调整、蛋白质工程、合成化学、机器人学习,甚至烘焙饼干。BayesOpt 是解决这些问题的绝佳策略,因为它们都涉及优化评估成本昂贵的黑盒函数。黑盒函数从输入(我们想要优化的事物的配置)到输出(性能衡量标准)的底层映射是未知的。但是,我们可以通过针对不同输入组合评估函数来尝试了解其内部工作原理。由于每次评估的计算成本都很昂贵,因此我们需要在尽可能少的评估中找到最佳输入。BayesOpt 的工作原理是反复构建黑盒函数的代理模型,并根据迄今为止观察到的信息,在最有希望或最具信息量的输入位置策略性地评估该函数。

高斯过程是 BayesOpt 的流行替代模型,因为它们易于使用、可以使用新数据进行更新,并提供有关每个预测的置信度。高斯过程模型构建了可能函数的概率分布。该分布由均值函数(这些可能函数的平均情况)和核函数(这些函数在不同输入之间的变化程度)指定。BayesOpt 的性能取决于替代模型预测的置信区间是否包含黑盒函数。传统上,专家使用领域知识定量定义均值和核参数(例如,黑盒函数的范围或平滑度),以表达他们对黑盒函数应该是什么样子的期望。然而,对于许多现实世界的应用(如超参数调整),很难理解调整目标的前景。即使对于具有相关经验的专家来说,缩小合适的模型参数范围也是一项挑战。

在《机器学习研究杂志》上发表的“用于贝叶斯优化的预训练高斯过程”中,我们考虑了使用 BayesOpt 对深度神经网络进行超参数优化的挑战。我们提出了 Hyper BayesOpt (HyperBO),这是一个高度可定制的界面,其算法无需在 BayesOpt 中量化高斯过程的模型参数。对于新的优化问题,专家可以简单地选择与他们正在尝试解决的当前任务相关的先前任务。HyperBO 使用来自选定任务的数据对高斯过程模型进行预训练,并在运行 BayesOpt 之前自动定义模型参数。HyperBO 在预训练模型与基本事实的一致性以及其黑盒优化解决方案的质量方面享有理论保证。我们在针对近乎最先进的深度学习模型的新调优基准和经典的多任务黑盒优化基准(HPO-B)上分享了 HyperBO 的强大结果。我们还证明 HyperBO 对相关任务的选择具有鲁棒性,并且对预训练的数据量和任务量要求较低。

在传统的 BayesOpt 界面中,专家需要仔细选择高斯过程模型的均值和核参数。HyperBO 用一系列相关任务取代了这种手动指定,使贝叶斯优化更易于使用。选定的任务用于预训练,我们优化高斯过程,使其能够逐渐生成与选定任务对应的函数相似的函数。相似性体现在单个函数值和输入之间的函数值变化中。

预训练的损失函数

我们通过最小化真实模型和预训练模型之间的Kullback-Leibler 散度(一种常用的散度)来预训练高斯过程模型。由于真实模型未知,我们无法直接计算该损失函数。为了解决这个问题,我们引入了两个数据驱动的近似值:(1)经验Kullback-Leibler散度 (EKL),它是真实模型的经验估计与预训练模型之间的散度;(2)负对数似然 (NLL),它是预训练模型对所有训练函数的负对数似然之和。EKL 或 NLL 的计算成本与训练函数的数量成线性关系。此外,可以采用基于随机梯度的方法来优化损失函数,从而进一步降低计算成本。在良好控制的环境中,优化 EKL 和 NLL 会产生相同的结果,但它们的优化前景可能非常不同。

预训练改进贝叶斯优化

在 BayesOpt 算法中,对黑盒函数进行评估的位置的决策是迭代式的。决策标准基于高斯过程提供的置信度,该置信度在每次迭代中通过调整 BayesOpt 获取的先前数据点进行更新。直观地讲,更新后的置信度应该恰到好处:既不能过于自信,也不能过于不确定,因为在这两种情况下,BayesOpt 都无法做出与专家相媲美的决策。

在 HyperBO 中,我们用预训练的高斯过程取代了传统 BayesOpt 中手工指定的模型。在条件温和且训练函数足够的情况下,我们可以从数学上验证 HyperBO 的良好理论性质:(1)对齐性:预训练的高斯过程保证在以观测数据点为条件时接近地面实况模型;(2)最优性:HyperBO 保证为任何按照未知地面实况高斯过程分布的函数找到黑盒优化问题的近似最优解。

我们将高斯过程(紫色阴影区域为 95% 和 99%置信区间)可视化为基于未知测试函数(橙线)的观测值(黑点)。与没有预训练的传统 BayesOpt 相比,HyperBO 中的预测置信水平可以更好地捕捉未知测试函数,这是贝叶斯优化的关键先决条件。

经验上,为了定义预训练高斯过程的结构,我们选择使用由神经网络建模的非常具有表现力的均值函数,并将明确的核函数应用于使用神经网络编码到更高维空间的输入。

为了评估 HyperBO 在具有挑战性和现实性的黑盒优化问题上的表现,我们创建了PD1 基准,其中包含用于深度神经网络的多任务超参数优化的数据集。PD1 是通过在流行的图像和文本数据集以及蛋白质序列数据集上训练数万种接近最先进的深度学习模型配置而开发的。PD1 包含来自 24 个不同任务(例如,在CIFAR100上调整Wide ResNet)的约 50,000 个超参数评估,大约需要 12,000 个机器计算日。

我们证明,在单个 CPU 上仅进行几个小时的预训练,HyperBO 就可以在前所未见的具有挑战性的任务上显著胜过使用精心手动调整的模型的 BayesOpt,包括在ImageNet上调整ResNet50。即使每个训练函数只有约 100 个数据点,HyperBO 也可以与基线相媲美。

调整 ImageNet 上的 ResNet50 和街景门牌号(SVHN) 数据集和 CIFAR100上的 Wide ResNet (WRN) 的验证错误率。通过仅对约 20 个任务和每个任务约 100 个数据点进行预训练,HyperBO 可以在以前从未见过的任务上显著胜过传统的 BayesOpt(采用精心手动调整的高斯过程)。

结论和未来工作

HyperBO 是一个预训练高斯过程的框架,随后使用预训练模型执行贝叶斯优化。使用 HyperBO,我们不再需要手动指定高斯过程中的精确定量参数。相反,我们只需要识别相关任务及其相应的数据进行预训练。这使得 BayesOpt 更易于访问且更有效。未来的一个重要方向是使 HyperBO 能够泛化到异构搜索空间,为此我们正在通过预训练分层概率模型来开发新算法。

致谢

Google Research Brain Team 的以下成员进行了这项研究:Zi Wang、George E. Dahl、Kevin Swersky、Chansoo Lee、Zachary Nado、Justin Gilmer、Jasper Snoek 和 Zoubin Ghahramani。我们要感谢 Zelda Mariet 和 Matthias Feurer 在迁移学习基线方面提供的帮助和咨询。我们还要感谢 Rif A. Saurous 提供的建设性反馈,以及 Rodolphe Jenatton 和 David Belanger 对稿件先前版本的反馈。此外,我们还要感谢 Sharat Chikkerur、Ben Adlam、Balaji Lakshminarayanan、Fei Sha 和 Eytan Bakshy 提供的评论,以及 Setareh Ariafar 和 Alexander Terenin 对动画的讨论。最后,我们感谢 Tom Small 为这篇文章设计动画。

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论