Ensemble Kalman Sampler
EnsembleKalmanProcesses.Sampler — Type
An ensemble Kalman Sampler process parameterised by algorithm type T <: SamplerType (ALDI or EKS).
struct Sampler{FT<:AbstractFloat, T} <: EnsembleKalmanProcesses.ProcessFields
prior_mean::Vector{FT} where FT<:AbstractFloat: Mean of Gaussian parameter prior in unconstrained spaceprior_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.
EnsembleKalmanProcesses.EKS — Type
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.
EnsembleKalmanProcesses.ALDI — Type
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.
EnsembleKalmanProcesses.eks_update — Function
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: theEnsembleKalmanProcessholding observations, noise covariance, and step size.u: current ensemble parameter matrix of sizeN_ens x N_par.g: corresponding forward model output matrix of sizeN_ens x N_obs.process:Samplerprocess encoding the prior mean, prior covariance, andEKStype.
Method list
eks_update(ekp, u, g, process)defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/EnsembleKalmanSampler.jl:130.
Getter functions
EnsembleKalmanProcesses.get_sampler_type — Function
get_sampler_type(process::Sampler{T1, T2}) -> Any
Return the sampler algorithm type (EKS or ALDI) stored in the Sampler process.