- Notifications
You must be signed in to change notification settings - Fork7
Entropy Search for Information-Efficient Global Optimization - JMLR v13
License
MethodsOfMachineLearning/entropy-search
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
VERSION 1.1 - March 2017
This repository contains a Matlab implementation and demonstration for the global optimizationalgorithm called Entropy Search, as described in the initialJMLR publication
- Philipp Hennig & Christian Schuler, 2011
- Robert Eisele, 2014-2015
- Edgar D. Klenske, 2017
An example script can be found inExampleSetup.m, it tries to find an optimum for the Rosenbrock function and plots the resulting Gaussian process afterwards.
From the Matlab subdirectory, you should be able to call
EntropySearch(in), where
in.covfunc = {@covSEard}; % GP kernel in.covfunc_dx = {@covSEard_dx_MD}; % derivative of GP kernel. You can use covSEard_dx_MD and covRQard_dx_MD if you use Carl's & Hannes' covSEard, covRQard, respectively. in.hyp = hyp; % hyperparameters, with fields .lik (noise level) and .cov (kernel hyperparameters), see documentation of the kernel functions for details. in.xmin = xmin; % lower bounds of rectangular search domain in.xmax = xmax; % upper bounds of rectangular search domain in.MaxEval = H; % Horizon (number of evaluations allowed) in.f = @(x) f(x) % handle to objective functionThat handle@f is obviously the core part of the problem. If you use this method for actual experimental design, use the "PhysicalExperiment" function handle, which simply prompts for user input at the selected locations.
- the Matlab optimization toolbox. If you do not have this, you can go through the code and replace calls to
fminconwithfminbnd(much less efficient), or with a call tominimize.m(which you can get fromhttp://www.gaussianprocess.org/gpml/code/matlab/util/minimize.m). But note that minimize does not automatically handle linear constraints. You can implement those naively by changing function handles such that they return+infwhenever evaluated outside the bounds.
All other dependencies (Eigen,logsumexp,tprod) are currently part of this repository.
Part by part, the code of Entropy Search will be replaced by cpp/mex implementations to achieve a considerable speedup. The Matlab version of the replaced code resides in theutil subdirectory, while the c++ implementation is incpp. To compile, run the scriptcompile_utilities.m. The mex-files take precedence over the Matlab implementation.
2011-2017 (c) Max Planck Society.Released under theMIT License.
About
Entropy Search for Information-Efficient Global Optimization - JMLR v13
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Contributors2
Uh oh!
There was an error while loading.Please reload this page.