A Tutorial Review of Bayesian Optimization with Gaussian Processes to Accelerate Stationary Point Searches
Organizations: Institute IMX and Lab-COSMO, École polytechnique fédérale de Lausanne · Institute IMX and Lab-COSMO, École polytechnique fédérale de Lausanne (EPFL), Station 12, CH-1015 Lausanne, Switzerland
Abstract
Building local surrogates to accelerate stationary point searches on potential energy surfaces spans decades of effort. Done correctly, surrogates can reduce the number of expensive electronic structure evaluations by roughly an order of magnitude while preserving the accuracy of the underlying theory, with the gain depending on oracle cost, search distance, and the availability of analytical forces. We present a unified Bayesian optimization view of minimization, single-point saddle searches, and double-ended path searches: all three share one six-step surrogate loop and differ only in the inner optimization target and the acquisition criterion. The framework uses Gaussian process regression with derivative observations, inverse-distance kernels, and active learning, and we develop optional extensions for production use, including farthest-point sampling with the Earth Mover's Distance, MAP regularization, an adaptive trust radius, and random Fourier features for scaling. Accompanying pedagogical Rust code demonstrates that all three applications use the same Bayesian optimization loop, bridging the gap between theoretical formulation and practical execution.
Figures & tables
| Step | Minimization | GP-dimer | GP-NEB |
|---|---|---|---|
| 1. Select subset | Global FPS | Global FPS | Per-bead FPS |
| 2. Train | SCG on MAP | SCG on MAP | SCG on MAP |
| 3. Build model | Exact/RFF | Exact/RFF | Exact/RFF |
| 4. Inner optimization | L-BFGS | CG rotate + L-BFGS | NEB relaxation |
| 5. Trust clip | EMD/Euclidean | EMD | EMD |
| 6. Acquisition | Implicit | Implicit | MaxVariance/UCB (OIE) or exhaustive (AIE) |
| Method | Mode | Selection Criterion | Calls/iter |
|---|---|---|---|
| GP-minimization | Implicit | Trust-clipped step | 1 |
| GP-dimer | Implicit | Trust-clipped step | 1 |
| GP-NEB OIE | Explicit | MaxVariance or UCB | 1 |
| GP-NEB AIE | Exhaustive | All images |
Appendix figures & tables5 assets
Supplementary material from the paper’s appendix.
Appendix
| Parameter | Default | Meaning |
| Kernel | ||
| 1.0 | Constant offset (eV-scale energies); set to 0.0 for centered model surfaces | |
| Free (MLL) | Signal variance (optimized via MAP-NLL) | |
| Free (MLL) | Inverse-distance length scales (per atom-type pair, optimized) | |
| Noise and Regularization | ||
| Energy noise (Tikhonov regularizer, not physical noise) | ||
| Concept | chemgp-core (Rust) | gpr_optim (C++) |
|---|---|---|
| Inverse-distance kernel | kernel.rs ( MolInvDistSE ) | InvDistSE |
| Derivative kernel blocks | kernel.rs ( molinvdist_kernel_blocks ) | GPKernelBlocks |
| GP training (SCG) | train.rs + scg.rs + nll.rs | GPModel |
| Dimer method | dimer.rs ( gp_dimer ) | DimerSearch |
| NEB method | neb.rs + neb_oie.rs | NEBSearch |
| OT-GP Dimer | otgpd.rs ( otgpd ) | OTGPDimer |
| Equation | chemgp-core Function | Purpose |
|---|---|---|
| Eq. 2.6 | curvature() | Dimer curvature estimate |
| Eq. 2.7 | rotational_force() | CG rotation force |
| Eq. 2.8 | translational_force() | Householder reflection |
| Eq. 2.10 | neb_force() | NEB total force |
| Eq. 3.6 – 3.7 | molinvdist_kernel_blocks() | Derivative covariance blocks |
| Eq. 3.8 | build_full_covariance() | Assemble |
| Task | System | Variants | Baseline | Variant A | Variant B |
|---|---|---|---|---|---|
| Minimization | LEPS (9D) | gp_minimize vs L-BFGS | 57 | 9 | - |
| Minimization | Muller-Brown | gp_minimize vs L-BFGS | 34 | 50 | - |
| Minimization | PET-MAD molecule | gp_minimize vs L-BFGS | 45 | 13 | - |
| Single saddle | Muller-Brown | gp_dimer vs std. dimer | 6 | 7 | - |
| Single saddle | LEPS (9D) | gp_dimer / OTGPD vs dimer | 10 | 8 | 8 |
| Single saddle | d000 metatomic molecular run | standard dimer vs OTGPD | 50 | - | 13 |