Due Sunday, 2006-10-08
Download
these three Python modules.
Notice that utils.py has been updated again.
In this assignment you'll use the functions in nn.py to run experiments with two kinds of neural networks, a pattern associator and a competitive learning network.
Read the documentation in nn.py to make sure you understand what the code does and how to run it.
For more on pattern association learning, including the derivation of the learning rule, see the first two sections on
this page.
For a summary of competitive learning, see the last section on
this page.
Note that you can run the program in graphical or non-graphical mode.
You may want to use the graphics to get an idea of how a network runs, but you will want to do most of the work in non-graphical mode using the Python interpreter.
pattern.py, that you will import into nn.py, write the functions that you will need to generate patterns for both kinds of networks that implement an iconic and an arbitrary lexicon (all together four sets of patterns).
A "lexicon" is a set of "words", each an association of a "form" and a "meaning".
In an iconic lexicon, the relationship between the two is "motivated"; that is, it is possible to state the relationship in general terms without making reference to particular words.
In an arbitrary lexicon, the relationship between form and meaning must be separately memorized for each word; no general statement is possible.
You will want to start with a small lexicon to test your functions, but you will eventually need to experiment with lexicons of up to 100 words.
Form and meaning patterns may consist of about four values (dimensions).