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
Copy file name to clipboardExpand all lines: paper/paper.md
+58-44Lines changed: 58 additions & 44 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -74,71 +74,69 @@ Finally, nonsmooth terms $h$ can be modeled using [ProximalOperators.jl](https:/
74
74
75
75
This modularity makes it easy to benchmark existing solvers available in the repository [@diouane-habiboullah-orban-2024], [@aravkin-baraldi-orban-2022], [@aravkin-baraldi-orban-2024], and [@leconte-orban-2023-2].
76
76
77
-
## Support for inexact subproblem solves
77
+
## Support for Hessians
78
78
79
-
Solvers in **RegularizedOptimization.jl** allow inexact resolution of trust-region and quadratic-regularized subproblems using first-order that are implemented in the package itself such as the quadratic regularization method R2[@aravkin-baraldi-orban-2022] and R2DH[@diouane-habiboullah-orban-2024] with trust-region variants TRDH[@leconte-orban-2023-2].
79
+
In contrast to first-order methods package like [ProximalAlgorithms.jl](https://github.com/JuliaFirstOrder/ProximalAlgorithms.jl), **RegularizedOptimization.jl** enables the use of second-order information, which can significantly improve convergence rates, especially for ill-conditioned problems.
80
+
A way to use Hessians is via automatic differentiation tools such as [ADNLPModels.jl](https://github.com/JuliaSmoothOptimizers/ADNLPModels.jl).
80
81
81
-
This is crucial for large-scale problems where exact subproblem solutions are prohibitive.
82
+
## Requirements of the ShiftedProximalOperators.jl package
82
83
83
-
## Support for Hessians as Linear Operators
84
+
The nonsmooth part $h$ must have a computable proximal mapping, defined as
This requirement is satisfied by a wide range of nonsmooth functions commonly used in practice, such as the $\ell_1$ norm, the $\ell_0$ "norm", indicator functions of convex sets, and group sparsity-inducing norms.
87
+
The package [ProximalOperators.jl](https://www.github.com/FirstOrder/ProximalOperators.jl) provides a comprehensive collection of such functions, along with their proximal mappings.
88
+
The main difference between the proximal operators implemented in
where q is given, x and s are fixed shifts, h is the nonsmooth term with respect
96
+
to which we are computing the proximal operator, and χ(.; ΔB) is the indicator of
97
+
a ball of radius Δ defined by a certain norm.
84
98
85
-
The second-order methods in **RegularizedOptimization.jl** can use Hessian approximations represented as linear operators via [LinearOperators.jl](https://github.com/JuliaSmoothOptimizers/LinearOperators.jl).
86
-
Explicitly forming Hessians as dense or sparse matrices is often prohibitively expensive, both computationally and in terms of memory, especially in high-dimensional settings.
87
-
In contrast, many problems admit efficient implementations of Hessian–vector or Jacobian–vector products, either through automatic differentiation tools or limited-memory quasi-Newton updates, making the linear-operator approach more scalable and practical.
99
+
## Testing and documentation
88
100
89
-
## In-place methods
101
+
The package includes a comprehensive suite of unit tests that cover all functionalities, ensuring reliability and correctness.
102
+
Extensive documentation is provided, including a user guide, API reference, and examples to help users get started quickly.
103
+
Aqua.jl is used to test the package dependencies.
104
+
Documentation is built using Documenter.jl.
90
105
91
-
All solvers in **RegularizedOptimization.jl** are implemented in an in-place fashion, minimizing memory allocations during the resolution process.
106
+
## Hyperparameter tuning
92
107
93
-
# Examples
108
+
The solvers in **RegularizedOptimization.jl** do not require extensive hyperparameter tuning.
94
109
95
-
We consider two examples where the smooth part $f$ is nonconvex and the nonsmooth part $h$ is either the $\ell_0$ or $\ell_1$ norm.
110
+
## Non-monotone strategies
96
111
97
-
A first example addresses an image recognition task using a support vector machine (SVM) similar to those in [@aravkin-baraldi-orban-2022] and [@diouane-habiboullah-orban-2024].
98
-
The formulation is
99
-
$$
100
-
\min_{x \in \mathbb{R}^n} \ \tfrac{1}{2} \|\mathbf{1} - \tanh(b \odot \langle A, x \rangle)\|^2 + \lambda \|x\|_0,
101
-
$$
102
-
where $\lambda = 10^{-1}$ and $A \in \mathbb{R}^{m \times n}$, with $n = 784$ representing the vectorized size of each image and $m = 13{,}007$ is the number of images in the training dataset.
112
+
The solvers in **RegularizedOptimization.jl** implement non-monotone strategies to accept trial points, which can enhance convergence properties.
103
113
104
-
```julia
105
-
using LinearAlgebra, Random
106
-
using ProximalOperators
107
-
using NLPModels, NLPModelsModifiers, RegularizedProblems, RegularizedOptimization
108
-
using MLDatasets
114
+
## Application studies
109
115
110
-
random_seed =1234
111
-
Random.seed!(random_seed)
116
+
The package can be applied to the exact penality work by [@diouane-gollier-orban-2024] that addresses a problem where the model of the nonsmooth part is different from the function $h$.
117
+
This is not covered in the current version of the competitive package [ProximalAlgorithms.jl](https://github.com/JuliaFirstOrder/ProximalAlgorithms.jl).
112
118
113
-
# Load MNIST from MLDatasets
114
-
imgs, labels = MLDatasets.MNIST.traindata()
119
+
## Support for inexact subproblem solves
115
120
116
-
# Use RegularizedProblems' preprocessing
117
-
A, b = RegularizedProblems.generate_data(imgs, labels, (1, 7), false)
121
+
Solvers in **RegularizedOptimization.jl** allow inexact resolution of trust-region and quadratic-regularized subproblems using first-order that are implemented in the package itself such as the quadratic regularization method R2[@aravkin-baraldi-orban-2022] and R2DH[@diouane-habiboullah-orban-2024] with trust-region variants TRDH[@leconte-orban-2023-2].
118
122
119
-
# Build the models
120
-
model, _, _ = RegularizedProblems.svm_model(A, b)
123
+
This is crucial for large-scale problems where exact subproblem solutions are prohibitive.
121
124
122
-
# Define the Hessian approximation
123
-
f =LBFGSModel(model)
125
+
## Support for Hessians as Linear Operators
124
126
125
-
# Define the nonsmooth regularizer (L0 norm)
126
-
λ =1.0e-1
127
-
h =NormL0(λ)
127
+
The second-order methods in **RegularizedOptimization.jl** can use Hessian approximations represented as linear operators via [LinearOperators.jl](https://github.com/JuliaSmoothOptimizers/LinearOperators.jl).
128
+
Explicitly forming Hessians as dense or sparse matrices is often prohibitively expensive, both computationally and in terms of memory, especially in high-dimensional settings.
129
+
In contrast, many problems admit efficient implementations of Hessian–vector or Jacobian–vector products, either through automatic differentiation tools or limited-memory quasi-Newton updates, making the linear-operator approach more scalable and practical.
128
130
129
-
# Define the regularized NLP model
130
-
reg_nlp =RegularizedNLPModel(f, h)
131
+
## In-place methods
131
132
132
-
# Choose a solver (R2DH) and execution statistics tracker
133
-
solver_r2dh=R2DHSolver(reg_nlp)
134
-
stats =RegularizedExecutionStats(reg_nlp)
133
+
All solvers in **RegularizedOptimization.jl** are implemented in an in-place fashion, minimizing memory allocations during the resolution process.
We consider two examples where the smooth part $f$ is nonconvex and the nonsmooth part $h$ is either the $\ell_0$ or $\ell_1$ norm.
140
138
141
-
Another example is the FitzHugh-Nagumo inverse problem with an $\ell_1$ penalty, as described in [@aravkin-baraldi-orban-2022] and [@aravkin-baraldi-orban-2024].
139
+
A first example is the FitzHugh-Nagumo inverse problem with an $\ell_1$ penalty, as described in [@aravkin-baraldi-orban-2022] and [@aravkin-baraldi-orban-2024].
0 commit comments