Optimization Methods#
Overview#
Non-Negative Least Squares#
[CB94]
Pseudo Projected Gradient Descent#
[MH12]
Projected Graident Descent#
Like Pseudo-PGD, but performs orthogonal projection onto unit simplex
Automatic Gradient Descent#
Parameters#
Numpy backend#
Non-Negative Least Squares (
nnls):Parameter
Type
Default
Description
max_iter_optimizerint
100
The maximum number of iterations in the nnls optimization, passed to
scipy.optimize.nnlsconstfloat
100.0
The penalization constant to add in the nnls optimization to enforce convex optimization.
(Pseudo) Projected Gradient Descent (
pgdandpseudo_pgd):Parameter
Type
Default
Description
max_iter_optimizerint
10
The maximum number of iterations for optimizing the learning rate.
betafloat
0.5
The decay factor for the learning rate.
step_sizefloat
1.0
The initial learning rate at the beginning of optimization, corresponding to the objective function $\frac{1}{2} \left\lVert X - A B X \right \rVert^2$
JAX backend#
Automatic Gradient Descent (
autogd):Parameter
Type
Description
optimizerstr or optax.GradientTransformation
The optimization method to use. See the available optimizers.
optimizer_kwargsdict
The arguments to pass to initialize the optimization method.
Torch backend#
Automatic Gradient Descent (
autogd)Parameter
Type
Description
optimizerstr or torch.optim.Optimizer
The optimization method to use. See the available optimizers.
optimizer_kwargsdict
The arguments to pass to initialize the optimization method.