Personal Stereogram

Matt Hill

Contact Information

Personal Bio



A Binary Hopfield Neural Network Applet

A Hopfield network is an associative memory that works by calculating how much a node is in agreement with the nodes that it is connected to. The preferred states of agreement (that is, whether a node value should be like or unlike a certain neighbor) are determined by the patterns that are initially imposed upon the nodes.

These states of agreement are inherently distributed over the nodes, so no single connection can be thought of as "storing" a pattern. This leads to to the rather nice properties of graceful degradation and categorization in an overloaded space. See the controls section below for how to store and retrieve patterns.

References and Links about neural nets

Here is the source code. It's public domain.

Please comment on the applet

Neural Network for Stereo Vision paper, by Arshad Tayyeb and myself (notes)

Image Watermarking in the DCT Domain, a recent project.

Controls for the applet

Use the mouse to enter a pattern by clicking squares inside the rectangle "on" or "off". Then, have the network store your pattern by pressing "i", for impose. You can probably store about 33 random patterns. (The number of patterns you can store without interference depends on the number of nodes in the network.) After storing some patterns, try entering a new pattern, and then press the space bar repeatedly to watch the network "settle" into a previously imposed state. Alternatively, you can press "s" and it will settle through multiple steps to a stable state. The "s" option takes advantage of Java's support for multi-threading by starting a separate thread to do the calculations.

The following keyboard commands are recognized:

Want to know more about Java or neural nets? Check out these books:

Browse Computer Science @ Amazon.com

Neural Networks:

Book Cover Introduction To The Theory of Neural Computation is a great book which explains the guts of many different types of neural nets. It's an excellent reference on the subject, and clearly describes many of the mathematical ideas behind the models. I've found it a great background guide for journal papers. Table of Contents. Check it out!

Book Cover Vision, by David Marr is a seminal book on the brain and neural networks which model vision. It is a great read, and is the origin for a lot of material on edge detection and stereo matching. Readers can take the descriptions here and implement their own neural nets for fun or research projects. I did!

Learning Java:

Book Cover The Java Programming Language Learn Java from it's creator. Gosling created Java at Sun -- this book, for experienced programmers, will guide you through the structure of the language. This is the book Sun recommends on the Javasoft web site.

Book Cover Microsoft Visual J++ 6.0 Deluxe Learning Edition Learn Java using the popular Microsoft J++ environment. It's a comprehensive training kit (including CD-ROM) -- soup to nuts.

Computational and General Neuroscience:

Book Cover Neurocomputing is a collection of reprints of classic papers in neural networks. It's extremely convenient to have them collected like this, each with an introduction to put the paper in context. Highly recommended. Table of Contents. (Paperback edition here)

Book Cover Principles of Neural Science , by Kandel, Schwartz and Jessel. This tome serves as an encyclopedic reference to the brain. It has been described as perhaps having "too much detail for your average med student" but chances are it will answer your questions about the brain. Considered the standard reference book of neuroscience.

Other Programming and Fun:

Book Cover The C++ Programming Language, by Bjarne Stroustrup. A definitive, up-to-date reference, source of examples and explanations for C++, by C++'s inventor. He should know. Anyone who writes C++ can save hours of time and millions of needlessly re-compiled bytes by having this book at their fingertips. Get it -- and buy an extra because co-workers will always want to borrow it!

Book Cover Godel, Escher, Bach , by Douglas Hofstadter. A definite favorite. This is an extremely fun book to read! It tackles the structure of information, and how mathematician Godel, artist Escher and composer Bach all manipulated and used structure to impart meaning to their works. Highly entertaining! This is the 20th anniversary edition which features a new foreword. The author has achieved the cult-status honor of his own alt.fan newsgroup: alt.fan.hofstadter

Got an opinion? Epinions is like Usenet with a memory...

Try searching for some other Neural Network or Java books at Amazon.com:
Search Amazon.com for:

Keywords:


CD-RW for only $80! 6x4x32x EIDE Internal CD-RW for $80!
Shop at Amazon.com!

TiVo - Record without Tapes!

Pause Live TV!


From Philips -- Read More
Beatles Anthology, by the Beatles themselves
The Beatles -- in their own words.

Palm m100 - $149. You know you want it...

Olympus 460 Digital Camera. Sharp pictures -- no film!

Banner 10000023

Sick of all this shameless merchandising? Or are you Happy to find the links?

Applet Attributes

Java Source Code and Credit

Loosely based on an artificial-life program by A.F. Slater

Here is the source code, which was written first for the alpha release compiler, and then updated for the first version of the JDK.


Make online payments with PayPal - it's Fast, Free and Secure!

PayPal lets you pay anyone via email -- it's fast, free, and secure . It's the best system for auctions! Sign up now and get a $5 cash bonus.


Another Hopfield applet (French) based on the code for this one has been developed. (Open source at work!) Here's the English version.

The Frequently Asked Questions and Answers list from comp.ai.neural-nets can give basic information about a lot of neural nets.

The The Neural Network Teaching Centre has resources for learning about neural networks.

Neural Nets at your Fingertips provides C source code and short descriptions for several types of neural nets, including Hopfield.

This page is a pretty good "hub" of links to all sorts of neural net information.

Online Java Tutorial at Sun

comp.lang.java FAQ -- common Java questions with answers

Example data structures in Java, answers the frequent question "How do I make a linked list (or other structure) without pointers?"

More on Neural Networks


Boring Professional Bio

I graduated from the computer science department of Cornell University, with a concentration in cognitive studies in May 1996. I lived in the Boston area for two years and worked for Cognex, on software for industrial machine vision applications.

I am currently working at IBM's TJ Watson Research Center in Hawthorne, NY.

I am also taking classes for my masters in computer science at Columbia.

Why did I write this applet?

During the summer of '95, I was an intern at Xerox, where I first started to learn about programming for the web. While an undergrad, I worked part-time in Prof. David Field's lab, whose research centers on sparse coding in biological visual systems. I am still very interested in biological vision and cognition.

In Prof. Field's lab, much of the work I participated in was related to artificial neural networks. I began to learn Java in 1995, having been immediately (and perhaps inordinately) impressed with the original applets Sun put out, such as the interactive wire frames applet. The neural network on this page was my first Java program.

Here are some pretty pictures from my trip to Rome.


Matt Hill -- matt_10710@yahoo.com

Thanks for stopping by!

This Neuro Ring site is owned by

Matt Hill.

[ Next Site | Previous Site | Next 5 | Problems? ]

Want to apply for membership?

Member Of The Open Source Java Web-Ring
[Skip Prev] [Prev] [Next] [Skip Next] [Random] [Next 5] [List Sites]

Yahoo! GeoCities Member Banner Exchange Info