Neural Networks

To share this page click on the buttons below;

An introduction to Neural Networks

Neural Networks are algorithms particularly suited to perform classification. Classification is the ability to recognize: objects, sounds, smells and so on. Classification is very easy for human beings, but it is considered traditionally very hard for computers and software agents.

To understand why classification is so hard for software agents let's consider an example. I have no doubt that you are able to recognize a tree, but are you able to explain why you recognize a tree? Suppose that you have to explain to someone who has never seen a tree (perhaps a Martian) what a tree is and how to recognize it (without showing a tree, of course). You may say: "A tree has leaves". Well yes, of course, but then you have another problem: you have to explain what a leaf is (likely if the Martian has never seen a tree he has never seen a leaf too). Besides in Autumn trees do not have leaves but they still are trees and you are perfectly able to recognize them also in autumn. Not only, there are trees that do not have leaves at all (like firs) but still they are trees.

The task is hard, isn't it? At the end you'll probably give up and send to your Martian friend some pictures of trees. That's interesting and strange: as human beings we are extremely good at classification, but we are somewhat unable to explain how we perform such task. There is in our brain some ability to extract information and generalize so that at the end we are able to recognize, but we don't know exactly what those information are and how the generalization process works.

There is more that is interesting to notice: our capability to classify is able to drop all information that are not relevant. Think about speech recognition: a word can be pronounced in thousand different ways (every person has a different voice), with different pitch and speed and volume and we are always (within some limits, of course) able to recognize that word. Those are problems that developers are facing to build good classifiers (classifiers with performances comparable with human ability).

Neural Networks are one of the most powerful tools to develop software agents able to realize good classification algorithms.

The word Neural is used because Neural Networks imitate (in some way) what happens in the cells of our brains. Our brain is, in fact, a network of cerebral cells that stores information within the connections among the cells. On the web you'll certainly find someone that explains similarities between our neurons and Neural Network s's neurons in term of dendrites and synapses: I won't because Neural Network are "math stuff" and those similarities (if present) are not really useful to understand Neural Network algorithm, in my opinion.

What is surely worth to note is that Neural Networks work in the same way "we" work: Neural Networks work by example. If you want a Neural Network to recognize a tree you have to show it images of trees and it will learn what a tree is in the same way we explain what a tree is: simply by showing trees.

To share this page click on the buttons below;