-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Documenter.jl
committed
Nov 2, 2024
1 parent
c66c8cb
commit 2f3f85f
Showing
3 changed files
with
5 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
<!DOCTYPE html> | ||
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Home · RegularizedProblems.jl</title><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="assets/documenter.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/documenter-dark.css" data-theme-name="documenter-dark"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="assets/themeswap.js"></script><link href="assets/style.css" rel="stylesheet" type="text/css"/></head><body><div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit">RegularizedProblems.jl</span></div><form class="docs-search" action="search/"><input class="docs-search-query" id="documenter-search-query" name="q" type="text" placeholder="Search docs"/></form><ul class="docs-menu"><li class="is-active"><a class="tocitem" href>Home</a><ul class="internal"><li><a class="tocitem" href="#Synopsis"><span>Synopsis</span></a></li><li><a class="tocitem" href="#Problems-implemented"><span>Problems implemented</span></a></li></ul></li><li><a class="tocitem" href="reference/">Reference</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>Home</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Home</a></li></ul></nav><div class="docs-right"><a class="docs-edit-link" href="https://github.com/JuliaSmoothOptimizers/RegularizedProblems.jl/blob/master/docs/src/index.md" title="Edit on GitHub"><span class="docs-icon fab"></span><span class="docs-label is-hidden-touch">Edit on GitHub</span></a><a class="docs-settings-button fas fa-cog" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-sidebar-button fa fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a></div></header><article class="content" id="documenter-page"><h1 id="RegularizedProblems"><a class="docs-heading-anchor" href="#RegularizedProblems">RegularizedProblems</a><a id="RegularizedProblems-1"></a><a class="docs-heading-anchor-permalink" href="#RegularizedProblems" title="Permalink"></a></h1><h2 id="Synopsis"><a class="docs-heading-anchor" href="#Synopsis">Synopsis</a><a id="Synopsis-1"></a><a class="docs-heading-anchor-permalink" href="#Synopsis" title="Permalink"></a></h2><p>This package provides sameple problems suitable for developing and testing first and second-order methods for regularized optimization, i.e., they have the general form</p><p class="math-container">\[\min_{x \in \mathbb{R}^n} \ f(x) + h(x),\]</p><p>where <span>$f: \mathbb{R}^n \to \mathbb{R}$</span> has Lipschitz-continuous gradient and <span>$h: \mathbb{R}^n \to \mathbb{R} \cup \{\infty\}$</span> is lower semi-continuous and proper. The smooth term f describes the objective to minimize while the role of the regularizer h is to select a solution with desirable properties: minimum norm, sparsity below a certain level, maximum sparsity, etc.</p><p>Models for f are instances of <a href="https://github.com/JuliaSmoothOptimizers/NLPModels.jl">NLPModels</a> and often represent nonlinear least-squares residuals, i.e., <span>$f(x) = \tfrac{1}{2} \|F(x)\|_2^2$</span> where <span>$F: \mathbb{R}^n \to \mathbb{R}^m$</span>.</p><p>The regularizer <span>$h$</span> should be obtained from <a href="https://github.com/JuliaFirstOrder/ProximalOperators.jl">ProximalOperators.jl</a>.</p><p>The final regularized problem is intended to be solved by way of solver for nonsmooth regularized optimization such as those in <a href="https://github.com/UW-AMO/RegularizedOptimization.jl">RegularizedOptimization.jl</a>.</p><h2 id="Problems-implemented"><a class="docs-heading-anchor" href="#Problems-implemented">Problems implemented</a><a id="Problems-implemented-1"></a><a class="docs-heading-anchor-permalink" href="#Problems-implemented" title="Permalink"></a></h2><h3 id="Basis-pursuit-denoise"><a class="docs-heading-anchor" href="#Basis-pursuit-denoise">Basis-pursuit denoise</a><a id="Basis-pursuit-denoise-1"></a><a class="docs-heading-anchor-permalink" href="#Basis-pursuit-denoise" title="Permalink"></a></h3><p>Calling <code>model = bpdn_model()</code> returns a model representing the smooth underdetermined linear least-squares residual</p><p class="math-container">\[f(x) = \tfrac{1}{2} \|Ax - b\|_2^2,\]</p><p>where <span>$A$</span> has orthonormal rows. The right-hand side is generated as <span>$b = A x_{\star} + \varepsilon$</span> where <span>$x_{\star}$</span> is a sparse vector, <span>$\varepsilon \sim \mathcal{N}(0, \sigma)$</span> and <span>$\sigma \in (0, 1)$</span> is a fixed noise level.</p><p>When solving the basis-pursuit denoise problem, the goal is to recover <span>$x \approx x_{\star}$</span>. In particular, <span>$x$</span> should have the same sparsity pattern as <span>$x_{\star}$</span>. That is typically accomplished by choosing a regularizer of the form</p><ul><li><span>$h(x) = \lambda \|x\|_1$</span> for a well-chosen <span>$\lambda > 0$</span>;</li><li><span>$h(x) = \|x\|_0$</span>;</li><li><span>$h(x) = \chi(x; k \mathbb{B}_0)$</span> for <span>$k \approx \|x_{\star}\|_0$</span>;</li></ul><p>where <span>$\chi(x; k \mathbb{B}_0)$</span> is the indicator of the <span>$\ell_0$</span>-pseudonorm ball of radius <span>$k$</span>.</p><p>Calling <code>model = bpdn_nls_model()</code> returns the same problem modeled explicitly as a least-squares problem.</p><h3 id="Fitzhugh-Nagumo-data-fitting-problem"><a class="docs-heading-anchor" href="#Fitzhugh-Nagumo-data-fitting-problem">Fitzhugh-Nagumo data-fitting problem</a><a id="Fitzhugh-Nagumo-data-fitting-problem-1"></a><a class="docs-heading-anchor-permalink" href="#Fitzhugh-Nagumo-data-fitting-problem" title="Permalink"></a></h3><p>If <code>ADNLPModels</code> and <code>DifferentialEquations</code> have been imported, <code>model = fh_model()</code> returns a model representing the over-determined nonlinear least-squares residual</p><p class="math-container">\[f(x) = \tfrac{1}{2} \|F(x)\|_2^2,\]</p><p>where <span>$F: \mathbb{R}^5 \to \mathbb{R}^{202}$</span> represents the residual between a simulation of the <a href="https://en.wikipedia.org/wiki/FitzHugh–Nagumo_model">Fitzhugh-Nagumo system</a> with parameters <span>$x$</span> and a simulation of the <a href="https://en.wikipedia.org/wiki/Van_der_Pol_oscillator">Van der Pol oscillator</a> with preset, but unknown, parameters <span>$x_{\star}$</span>.</p><p>A feature of the Fitzhugh-Nagumo model is that it reduces to the Van der Pol oscillator when certain parameters are set to zero. Thus here again, the objective is to recover a sparse solution to the data-fitting problem. Hence, typical regularizers are the same as those used for the basis-pursuit denoise problem.</p></article><nav class="docs-footer"><a class="docs-footer-nextpage" href="reference/">Reference »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Sunday 15 September 2024 19:24">Sunday 15 September 2024</span>. Using Julia version 1.10.5.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> | ||
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Home · RegularizedProblems.jl</title><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="assets/documenter.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/documenter-dark.css" data-theme-name="documenter-dark"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="assets/themeswap.js"></script><link href="assets/style.css" rel="stylesheet" type="text/css"/></head><body><div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit">RegularizedProblems.jl</span></div><form class="docs-search" action="search/"><input class="docs-search-query" id="documenter-search-query" name="q" type="text" placeholder="Search docs"/></form><ul class="docs-menu"><li class="is-active"><a class="tocitem" href>Home</a><ul class="internal"><li><a class="tocitem" href="#Synopsis"><span>Synopsis</span></a></li><li><a class="tocitem" href="#Problems-implemented"><span>Problems implemented</span></a></li></ul></li><li><a class="tocitem" href="reference/">Reference</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>Home</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Home</a></li></ul></nav><div class="docs-right"><a class="docs-edit-link" href="https://github.com/JuliaSmoothOptimizers/RegularizedProblems.jl/blob/master/docs/src/index.md" title="Edit on GitHub"><span class="docs-icon fab"></span><span class="docs-label is-hidden-touch">Edit on GitHub</span></a><a class="docs-settings-button fas fa-cog" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-sidebar-button fa fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a></div></header><article class="content" id="documenter-page"><h1 id="RegularizedProblems"><a class="docs-heading-anchor" href="#RegularizedProblems">RegularizedProblems</a><a id="RegularizedProblems-1"></a><a class="docs-heading-anchor-permalink" href="#RegularizedProblems" title="Permalink"></a></h1><h2 id="Synopsis"><a class="docs-heading-anchor" href="#Synopsis">Synopsis</a><a id="Synopsis-1"></a><a class="docs-heading-anchor-permalink" href="#Synopsis" title="Permalink"></a></h2><p>This package provides sameple problems suitable for developing and testing first and second-order methods for regularized optimization, i.e., they have the general form</p><p class="math-container">\[\min_{x \in \mathbb{R}^n} \ f(x) + h(x),\]</p><p>where <span>$f: \mathbb{R}^n \to \mathbb{R}$</span> has Lipschitz-continuous gradient and <span>$h: \mathbb{R}^n \to \mathbb{R} \cup \{\infty\}$</span> is lower semi-continuous and proper. The smooth term f describes the objective to minimize while the role of the regularizer h is to select a solution with desirable properties: minimum norm, sparsity below a certain level, maximum sparsity, etc.</p><p>Models for f are instances of <a href="https://github.com/JuliaSmoothOptimizers/NLPModels.jl">NLPModels</a> and often represent nonlinear least-squares residuals, i.e., <span>$f(x) = \tfrac{1}{2} \|F(x)\|_2^2$</span> where <span>$F: \mathbb{R}^n \to \mathbb{R}^m$</span>.</p><p>The regularizer <span>$h$</span> should be obtained from <a href="https://github.com/JuliaFirstOrder/ProximalOperators.jl">ProximalOperators.jl</a>.</p><p>The final regularized problem is intended to be solved by way of solver for nonsmooth regularized optimization such as those in <a href="https://github.com/UW-AMO/RegularizedOptimization.jl">RegularizedOptimization.jl</a>.</p><h2 id="Problems-implemented"><a class="docs-heading-anchor" href="#Problems-implemented">Problems implemented</a><a id="Problems-implemented-1"></a><a class="docs-heading-anchor-permalink" href="#Problems-implemented" title="Permalink"></a></h2><h3 id="Basis-pursuit-denoise"><a class="docs-heading-anchor" href="#Basis-pursuit-denoise">Basis-pursuit denoise</a><a id="Basis-pursuit-denoise-1"></a><a class="docs-heading-anchor-permalink" href="#Basis-pursuit-denoise" title="Permalink"></a></h3><p>Calling <code>model = bpdn_model()</code> returns a model representing the smooth underdetermined linear least-squares residual</p><p class="math-container">\[f(x) = \tfrac{1}{2} \|Ax - b\|_2^2,\]</p><p>where <span>$A$</span> has orthonormal rows. The right-hand side is generated as <span>$b = A x_{\star} + \varepsilon$</span> where <span>$x_{\star}$</span> is a sparse vector, <span>$\varepsilon \sim \mathcal{N}(0, \sigma)$</span> and <span>$\sigma \in (0, 1)$</span> is a fixed noise level.</p><p>When solving the basis-pursuit denoise problem, the goal is to recover <span>$x \approx x_{\star}$</span>. In particular, <span>$x$</span> should have the same sparsity pattern as <span>$x_{\star}$</span>. That is typically accomplished by choosing a regularizer of the form</p><ul><li><span>$h(x) = \lambda \|x\|_1$</span> for a well-chosen <span>$\lambda > 0$</span>;</li><li><span>$h(x) = \|x\|_0$</span>;</li><li><span>$h(x) = \chi(x; k \mathbb{B}_0)$</span> for <span>$k \approx \|x_{\star}\|_0$</span>;</li></ul><p>where <span>$\chi(x; k \mathbb{B}_0)$</span> is the indicator of the <span>$\ell_0$</span>-pseudonorm ball of radius <span>$k$</span>.</p><p>Calling <code>model = bpdn_nls_model()</code> returns the same problem modeled explicitly as a least-squares problem.</p><h3 id="Fitzhugh-Nagumo-data-fitting-problem"><a class="docs-heading-anchor" href="#Fitzhugh-Nagumo-data-fitting-problem">Fitzhugh-Nagumo data-fitting problem</a><a id="Fitzhugh-Nagumo-data-fitting-problem-1"></a><a class="docs-heading-anchor-permalink" href="#Fitzhugh-Nagumo-data-fitting-problem" title="Permalink"></a></h3><p>If <code>ADNLPModels</code> and <code>DifferentialEquations</code> have been imported, <code>model = fh_model()</code> returns a model representing the over-determined nonlinear least-squares residual</p><p class="math-container">\[f(x) = \tfrac{1}{2} \|F(x)\|_2^2,\]</p><p>where <span>$F: \mathbb{R}^5 \to \mathbb{R}^{202}$</span> represents the residual between a simulation of the <a href="https://en.wikipedia.org/wiki/FitzHugh–Nagumo_model">Fitzhugh-Nagumo system</a> with parameters <span>$x$</span> and a simulation of the <a href="https://en.wikipedia.org/wiki/Van_der_Pol_oscillator">Van der Pol oscillator</a> with preset, but unknown, parameters <span>$x_{\star}$</span>.</p><p>A feature of the Fitzhugh-Nagumo model is that it reduces to the Van der Pol oscillator when certain parameters are set to zero. Thus here again, the objective is to recover a sparse solution to the data-fitting problem. Hence, typical regularizers are the same as those used for the basis-pursuit denoise problem.</p></article><nav class="docs-footer"><a class="docs-footer-nextpage" href="reference/">Reference »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 2 November 2024 13:56">Saturday 2 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> |
Oops, something went wrong.