Recent Releases of BOSS
BOSS - v0.5.1
BOSS v0.5.1
Release Notes
New Features
- Add
NonstationaryGPsurrogate model. - Add
NormalizedData, which automatically scales the output data with new evaluations.
Other Changes
- Turn off parallelization in the example to avoid poor user experience (https://github.com/soldasim/BOSS.jl/issues/77).
- Improve hyperparameter priors in the example to fix numerical issues during Turing.jl sampling.
- Julia
Published by github-actions[bot] 9 months ago
BOSS - v0.5.0
BOSS v0.5.0
Release Notes
New Features
- Added
static_schedulekwarg for different optimizers (parameter estimator and acquisition maximizers). - Reworked model posterior API that offers more functionalities and is more computationally efficient in certain situations. See the "Breaking Changes" below.
Breaking Changes
New Model Posterior API
The model posterior API is completely reworked and now offers more functionality. The model_posterior and model_posterior_slice functions now return instances of new ModelPosterior and ModelPosteriorSlice types. These types then implement the functions mean, std, var, cov, mean_and_std, mean_and_var, mean_and_cov; which can be used to obtain different quantities of the posterior predictive distribution.
Importantly, the new implementation allows for batch evaluation of multiple points provided in a matrix. This is significantly more efficient especially in the case of the GaussianProcess model.
See the docstrings in the REPL (i.e. ? model_posterior and ? ModelPosterior) for more information.
- Julia
Published by github-actions[bot] 11 months ago
BOSS - v0.4.0
BOSS v0.4.0
Release Notes
New Features:
- Reworked the
SurrogateModelAPI to be much more flexible. Relevant for implementing custom surrogate models. TuringBInow works with anySurrogateModelout of the box. (And the sampling seems to be much faster as well.)
Breaking Changes:
AcquisitionFunction is now defined as a kwarg of BossProblem instead of a kwarg of bo!.
The SurrogateModel API is changed. This is mainly relevant to implementing custom surrogate models. The end-user functions (such as model_posterior(::BossProblem)) behave exactly the same.
Model parameters are moved from ExperimentData to a standalone field of BossProblem called params. See ModelParams, FittedParams and their subtypes. You can now obtain fitted model parameters by calling get_params(::BossProblem), which will either return a single MAP ModelParams instance or a vector of ModelParams samples.
The ExperimentDataPrior, ExperimentDataPost, ExperimentDataMAP, ExperimentDataBI types are removed. Now there is only a single ExperimentData type containing the input and output matrices X, Y. To determine whether the current model parameters are consistent (i.e. fitted to the current data), one can use is_consistent(::BossProblem).
Deprecations:
The following symbols and keywords have been renamed. The old ones will still work but show a deprecation warning.
ExperimentDataPrior-->ExperimentDataLinModel-->LinearModelNonlinModel-->NonlinearModelRandomMAP-->RandomFitter
GaussianProcess keywords:
- length_scale_priors --> lengthscale_priors
- amp_priors --> amplitude_priors
Other:
- Major src restructure.
Closed issues:
- Move CI testing to Linux (#14)
- BOSS.devectorize_params seems to be very slow (#16)
- Non-constant Constraint in Domain (#69)
- Julia
Published by github-actions[bot] about 1 year ago
BOSS - v0.3.3
BOSS v0.3.3
New Features:
- Add new "toy" acquisition maximizers GivenPointAM and GivenSequenceAM.
- Move the TuringBI model fitter into an extension TuringExt with a weak dependency on Turing.jl. (Turing.jl is no longer a strong dependency of BOSS.jl.)
- Add a new exported utility function calc_inverse_gamma.
Bugfixes:
- Small negative predictive variances returned by the GP model are now clipped to zero fixing some rare DomainError issues.
Other: - Update dependencies. - Code maintenance.
Merged pull requests: - v0.3.3 (#59) (@soldasim)
Closed issues:
- Reimplement constructors using @kwdef (#51)
- Use inverse Gamma priors in the example (#53)
- Move TuringBI to an extension (#57)
- Get rid of unnecessary BOSS.SomeType specifications (#58)
- Julia
Published by github-actions[bot] over 1 year ago
BOSS - v0.3.0
BOSS v0.3.0
Breaking Changes
The signature of the posterior function obtained by calling post = model_posterior(::BossProblem) has been changed.
The behavior when evaluating the posterior for a single point x remains unchanged: post(x::AbstractVector{<:Real}) -> means::AbstractVector{<:Real}, stds::AbstractVector{<:Real}
However, when evaluated with a collection of points X (as a column-wise matrix), the posterior now returns the full covariance matrices for each output dimension: post(X::AbstractMatrix{<:Real}) -> means::AbstractMatrix{<:Real}, covs::AbstractArray{<:Real, 3}
See ? model_posterior for more info.
New Features
Bugfixes
Merged pull requests: - BOSS v0.3.0 (#48) (@soldasim)
Closed issues:
- NUTS sampler broken (#7)
- BOSS compilation warnings (#8)
- Remove NewuoaMLE, CobylaAM, NLoptAM (#31)
- Rename MLE model fit to MAP (#36)
- Julia
Published by github-actions[bot] over 1 year ago
BOSS - v0.2.0
BOSS v0.2.0
Changes from 0.1.0 to 0.2.0:
- major code & types refactoring
- refactor combinatorial testing
- posterior function obtained from model_posterior now supports matrix input for evaluation of multiple points
- add model_posterior_slice public function
- add SampleOptMAP model fitter
- add SamplingAM and SampleOptAM acquisition maximizers
- refactor OptimizationMAP to optimize hyperparameters for each output dimension separately if possible
- up Julia
- up Turing.jl
Breaking Changes:
- Some types were refactored. This includes: BossProblem, all subtypes of ExperimentData, all subtypes of SurrogateModel.
- The noise_std_priors hyperparameter is now defined as a part of the SurrogateModel. (Previously was a part of BossProblem.)
Closed issues: - Register BOSS.jl (#37)
- Julia
Published by github-actions[bot] over 1 year ago
BOSS - v0.1.0
BOSS v0.1.0
Merged pull requests: - Complete code refactor (#1) (@soldasim) - fix autodiff in acq optimization (#3) (@soldasim) - fix autodiff of 'DiscreteKernel' (#5) (@soldasim) - Bump julia-actions/setup-julia from 1 to 2 (#30) (@dependabot[bot]) - Bump julia-actions/cache from 1 to 2 (#33) (@dependabot[bot]) - Bump julia-actions/cache from 1 to 2 (#38) (@dependabot[bot]) - Bump julia-actions/setup-julia from 1 to 2 (#39) (@dependabot[bot]) - update docs (#40) (@soldasim)
Closed issues:
- Automatic differentiation fails if y_max contains Infs (#2)
- AutoDiff fails with specific domains (#4)
- Remove dependencies to optimization packages (#6)
- Move noise variance from Problem to Model (#11)
- Finish unit tests (#12)
- SamplingMLE ignores Diracs (#13)
- Rename abstract types to Abstract... (#20)
- Create a common template for MLE optimizers (#23)
- OptimizationPRIMA errors with AutoForwardDiff (#28)
- Rework noise variance priors into noise std priors (#29)
- Refactor GP amplitude hyperparam (#32)
- Check termination conditions after re-fitting the model. (#34)
- Julia
Published by github-actions[bot] almost 2 years ago