3 unstable releases

0.2.1 Apr 22, 2022
0.2.0 Apr 18, 2022
0.1.0 Apr 16, 2022

#1440 in Algorithms

MIT/Apache

27KB
602 lines

spsa

Simultaneous perturbation stochastic approximation implemented in Rust.

  • Fast convergence
  • Black-box, derivative-free optimization
  • Stochastic functions (can be used on noisy functions)
  • Converges well in higher-dimensions
  • Hard constraints by returning NaN
  • Automatic learning rate tuning and adaptive moment estimation
  • Reusable allocation (does not allocate during optimization process)
  • SIMD optimization

Based on this implementation by SimpleArt

API reference (docs.rs)

Usage

Add this to your Cargo.toml:

[dependencies]
spsa = "0.2.1"

License

spsa is distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE and LICENSE-MIT for details.

Dependencies

~1.5MB
~28K SLoC