Variational flow-based methods for modeling rare events using
Kullback–Leibler (KL) divergence, normalizing flows, Girsanov change of
measure, and Freidlin–Wentzell action functionals. The package provides
tools for rare-event inference, minimum-action paths, and quasi-potential
computation in stochastic dynamical systems. Methods are based on
Rezende and Mohamed (2015)

Normalizing Flows for Rare-Event Inference
rareflow provides a unified framework for rare-event inference by combining:
The package includes:
# install.packages("devtools")
devtools::install_github("PietroPiu-labstats/rareflow")
A minimal workflow for fitting a variational posterior using a planar flow:
library(rareflow)
Qobs <- c(0.05, 0.90, 0.05)
px <- function(z) c(0.3, 0.4, 0.3)
flow <- makeflow("planar")
fit <- fitflowvariational(Qobs, pxgivenz = px, nmc = 500)
fit$elbo
b <- function(x) -x
dt <- 0.01
T <- 1000
Winc <- rnorm(T, sd = sqrt(dt))
fit_gir <- fitflow_girsanov(
observed = Qobs,
drift = b,
Winc = Winc,
dt = dt,
pxgivenz = px
)
b <- function(x) x - x^3
qp <- FW_quasipotential(-1, 1, drift = b, T = 200, dt = 0.01)
qp$action
Full documentation and examples are available in the package vignette:
vignette("rareflow")
Variational inference with normalizing flows
Rare-event tilting via Girsanov
Minimum-action paths and quasi-potentials
Support for 1D and 2D systems
Modular flow architecture