Abstract: A Hopfield neural network is typically used for pattern recognition. The user trains the network with a set of black-and-white templates; for each template, each neuron in the network (corresponding to one pixel) learns to turn itself on or off based on the current output of every other neuron in the network. After training, the network can be provided with an arbitrary input pattern, and (in theory) will provide an output pattern resembling whichever template most closely matches this input pattern.
This is the theory behind Hopfield neural networks. The reality is somewhat different: many factors complicate the recognition process. The network provides garbled output if it is provided too many training templates, or if the network has too few or too many neurons. If two training templates are very similar, the network tends to produce an amalgam of them as output. In practice, these factors are avoided by carefully customizing the network for a particular task.
This application is a general-purpose implementation of a Hopfield neural network. The application allows the user to choose a network size, draw training templates for the network to absorb, and then ask the network to recognize particular input patterns. The results will likely reflect the difficulties mentioned above. The application has the capability of saving or restoring the neural network, as well as any particular training pattern.
Version: 1.0 - last updated Thursday, June 09, 2005
Links: Download (Contents: Executable (Windows), Source Code (C#))
Screenshots:
