Skip to content

nttcslab/floor-padding-BO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Paper

Paper is here: https://doi.org/10.1038/s41524-022-00859-8

Cite the following article to refer to this work.

@article{wo-npjcm2022,
  title = {{Bayesian} Optimization with Experimental Failure for High-Throughput Materials Growth},
  author = {Yuki K. Wakabayashi and Takuma Otsuka and Yoshiharu Krockenberger and Hiroshi Sawada and Yoshitaka Taniyasu and Hideki Yamamoto},
  journal = {npj Computational Materials},
  volume = {8},
  number = {180},
  doi = {10.1038/s41524-022-00859-8},
  year = {2022}
}

How to run

Use run_BO.py to carry out BO and display the result.

  1. Example 1: method F

$ python run_BO.py --num 100 --init 5 --run 3 --obj circle executes BO until having 100 observations with 5 initial observations for 3 times to average the results.

  1. Example 2: @0

$ python run_BO.py --floor 0

--floor {value} option specifies the constant value to replace failed observations. By default, floor padding trick is employed.

  1. Example 3: other objective functions

$ python run_BO.py --obj hole runs experiment with the Hole function.

  1. Example 4: put Gaussian observation noise

$ python run_BO.py --alpha 0.005 adds a Gaussian noise to the observation with its variance being 0.005.

  1. Example 5: use binary classifier

$ python run_BO.py --binary --obj hole runs method FB.

Add --binary to enable the binary classifier. Can be combined with --floor option. For example, --binary --floor 0 runs B@0.

Software version

Codes are confirmed to run with the following libraries. Likely to be compatible with newer versions.

  • python: 3.7.9
  • numpy: 1.19.2
  • scipy: 1.5.2
  • sklearn: 1.0.2
  • torch: 1.8.1
  • gpytorch: 1.5.1
  • matplotlib: 3.5.0

Files

  • README.md: This file.
  • LICENSE.md: Document of agreement for using this sample code. Read this carefully before using the code.
  • run_BO.py: Script to execute BO sequence.
  • BO_core.py: Implements BO class.
  • obj_func.py: Implements objective functions.
  • visualize.py: Contains some functions to plot optimization results.
  • lhsmdu.py: Latin hypercube sampling package for acquisition function. Repository: https://dx.doi.org/10.5281/zenodo.2578780 Paper:http://dx.doi.org/10.1016%2Fj.jspi.2011.09.016

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages