sporco.pgm.momentum

Momentum coefficient options for PGM algorithms

Classes

MomentumBase()

Base class for computing momentum coefficient for accelerated proximal gradient method.

MomentumNesterov()

Nesterov's momentum coefficient [6]

MomentumLinear([b])

Linear momentum coefficient [14]

MomentumGenLinear([a, b])

Generalized linear momentum coefficient [40]


Class Descriptions

class sporco.pgm.momentum.MomentumBase[source]

Bases: object

Base class for computing momentum coefficient for accelerated proximal gradient method.

This class is intended to be a base class of other classes that specialise to specific momentum coefficient options.

After termination of the update method the new momentum coefficient is returned.

update()[source]

Update momentum coefficient.

Overriding this method is required.

class sporco.pgm.momentum.MomentumNesterov[source]

Bases: sporco.pgm.momentum.MomentumBase

Nesterov’s momentum coefficient [6]

Applies the update

\[t^{(k+1)} = \frac{1}{2} \left( 1 + \sqrt{1 + 4 \; (t^{(k)})^2} \right) \;,\]

with \(k\) iteration.

update(t)[source]

Update momentum coefficient

class sporco.pgm.momentum.MomentumLinear(b=2.0)[source]

Bases: sporco.pgm.momentum.MomentumBase

Linear momentum coefficient [14]

Applies the update

\[t^{(k+1)} = \frac{k + b}{b} \;,\]

with \(b\) corresponding to a positive constant such that \(b \geq 2\) and \(k\) iteration.

Parameters
bfloat

Summand in numerator and factor in denominator of update.

update(k)[source]

Update momentum coefficient

class sporco.pgm.momentum.MomentumGenLinear(a=50.0, b=2.0)[source]

Bases: sporco.pgm.momentum.MomentumBase

Generalized linear momentum coefficient [40]

Applies the update

\[t^{(k+1)} = \frac{k + a}{b} \;,\]

with \(a, b\) corresponding to postive constants such that \(a \geq b - 1\) and \(b \geq 2\), and \(k\) iteration.

Parameters
afloat

Summand in numerator of update.

bfloat

Factor in denominator of update.

update(k)[source]

Update momentum coefficient