-
- The software model of OpenNN
-
Roberto Lopez.
[email protected]
Artelnics - Making intelligent use of data
In this tutorial we present the software model of OpenNN.
The whole process is carried out in the Unified Modeling Language (UML).
The Unified Modeling Language (UML) is a general purpose visual
modeling language that is used to specify, visualize, construct,
and document the artifacts of a software system.
In order to construct a model for OpenNN, we
follow a top-down development. This approach to the problem begins
at the highest conceptual level and works down to the details. In
this way, to create and evolve a conceptual class diagram, we iteratively model:
- Classes.
- Associations.
- Compositions.
- Derived classes.
- Members and methods.
-
In colloquial terms a concept is an idea or a thing. In
object-oriented modelling concepts are represented by means of
classes. Therefore, a prime task is to
identify the main concepts (or classes) of the problem domain. In
UML class diagrams, classes are depicted as boxes.
-
Through all this work, we have seen that general problems can be solved
with three elements: a neural network, a
performance functional and a training strategy. The characterization
in classes of these three concepts for OpenNN is
as follows:
- NeuralNetwork
- The class representing the concept of neural network is called NeuralNetwork.
- Performance functional
- The class which represents the concept of performance functional is called PerformanceFunctional.
- Training strategy
- The class representing the concept of training strategy is called TrainingStrategy.
- The next figure depicts a starting UML class diagram for the conceptual model of OpenNN.
-
Conceptual diagram for OpenNN
-
Once identified the main concepts in the model it is necessary to
aggregate the associations among them. An association is a
relationship between two concepts which points some significant
or interesting information. In UML class
diagrams, an association is shown as a line connecting two
classes. It is also possible to assign a label to an association.
The label is typically one or two words describing the association.
-
The appropriate associations among the main concepts of OpenNN are next identified to
be included to the UML class diagram of the system:
- Neural network- Performance functional
- A neural network has assigned a performance functional.
- Performance functional - Training strategy
- A performance functional is improved by a training strategy.
- The following figure shows the above UML class diagram with these associations aggregated.
-
Classes are usually composed of another classes. The higher level classes manage the lower level ones.
Regarding OpenNN, the three main concepts described above are quite high level structures.
This means that the neural network, performance functional and training algorithm classes are composed by different elements.
In the next chapters the composition of the high level objects is explained in some detail.
In object-oriented programming, some classes are designed only as
a parent from which sub-classes may be derived, but which is not
itself suitable for instantiation. This is said to be an
abstract class, as opposed to a concrete class, which
is suitable to be instantiated. The derived class contains all the
features of the base class, but may have new features added or
redefine existing features. Associations between a base class an a derived class are of the kind is a.
Some OpenNN classes are abstract, and concrete classes are derived from them.
In the next chapters we will describe the inheritance of the main components
of OpenNN: the neural network, the performance functional and the training strategy.
A member (or attribute) is a named value or relationship that exists for all or some instances of a class.
A method (or operation) is a procedure associated with a class.
In UML class diagrams, classes are depicted as boxes with three sections: the
top one indicates the name of the class, the one in the middle
lists the attributes of the class, and the bottom one lists the
operations.
The main members and methods of the different OpenNN classes are described throughout all this manual.
Bibliography
- C. Bishop. Neural Networks for Pattern Recognition. Oxford University Press, 1995.
- H. Demuth, M. Beale, and M. Hagan. Neural Network Toolbox User's Gide. The MathWorks, Inc., 2009.
- S. Haykin. Neural Networks: A Comprehensive Foundation. Prentice Hall.
- R. Lopez. Neural Networks for Variational Problems in Engineering. PhD Thesis, Technical University of Catalonia, 2008.
OpenNN Copyright © 2014 Roberto Lopez (Artelnics)