Before the decision to build a simulation library was made, it was realized that the
context of performing research on algorithms dictates a number of specific system
requirements. The most important are stated in the following:
Because we are part of a pattern recognition group, the interest in neural
networks is mainly focused on its use as a pattern classifier. One of the basic
questions in this context is how a neural network compares to a traditional
statistical pattern classifier, e.g. see [Devijver 1982], [Duda 1973] or
[Fukunaga 1990]. The first requirement of the system is that it must be easily
allow a comparison of both approaches.
One of the conclusions of a comparison of network classifiers with traditional
methods could be that for certain tasks neural network classifiers are better, or
that the use of hybrid systems can improve the solution of a classification
problem. This leads to the requirement that it must be possible to create hybrid
systems.
Solving a certain application is only a small part of our interest. The system
should have a maximum flexibility to implement new ideas, new algorithms or
improvements to established techniques. This implies an open system, such that
an (easy) access to all parameters is possible. Furthermore, altering parts of
the code or adding new code should also be easy. This last requirement implies
that the system maintenance should be supported, preferably by special tools.
Although it is not the main purpose, building standalone applications must be
possible with the system. Another requirement is the possibility to integrate it
with other software, for example image processing packages.
It is important that an environment is portable to different machines and
architectures without much reprogramming. However, neural network experiments
need in general large computational resources, especially speed and memory, so it
is reasonable to restrict the target machines to the more powerful workstation
computers.
An environment with much flexibility and possibilities will easily result in a
system that is difficult to start with. A novice user will have difficulties to
build his or her first application. Therefore a number of starting points are
required or examples that can be helpful to get started with the system.