MetaBox
MetaBox copied to clipboard
MetaBox: A Benchmark Platform for Meta-Black-Box Optimization with Reinforcement Learning (https://arxiv.org/abs/2310.08252)
MetaBox: A Benchmark Platform for Meta-Black-Box Optimization with Reinforcement Learning
MetaBox is the first benchmark platform expressly tailored for developing and evaluating MetaBBO-RL methods. MetaBox offers a flexible algorithmic template that allows users to effortlessly implement their unique designs within the platform. Moreover, it provides a broad spectrum of over 300 problem instances, collected from synthetic to realistic scenarios, and an extensive library of 19 baseline methods, including both traditional black-box optimizers and recent MetaBBO-RL methods. Besides, MetaBox introduces three standardized performance metrics, enabling a more thorough assessment of the methods.
Installations
You can access all MetaBox files with the command:
git clone [email protected]:GMC-DRL/MetaBox.git
cd MetaBox
Citing MetaBox
The PDF version of the paper is available here. If you find our MetaBox useful, please cite it in your publications or projects.
@inproceedings{metabox,
author={Ma, Zeyuan and Guo, Hongshu and Chen, Jiacheng and Li, Zhenrui and Peng, Guojun and Gong, Yue-Jiao and Ma, Yining and Cao, Zhiguang},
title={MetaBox: A Benchmark Platform for Meta-Black-Box Optimization with Reinforcement Learning},
booktitle = {Advances in Neural Information Processing Systems},
year={2023},
volume = {36}
}
Requirements
Python >=3.7.1 with the following packages installed:
numpy==1.21.2torch==1.9.0matplotlib==3.4.3pandas==1.3.3scipy==1.7.1scikit_optimize==0.9.0deap==1.3.3tqdm==4.62.3openpyxl==3.1.2
Quick Start
-
To obtain the figures in our paper, run the following commands:
cd for_review python paper_experiment.pythen corresponding figures will be output to
for_revivew/pics.
The quick usage of the four main running interfaces is listed as follows, in the following command, we specifically take
RLEPSOas an example.Firstly, get into the main code folder, src:
cd ../src -
To trigger the entire workflow, including train, rollout and test, run the following command:
python main.py --run_experiment --problem bbob --difficulty easy --train_agent RLEPSO_Agent --train_optimizer RLEPSO_Optimizer -
To trigger the standalone process of training:
python main.py --train --problem bbob --difficulty easy --train_agent RLEPSO_Agent --train_optimizer RLEPSO_Optimizer -
To trigger the standalone process of testing:
python main.py --test --problem bbob --difficulty easy --agent_load_dir agent_model/test/bbob_easy/ --agent_for_cp RLEPSO_Agent --l_optimizer_for_cp RLEPSO_Optimizer --t_optimizer_for_cp DEAP_CMAES Random_search
Documentation
For more details about the usage of MetaBox, please refer to MetaBox User's Guide.
Datasets
At present, three benchmark suites are integrated in MetaBox:
Syntheticcontains 24 noiseless functions, borrowed from coco:bbob with original paper.Noisy-Syntheticcontains 30 noisy functions, borrowed from coco:bbob-noisy with original paper.Protein-Dockingcontains 280 problem instances, which simulate the application of protein docking as a 12-dimensional optimization problem, borrowed from LOIS with original paper.
Baseline Library
7 MetaBBO-RL optimizers, 1 MetaBBO-SL optimizer and 11 classic optimizers have been integrated into MetaBox. They are listed below.
Supported MetaBBO-RL optimizers:
Supported MetaBBO-SL optimizer:
| Name | Year | Related paper |
|---|---|---|
| RNN-OI | 2017 | Learning to learn without gradient descent by gradient descent |
Supported classic optimizers:
Note that Random Search is to randomly sample candidate solutions from the searching space.
Post-processing
In a bid to illustrate the utility of MetaBox for facilitating rigorous evaluation and in-depth analysis, as mentioned in our paper, we carry out a wide-ranging benchmarking study on existing MetaBBO-RL methods. The post-processed data is available in content.md.
Acknowledgements
The code and the framework are based on the repos DEAP, coco and Protein-protein docking V4.0.