
Brief instructions for the genesom java package.


Fri Jul 30 09:30:58 CEST 2004


The genesom package implements a generalized Self Organizing (Neural)
Map (SOM) for sequence processing, as a special case of the SOM 
for structured data (SOMSD). 

A RadialTriangleGenerator is used to generate the neuron 
connectivity structure, which might result in power law
neighborhood increase (Euclidean case) or exponential 
neighborhood increase (hyperbolic case).

. calc_no_outer.sh 6
shows the number of neurons for 6 neighbor neurons 
and a radial grid with Euclidean branching.

. calc_no_outer.sh >6
shows the number of neurons for 7 and more neighbor neurons 
and a radial grid with exponential branching.


The presented code is very raw and has not been beautified.
However the model structure should become apparent by the object
oriented model. Run javadoc if You are interested in the
class dependencies. The package is subject to the license
found in LICENSE.txt.


This package is intended to complement the experimental
parts of the papers on SOMSD contributed by the 
research group 'Learning with neural methods on structured data'
at the University of Osnabrck (http://www.inf.uos.de/lnm). 
A casual user is not encouraged to have a quick glance at the 
present code; I guess, one day would be minumum for an interested
user to formulate his/her learning task to meet the 
genesom requirements.


An introductory paper on the learning issue is:

M.Strickert, B.Hammer, 
  Unsupervised recursive sequence processing, 
  M.Verleysen (ed.), European Symposium on Artificial Neural Networks'2003,
  D-side publications, 27-32, 2003.



System requirements: linux/cygwin GNU utilities, java 1.4.
It is assumed that GNU versions have priority over original
commands, or mappings exist such as awk -> gawk.


To get started, type:

  javac Main.java *odel*java


Execute the Reber grammar demo:

. reber.train.sh


Wait one night until 617 neurons have been trained and all
files reber_617.080.* have been generated (approx 100MB output).
If You run a terminal, the final sound notification will fail
due to a 'cannot connect to X server exception' which does no harm.
In the meantime study reber.train.sh and the called scripts.
Especially, reber_617.train.properties is interesting.

The trained map given by reber_617.080.map
might be the most interesting, because it contains 
the trained neuron weights and contexts.

The huge .gz file contains snapshots of training
and data presentations useful for network analysis.

To get rid of the data trash, type 
rm -f reber_617.080.*


Good luck.

   Marc Strickert (mstricke@uos.de)


