verve::RBFNeuron Class Reference

A "radial basis function" Neuron. More...

#include <RBFNeuron.h>

Inheritance diagram for verve::RBFNeuron:

verve::Neuron List of all members.

Public Member Functions

VERVE_DECL RBFNeuron (unsigned int id)
virtual VERVE_DECL ~RBFNeuron ()
virtual VERVE_DECL void VERVE_CALL init (real stdDevWidth, real newRBFThreshold, const RBFInputData &inputData)
virtual VERVE_DECL RBFActivationCode
VERVE_CALL 
updateFiringRate (const RBFInputData &inputData)
virtual VERVE_DECL unsigned
int VERVE_CALL 
getNumDiscreteDimensions () const
virtual VERVE_DECL unsigned
int VERVE_CALL 
getNumContinuousDimensions () const
virtual VERVE_DECL const unsigned
int *VERVE_CALL 
getDiscretePosition () const
virtual VERVE_DECL const real
*VERVE_CALL 
getContinuousPosition () const

Protected Attributes

unsigned int mNumDiscreteDimensions
unsigned int mNumContinuousDimensions
unsigned int * mDiscretePosition
realmContinuousPosition
real mRBFDenominatorInverse
real mActivationThresholdDistanceSquared
real mNewRBFThresholdDistanceSquared

Detailed Description

A "radial basis function" Neuron.

Each RBFNeuron stores its position in both continuous and discrete space. This allows RBFNeurons to respond to a mixture of continuous and discrete input data. (This may sound a bit confusing compared to normal radial basis functions. Basically, the distance from the RBF to an input data point is computed in continuous space using the Euclidean distance, and the distance along a discrete dimension is either zero or infinite, depending on whether the discrete values match.)

Definition at line 61 of file RBFNeuron.h.


Constructor & Destructor Documentation

verve::RBFNeuron::RBFNeuron unsigned int  id  ) 
 

Definition at line 29 of file RBFNeuron.cpp.

References mActivationThresholdDistanceSquared, mContinuousPosition, mDiscretePosition, mNewRBFThresholdDistanceSquared, mNumContinuousDimensions, mNumDiscreteDimensions, and mRBFDenominatorInverse.

verve::RBFNeuron::~RBFNeuron  )  [virtual]
 

Definition at line 42 of file RBFNeuron.cpp.

References mContinuousPosition, and mDiscretePosition.


Member Function Documentation

const real * verve::RBFNeuron::getContinuousPosition  )  const [virtual]
 

Returns a constant pointer to the RBF's continuous position data.

Definition at line 259 of file RBFNeuron.cpp.

References mContinuousPosition.

const unsigned int * verve::RBFNeuron::getDiscretePosition  )  const [virtual]
 

Returns a constant pointer to the RBF's discrete position data.

Definition at line 254 of file RBFNeuron.cpp.

References mDiscretePosition.

unsigned int verve::RBFNeuron::getNumContinuousDimensions  )  const [virtual]
 

Returns the number of continuous dimensions in the RBF space.

Definition at line 249 of file RBFNeuron.cpp.

unsigned int verve::RBFNeuron::getNumDiscreteDimensions  )  const [virtual]
 

Returns the number of discrete dimensions in the RBF space.

Definition at line 244 of file RBFNeuron.cpp.

References mNumDiscreteDimensions.

void verve::RBFNeuron::init real  stdDevWidth,
real  newRBFThreshold,
const RBFInputData inputData
[virtual]
 

Initializes the RBFNeuron.

This sets its 'stdDevWidth' (i.e. the distance of one standard deviation from the RBF center), the 'newRBFThreshold' (points beyond this distance from the RBF center might need a new RBF to be created), number of dimensions being used in both discrete and continuous space, and the RBF's position in discrete and continuous space.

Definition at line 48 of file RBFNeuron.cpp.

References verve::RBFInputData::discInputData, mDiscretePosition, mNumContinuousDimensions, mNumDiscreteDimensions, verve::RBFInputData::numContInputs, and verve::RBFInputData::numDiscInputs.

RBFActivationCode verve::RBFNeuron::updateFiringRate const RBFInputData inputData  )  [virtual]
 

Updates the firing rate based on the distance to the given data point.

The dimensionality of the given point must match that of the RBF's position, both in discrete and continuous space. The returned activation code can be used for keeping track of active RBFNeurons and deciding when to create new RBFs. This assumes that at least one input dimension exists, either discrete or continuous.

Definition at line 109 of file RBFNeuron.cpp.

References verve::RBFInputData::discInputData, mDiscretePosition, mNumDiscreteDimensions, verve::NO_ACTIVATION, and verve::Neuron::setFiringRate().


Member Data Documentation

real verve::RBFNeuron::mActivationThresholdDistanceSquared [protected]
 

The threshold distance (squared for faster computations) that determines how close a data point must be to affect the RBFNeuron's firing rate.

Definition at line 124 of file RBFNeuron.h.

Referenced by RBFNeuron().

real* verve::RBFNeuron::mContinuousPosition [protected]
 

Array representing the RBF position in continuous space.

Definition at line 115 of file RBFNeuron.h.

Referenced by getContinuousPosition(), RBFNeuron(), and ~RBFNeuron().

unsigned int* verve::RBFNeuron::mDiscretePosition [protected]
 

Array representing the RBF position in discrete space.

Definition at line 112 of file RBFNeuron.h.

Referenced by getDiscretePosition(), init(), RBFNeuron(), updateFiringRate(), and ~RBFNeuron().

real verve::RBFNeuron::mNewRBFThresholdDistanceSquared [protected]
 

The threshold distance (squared for faster computations) that determines how far a data point must be from the RBF before we consider creating a new RBF.

Definition at line 129 of file RBFNeuron.h.

Referenced by RBFNeuron().

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

The number of dimensions in the continuous position.

Definition at line 109 of file RBFNeuron.h.

Referenced by init(), and RBFNeuron().

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

The number of dimensions in the discrete position.

Definition at line 106 of file RBFNeuron.h.

Referenced by getNumDiscreteDimensions(), init(), RBFNeuron(), and updateFiringRate().

real verve::RBFNeuron::mRBFDenominatorInverse [protected]
 

A constant precomputed value used in the Gaussian basis function (the inverse of the denominator).

Definition at line 119 of file RBFNeuron.h.

Referenced by RBFNeuron().


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