机器学习 | 贝叶斯优化

机器学习 | 贝叶斯优化

在科学与工程领域,我们经常面临着需要优化某个目标函数的挑战。这个函数可能是一个复杂的黑箱,难以解析或者成本高昂。举个例子,我们可能希望在所有可能的药物组合中找到一种新药物,它对某个特定人群具有最佳的疗效。这个问题的解决方案之一就是贝叶斯优化(Bayesian Optimization)。

什么是贝叶斯优化?

贝叶斯优化是一种优化方法,通过在每一步中利用先前的观测结果来选择下一次评估的点,以尽可能地提高目标函数的值。它结合了贝叶斯统计模型和优化算法,能够在非凸、高维、噪声和有约束的情况下进行高效优化。

假设 f : X → Y f: \mathcal{X} \rightarrow \mathcal{Y} f:X→Y是一个函数,其分析上难以处理和/或评估代价很高。我们希望(不失一般性)找到 x ∗ = arg ⁡ max ⁡ x ∈ X f ( x ) x^* = \arg \max_{x \in \mathcal{X}} f(x) x∗=argmaxx∈Xf(x)

关键组成部分

贝叶斯优化的关键组成部分包括:

  1. 替代函数: 一个替代函数 g g g,它能够可靠地近似 f f f。它能够可靠地估计目标函数在未知区域的表现。

  2. 先验信念和似然: 贝叶斯优化利用先验信念和观测数据(可以看作一个关于 g g g的后验)来估计目标函数的后验分布。这个后验分布提供了对目标函数在不同区域的置信度估计,从而指导下一步的评估。

  3. 收集函数: 收集函数 α : X → R \alpha: \mathcal{X} \rightarrow \mathbb{R} α:X→R,它隐含地定义了一个策略,用于选择在哪个 x ∈ X x \in \mathcal{X} x∈X 上评估 f f f。常见的选择包括期望改进、上置信界和汤普森采样,它们在探索和利用之间进行权衡,以有效地搜索最优解。

替代函数的选择

关于 p ( g t ∣ D t ) p(g_t | D_t) p(gt∣Dt) 的实际选择是高斯过程(Gaussian processes,简称 GPs);尽管贝叶斯神经网络(Bayesian neural networks,简称 NNs)也越来越多地被使用。对于 GPs,对函数 f f f 的先验知识是通过核函数注入到贝叶斯优化中的。而对于基于神经网络的替代函数,相同的机制通过架构的选择,权重空间的先验,或者通过使用预训练的神经网络特征来完成。

收集函数的选择

收集函数的选择在于平衡探索未知区域和利用已有信息。期望改进通过计算期望的改进量来指导下一步的选择;上置信界选择在当前置信度下最有可能提高目标函数值的点;而汤普森采样则根据后验分布进行随机采样。

算法举例

序列模型优化(Sequential Model-Based Optimization,SMBO)是一种基于序列的优化方法,常用于解决黑箱优化问题。下面是SMBO算法的基本步骤:

  1. 初始化: 选择初始样本集 D 0 D_0 D0,通常为一组随机选择的样本点。

  2. 建模: 使用 D 0 D_0 D0 拟合初始模型。这可以是一个高斯过程、贝叶斯神经网络或其他适合问题的模型。

  3. 优化循环: 对于每一次迭代 t t t:

    • 收集数据: 使用当前模型 M t M_t Mt,通过选择一个合适的收集函数(如期望改进、上置信界或汤普森采样)来选择下一个样本点 x t x_t xt 进行评估。
    • 评估目标函数: 在选定的点 x t x_t xt 处评估目标函数,并观察其值 y t y_t yt。
    • 更新模型: 将新的观测数据 { x t , y t } \{x_t, y_t\} {xt,yt} 加入到训练数据集 D t = D t − 1 ∪ { ( x t , y t ) } D_t = D_{t-1} \cup \{(x_t, y_t)\} Dt=Dt−1∪{(xt,yt)} 中,并更新模型 M t M_t Mt。
  4. 终止条件: 当达到预先设定的迭代次数或满足某个收敛准则时,停止优化循环。

  5. 输出结果: 返回最优的样本点 x ∗ x^* x∗,即在目标函数中取得最大值的点。

SMBO算法的伪代码:

plaintext 复制代码
Input: 目标函数 f, 初始样本集 D_0, 模型选择方法, 收集函数选择方法, 迭代次数 T
Output: 最优样本点 x^*

for t = 1 to T do:
    1. 使用模型选择方法选择适当的模型 M_t,并在 D_{t-1} 上拟合模型。
    2. 使用收集函数选择方法选择下一个样本点 x_t。
    3. 在选定的点 x_t 处评估目标函数,并观察其值 y_t。
    4. 将观测数据 {x_t, y_t} 加入到训练数据集 D_t 中。
    5. 使用更新后的训练数据集 D_t 更新模型 M_t。
end for

返回最优样本点 x^*,即在目标函数中取得最大值的点。

SMBO算法通过不断迭代,利用模型进行智能的样本选择和模型更新,逐步提高对目标函数的拟合精度,最终找到近似最优解。

应用领域

贝叶斯优化在许多领域都有着广泛的应用,包括超参数优化、自动机器学习、材料科学、医药研发等。它在实验设计和优化问题上取得了显著的成就,并且随着技术的不断发展,其应用范围正在不断扩大。

贝叶斯优化是一个强大而灵活的工具,能够帮助我们在复杂的优化问题中快速找到最佳解。通过合理地选择替代函数和收集函数,以及利用先验知识和观测数据,贝叶斯优化为我们探索未知领域提供了一种高效而可靠的方法。

相关推荐
cloud studio AI应用1 分钟前
腾讯云 AI 代码助手:产品研发过程的思考和方法论
人工智能·云计算·腾讯云
禁默12 分钟前
第六届机器人、智能控制与人工智能国际学术会议(RICAI 2024)
人工智能·机器人·智能控制
Robot25120 分钟前
浅谈,华为切入具身智能赛道
人工智能
只怕自己不够好25 分钟前
OpenCV 图像运算全解析:加法、位运算(与、异或)在图像处理中的奇妙应用
图像处理·人工智能·opencv
果冻人工智能2 小时前
2025 年将颠覆商业的 8 大 AI 应用场景
人工智能·ai员工
代码不行的搬运工2 小时前
神经网络12-Time-Series Transformer (TST)模型
人工智能·神经网络·transformer
石小石Orz2 小时前
Three.js + AI:AI 算法生成 3D 萤火虫飞舞效果~
javascript·人工智能·算法
罗小罗同学2 小时前
医工交叉入门书籍分享:Transformer模型在机器学习领域的应用|个人观点·24-11-22
深度学习·机器学习·transformer
孤独且没人爱的纸鹤2 小时前
【深度学习】:从人工神经网络的基础原理到循环神经网络的先进技术,跨越智能算法的关键发展阶段及其未来趋势,探索技术进步与应用挑战
人工智能·python·深度学习·机器学习·ai
阿_旭2 小时前
TensorFlow构建CNN卷积神经网络模型的基本步骤:数据处理、模型构建、模型训练
人工智能·深度学习·cnn·tensorflow