What they can and where they fail

Neural nets are being constructed to solve problems that can't be solved using conventional algorithms.

Such problems are usually optimization or classification problems.

The different problem domains where neural nets may be used are:

pattern association

pattern classification

regularity detection

image processing

speech analysis

optimization problems

robot steering

processing of inaccurate or incomplete inputs

quality assurance

stock market forecasting

simulation

...

There are many different neural net types with each having special properties, so each problem domain has its own net type (see Types of neural nets for a more detailed description).

Generally it can be said that neural nets are very flexible systems for problem solving purposes.

One ability should be mentioned explicitely: the error tolerance of neural networks. That means, if a neural net had been trained for a specific problem, it will be able to recall correct results, even if the problem to be solved is not exactly the same as the already learned one. For example, suppose a neural net had been trained to recognize human speech. During the learning process, a certain person has to pronounce some words, which are learned by the net. Then, if trained correctly, the neural net should be able to recognize those words spoken by another person, too.

But all that glitters ain't gold. Although neural nets are able to find solutions for difficult problems as listed above, the results can't be guaranteed to be perfect or even correct. They are just approximations of a desired solution and a certain error is always present.

Additionaly, there exist problems that can't be correctly solved by neural nets. An example on pattern recognition should settle this:

If you meet a person you saw earlier in your life, you usually will recognize him/her the second time, even if he/she doesn't look the same as at your first encounter.

Suppose now, you trained a neural net with a photograph of that person, this image will surely be recognized by the net. But if you add heavy noise to the picture or rotate it to some degree, the recognition will probably fail.

Surely, nobody would ever use a neural network in a sorting algorithm, for there exist much better and faster algorithms, but in problem domains, as those mentioned above, neural nets are always a good alternative to existing algorithms and definitely worth a try.

Neural Net Components in an Object Oriented Class Structure