Ensemble Kalman Sampler

EnsembleKalmanProcesses.SamplerType

An ensemble Kalman Sampler process parameterised by algorithm type T <: SamplerType (ALDI or EKS).

struct Sampler{FT<:AbstractFloat, T} <: EnsembleKalmanProcesses.Process

Fields

  • prior_mean::Vector{FT} where FT<:AbstractFloat: Mean of Gaussian parameter prior in unconstrained space

  • prior_cov::Union{LinearAlgebra.UniformScaling{FT}, AbstractMatrix{FT}} where FT<:AbstractFloat: Covariance of Gaussian parameter prior in unconstrained space

Constructors

Sampler(prior; sampler_type)

defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/EnsembleKalmanSampler.jl:57.

source
EnsembleKalmanProcesses.EKSType

Ensemble Kalman Sampler update variant based on Garbuno-Inigo, Hoffmann, Li, and Stuart (2019).

Select this variant by passing sampler_type = "eks" to the Sampler constructor.

source
EnsembleKalmanProcesses.ALDIType

Affine-invariant Langevin dynamics sampler update variant based on Garbuno-Inigo, Nusken, and Reich (2020).

Select this variant by passing sampler_type = "aldi" (the default) to the Sampler constructor.

source
EnsembleKalmanProcesses.eks_updateFunction
eks_update(
    ekp::EnsembleKalmanProcess,
    u::AbstractArray{FT<:Real, 2},
    g::AbstractArray{FT<:Real, 2},
    process::Sampler{FT<:Real, EKS}
) -> Any

Return updated parameter vectors by advancing the ensemble one step using the EKS sampler.

Applies a single implicit-explicit stochastic gradient step toward the posterior using the ensemble Kalman sampler algorithm of Garbuno-Inigo, Hoffmann, Li, and Stuart (2019). Rows of u and g correspond to ensemble members (i.e., the transposes of the arrays stored in ekp are expected).

Arguments

  • ekp: the EnsembleKalmanProcess holding observations, noise covariance, and step size.
  • u: current ensemble parameter matrix of size N_ens x N_par.
  • g: corresponding forward model output matrix of size N_ens x N_obs.
  • process: Sampler process encoding the prior mean, prior covariance, and EKS type.

Method list

eks_update(ekp, u, g, process)

defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/EnsembleKalmanSampler.jl:130.

source

Getter functions