Gradient protocol for variational inference.
Provides grad-log and grad-step for distributions, enabling:
Gradients are w.r.t. unconstrained parameters for numerical stability:
Gradient protocol for variational inference. Provides grad-log and grad-step for distributions, enabling: - Black Box Variational Inference (BBVI) - Amortized inference with learned proposals Gradients are w.r.t. unconstrained parameters for numerical stability: - Normal: (mean, log-std) - Gamma: (log-shape, log-scale); Beta: (log-alpha, log-beta) - Flip: logit(p)
(compute-gradient dist x)Compute gradient of log p(x) for distribution. Returns nil if gradient not implemented.
Compute gradient of log p(x) for distribution. Returns nil if gradient not implemented.
(digamma x)Digamma function psi(x) = d/dx ln(Gamma(x)). Asymptotic expansion for x >= 1.
Digamma function psi(x) = d/dx ln(Gamma(x)). Asymptotic expansion for x >= 1.
(has-gradient? dist)Check if distribution type has gradient implemented.
Check if distribution type has gradient implemented.
Protocol for computing gradients of log probability.
Protocol for computing gradients of log probability.
(grad-log dist)Returns (fn [x] gradient-vector) for gradient of log p(x) w.r.t. parameters.
Returns (fn [x] gradient-vector) for gradient of log p(x) w.r.t. parameters.
(grad-step dist gradient learning-rate)Returns updated distribution after gradient step. gradient: vector of gradients w.r.t. unconstrained parameters learning-rate: scalar or vector of per-parameter rates
Returns updated distribution after gradient step. gradient: vector of gradients w.r.t. unconstrained parameters learning-rate: scalar or vector of per-parameter rates
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |