Package parsimony :: Package functions :: Package nesterov :: Module l1tv :: Class L1TV
[hide private]
[frames] | no frames]

Class L1TV

source code

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

The proximal operator of the smoothed sum of the TV and L1 functions

    f(beta) = (l1 * L1(beta) + tv * TV(beta))_mu,

where (...)_mu means that what's within parentheses is smoothed.

Instance Methods [hide private]
 
__init__(self, l1, tv, A=None, mu=0.0, penalty_start=0)
Parameters ---------- l1 : Non-negative float.
source code
 
reset(self) 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
 
lambda_max(self)
Largest eigenvalue of the corresponding covariance matrix.
source code
 
lA(self)
Linear operator of the Nesterov function multiplied by the corresponding Lagrange multipliers.
source code
 
alpha(self, beta)
Dual variable of the Nesterov function.
source code
 
project(self, a)
Projection onto the compact space of the Nesterov function.
source code
 
estimate_mu(self, beta)
Computes a "good" value of mu with respect to the given beta.
source code
 
M(self)
The maximum value of the regularisation of the dual variable.
source code

Inherited from properties.NesterovFunction: A, Aa, L, get_mu, grad, 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__

Class Variables [hide private]
  __abstractmethods__ = frozenset([])

Inherited from properties.NesterovFunction: __metaclass__

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, l1, tv, A=None, mu=0.0, penalty_start=0)
(Constructor)

source code 

Parameters
----------
l1 : Non-negative float. The Lagrange multiplier, or regularisation
        constant, of the smoothed L1 part of the function.

tv : Non-negative float. The Lagrange multiplier, or regularisation
        constant, of the smoothed total variation part of the function.

A : A list or tuple with 4 elements of (usually sparse) arrays. The
        linear operator for the smoothed L1+TV. The first element must
        be the linear operator for L1 and the following three for TV.
        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 : Numpy array. The weight vector.

mu : Non-negative float. 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

lambda_max(self)

source code 

Largest eigenvalue of the corresponding covariance matrix.

From the interface "Eigenvalues".

Overrides: properties.Eigenvalues.lambda_max

lA(self)

source code 

Linear operator of the Nesterov function multiplied by the corresponding Lagrange multipliers.

Note that in this case, the A matrices are already multiplied by the Lagrange multipliers.

Overrides: properties.NesterovFunction.lA

alpha(self, beta)

source code 

Dual variable of the Nesterov function.

From the interface "NesterovFunction". Overloaded since we need to do more than the default.

Overrides: properties.NesterovFunction.alpha

project(self, a)

source code 

Projection onto the compact space of the Nesterov function.

From the interface "NesterovFunction".

Overrides: properties.NesterovFunction.project

estimate_mu(self, beta)

source code 

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

From the interface "NesterovFunction".

Overrides: properties.NesterovFunction.estimate_mu

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