Skip to content

← deep_learning package

OptimisticGDStep

The Optimistic gradient descent optimizer step.

Based on Mokhtari et al, 2019, this is an advanced optimizer that was originally proposed in the context of saddle-point problems, and has strong convergence for min-max games, where standard gradient descent can oscillate or diverge. Note that this optimizer can be used with schedulers for not only the learning rate but also the alpha and beta parameters, by wiring in the appropriate schedule nodes into the respective ports, without having to use a CustomStep node. Like all step nodes, this node only processes gradients, and the resulting updates must be applied manually to the weights (this can be accomplished using the Add node). However, you can also pass it to the StepSolver node which implements the full optimization loop. More Info... Version 0.2.0

Ports/Properties

gradients

Gradients to be transformed.

verbose name
Gradients
default value
None
port type
DataPort
value type
object (can be None)
data direction
INOUT

weights

Optional current weights.

verbose name
Weights
default value
None
port type
DataPort
value type
object (can be None)
data direction
IN

state

Explicit state of the node.

verbose name
State
default value
None
port type
DataPort
value type
object (can be None)
data direction
INOUT

learning_rate_schedule

Optional learning rate schedule.

verbose name
Learning Rate Schedule
default value
None
port type
DataPort
value type
BaseNode (can be None)
data direction
IN

alpha_schedule

Optional alpha schedule.

verbose name
Alpha Schedule
default value
None
port type
DataPort
value type
BaseNode (can be None)
data direction
IN

beta_schedule

Optional beta schedule.

verbose name
Beta Schedule
default value
None
port type
DataPort
value type
BaseNode (can be None)
data direction
IN

learning_rate

Learning rate. A typical choice may be 0.001 here, but this is problem dependent. If a learning rate schedule is provided, this value should be left unspecified.

verbose name
Learning Rate
default value
None
port type
FloatPort
value type
float (can be None)

alpha

Alpha coefficient for generalized OGD.

verbose name
Alpha
default value
1
port type
FloatPort
value type
float (can be None)

beta

Beta coefficient for generalized OGD negative momentum.

verbose name
Beta
default value
1
port type
FloatPort
value type
float (can be None)

set_breakpoint

Set a breakpoint on this node. If this is enabled, your debugger (if one is attached) will trigger a breakpoint.

verbose name
Set Breakpoint (Debug Only)
default value
False
port type
BoolPort
value type
bool (can be None)

metadata

User-definable meta-data associated with the node. Usually reserved for technical purposes.

verbose name
Metadata
default value
{}
port type
DictPort
value type
dict (can be None)