Package mdp :: Package nodes :: Class OnlineCenteringNode
[hide private]
[frames] | no frames]

Class OnlineCenteringNode


OnlineCenteringNode centers the input data, that is, subtracts the arithmetic mean (average) from the input data. This is an online learnable node.

Note: The node's train method updates the average (avg) according to the update rule: avg <- (1 / n) * x + (1-1/n) * avg, where n is the total number of samples observed while training. The node's execute method subtracts the updated average from the input and returns it. This node also supports centering via an exponentially weighted moving average that resembles a leaky integrator: avg <- alpha * x + (1-alpha) * avg, where alpha = 2. / (avg_n + 1). avg_n intuitively denotes a "window size". For a large avg_n, 'avg_n'-samples represent about 86% of the total weight.
Instance Methods [hide private]
 
__init__(self, avg_n=None, input_dim=None, output_dim=None, dtype=None, numx_rng=None)
Initializes an object of type 'OnlineCenteringNode'.
str
__repr__(self)
Print all args.
 
_check_params(self, x)
 
_execute(self, x)
Returns a centered input.
 
_get_supported_training_types(self)
Return the list of training types supported by this node.
 
_inverse(self, x)
Returns the non-centered original data.
 
_train(self, x)
updates the average parameter
numpy.ndarray
execute(self, x)
Returns a centered input.
float
get_average(self)
Returns the updated average.
numpy.ndarray
inverse(self, x)
Returns the non-centered original data.
 
train(self, x)
updates the average parameter

Inherited from unreachable.newobject: __long__, __native__, __nonzero__, __unicode__, next

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

    Inherited from PreserveDimOnlineNode
 
_set_input_dim(self, n)
 
_set_output_dim(self, n)
    Inherited from OnlineNode
 
__add__(self, other)
 
_check_input(self, x)
 
_get_train_seq(self)
 
_pre_execution_checks(self, x)
This method contains all pre-execution checks. It can be used when a subclass defines multiple execution methods.
 
_pre_inversion_checks(self, y)
This method contains all pre-inversion checks.
 
_set_numx_rng(self, rng)
 
get_current_train_iteration(self)
Return the index of the current training iteration.
 
get_numx_rng(self)
Return input dimensions.
 
set_numx_rng(self, rng)
Set numx random number generator. Note that subclasses should overwrite self._set_numx_rng when needed.
 
set_training_type(self, training_type)
Sets the training type
 
stop_training(self, *args, **kwargs)
Stop the training phase.
    Inherited from Node
 
__call__(self, x, *args, **kwargs)
Calling an instance of Node is equivalent to calling its execute method.
 
__str__(self)
str(x)
 
_check_output(self, y)
 
_check_train_args(self, x, *args, **kwargs)
 
_get_supported_dtypes(self)
Return the list of dtypes supported by this node.
 
_if_training_stop_training(self)
 
_refcast(self, x)
Helper function to cast arrays to the internal dtype.
 
_set_dtype(self, t)
 
_stop_training(self, *args, **kwargs)
 
copy(self, protocol=None)
Return a deep copy of the node.
 
get_current_train_phase(self)
Return the index of the current training phase.
 
get_dtype(self)
Return dtype.
 
get_input_dim(self)
Return input dimensions.
 
get_output_dim(self)
Return output dimensions.
 
get_remaining_train_phase(self)
Return the number of training phases still to accomplish.
 
get_supported_dtypes(self)
Return dtypes supported by the node as a list of numpy.dtype objects.
 
has_multiple_training_phases(self)
Return True if the node has multiple training phases.
 
is_training(self)
Return True if the node is in the training phase, False otherwise.
 
save(self, filename, protocol=-1)
Save a pickled serialization of the node to filename. If filename is None, return a string.
 
set_dtype(self, t)
Set internal structures' dtype.
 
set_input_dim(self, n)
Set input dimensions.
 
set_output_dim(self, n)
Set output dimensions.
Static Methods [hide private]
    Inherited from Node
 
is_invertible()
Return True if the node can be inverted, False otherwise.
 
is_trainable()
Return True if the node can be trained, False otherwise.
Instance Variables [hide private]
  avg
The updated average of the input data.
Properties [hide private]

Inherited from object: __class__

    Inherited from OnlineNode
  _train_seq
List of tuples:
  numx_rng
Numpy seeded random number generator
  training_type
Training type (Read only)
    Inherited from Node
  dtype
dtype
  input_dim
Input dimensions
  output_dim
Output dimensions
  supported_dtypes
Supported dtypes
Method Details [hide private]

__init__(self, avg_n=None, input_dim=None, output_dim=None, dtype=None, numx_rng=None)
(Constructor)

 
Initializes an object of type 'OnlineCenteringNode'.
Parameters:
  • avg_n (int or None) - If set to None (default), the node updates a simple moving average. If set to a positive integer, the node updates an exponentially weighted moving average.
  • input_dim (int) - The input dimensionality.
  • output_dim (int) - The output dimensionality.
  • dtype (numpy.dtype or str) - The datatype.
  • numx_rng - Random number generator.
Overrides: object.__init__

__repr__(self)
(Representation operator)

 
Print all args.
Returns: str
A string that contains all argument names and their values.
Overrides: object.__repr__

_check_params(self, x)

 
Overrides: OnlineNode._check_params

_execute(self, x)

 
Returns a centered input.

:param x: The input to center.
:type x: numpy.ndarray

:return: The centered input.
:rtype: numpy.ndarray

Overrides: Node._execute

_get_supported_training_types(self)

 
Return the list of training types supported by this node.
Overrides: OnlineNode._get_supported_training_types
(inherited documentation)

_inverse(self, x)

 
Returns the non-centered original data.

:param x: The centered data.
:type x: numpy.ndarray

:return: The non-centered original input.
:rtype: numpy.ndarray

Overrides: Node._inverse

_train(self, x)

 
updates the average parameter

Overrides: Node._train

execute(self, x)

 
Returns a centered input.
Parameters:
  • x (numpy.ndarray) - The input to center.
Returns: numpy.ndarray
The centered input.
Overrides: Node.execute

get_average(self)

 
Returns the updated average.
Returns: float
The average used for centering.

inverse(self, x)

 
Returns the non-centered original data.
Parameters:
  • x (numpy.ndarray) - The centered data.
Returns: numpy.ndarray
The non-centered original input.
Overrides: Node.inverse

train(self, x)

 
updates the average parameter
Overrides: Node.train

Instance Variable Details [hide private]

avg

The updated average of the input data.