You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have implemented a line search method based on majorize-minimize (MM) principles for cost functions of the form $f(x) = \sum_j f_j(A_j x)$ where each $f_j$ has a Lipschitz gradient (or tighter quadratic majorizer). It runs much faster than the general purpose line search methods here, but of course it is specific to this family of functions whereas the methods here are general purpose.
Here is an illustration of it for a smoothed version of the LASSO problem that is emblematic of the kind of applications in inverse problems and machine learning that motivated this work, with @benchmark comparisons to most of the line search methods in this package: https://jefffessler.github.io/MIRT.jl/dev/generated/examples/3-ls-mm/
My question here is whether such a (somewhat) specialized line search algorithm belongs here, or if you'd prefer to keep this package focused on general-purpose search methods. Up to you.
I have implemented a line search method based on majorize-minimize (MM) principles for cost functions of the form$f(x) = \sum_j f_j(A_j x)$ where each $f_j$ has a Lipschitz gradient (or tighter quadratic majorizer). It runs much faster than the general purpose line search methods here, but of course it is specific to this family of functions whereas the methods here are general purpose.
Here is an illustration of it for a smoothed version of the LASSO problem that is emblematic of the kind of applications in inverse problems and machine learning that motivated this work, with
@benchmark
comparisons to most of the line search methods in this package:https://jefffessler.github.io/MIRT.jl/dev/generated/examples/3-ls-mm/
My question here is whether such a (somewhat) specialized line search algorithm belongs here, or if you'd prefer to keep this package focused on general-purpose search methods. Up to you.
The code itself is here currently.
The text was updated successfully, but these errors were encountered: