Neural nets
Artificial Neural Networks

Even a single neuron may implement rather complex (non-linear in general) functions. It is usually called perceptron and it is able to e.g. process system inputs and recognize fault symptoms, single characters in a text, simple elements of an image, etc. More complicated functions may be achieved by neural networks. They are usually connected into layers – input layer, output layer and one or more hidden layers. In feed forward networks, the signal flow proceeds from input layer to output layer. However, there are networks (recurrent, Hopfield network), where the signal can proceed in an opposite direction, similarly to sequence logical functions.

Neural networks are often used for classification of events and their sorting into groups, image processing and recognition, other cognition processes (e.g. diagnostics), creation of models, prediction or estimation of progress. In general, neural networks are suitable for solution of problems whose principles are unknown, not known enough or that we cannot describe well enough. Neural networks may be used as controller or models that are adapted by learning mechanism of the network. Neural network may be used for pattern learning (to observe actions of a skilled operation in various situations). In most cases, the learned (trained) network works in an appropriate way, but it cannot reveal the principles of the problem. It may happen that it suddenly fails in certain situations.

The learning process of an artificial neural network is rather complicated. Other methods are used as well, such as genetic algorithms.

The implementation of a program for a neural network is not difficult – it is substantially a sum of products and a rather simple non-linear function. It is possible to implement it even on a PLC. However, learning of the network is much more difficult – not only from the point of view of numerical complexity of the learning algorithm, but also from the point of view of competence and experience of the solver. Therefore, pre-programmed and verified programs are often used, e.g. specialized tools of general computing systems (MATLAB, Mathematica) or specialized tools for implementation and learning of neural networks.

Fig. 7.6: Neural net for data compression