clarion.system
Class AbstractTrainableImplicitModule

java.lang.Object
  extended by clarion.system.AbstractImplicitModule
      extended by clarion.system.AbstractTrainableImplicitModule
All Implemented Interfaces:
InterfaceTrainable
Direct Known Subclasses:
AbstractNeuralNet, AbstractRuntimeTrainableImplicitModule

public abstract class AbstractTrainableImplicitModule
extends AbstractImplicitModule
implements InterfaceTrainable

This class implements a trainable implicit module within CLARION. It extends the AbstractImplicitModule class and implements the InterfaceTrainable interface. This class is abstract and therefore cannot be instantiated on its own.

Usage:

The trainable implicit module is a framework for building an implicit module that can be used in the bottom level of the CLARION subsystems. A trainable implicit module is different from some other implicit modules in that it can be trained. Any implicit modules that extend this class has the capability of being trained.

Note: Implicit modules that extend this class are NOT necessarily trainable during runtime. This class only allows for a implicit module to be pre-trained prior to being attached to a CLARION subsystem. If you want to implement an implicit module that is trainable during runtime from within CLARION, extend the AbstractRuntimeTrainableImpicitModule instead.

Known Subclasses:

Version:
6.0.4
Author:
Nick Wilson

Field Summary
protected  AbstractOutputChunkCollection<? extends AbstractOutputChunk> DesiredOutput
          The desired output.
 
Fields inherited from class clarion.system.AbstractImplicitModule
ACTUATION_TIME, ChosenOutput, DECISION_TIME, GLOBAL_ACTUATION_TIME, GLOBAL_DECISION_TIME, GLOBAL_PERCEPTION_TIME, InputAsCollection, Output, PERCEPTION_TIME
 
Constructor Summary
AbstractTrainableImplicitModule(java.util.Collection<Dimension> InputSpace, AbstractOutputChunkCollection<? extends AbstractOutputChunk> Outputs)
          Initializes the trainable implicit module.
 
Method Summary
abstract  void backwardPass()
          Performs a backward pass from the output to the input of the implicit module, "learning" (as defined by the user) based on the desired output.
 double getSumSqErrors()
          Gets the sum of squared errors.
 void setDesiredOutput(AbstractOutputChunk DesiredOut)
          Sets the desired output for the network given the specified desired output.
 void setDesiredOutput(java.util.Collection<? extends AbstractOutputChunk> DesiredOut)
          Sets the desired output given the collection of desired outputs.
 
Methods inherited from class clarion.system.AbstractImplicitModule
forwardPass, getChosenOutput, getInput, getNumInput, getNumOutput, getOutput, getOutput, getResponseTime, setChosenOutput, setInput, setInput, setInput
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DesiredOutput

protected AbstractOutputChunkCollection<? extends AbstractOutputChunk> DesiredOutput
The desired output.

Constructor Detail

AbstractTrainableImplicitModule

public AbstractTrainableImplicitModule(java.util.Collection<Dimension> InputSpace,
                                       AbstractOutputChunkCollection<? extends AbstractOutputChunk> Outputs)
Initializes the trainable implicit module.

If this is being used as an implicit module in the ACS and you are using goals or specialized working memory chunks, remember that the input space must also contain all dimension-value pairs within those chunks that differ from the sensory information space.

Parameters:
InputSpace - The input space for the implicit module.
Outputs - The outputs for the implicit module.
Method Detail

setDesiredOutput

public void setDesiredOutput(java.util.Collection<? extends AbstractOutputChunk> DesiredOut)
Sets the desired output given the collection of desired outputs.

Note that you should reset the desired output before you call this method and this method should be called before the backwardPass method is called.

Specified by:
setDesiredOutput in interface InterfaceTrainable
Parameters:
DesiredOut - A collection of output chunks to set as the desired output.

setDesiredOutput

public void setDesiredOutput(AbstractOutputChunk DesiredOut)
Sets the desired output for the network given the specified desired output. If the specified output is not within the output layer of the implicit module, this method will do nothing.

Note that you should reset the desired output before you call this method and this method should be called before the backwardPass method is called.

Specified by:
setDesiredOutput in interface InterfaceTrainable
Parameters:
DesiredOut - The desired output to set.

backwardPass

public abstract void backwardPass()
Performs a backward pass from the output to the input of the implicit module, "learning" (as defined by the user) based on the desired output. This is the method used by the CLARION Library to learn (if the implicit module is runtime trainable).

Specified by:
backwardPass in interface InterfaceTrainable

getSumSqErrors

public double getSumSqErrors()
Gets the sum of squared errors.

Specified by:
getSumSqErrors in interface InterfaceTrainable
Returns:
The sum of squared errors.