All Projects → zi-w → Max-value-Entropy-Search

zi-w / Max-value-Entropy-Search

Licence: MIT License
Max-value Entropy Search for Efficient Bayesian Optimization

Programming Languages

matlab
3953 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Max-value-Entropy-Search

Pysot
Surrogate Optimization Toolbox for Python
Stars: ✭ 136 (+216.28%)
Mutual labels:  optimization, gaussian-processes
Bayesianoptimization
A Python implementation of global optimization with gaussian processes.
Stars: ✭ 5,611 (+12948.84%)
Mutual labels:  optimization, gaussian-processes
Cornell Moe
A Python library for the state-of-the-art Bayesian optimization algorithms, with the core implemented in C++.
Stars: ✭ 198 (+360.47%)
Mutual labels:  optimization, gaussian-processes
Safeopt
Safe Bayesian Optimization
Stars: ✭ 90 (+109.3%)
Mutual labels:  optimization, gaussian-processes
Bayesian Optimization
Python code for bayesian optimization using Gaussian processes
Stars: ✭ 245 (+469.77%)
Mutual labels:  optimization, gaussian-processes
qpmad
ROS-compatible Eigen-based Goldfarb-Idnani quadratic programming solver
Stars: ✭ 41 (-4.65%)
Mutual labels:  optimization
periodicity
Useful tools for periodicity analysis in time series data.
Stars: ✭ 15 (-65.12%)
Mutual labels:  gaussian-processes
toy code
No description or website provided.
Stars: ✭ 78 (+81.4%)
Mutual labels:  optimization
gibbous
Convex optimization for java and scala, built on Apache Commons Math
Stars: ✭ 17 (-60.47%)
Mutual labels:  optimization
Network-Distributed-Algorithm
Experiments for distributed optimization algorithms
Stars: ✭ 29 (-32.56%)
Mutual labels:  optimization
pytorch-minimal-gaussian-process
A minimal implementation of Gaussian process regression in PyTorch
Stars: ✭ 32 (-25.58%)
Mutual labels:  gaussian-processes
bio ik
MoveIt kinematics_base plugin based on particle optimization & GA
Stars: ✭ 104 (+141.86%)
Mutual labels:  optimization
awesome-go-perf
A curated list of Awesome Go performance libraries and tools
Stars: ✭ 232 (+439.53%)
Mutual labels:  optimization
yoga-image-optimizer
A graphical tool to convert and optimize JPEG, PNG and WebP images (based on YOGA)
Stars: ✭ 85 (+97.67%)
Mutual labels:  optimization
Ftrl-FFM
Field-aware factorization machine (FFM) with FTRL
Stars: ✭ 25 (-41.86%)
Mutual labels:  optimization
autogoal
A Python framework for program synthesis with a focus on Automated Machine Learning.
Stars: ✭ 153 (+255.81%)
Mutual labels:  optimization
models
Forecasting 🇫🇷 elections with Bayesian statistics 🥳
Stars: ✭ 24 (-44.19%)
Mutual labels:  gaussian-processes
dmipy
The open source toolbox for reproducible diffusion MRI-based microstructure estimation
Stars: ✭ 58 (+34.88%)
Mutual labels:  optimization
tungsten
Bring fusion to everyone
Stars: ✭ 13 (-69.77%)
Mutual labels:  optimization
k2sc
K2 systematics correction using Gaussian processes
Stars: ✭ 15 (-65.12%)
Mutual labels:  gaussian-processes

Max-value Entropy Search

This is the MATLAB code repository associated with the paper Max-value Entropy Search for Efficient Bayesian Optimization. We propose a new Bayesian optimization technique called Max-value Entropy Search, which maximizes the multual information between the selected future observations and the max-value of the function. Please refer to the paper if you need more details on the algorithm.

We developed our code building upon some basic Gaussian process functionals from predictive entropy search (Hernandez-Lobato et al., 2014), which was developed upon GPstuff (Vanhatalo et al., 2013).

If you have any question, please create an issue here and remind me via email [email protected] if no reply in a week.

System Requirement

We tested our code with MATLAB R2015b on Ubuntu 14.04 LTS (64-bit). Our code should work out of box without installing additional packages. However, please make sure you installed the GNU Scientific Library (GSL). On Ubuntu, you can install GSL by

sudo apt-get install libgsl0-dev

In MATLAB command line, you can mex the c files, for example, by

mex chol2invchol.c -lgsl -lblas

To run Box2D related code in test-functions/robot-pushing/, please install Pybox2d.

Example

example.m is a simple example using Bayesian optimization to maximize a black-box function. Please see the comments in the code for more details about the usage.

gpopt.m is the function for Bayesian optimization with Gaussian processes.

add_gpopt.m is the function for Bayesian optimization with additive Gaussian processes, and is more suitable for high dimensional problems.

Method Options

