Skip to content

Latest commit

 

History

History
executable file
·
80 lines (53 loc) · 3.24 KB

README.md

File metadata and controls

executable file
·
80 lines (53 loc) · 3.24 KB

Projective Preferential Bayesian Optimization

The repository contains a Python implementing of the method described in

Petrus Mikkola, Milica Todorović, Jari Järvi, Patrick Rinke, Samuel Kaski. (2020)
Projective Preferential Bayesian Optimization,
In Proceedings of the 37th International Conference on Machine Learning.
(ICML'20 proceedings, BibTeX, arXiv preprint)

Abstract:
Bayesian optimization is an effective method for finding extrema of a black-box function. We propose a new type of Bayesian optimization for learning user preferences in high-dimensional spaces. The central assumption is that the underlying objective function cannot be evaluated directly, but instead a minimizer along a projection can be queried, which we call a projective preferential query. The form of the query allows for feedback that is natural for a human to give, and which enables interaction. This is demonstrated in a user experiment in which the user feedback comes in the form of optimal position and orientation of a molecule adsorbing to a surface. We demonstrate that our framework is able to find a global minimum of a high-dimensional black-box function, which is an infeasible task for existing preferential Bayesian optimization frameworks that are based on pairwise comparisons.

Overview

Requirements

--- (Core library) ---

  • Python 3.7
  • numpy
  • pandas
  • scipy
  • sklearn
  • arspy
  • GPyOpt
  • matplotlib

--- (User experiment) ---

  • ase
  • notebook
  • nglview
  • ipywidgets
  • ipympl
  • jupyter_ui_poll

Instructions to experiment with Camphor/Cu(111)

The interface for eliciting the user preferneces over Camphor/Cu(111) test case described in the "User experiment" section of the paper.

Procedure - Linux

Clone the repository:
#> git clone https://github.com/AaltoPML/PPBO
or download from the link above as a zip file, and unpack it

Install python packages:
#> pip install -r requirements.txt

Run the jupyter notebook system
#> jupyter notebook

Find the Jupyter-notebook camphor-copper.ipynb, and click it.
In the notebook, click Screenshot_2020-05-22 Camphor-Copper - Jupyter Notebook!

Instructions to run numerical experiments

Run the numerical described in the "Numerical experiment" section of the paper. Please note that the numerical experiments may take a long time even in a computer with tens of CPUs.

Open ppbo_numerical_main.py
Set a correct working directory (wd = ...)
Uncomment the objective function you would like to run (e.g. env.run(six_hump_camel))
Run the script!

Contact

Work done in the Probabilistic Machine Learning research group at Aalto University.

Reference

  • Mikkola, P., Todorović, M., Järvi, J., Rinke, P., and Kaski, S. (2020). Projective Preferential Bayesian Optimization.

License

GPL v3, see LICENSE