Hopfield Neural Network and Pattern Recognition

image for AI Hopfield neural network, pattern recognition, Artificial Intelligence, software by Vlad Madejczyk

Hopfield Neural Network and Pattern Recognition

Hopfield Neuro Network Pattern Recognition Example – AFRecognize application 

 download – afrecognize.exe (about 750KB)

   The software is an example of very simple Hopfield neural network used for pattern recognition. Two modes: training and recognition are rather self-explanatory. The first one is used for input of reference shapes to the network “memory” and the other one for using the “memory” for shape/pattern recognition. The 0 and 1 cells on the right hand side provide only simple output visualisation showing some relations to the input data.

Patterns – made of “ticks” are changed to 0/1 vectors (the top white field) and after some Hopfield operations go to the weights matrix “memory”. Both vectors sets and the weights matrix “memory” can be saved as txt file for later usage or loaded.

The described example uses patterns, but actually a pattern/shape can be described as whatever set of 0/1 numbers or a model situation which we could normalize to 0 and 1, and moreover we are not limited to matrix 7×7 only.

The advantage of the simple AI network is that it DOESN’T USE fixed set of patterns – kept somewhere – to check match 1 to 1, instead it looks for similarity between input pattern and “memory” content, if nothing EXACTLY the same exists in the memory, it will find something MOST SIMILAR. So, in recognition process you can use “damaged” patterns and the network will try to find shape stored in “memory” – IF THERE IS NOT EXACTLY THE SAME SHAPE IT WILL FIND THE MOST SIMILAR ONE (instead of crash…).

In the above screenshot we can see recognition process for alphabet character “A” – on the left hand side is the “damaged” one, and on the right hand side the character properly “guessed” by network. Actually, just to get some quick screenshot, the “memory” contains only characters “A” and “F”, but many more can be added.

The software has windows showing how the learning data “behind the scene” looks like in the neural network, so this is rather more educational example of one of basic neural networks, one of aspects of what we name as Artificial Intelligence.

Such methods, like usage of neural networks for patterns recognition can be, and is, used for customers patterns recognition during their journeys on an online services. Maybe there is some hidden pattern behind their behaviour we are not aware of, which leads to successful purchase of a product, maybe not. There are sometimes too many parameters involved for easy guess. Neural network can help to find such hidden patterns, which take “visible” shape only in multidimensional spaces. Systems based on Artificial Intelligence can “see” it, we cannot.

WARNING: The software was originally developed in 2008 in Borland C++ and worked as it should. I haven’t used Microsoft Windows OS for over 7 years. I have no idea how the software can work now in such unpredictable, messy and weird OS  system like Microsoft Windows. Maybe it will crash your system, maybe you will lose your data. 

Copyright © 2008-2018 Vlad Madejczyk, ArgonFactory.com, FastSheep.com