A Bayesian optimization software package for automatically running experiments to minimize an objective in as few runs as possible.
Spearmint is a software package for performing Bayesian optimization, a method for optimizing expensive black-box functions. It automates the process of running experiments by intelligently selecting parameter sets to evaluate, aiming to find the optimal configuration in as few iterations as possible. This is particularly useful for tasks like tuning hyperparameters in machine learning models where each evaluation is computationally costly.
Researchers, data scientists, and machine learning engineers who need to optimize complex, expensive functions, such as hyperparameters for neural networks or other iterative experimental processes.
Developers choose Spearmint because it implements state-of-the-art Bayesian optimization algorithms from peer-reviewed research, offers automated and efficient experiment management, and reduces the number of costly function evaluations needed to find optimal solutions compared to naive methods like grid search.
Spearmint Bayesian optimization codebase
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements state-of-the-art Bayesian optimization algorithms from peer-reviewed research, such as multi-task optimization and handling unknown constraints, as cited in the README publications.
Iteratively adjusts parameters to minimize objectives in as few runs as possible, reducing computational costs for expensive-to-evaluate functions like hyperparameter tuning.
Configurable support for both noisy and noise-free objective functions, allowing precise control over experimental setups, as mentioned in the config file examples.
Uses MongoDB for storing and managing experiment data, providing a structured, scalable way to track results and resume optimizations.
Limited to academic and non-commercial research use, requiring a separate license for commercial applications, which hinders adoption in industry settings.
Depends on Python 2.7 and numpy 1.8 or higher, which are outdated and may cause compatibility issues with modern Python ecosystems and libraries.
Requires installation and configuration of MongoDB alongside multiple Python packages, adding significant setup time and complexity compared to lighter alternatives.