Skip to content

Commit

Permalink
build based on bc6a282
Browse files Browse the repository at this point in the history
  • Loading branch information
Documenter.jl committed May 27, 2024
1 parent aa68e9a commit e3ed097
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 9 deletions.
2 changes: 1 addition & 1 deletion dev/index.html
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 &gt; 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 17 March 2024 00:42">Sunday 17 March 2024</span>. Using Julia version 1.10.2.</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 &gt; 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="Monday 27 May 2024 15:46">Monday 27 May 2024</span>. Using Julia version 1.10.3.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
Loading

0 comments on commit e3ed097

Please sign in to comment.