机器学习 | 贝叶斯优化

机器学习 | 贝叶斯优化

在科学与工程领域,我们经常面临着需要优化某个目标函数的挑战。这个函数可能是一个复杂的黑箱,难以解析或者成本高昂。举个例子,我们可能希望在所有可能的药物组合中找到一种新药物,它对某个特定人群具有最佳的疗效。这个问题的解决方案之一就是贝叶斯优化(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算法通过不断迭代,利用模型进行智能的样本选择和模型更新,逐步提高对目标函数的拟合精度,最终找到近似最优解。

应用领域

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

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

相关推荐
迅易科技2 分钟前
借助腾讯云质检平台的新范式,做工业制造企业质检的“AI慧眼”
人工智能·视觉检测·制造
古希腊掌管学习的神1 小时前
[机器学习]XGBoost(3)——确定树的结构
人工智能·机器学习
ZHOU_WUYI1 小时前
4.metagpt中的软件公司智能体 (ProjectManager 角色)
人工智能·metagpt
靴子学长2 小时前
基于字节大模型的论文翻译(含免费源码)
人工智能·深度学习·nlp
AI_NEW_COME3 小时前
知识库管理系统可扩展性深度测评
人工智能
海棠AI实验室3 小时前
AI的进阶之路:从机器学习到深度学习的演变(一)
人工智能·深度学习·机器学习
hunteritself3 小时前
AI Weekly『12月16-22日』:OpenAI公布o3,谷歌发布首个推理模型,GitHub Copilot免费版上线!
人工智能·gpt·chatgpt·github·openai·copilot
IT古董4 小时前
【机器学习】机器学习的基本分类-强化学习-策略梯度(Policy Gradient,PG)
人工智能·机器学习·分类
centurysee4 小时前
【最佳实践】Anthropic:Agentic系统实践案例
人工智能
mahuifa4 小时前
混合开发环境---使用编程AI辅助开发Qt
人工智能·vscode·qt·qtcreator·编程ai