BOSS

BOSS (Bayesian Optimization with Semiparametric Surrogate)

https://github.com/soldasim/boss.jl

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.9%) to scientific vocabulary

Keywords

bayesian-inference bayesian-optimization blackbox-optimization gaussian-processes julia optimization surrogate-based-optimization
Last synced: 4 months ago · JSON representation ·

Repository

BOSS (Bayesian Optimization with Semiparametric Surrogate)

Basic Info
  • Host: GitHub
  • Owner: soldasim
  • License: mit
  • Language: Julia
  • Default Branch: master
  • Homepage:
  • Size: 3.29 MB
Statistics
  • Stars: 5
  • Watchers: 2
  • Forks: 1
  • Open Issues: 15
  • Releases: 12
Topics
bayesian-inference bayesian-optimization blackbox-optimization gaussian-processes julia optimization surrogate-based-optimization
Created over 3 years ago · Last pushed 4 months ago
Metadata Files
Readme License Citation Codeowners

README.md

Stable

BOSS (Bayesian Optimization with Semiparametric Surrogate)

BOSS stands for "Bayesian Optimization with Semiparametric Surrogate". BOSS.jl is a Julia package for Bayesian optimization. It provides a straight-forward way to define a BO problem, a surrogate model, and an acquisition function. It allows changing the algorithms used for the subtasks of estimating the model parameters and optimizing the acquisition function. Simple interfaces are defined for the use of custom surrogate models, acquisition functions, and algorithms for the subtasks. Therefore, the package is easily extendable and can be used as a practical skeleton for implementing other BO approaches.

See the documentation for more information about BOSS.jl.

See [1] for more information about Bayesian optimization.

Problem Definition

The problem is defined as follows:

There is some (possibly noisy) blackbox function y = f(x) = f_true(x) + ϵ where ϵ ~ Normal.

We have some surrogate model y = model(x) ≈ f_true(x) describing our limited knowledge about the blackbox function.

We wish to find x ∈ domain such that fitness(f(x)) is maximized while satisfying the constraints f(x) < y_max.

The Surrogate Model

BOSS can be used with purely parametric models, Gaussian Processes, or with a semiparametric models combining the two previous models by supplying the parametric model as the mean of the GP. Alternatively, any custom surrogate model can be defined by extending the SurrogateModel type.

Algorithms

BOSS allows defining custom algorithms for the substeps of model parameter estimation and acquisition function maximization. Both MAP estimation of model parameters and Bayesian inference (BI) via sampling are supported.

Use the OptimizationMAP model fitter for MAP estimation via the Optimization.jl library. Use the TuringBI model fitter for BI sampling via the Turing.jl library. See other available ModelFitters in the documentation.

Use the OptimizationAM for acquisition maximization via the Optimization.jl library. See other available AcquisitionMaximizers in the documentation.

BOSS also provides a simple interface for the use of other custom alagorithms/libraries for model parameter estimation and/or acquisition maximization by extending the abstract types ModelFitter and AcquisitionMaximizer.

Examples

See the documentation for example usage.

Plotting

A simple plotting script is provided to visualize the optimization process using the Plots.jl package. Use the PlotCallback to utilize this feature. Only problems with one-dimensional input domains are supported for plotting.

References

[1] Bobak Shahriari et al. “Taking the human out of the loop: A review of Bayesian optimization”. In: Proceedings of the IEEE 104.1 (2015), pp. 148–175

Citation

If you use this software, please cite it using provided CITATION.cff file.

Owner

  • Name: Šimon Soldát
  • Login: soldasim
  • Kind: user

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: >-
  BOSS.jl (Bayesian Optimization with Semiparametric
  Surrogate)
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Šimon
    family-names: Soldát
    email: soldasim@fel.cvut.cz
repository-code: 'https://github.com/soldasim/BOSS.jl'
abstract: >-
  BOSS.jl is a Julia package for Bayesian optimization. It
  provides a compact way to define an optimization problem
  and a surrogate model, and solve the problem. It allows
  changing the hyperparameters of the underlying algorithms,
  and provides a simple interface to use custom algorithms
  for the subtasks of fitting the model parameters and
  optimizing the acquisition function.
keywords:
  - Bayesian optimization
  - julia
  - optimization
  - blackbox optimization
  - surrogate model
  - Gaussian process
license: MIT

GitHub Events

Total
  • Create event: 14
  • Commit comment event: 13
  • Issues event: 19
  • Release event: 8
  • Watch event: 4
  • Delete event: 4
  • Issue comment event: 30
  • Push event: 261
  • Pull request event: 35
Last Year
  • Create event: 14
  • Commit comment event: 13
  • Issues event: 19
  • Release event: 8
  • Watch event: 4
  • Delete event: 4
  • Issue comment event: 30
  • Push event: 261
  • Pull request event: 35

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 48
  • Total pull requests: 40
  • Average time to close issues: 3 months
  • Average time to close pull requests: 13 days
  • Total issue authors: 4
  • Total pull request authors: 3
  • Average comments per issue: 1.0
  • Average comments per pull request: 0.63
  • Merged pull requests: 24
  • Bot issues: 0
  • Bot pull requests: 20
Past Year
  • Issues: 13
  • Pull requests: 30
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 15 days
  • Issue authors: 3
  • Pull request authors: 3
  • Average comments per issue: 0.54
  • Average comments per pull request: 0.77
  • Merged pull requests: 16
  • Bot issues: 0
  • Bot pull requests: 13
Top Authors
Issue Authors
  • soldasim (45)
  • github-actions[bot] (1)
  • alstat (1)
  • JuliaTagBot (1)
  • ngiann (1)
Pull Request Authors
  • soldasim (25)
  • github-actions[bot] (16)
  • dependabot[bot] (9)
Top Labels
Issue Labels
Pull Request Labels
dependencies (9) github_actions (1)

Packages

  • Total packages: 1
  • Total downloads:
    • julia 5 total
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 12
juliahub.com: BOSS

BOSS (Bayesian Optimization with Semiparametric Surrogate)

  • Versions: 12
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 5 Total
Rankings
Dependent repos count: 3.2%
Downloads: 3.7%
Average: 7.7%
Dependent packages count: 16.3%
Last synced: 4 months ago

Dependencies

.github/workflows/CI.yml actions
  • actions/checkout v4 composite
  • julia-actions/cache v1 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-runtest v1 composite
  • julia-actions/setup-julia v1 composite