About

Basic Model

Download

Docs

Literature

Home

Contact



Graciously hosted by
SourceForge.net Logo

libnn - Basic Model

Basically neuronal networks consist of in a more or less complex way connected units, or better neurons. One certain neuron j sums up all the information received from backwards connected neurons i. For simplicitiy's sake this information is represented as numeric values instead of frequences as e.g. in biological brains.
Neuron j itself sends information to its forward connected neurons k depending on the value of the received information and on a so called activation function; in short:

fkt1

This activation function can be binary, linear, deverging or converting.
Mathematically a neuronal network could be described as a multidimensional graph, processing a given input to a certain output. The input is a vector of single inputvalues given as information to neurons defined as inputneurons, the output a vector of the feedforwarded information of so called endneurons. But where are the variables making this graph multidimensional?
In fact, the connections between the neurons do not only transmit the information but also change it: they can reinforce or inhibit it. Mathematically spoken, the information is multiplied by a certain factor, a so called weight or synapse. And these weights are the varibales. Thus the received information of neuron j is the sum of weigthed outputs of neurons i:

fkt2

To summarize, a neuronal network consists of connected neurons. The processing of a given input depends on the actual values of the weights:

fkt3


Indeed, the most interesting part (and also filling most lines of the code of libnn) is the training of a given network. This is, the way you try to adapt the weights so that the network recognizes correctly a given set of patterns.
There are three general trainings methods:
  • The net is told by an extern teacher the correct output it shall produce to a certain pattern. By calculating the difference between the correct and real output the net can adapt its weights: supervised learning
  • The net does not know the correct output. After changing its weights, it is told by a teacher if the output has become better or worse: reinforcement learning
  • The network adapts it weights without knowing the right output and without the the help of any teacher: non supervised learning
Up to now, all implemented training methods of libnn belong to the first kind; among those:
  • Backpropagation (Standard, Weight Decay, Momentum Term)
  • Backpercolation
  • Jordan Nets
  • Elman Nets
  • Real-Time Recurrent Learning
  • RBF-Nets
  • SOM
For further information have a look at the documentation!