机器学习 | 贝叶斯优化

机器学习 | 贝叶斯优化

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

什么是贝叶斯优化?

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

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

关键组成部分

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

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

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

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

替代函数的选择

关于 p ( g t ∣ D t ) p(g_t | D_t) p(gtDt) 的实际选择是高斯过程(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=Dt1{(xt,yt)} 中,并更新模型 M t M_t Mt
  4. 终止条件: 当达到预先设定的迭代次数或满足某个收敛准则时,停止优化循环。

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

SMBO算法的伪代码:

在这里插入图片描述

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

应用领域

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

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

  • 19
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值