NetLogo banner

 Home
 Download
 Help
 Resources
 Extensions
 FAQ
 References
 Contact Us
 Donate

 Models:
 Library
 Community
 Modeling Commons

 User Manuals:
 Web
 Printable
 Chinese
 Czech
 Japanese

  Donate

NetLogo User Community Models

(back to the NetLogo User Community Models)

HopfieldLearning

by Thomas Hills (Submitted: 10/09/2003)

[screen shot]

Download HopfieldLearning
If clicking does not initiate a download, try right clicking or control clicking and choosing "Save" or "Download".

(You can also run this model in your browser, but we don't recommend it; details here.)

WHAT IS IT?

This is a neural network commonly known as a binary Hopfield network. It learns images that it is taught, which it can later recall when it recognizes similar images. For example, you can teach it a few letters of the alphabet, and then ask a friend to try and figure out what letters of the alphabet it knows.

HOW IT WORKS

Every patch represents a 'neuron' in the neural network. Each neuron is connected to every other neuron. When the network learns, each neuron alters its relationship with every other neuron by manipulating what a biologist would call its "synaptic weight." When you ask the network to try and identify an image, it uses its stored synaptic weights to change the activity (on is blue, off is 'black') of each neuron based on the activity of all the other neurons.

HOW TO USE IT

Try drawing in a few images which you will easily recogize (for example, a few numbers or letters). After you draw in each image press 'teach.' When you are ready to test the network, draw in an image unlike, but similar to one of the images that you already drew in, then press 'identify.' If the new image is close enough to a learned image, then the network will replace the new image with its closest match.

THINGS TO NOTICE

The network can only remember a finite number of images. This is based on the number of neurons in the network. Also, certain learned images are more easily recognized than others. Sometimes learning something new completely eliminates an old knowledge, and sometimes old knowledge complicates the network's ability to learn something new. Finally, sometimes the network identifies images that it never learned.

THINGS TO TRY

You can change the size of the graphics window to see if this affects the networks ability to remember images. If you make it too big though, learning and identifying gets very slow. You might try timing the 'teach' period for different size graphics windows.

You should also try different kinds of images, as more complicated images are harder to distinguish than simple icons.

Created by Thomas Hills.
thills@mail.utexas.edu

(back to the NetLogo User Community Models)