Sparse Ensemble Kalman Inversion

EnsembleKalmanProcesses.SparseInversionType
SparseInversion <: 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()

defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/SparseEnsembleKalmanInversion.jl:20.

SparseInversion(γ, threshold_value, uc_idx, reg)

defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/SparseEnsembleKalmanInversion.jl:21.

SparseInversion(γ)

defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/SparseEnsembleKalmanInversion.jl:31.

source
EnsembleKalmanProcesses.sparse_eki_updateFunction
 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).

source
EnsembleKalmanProcesses.sparse_qpFunction
sparse_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.

source