Hopfield Neural Network, Pattern Recognition example software
AI and ML

Pattern Recognition

Probably one of the most simple neural networks for pattern recognition is Hopfield Neural Network. I don’t want to describe here how exactly the Hopfield Neural Network works. What is important, is that – opposite to algorithm like if(blah blah) go to line blah – neural networks can, for instance, learn, or can have a kind of memory.  In 2007 when I was analysing AI and neural networks I was really surprised how useful neural networks can be. The image included in this post shows how application written with Borland C++ Professional for Windows system. It was rather educational application. It had two modes: learning and recognition. I was testing it on input 7×7 matrix for alphabet characters. The large matrix in the middle is a kind of “brain” of the neural network – numbers change as learning process goes. It was possible to export the “brain”, and actually you could produce such “brains” for different kind of pattern/shape recognitions.

It is not example of Artificial Intelligence as such, but definitely it is much more advanced that bunch of conditional statements and Artificial Intelligence can be built on such parts like the neural network, or even much more advanced neural networks.

One big advantage of the Hopfield neural network is that it is rather simple to get picture how neural networks can work.

Also, I write “pattern recognition” or “shape recognition” but fact is, that it doesn’t need to be graphical pattern as such. A pattern can be an organised set of data describing – for instance – user clicks/journey on online application interface, or parameters of some process, or parameters of focus status in our digital camera. Huge advantage of neural networks over conditional statements and standard, basic algorithms is fact, that neural networks gets some data which doesn’t match exactly set of patterns, yet it is able to recognise to which pattern the input data fits in the best way. The image shows that the network recognised “damaged” character A presented on the left side. So, we can see it can work if our input data is not complete, when we don’t get the whole needed information to make decision, for instance. In some sense, neural networks can produce predictions, and they are used for that.

What is really amazing is the fact that even so basic simple neural network can produce such advanced and usable results.