verve::RBFPopulation Class Reference

A group of RBFNeurons. More...

#include <RBFPopulation.h>

Inheritance diagram for verve::RBFPopulation:

verve::Population List of all members.

Public Member Functions

VERVE_DECL RBFPopulation ()
virtual VERVE_DECL ~RBFPopulation ()
virtual VERVE_DECL void VERVE_CALL init (const RBFInputData &inputData, bool isDynamic)
virtual VERVE_DECL void VERVE_CALL resetShortTermMemory ()
virtual VERVE_DECL void VERVE_CALL updateFiringRatesRBF (const RBFInputData &inputData, bool allowDynamicRBFCreation)
virtual VERVE_DECL unsigned
int VERVE_CALL 
getNumActiveNeurons () const
virtual VERVE_DECL Neuron
*VERVE_CALL 
getActiveNeuron (unsigned int i)
virtual VERVE_DECL real VERVE_CALL computeMaxActivationSum () const

Protected Member Functions

virtual void clear ()
virtual void createNeuron (unsigned int id)
void makeNewRBF (const RBFInputData &inputData)
void connectNewRBFToTargets (Neuron *n)

Protected Attributes

unsigned int mContinuousResolution
unsigned int mNumDiscreteDimensions
unsigned int mNumContinuousDimensions
bool mIsDynamic
bool mSingleState
real mStdDevWidth
std::vector< Neuron * > mActiveNeurons

Detailed Description

A group of RBFNeurons.

This class can take points represented as a mixture of discrete and continuous data. If an RBFPopulation is created with zero dimensions (in both discrete and continuous space), it becomes a "null" Population with a single, constantly- active Neuron, representing a state space with a single state.

Definition at line 39 of file RBFPopulation.h.


Constructor & Destructor Documentation

verve::RBFPopulation::RBFPopulation  ) 
 

Definition at line 31 of file RBFPopulation.cpp.

References mContinuousResolution, mIsDynamic, mNumContinuousDimensions, mNumDiscreteDimensions, mSingleState, and mStdDevWidth.

verve::RBFPopulation::~RBFPopulation  )  [virtual]
 

Definition at line 42 of file RBFPopulation.cpp.


Member Function Documentation

void verve::RBFPopulation::clear  )  [protected, virtual]
 

Overridden to clear the list of output Projections.

Reimplemented from verve::Population.

Definition at line 126 of file RBFPopulation.cpp.

References verve::Population::clear().

Referenced by init().

real verve::RBFPopulation::computeMaxActivationSum  )  const [virtual]
 

Computes and returns the maximum sum of activation for this RBFPopulation.

This information is useful for scaling the learning rate when training the output Connections to ensure stable learning.

Definition at line 239 of file RBFPopulation.cpp.

References mNumContinuousDimensions, and verve::globals::pow().

Referenced by verve::RLModule::RLModule(), verve::PredictiveModel::setDeltaLearningRate(), and verve::RLModule::setTDLearningRate().

void verve::RBFPopulation::connectNewRBFToTargets Neuron n  )  [protected]
 

Gives a new RBFNeuron its axons to this RBFPopulation's targets.

Definition at line 218 of file RBFPopulation.cpp.

References verve::Population::mOutputProjections.

void verve::RBFPopulation::createNeuron unsigned int  id  )  [protected, virtual]
 

Overridden to create an RBFNeuron.

Reimplemented from verve::Population.

Definition at line 185 of file RBFPopulation.cpp.

References verve::Population::mNeurons.

Referenced by makeNewRBF().

Neuron * verve::RBFPopulation::getActiveNeuron unsigned int  i  )  [virtual]
 

Returns the active Neuron at the given index in the internal active Neuron list.

Definition at line 234 of file RBFPopulation.cpp.

References mActiveNeurons.

Referenced by verve::RLModule::updateActiveTDConnectionList().

unsigned int verve::RBFPopulation::getNumActiveNeurons  )  const [virtual]
 

Returns the number of currently-active Neurons.

Definition at line 229 of file RBFPopulation.cpp.

References mActiveNeurons.

Referenced by verve::RLModule::updateActiveTDConnectionList().

void verve::RBFPopulation::init const RBFInputData inputData,
bool  isDynamic
[virtual]
 