In addition to the proposed Max-value Entropy Search method, we also provide several other popular Bayesian optimization methods for the convenience of other researchers. The following is a full list of Bayesian optimization methods that are implemented in this repository.

  1. Max-value Entropy Search with Gumbel sampling (MES-G) by Wang & Jegelka, 2017;
  2. Max-value Entropy Search with random features (MES-R) by Wang & Jegelka, 2017;
  3. Optimization as estimation (EST) by Wang et al., 2016.
  4. Gaussian process upper confidence bound (GP-UCB) by Auer, 2002; Srinivas et al., 2010;
  5. Probability of improvement (PI) by Kushner, 1964;
  6. Expected improvement (EI) by Mockus, 1974

In the paper, we also used the open sourced code from entropy search (Hennig & Schuler, 2012) and predictive entropy search (Hernández-Lobato et al., 2014) to compare with our method.

For high dimensional Bayesian optimization with additive Gausian processes, we implemented

  1. Add-MES-G by Wang & Jegelka, 2017;
  2. Add-MES-R by Wang & Jegelka, 2017;
  3. Add-EST by Wang & Jegelka, 2017;
  4. Add-GP-UCB by Kandasamy et al., 2015.

Our strategy for learning the Gaussian process additive structure is based on Wang et al., 2017.

Example functionals for optimization

In test_functions/, we provide some functionals one can use to test Bayesian optimization algorithms.

  1. Approximated functions sampled from Gaussian processes: sample_GPprior.m, sample_addGP.m.
  2. Optimization test functions: egg.m, michNf.m, shekelMf.m.
  3. Tuning hyper-parameters for neural networks: nnet_boston.m, nnet_cancer.m.
  4. Active learning for robot pushing: robot_pushing_3.m, robot_pushing_4.m, two_robot_pushing.m.
  5. Tuning the walking speed of a planar bipedal robot: walker_speed.m (Westervelt el al., 2007).

Citation

Please cite our work if you would like to use the code.

@inproceedings{wang2017maxvalue,
  title={Max-value Entropy Search for Efficient Bayesian Optimization},
  author={Wang, Zi and Jegelka, Stefanie},
  booktitle={International Conference on Machine Learning (ICML)},
  year={2017}
}

References

  • Wang, Zi and Jegelka, Stefanie. Max-value Entropy Search for Efficient Bayesian Optimization. International Conference on Machine Learning (ICML), 2017.
  • Auer, Peter. Using confidence bounds for exploitationexploration tradeoffs. Journal of Machine Learning Research, 3:397–422, 2002.
  • Srinivas, Niranjan, Krause, Andreas, Kakade, Sham M, and Seeger, Matthias. Gaussian process optimization in the bandit setting: No regret and experimental design. In International Conference on Machine Learning (ICML), 2010.
  • Kushner, Harold J. A new method of locating the maximum point of an arbitrary multipeak curve in the presence of noise. Journal of Fluids Engineering, 86(1):97–106, 1964.
  • Mockus, J. On Bayesian methods for seeking the extremum. In Optimization Techniques IFIP Technical Conference, 1974.
  • Wang, Zi, Zhou, Bolei, and Jegelka, Stefanie. Optimization as estimation with Gaussian processes in bandit settings. In International Conference on Artificial Intelligence and Statistics (AISTATS), 2016.
  • Catto, Erin. Box2d, a 2D physics engine for games. http://box2d.org, 2011.
  • Pybox2d, 2D Game Physics for Python. http://github.com/pybox2d/pybox2d.
  • Hernández-Lobato, José Miguel, Hoffman, Matthew W, and Ghahramani, Zoubin. Predictive entropy search for efficient global optimization of black-box functions. In Advances in Neural Information Processing Systems (NIPS), 2014. https://bitbucket.org/jmh233/codepesnips2014
  • Hennig, Philipp and Schuler, Christian J. Entropy search for information-efficient global optimization. Journal of Machine Learning Research, 13:1809–1837, 2012. http://www.probabilistic-optimization.org/Global.html
  • Jarno Vanhatalo, Jaakko Riihimäki, Jouni Hartikainen, Pasi Jylänki, Ville Tolvanen, Aki Vehtari. GPstuff: Bayesian Modeling with Gaussian Processes. Journal of Machine Learning Research, 14(Apr):1175-1179, 2013.
  • Kandasamy, Kirthevasan, Schneider, Jeff, and Poczos, Barnabas. High dimensional Bayesian optimisation and bandits via additive models. In International Conference on Machine Learning (ICML), 2015.
  • Wang, Zi, Li, Chengtao, Jegelka, Stefanie, and Kohli, Pushmeet. Batched High-dimensional Bayesian Optimization via Structural Kernel Learning. International Conference on Machine Learning (ICML), 2017.
  • Westervelt, Eric R, Grizzle, Jessy W, Chevallereau, Christine, Choi, Jun Ho, and Morris, Benjamin. Feedback control of dynamic bipedal robot locomotion, volume 28. CRC press, 2007.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].