lnsc.lstm
Class LSTMFactory

java.lang.Object
  |
  +--lnsc.lstm.AbstractLSTMFactory
        |
        +--lnsc.lstm.LSTMFactory
All Implemented Interfaces:
FunctionalUnitFactory
Direct Known Subclasses:
ETLSTMFactory1

public class LSTMFactory
extends AbstractLSTMFactory

Basis to write a Long Short-Term Memory (LSMT) network factory.

Basis for Gers, Schraudolph & Schmiduber 2002 (from Journal of Machine Learning Research 3:115-143) LSTM network. See also Gers, Schmidhuber, & Cummins 2000 (from Neural Computation, 12(10) 2451-2471) and Hochreiter & Schmidhuber 1997 (from Neural Computation 9(8):1735-1780).

This factory comes with some connectivity and activation options. All weights are initialized with value in the range [-.1,.1].

See Also:
FastLSTMNetwork, AbstractLSTMFactory

Constructor Summary
LSTMFactory(int newInputCount, int newBlockCount, int newCellperBlock, boolean newSquashInput, boolean newSquashOutput, int newOutputCount, FunctionalUnit newSampleOutput, boolean newGateToGate, boolean newBiasToOutput, boolean newInputToOutput, boolean newGateToOutput)
          Construct an LSTM network factory.
LSTMFactory(int newInputCount, int newBlockCount, int newCellperBlock, boolean newSquashInput, boolean newSquashOutput, int newOutputCount, FunctionalUnit newSampleOutput, boolean newGateToGate, boolean newBiasToOutput, boolean newInputToOutput, boolean newGateToOutput, double newOutputWeightsLocalGradientFactor)
          Construct an LSTM network factory.
 
Methods inherited from class lnsc.lstm.AbstractLSTMFactory
createUnit
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LSTMFactory

public LSTMFactory(int newInputCount,
                   int newBlockCount,
                   int newCellperBlock,
                   boolean newSquashInput,
                   boolean newSquashOutput,
                   int newOutputCount,
                   FunctionalUnit newSampleOutput,
                   boolean newGateToGate,
                   boolean newBiasToOutput,
                   boolean newInputToOutput,
                   boolean newGateToOutput)
Construct an LSTM network factory.

Parameters:
newInputCount - Number of input to the network.
newBlockCount - Number of memory block.
newCellperBlock - Number of memory cells per block.
newSquashInput - true to squash input to cell (default) false without (use identity instead)
newSquashOutput - true to squash output of cell as in older papers false without squashing (default)
newOutputCount - Number of output of the network
newSampleOutput - Sample of an output function (should have one input and one output, default LogisticUnit(1,0))
newGateToGate - Connects block gates to block (default false)
newBiasToOutput - Connects bias to output layer (default true)
newInputToOutput - Connects input to output layer (default true)
newGateToOutput - Connects block gates to output layer (default true)

LSTMFactory

public LSTMFactory(int newInputCount,
                   int newBlockCount,
                   int newCellperBlock,
                   boolean newSquashInput,
                   boolean newSquashOutput,
                   int newOutputCount,
                   FunctionalUnit newSampleOutput,
                   boolean newGateToGate,
                   boolean newBiasToOutput,
                   boolean newInputToOutput,
                   boolean newGateToOutput,
                   double newOutputWeightsLocalGradientFactor)
Construct an LSTM network factory.

Parameters:
newInputCount - Number of input to the network.
newBlockCount - Number of memory block.
newCellperBlock - Number of memory cells per block.
newSquashInput - true to squash input to cell (default) false without (use identity instead)
newSquashOutput - true to squash output of cell as in older papers false without squashing (default)
newOutputCount - Number of output of the network
newSampleOutput - Sample of an output function (should have one input and one output, default LogisticUnit(1,0))
newGateToGate - Connects block gates to block (default false)
newBiasToOutput - Connects bias to output layer (default true)
newInputToOutput - Connects input to output layer (default true)
newGateToOutput - Connects block gates to output layer (default true)
newOutputWeightsLocalGradientFactor - Scales the gradien of the output weigths internally.