|
Developer Documentation |
|
Centre for Vision, Speech & Signal Processing |
Comments:
Implementation class for Kohonen network clustering algorithm. The
NumClassifyKohonenC handle class should be used.
Parent Classes:
Variables:
- Array2dC _weights;
-
Cluster centres
- NumMagnitudeC _distance;
-
Metric for measuring distance between samples and cluster centres
- UIntT _Sx;
-
Size of the grid
- UIntT _Sy;
-
Size of the grid
- RealT _alpha;
-
Learning parameter
- Array1dC _labels;
-
Look up table of grid points to get from table to grid
- UIntT _neighbours;
-
Size of neighbourhood to update
- Array1dC _rangeX;
-
Minimum index of neighbourhood
- Array1dC _rangeY;
-
Maximum index of neighbourhood
- UIntT _cycles;
-
Number of iterations through the complete dataset
- UIntT _cyclesSoFar;
-
Internal counter of total number of steps
Methods:
- NumClassifyKohonenBC(UIntT Sx,UIntT Sy,UIntT Cycles,const NumMagnitudeC & distance)
-
| Sx | specifies x-dimension of grid |
| Sy | specifies y-dimension of grid |
| Cycles | how iterations of the training algorithm to perform |
| distance | metric to use when measuring sample distance from class centres |
|
Constructor
- NumClassifyKohonenBC(istream & in)
-
Constructs from stream
- NumClassifyKohonenBC(const NumClassifyKohonenBC & oth)
-
Copy Constructor
- BodyRefCounterVC & Copy() const
-
Makes a deep copy and is virtual
protected:
- VectorC Evaluate(const VectorC & X) const
-
Evaluate Y=f(X)
- NumLabelC Classify(const VectorC & X) const
-
Evaluate c=f(X)
- void Initialise(UIntT Sx,UIntT Sy,const DListC<VectorC> & trainX)
-
Initialises the clusters
| Sx | x-dimension of grid |
| Sy | y-dimension of grid |
| trainX | training samples used to determine initial centers |
|
- void Cluster(const DListC<VectorC> & trainX)
-
Train the unsupervised classifier on a list of feature vectors
- void Cluster(const DListC<VectorC> & trainX,IntT cycles)
-
Train the kohonen network a set number of cycles
- const StringC GetInfo() const
-
Prints derived class information
- BooleanT Save(ostream & out) const
-
Writes object to stream, can be loaded using constructor
- void NewNeighbourhood(UIntT neighbours)
-
Set a new number of neighbours
- void Initialise(UIntT numClasses,const DListC<VectorC> & trainX)
-
Initialises the clusters
| numClasses | number of clusters that will be set up |
| trainX | training samples used to determine initial centers |
|
- void Cluster(const DListC<VectorC> & trainX)
-
Used to learn relationships c=f(X) and Y=f(X)
- const StringC GetInfo() const
-
Prints derived class information
- BooleanT Save(ostream & out) const
-
Writes object to stream, can be loaded using constructor
- VectorC Evaluate(const VectorC & X) const
-
Evaluate Y=f(X) where Yc=1
- NumLabelC Classify(const VectorC & X) const
-
Evaluate c=f(X)
- DListC<NumLabelC> Classify(const DListC<VectorC> & listX) const
-
Evaluate c=f(X) for a list of X
- const StringC GetInfo() const
-
Prints derived class information
- BooleanT Save(ostream & out) const
-
Writes object to stream, can be loaded using constructor
- BodyRefCounterVC & Copy() const
-
Makes a deep copy and is virtual
As the copy constructor but is virtual so can be called from a base
class reference.
- void SetSizeX(UIntT X)
-
Sets size of input vector
- void SetSizeY(UIntT Y)
-
Sets size of output vector
- VectorC Apply(const VectorC & X)
-
Evaluate Y=f(X) as a process
- VectorC Evaluate(const VectorC & X) const
-
Evaluate Y=f(X)
This is the main function that does all the work and must be overloaded
in derived classes.
- DListC<VectorC> Evaluate(const DListC<VectorC> & listX) const
-
Evaluate Y=f(X) for a list of X
This is achieved by iterating through the list of X and using the
Evaluate member function that takes a single X. For sophisticated
applications where speed is important, this function can be overloaded
to do batch processing.
- VectorC operator()(const VectorC & X) const
-
Evaluate Y=f(X)
- MatrixC Jacobian(const VectorC & X) const
-
Calculate Jacobian matrix at X
Performs numerical estimation of the Jacobian using differences. This
function has and should be overloaded for all cases where the Jacobian
can be calculated analytically.
- const StringC GetInfo() const
-
Derived class information
- const StringC & GetName() const
-
Derived class type
- UIntT SizeX() const
-
Size of input vectors
- UIntT SizeY() const
-
Size of output vectors
- BooleanT Save(ostream & out) const
-
Writes object to stream, can be loaded using constructor
- VectorC Apply(const VectorC &)
-
Apply operation.
- IntT ApplyArray(const SArray1dC<VectorC> & in,SArray1dC<VectorC> & out)
-
Apply operation to an array of elements.
returns the number of elements processed.
- BooleanT Save(ostream & out) const
-
Save to ostream.
- const type_info & InputType() const
-
Get input type.
- const type_info & OutputType() const
-
Get input type.
- BooleanT Save(ostream & out) const
-
Save to ostream.
- const type_info & InputType() const
-
Get input type.
- const type_info & OutputType() const
-
Get input type.
- ProcTypeT OpType() const
-
Operation type lossy/lossless.
- BooleanT IsStateless() const
-
Is operation stateless ?
- BooleanT Save(ostream & out) const
-
Save to ostream.
- BodyRefCounterVC & Copy() const
-
Creat a copy of this object.
- BodyRefCounterVC & Copy() const
-
Creat a copy of this object.
- BooleanT operator==(const BodyRefCounterVC & oth) const
-
Compair identitys.
- BooleanT operator!=(const BodyRefCounterVC & oth) const
-
Compair identitys.
- BooleanT Save(ostream & out) const
-
Save to ostream.
- void AddReference()
-
Another reference to the object has been created.
- void RemoveReference()
-
One reference to the object was deleted.
Locking scheme
--------------
The object is possible to lock (to make constant). The scheme
assumes that the object is created, it can be locked, after that
it can only be destroyed. The locked object cannot be unlocked.
This locking scheme is very useful
during debugging, using assert() function,
when it is necassary to check that object
is treated as constant and the constancy is not violated by
any casting or passing through the copy constructor of shared
objects.
- void SetConst(void) const
-
This locks the object.
Often objects you wish to lock are already const.
- void SetConst(void)
-
This locks the object.
- BooleanT IsConst(void) const
-
Returns TRUE if the object is locked, ie. it is assumed to be constant.
- BooleanT IsNotConst(void) const
-
Returns TRUE if the object is unlocked.
ie. there is no special
information if the object is constant or not.
Counter state information
-------------------------
- BooleanT ToBeDeleted() const
-
Returns TRUE if there is only one reference to the object and the whole object or its reference counting part can be deleted.
- BooleanT ToBeDeletedRemoveIgnoreNoRemove()
-
Decrement refrence by 1 return true if this leaves no refrences to the object.
- BooleanT ToBeDeletedRemove()
-
Decrement refrence by 1 return true if this leaves no refrences to the object. This also checks the NoRemove flag.
- BooleanT BodyMightBeDeleted() const
-
Returns TRUE if the reference counted part of the object can be deleted, ie. flag NOREMOVE is false .
- BooleanT IsCountZero() const
-
Are there any refrences left ?
- BooleanT BRCPtrCanDeleteObject() const
-
Used by BRRCPtrC to establish if an object has ZERO refrences and can be deleted.
- IntT Count() const
-
Returns the current state of the counter, ie. how many references to this object exist.
- const BodyRefCounterC & operator=(const BodyRefCounterC & b)
-
It has not meaning to assign object 'b' to this object because it would destroy a history of the object which is counted. So this is a dummy function.
- BooleanT IsValidObject() const
-
Test if object is valid.
When amma check is disabled this always returns true.
- BooleanT UserBitTest(IntT x) const
-
Test user flag.
- void UserBitSet(IntT x,BooleanT setit = TRUE)
-
Test user flag.
- void UserBitZero(IntT x)
-
Set bit to zero.
- void ReportBRCError(char * Msg)
-
Report error, used in BRCPtrC.
- UIntT Hash() const
-
Hash on address of object.
- void SetUndeletable()
-
Make object undeletable.
Usefull to prevent recursive deleting in graph structures.
Only hackers need this function.
- void ReportInvalidObject(char * Msg = 0) const
-
Tell user about validation failure.
- LabelT Label() const
-
Returns the label of this reference counter.
The member function
is useful mainly to recognize objects during debugging.
The value of the label is uniquely defined pointer.
|
Programmer:Kieron Messer, Documentation by CxxDoc: Tue Mar 20 10:49:27 2001
|