Creates the Population to fit the given RBFInputData object.

Definition at line 46 of file RBFPopulation.cpp.

References clear(), verve::RBFInputData::computeNumUniqueStates(), verve::RBFInputData::contCircularData, verve::RBFInputData::contInputData, verve::RBFInputData::contResolution, verve::RBFInputData::discInputData, verve::RBFInputData::discNumOptionsData, verve::RBFInputData::init(), verve::Population::init(), makeNewRBF(), mContinuousResolution, mIsDynamic, verve::Population::mNeurons, mNumContinuousDimensions, mNumDiscreteDimensions, mSingleState, mStdDevWidth, verve::RBFInputData::numContInputs, verve::RBFInputData::numDiscInputs, and verve::RBFInputData::setToUniqueState().

Referenced by verve::RLModule::RLModule().

void verve::RBFPopulation::makeNewRBF const RBFInputData inputData  )  [protected]
 

Creates a new RBFNeuron and positions it in the input space using the given input data.

Definition at line 191 of file RBFPopulation.cpp.

References createNeuron(), mContinuousResolution, verve::Population::mNeurons, and mStdDevWidth.

Referenced by init().

void verve::RBFPopulation::resetShortTermMemory  )  [virtual]
 

Overridden to handle the case where we have a single, constantly-active Neuron.

Reimplemented from verve::Population.

Definition at line 112 of file RBFPopulation.cpp.

References mActiveNeurons, verve::Population::mNeurons, mSingleState, and verve::Population::resetShortTermMemory().

void verve::RBFPopulation::updateFiringRatesRBF const RBFInputData inputData,
bool  allowDynamicRBFCreation
[virtual]
 

Updates all RBFNeuron firing rates.

If the RBFPopulation is dynamic and learning is enabled, adds new RBFs when necessary. Updates the internal list of active Neurons.

Definition at line 131 of file RBFPopulation.cpp.

References verve::HIGH_ACTIVATION, verve::LOW_ACTIVATION, mActiveNeurons, verve::Population::mNeurons, and mSingleState.

Referenced by verve::RLModule::computeValueEstimation(), verve::RLModule::resetState(), verve::RLModule::update(), and verve::RLModule::updatePolicyOnly().


Member Data Documentation

std::vector<Neuron*> verve::RBFPopulation::mActiveNeurons [protected]
 

A list of the currently-active Neurons.

This enables us to speed up training by focusing on just the necessary set of Connections.

Definition at line 114 of file RBFPopulation.h.

Referenced by getActiveNeuron(), getNumActiveNeurons(), resetShortTermMemory(), and updateFiringRatesRBF().

unsigned int verve::RBFPopulation::mContinuousResolution [protected]
 

The number of RBFs per dimension in continuous space.

Definition at line 90 of file RBFPopulation.h.

Referenced by init(), makeNewRBF(), and RBFPopulation().

bool verve::RBFPopulation::mIsDynamic [protected]
 

Determines whether the data space is initially filled with RBFs or if we start with none and add them dynamically as necessary.

Definition at line 101 of file RBFPopulation.h.

Referenced by init(), and RBFPopulation().

unsigned int verve::RBFPopulation::mNumContinuousDimensions [protected]
 

The number of dimensions in continuous space.

Definition at line 96 of file RBFPopulation.h.

Referenced by computeMaxActivationSum(), init(), and RBFPopulation().

unsigned int verve::RBFPopulation::mNumDiscreteDimensions [protected]
 

The number of dimensions in discrete space.

Definition at line 93 of file RBFPopulation.h.

Referenced by init(), and RBFPopulation().

bool verve::RBFPopulation::mSingleState [protected]
 

True if this is a "null" Population with a single, constantly-active Neuron.

Definition at line 105 of file RBFPopulation.h.

Referenced by init(), RBFPopulation(), resetShortTermMemory(), and updateFiringRatesRBF().

real verve::RBFPopulation::mStdDevWidth [protected]
 

The distance from the center of an RBF to 1 standard deviation away.

Definition at line 109 of file RBFPopulation.h.

Referenced by init(), makeNewRBF(), and RBFPopulation().


The documentation for this class was generated from the following files:
Generated on Tue Jan 24 21:46:39 2006 for Verve by  doxygen 1.4.6-NO