Sparse Regularization (L1)

Can I handle L1 regularization?
http://docs.simpeg.xyz/content/api_cor/api_Regularization.html#sparse-regularization

  • I’ve read the API reference, but it’s not clear. If you have a detailed explanation or literature, please let me know.

  • Is the L1 regularization reflected in the following settings?
    SimPEG.regularization.Sparse(mesh, alpha_s=1.0, alpha_x=1.0, alpha_y=1.0, alpha_z=1.0, norms= [[0. 1. 1. 1. 1.]])

Hi @fal

Hopefully, this paper can help: https://storage.googleapis.com/simpeg/papers/2019/ggz156.pdf

The idea here is that using the IRLS, we can approximate any norms between [0, 2], and the norms can be applied on either the model values themselves and/or the gradients of the values.
Your current setup, norms= [[0. 1. 1. 1. 1.]], will do an L0 on the model values, and an L1 on the model gradients. For 3D problems, the regularization expects 4 values, so your last value won’t be used here.
Referring to the paper above, you should get something like in Figure 6 (h) - a few non-zeros, flat anomalies.

Hi Dom,

Thanks for your advice.
I have read your paper and fully understood the meaning of the API arguments. The idea of applying PCA to multiple results has never occurred to me before! Interesting.
Up to chapter 2 is enough for me, but after chapter 3, SimPEG hasn’t implemented it yet.
I am looking forward to the future.