Package parsimony :: Package functions :: Package nesterov :: Module l1 :: Class L1
[hide private]
[frames] | no frames]

Class L1

source code

                            object --+        
                                     |        
                   properties.Gradient --+    
                                         |    
                            object --+   |    
                                     |   |    
properties.LipschitzContinuousGradient --+    
                                         |    
                            object --+   |    
                                     |   |    
                properties.Eigenvalues --+    
                                         |    
                            object --+   |    
                                     |   |    
           properties.ProximalOperator --+    
                                         |    
               properties.NesterovFunction --+
                                             |
                                object --+   |
                                         |   |
                        properties.Penalty --+
                                             |
                                object --+   |
                                         |   |
                     properties.Constraint --+
                                             |
                                            L1

The proximal operator of the smoothed L1 function

    f(beta) = l * (L1mu(beta) - c),

where L1mu(eta) is the smoothed L1 function. The constrained version has
the form

    L1mu(beta) <= c.

Instance Methods [hide private]
 
__init__(self, l, c=0.0, A=None, mu=0.0, penalty_start=0)
Parameters ---------- l : Non-negative float.
source code
 
f(self, beta)
Function value.
source code
 
fmu(self, beta, mu=None)
Returns the smoothed function value.
source code
 
phi(self, alpha, beta)
Function value with known alpha.
source code
 
grad(self, beta)
Gradient of the function at beta.
source code
 
L(self)
Lipschitz constant of the gradient.
source code
 
alpha(self, beta)
Dual variable of the Nesterov function.
source code
 
M(self)
The maximum value of the regularisation of the dual variable.
source code
 
estimate_mu(self, beta)
Computes a "good" value of mu with respect to the given eta.
source code
 
feasible(self, beta)
Feasibility of the constraint.
source code

Inherited from properties.NesterovFunction: A, Aa, get_mu, lA, lambda_max, prox, set_mu

Inherited from properties.Gradient: approx_grad

Inherited from properties.LipschitzContinuousGradient: approx_L

Inherited from properties.Eigenvalues: lambda_min

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Static Methods [hide private]
 
project(a)
Projection onto the compact space of the Nesterov function.
source code
Class Variables [hide private]
  __abstractmethods__ = frozenset([])

Inherited from properties.NesterovFunction: __metaclass__

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, l, c=0.0, A=None, mu=0.0, penalty_start=0)
(Constructor)

source code 

Parameters
----------
l : Non-negative float. The Lagrange multiplier, or regularisation
        constant, of the function.

c : Float. The limit of the constraint. The function is feasible if
        ||beta||_1 <= c. The default value is c=0, i.e. the default is
        a regularisation formulation.

A : A (usually sparse) matrix. The linear operator for the Nesterov
        formulation. May not be None.

mu : Non-negative float. The regularisation constant for the smoothing.

penalty_start : Non-negative integer. The number of columns, variables
        etc., to exempt from penalisation. Equivalently, the first
        index to be penalised. Default is 0, all columns are included.

Overrides: object.__init__

fmu(self, beta, mu=None)

source code 

Returns the smoothed function value.

Parameters: ---------- beta : A weight vector.

mu : The regularisation constant for the smoothing.

Overrides: properties.NesterovFunction.fmu

phi(self, alpha, beta)

source code 

Function value with known alpha.

From the interface "NesterovFunction".

Overrides: properties.NesterovFunction.phi

grad(self, beta)

source code 

Gradient of the function at beta.

From the interface "Gradient". Overloaded since we can do it faster than the default.

Overrides: properties.Gradient.grad

L(self)

source code 

Lipschitz constant of the gradient.

From the interface "LipschitzContinuousGradient".

Overrides: properties.LipschitzContinuousGradient.L

alpha(self, beta)

source code 

Dual variable of the Nesterov function.

From the interface "NesterovFunction". Overloaded since we can do it faster than the default.

Overrides: properties.NesterovFunction.alpha

project(a)
Static Method

source code 

Projection onto the compact space of the Nesterov function.

From the interface "NesterovFunction".

Overrides: properties.NesterovFunction.project

M(self)

source code 
The maximum value of the regularisation of the dual variable. We
have

    M = max_{alpha in K} 0.5*|alpha|²_2.

From the interface "NesterovFunction".

Overrides: properties.NesterovFunction.M

estimate_mu(self, beta)

source code 

Computes a "good" value of mu with respect to the given eta.

From the interface "NesterovFunction".

Overrides: properties.NesterovFunction.estimate_mu

feasible(self, beta)

source code 

Feasibility of the constraint.

From the interface "Constraint".

Overrides: properties.Constraint.feasible