Skip to main content

Bayesian Optimization with Gaussian Process as surrogate model

Project description

GPGO - Gaussian Process GO

My own implementation of a Bayesian Black box Optimization with Gaussian Process as a surrogate model. It is still in development as I'm using it for my Master degree thesis to achieve a bottom up optimization of the Dissipative Particle Dynamics force field for a complex system of polymers chains functionalized gold nanoparticles in a water solvent.

Hyperparameters

The Hyperparameters of the GP are optimized by the common technique of maximizing the Log Marginal Likelihood. In this repository this is achieved by using a search grid (although not in an efficient way) or by using the scipy optimizer module (L-BFGS-B, TNC, SLSCP). The analytical gradient is implemented for the Radial Basis Function kernel and it is possible to use the derivate of the Log Marginal Likelihood to optimize the hyperparameters. Figure-6

Acquisition function

As it is there are two different acquisition function implemented right now:

-Expected Improvement (EI)

-UCB (Upper Confidence Bound)

Maximizing the Acquisition function

In this little package right now there are 3 ways to run an optimization task with Gaussian Processes:

-NAIVE : AkA sampling the acquisition function with a grid of some kind or a quasi random methods as LHS (require smt package)

-BFGS : optimize the Acquisition function by using the L-BFGS-B optimizer

-DIRECT : optimize the Acquisition function by using the DIRECT optimizer (require DIRECT python package) Figure-7

TODO

-Tutorials and Examples

-Good code practice maybe

-An integration with LAMMPS using the pyLammps routine

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

GPGO-0.1.2.tar.gz (25.5 kB view details)

Uploaded Source

File details

Details for the file GPGO-0.1.2.tar.gz.

File metadata

  • Download URL: GPGO-0.1.2.tar.gz
  • Upload date:
  • Size: 25.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0.post20200210 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.6

File hashes

Hashes for GPGO-0.1.2.tar.gz
Algorithm Hash digest
SHA256 21d270e85f2b05f095bf42a7bdc495107db82d99e403f97bd257c72b05548d49
MD5 7b8ec60f98661c96a86970c6eebb5dc8
BLAKE2b-256 601cae5ed1eeaf47f78cae8291448be1bc021ce92ef96b3263554771924ae5f8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page