Penalties.
This module contains classes representing penalties / regularizers.
They function batch-wise, similar to objects in chop.constraints.
Reshaping will be of order if the penalties are used on the parameters of a model.
Code inspired from https://github.com/openopt/copt/.
The proximal operators are derived e.g. in https://www.di.ens.fr/~fbach/opt_book.pdf.
Classes
GroupL1 (alpha, groups)
|
Group LASSO penalty. |
L1 (alpha)
|
L1 penalty. Batch-wise function. For each element in the batch, the L1 penalty is given by ..math:: Omega(x) = lpha |x|_1. |
-
class
chop.penalties.
GroupL1
(alpha, groups)[source]
Group LASSO penalty. Batch-wise function.
-
prox
(x, step_size=None)[source]
Returns the proximal operator for the (non overlapping) Group L1 norm.
:param x: torch.Tensor of shape (batch_size, *)
:param step_size: float or torch.Tensor of shape (batch_size,)
-
class
chop.penalties.
L1
(alpha: float)[source]
L1 penalty. Batch-wise function. For each element in the batch,
the L1 penalty is given by
..math:
-
prox
(x, step_size=None)[source]
Proximal operator for the L1 norm penalty. This is given by soft-thresholding.
- Parameters
x – torch.Tensor
x has shape (batch_size, *)
step_size – float or torch.Tensor of shape (batch_size,)