Skip to content
This repository was archived by the owner on Dec 22, 2021. It is now read-only.

New LCurve class to estimate regularization parameters#90

Merged
leouieda merged 13 commits into
masterfrom
lcurve
Apr 11, 2014
Merged

New LCurve class to estimate regularization parameters#90
leouieda merged 13 commits into
masterfrom
lcurve

Conversation

@leouieda
Copy link
Copy Markdown
Member

The new class was added to fatiando.inversion.regularization. It behaves like any other solver but under the hood it runs the L-curve and finds the corner value when fit() is called.

The L-curve is built using user-specified values of the regularization parameter. The corner value is found using the "triangle method" of Castellanos et al (2002).

This gist was the first prototype developed.

Notes:

  • So far it's not behaving well for total variation regularization. Update: got this working on the SrTomo recipe. It was just a matter of adjusting the search range of regularization parameters. Very large values were giving errors.

TODO:

  • Use it in recipes
  • Fill docstrings
  • Compute the curve in parallel when possible
  • Changelog entry

The new class behaves like any other solver but under the hood it runs
the L-curve and finds the corner value when fit() is called.
The test of the residuals mean and stddev had too many significant
digits
Also switched the model to a square. This way they don't have to
download the tomo image all the time.
Uses multiprocessing when given `jobs` argument.
@leouieda
Copy link
Copy Markdown
Member Author

Note: There is a problem with multiprocessing and numpy liked against threaded BLAS (like in Anaconda Accelerate). See numpy/numpy#654 and numpy/numpy#4194. TL;DR: don't use multiprocessing if threaded or vice-versa.

This is pertinent to #91

Scaling before estimating the corner in LCurve for better identification
and added an option to not use a loglog scale.
Also fixed some issues with doc formats.
leouieda added a commit that referenced this pull request Apr 11, 2014
New LCurve class to estimate regularization parameters
@leouieda leouieda merged commit 0517938 into master Apr 11, 2014
@leouieda leouieda deleted the lcurve branch July 3, 2014 15:49
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant