5 ms·
BoTorch – Bayesian Optimization in PyTorch
- Pseudomanifold 3y agoThey missed a great opportunity to call this BloTorch (Bayesian Learning and Optimisation?) here, but I'm very excited to see such methods gaining more traction!
- elcomet 3y agoOr Borch
- _giorgio_ 3y agotoo long
- SubiculumCode 3y agoEver since you said this I only see blowtorch
- _ahxg 3y agoI've never used the library directly but it was quite usefull as a method for hyperparameter search on optuna (for choosing machine learning tuning parameters).
- capableweb 3y agoSame here, that's how I first came across it :) At current tests, it performs a lot better compared to other samplers and requires a lot less trials to find good hyperparameters.
- altell 3y agodid anyone used it for something other then hyperparameter tuning ?
- afp 3y agoIt's also very useful for simulation-based optimization. As an example, we use it extensively for the design of particle accelerators, where the simulations are typically expensive and need to run on supercomputers. We have built our own library[0] for enabling this, which in the end uses BoTorch (through Ax[1]) under the hood. [0]: https://github.com/optimas-org/optimas https://github.com/optimas-org/optimas [1]: https://ax.dev https://ax.dev
- fastneutron 3y agoWe built (internally) an engineering optimization framework on top of Botorch. Bayesian optimization is a great tool to have in the toolbox for mapping a design space and finding the limiting cases with fewer calls to the expensive physics-based solvers. The computational budget often winds up being 5-10x smaller than it would have been using traditional design-of-experiments sampling methods.
- agravier 3y agoWhat are you talking about? I understand the individual words but not the overall meaning.
- fastneutron 3y agoIf you’re not from a traditional engineering background, some of my terminology may have been confusing. Here’s a less jargon-heavy version: - We use Bayesian optimization to find the optimum (or worst-case) configuration of real manufactured objects and systems. - Bayesian optimization lets us arrive at that design configuration faster than explicit, physics-based simulation of many samples within the space of all possible configurations. - We built the framework to do that using Botorch. - It’s not an uncommon practice by any means, but the availability of tools like Botorch now makes it a lot easier to implement Bayesian optimization in-house, vs relying on a vendor-based engineering tool.
- afp 3y agoAre the tolerances of the optimum important in your case? (i.e., how sensitive it is to errors in the design parameters) If so, did you use any method to incorporate this information into the optimization?
- fastneutron 3y agoIt depends on the needs of the specific application. What typically happens is that you’d use BO to globally converge to within some tolerance and use the resulting surrogate to get a map of where the interesting regions are. You can then more densely sample these candidate regions or switch to a gradient-based method (via finite difference). For uncertainty information, we usually add this as a noise parameter, either on the input samples, or as part of the GP kernel.