Sparse Ensemble Kalman Inversion
EnsembleKalmanProcesses.SparseInversion
— TypeSparseInversion <: Process
A sparse ensemble Kalman Inversion process
Fields
γ::AbstractFloat
upper limit of l1-norm
threshold_value::AbstractFloat
threshold below which the norm of parameters is pruned to zero
uc_idx::Union{Colon, AbstractVector}
indices of parameters included in the evaluation of l1-norm constraint
reg::AbstractFloat
a small regularization value to enhance robustness of convex optimization
Constructors
SparseInversion()
SparseInversion(γ, threshold_value, uc_idx, reg)
SparseInversion(γ)
EnsembleKalmanProcesses.sparse_eki_update
— Function sparse_eki_update(
ekp::EnsembleKalmanProcess{FT, IT, SparseInversion{FT}},
u::AbstractMatrix{FT},
g::AbstractMatrix{FT},
y::AbstractMatrix{FT},
obs_noise_cov::Union{AbstractMatrix{CT}, UniformScaling{CT}},
) where {FT <: Real, CT <: Real, IT}
Returns the sparse updated parameter vectors given their current values and the corresponding forward model evaluations, using the inversion algorithm from eqns. (3.7) and (3.14) of Schneider et al. (2021).
Localization is applied following Tong and Morzfeld (2022).
EnsembleKalmanProcesses.sparse_qp
— Functionsparse_qp(
ekp::EnsembleKalmanProcess{FT, IT, SparseInversion{FT}},
v_j::Vector{FT},
cov_vv_inv::AbstractMatrix{FT},
H_u::SparseArrays.SparseMatrixCSC{FT},
H_g::SparseArrays.SparseMatrixCSC{FT},
y_j::Vector{FT};
H_uc::SparseArrays.SparseMatrixCSC{FT} = H_u,
) where {FT, IT}
Solving quadratic programming problem with sparsity constraint.