dagma.nonlinear.DagmaNonlinear.minimize

dagma.nonlinear.DagmaNonlinear.minimize(max_iter: float, lr: float, lambda1: float, lambda2: float, mu: float, s: float, lr_decay: float = False, tol: float = 1e-06, pbar: tqdm.auto.tqdm | None = None) bool
Solves the optimization problem:
\[\arg\min_{W(\Theta) \in \mathbb{W}^s} \mu \cdot Q(\Theta; \mathbf{X}) + h(W(\Theta)),\]

where \(Q\) is the score function, and \(W(\Theta)\) is the induced weighted adjacency matrix from the model parameters. This problem is solved via (sub)gradient descent using adam acceleration.

Parameters:
max_iter : float

Maximum number of (sub)gradient iterations.

lr : float

Learning rate.

lambda1 : float

L1 penalty coefficient. Only applies to the parameters that induce the weighted adjacency matrix.

lambda2 : float

L2 penalty coefficient. Applies to all the model parameters.

mu : float

Weights the score function.

s : float

Controls the domain of M-matrices.

lr_decay : float, optional

If True, an exponential decay scheduling is used. By default False.

tol : float, optional

Tolerance to admit convergence. Defaults to 1e-6.

pbar : tqdm, optional

Controls bar progress. Defaults to tqdm().

Returns:

True if the optimization succeded. This can be False when at any iteration, the model’s adjacency matrix got outside of the domain of M-matrices.

Return type:

bool


Last update: Jan 14, 2024