Bayesian Adaptive Direct Search (BADS) 优化算法教程

Bayesian Adaptive Direct Search (BADS) 优化算法教程

bads Bayesian Adaptive Direct Search (BADS) optimization algorithm for model fitting in MATLAB 项目地址: https://gitcode.com/gh_mirrors/ba/bads

1. 项目介绍

Bayesian Adaptive Direct Search (BADS) 是一个快速混合贝叶斯优化算法,专门设计用于解决困难的优化问题,特别是与拟合计算模型(例如通过最大似然估计)相关的问题。BADS 最初在 NeurIPS 2017 上发表,并在行为、认知和神经模型拟合中得到了广泛测试,目前被全球许多计算实验室使用。

BADS 在处理无梯度信息且目标函数非解析或噪声(例如通过数值近似或模拟评估)的情况下表现出色。它不需要特定调整,可以直接运行,类似于 MATLAB 中的其他内置优化器,如 fminsearch

2. 项目快速启动

安装

  1. 下载最新版本的 BADS 作为 ZIP 文件。
  2. 解压或克隆仓库到你希望的位置。
  3. 运行 install.m 脚本,这将把 BADS 基础文件夹添加到 MATLAB 搜索路径。
  4. 运行 bads('test') 以检查是否一切正常。

基本使用

BADS 的接口类似于其他 MATLAB 优化器。以下是基本用法:

[X, FVAL] = bads(FUN, X0, LB, UB, PLB, PUB)
  • FUN: 目标函数句柄,通常是给定输入参数向量的数据和模型的负对数似然。
  • X0: 优化的起始点(行向量)。
  • LBUB: 硬性上下界。
  • PLBPUB: 合理上下界,即你期望找到几乎所有解决方案的盒子。

输出参数:

  • X: 找到的最优解。
  • FVAL: 在最优解处的(估计)函数值。

示例代码

以下是一个简单的示例代码:

% 定义目标函数
FUN = @(x) (1-x(1))^2 + 100*(x(2)-x(1)^2)^2;

% 设置初始点
X0 = [0, 0];

% 设置硬性上下界
LB = [-5, -5];
UB = [5, 5];

% 设置合理上下界
PLB = [-2, -2];
PUB = [2, 2];

% 运行 BADS 优化
[X, FVAL] = bads(FUN, X0, LB, UB, PLB, PUB);

% 输出结果
disp('最优解:');
disp(X);
disp('最优解处的函数值:');
disp(FVAL);

3. 应用案例和最佳实践

应用案例

BADS 已被广泛用于拟合行为、认知和神经模型。例如,在心理学实验中,BADS 可以用于优化实验参数以最大化被试的反应时间或准确性。在神经科学中,BADS 可以用于拟合神经元放电模型以解释实验数据。

最佳实践

  1. 多次运行:由于 BADS 是一种半局部优化算法,建议从多个不同的起始点运行算法以获得最佳性能。
  2. 合理上下界:合理上下界(PLBPUB)的设置非常重要,它们应该包含你期望找到的几乎所有解决方案。
  3. 调试和优化:如果遇到问题,可以查看 BADS 的 FAQ 或在 acerbilab 讨论论坛中提问。

4. 典型生态项目

Variational Bayesian Monte Carlo (VBMC)

VBMC 是一个用于贝叶斯后验和模型推断的工具箱,可以与 BADS 协同使用。VBMC 提供了一种简单且用户友好的方法来估计参数的后验分布(即不确定性和误差范围),而不仅仅是点估计。

PyBADS

PyBADS 是 BADS 的 Python 移植版本,预计将于 2022 年底发布。PyBADS 将使 BADS 的强大功能在 Python 生态系统中可用,进一步扩展其应用范围。


通过本教程,你应该能够快速上手使用 BADS 进行模型拟合和优化。如果你有任何问题或需要进一步的帮助,请参考 BADS 的官方文档或在 acerbilab 讨论论坛中提问。

bads Bayesian Adaptive Direct Search (BADS) optimization algorithm for model fitting in MATLAB 项目地址: https://gitcode.com/gh_mirrors/ba/bads

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

戴洵珠Gerald

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值