Assignment 6: VerbLearn (Non-Computational Credit)
Assigned Tuesday, March 14th
Due Monday, April 3rd, by 11:59pm - submit electronically.


The first several parts of this assignment involves the use of David Bailey's model for learning hand-motion verbs. Please read O2 (Bailey et al.) in your reader before starting this assignment. You should also allow yourself plenty of time in the lab to complete the assignment.

The last part of the assignment requires you to do some simple calculations involved in the model merging algorithm. You may wish to do this part of the assignment first to get a better theoretical grasp of how VerbLearn works.
Part 0. Preliminaries
To get started on the assignment, you will need to get and install a copy of the program in your directory. To do this you should:
  1. Log in to a PC machine running Solaris in Room 277 Soda. (See the note above about running the system elsewhere). If you have trouble with the display in 277, try from one of the SunRays machines (e.g. Room 275) as you might have for assignment 6 and ssh to a Solaris-X86 server (e.g. po.eecs, torus.cs).
    At this point you may need to open a terminal window if there isn't one already there. If you don't know how to do this, ask someone for help. (A command like "xterm" or "Terminal" may be available in a menu that appears when you click on the desktop with the right mouse button.)
  2. Copy the file vl.tar.gz to your directory: (or click on the link to download and save into current working directory)
    cp ~cs182/programs/vl.tar.gz . (don't forget the period at the end)
  3. Uncompress and install the program:
    gunzip vl.tar.gz
    tar -xvf vl.tar (be patient -- this may take a little while)
    This should result in a directory called ntlsystem appearing in your directory.
  4. Type cd ntlystem to enter the directory. (Make sure to run the program from this directory.)
    This directory contains a directory called classes (which contains the Java classes needed to run the program); a properties directory (which has some system properties used by the program); and a data directory (which has data used by the program. Do not erase these files!
  5. Type vl to start the program. (If you get a Command not found error, you might try ./vl.)
    In a few moments you should see a window pop up, with a menubar across the top.
WARNINGS: The program is somewhat slow and potentially buggy (apologies!). It is recommended that you stick to the instructions below. A few specific warnings:
Part 1. Learning English hand action verbs
In this section you will familiarize yourself with the system by re-enacting the English verb training based on a pre-labeled set of "scenarios" (action descriptions):

Viewing the data

Learning a lexicon

Evaluating the learned lexicon

Questions

  1. Pick a label for which the program learned at least 2 word senses.
    1. Show the learned senses and point out the main differences between them. Write a sentence for each sense in which the sense is used unambiguously.
    2. Do the word senses correspond to different senses in your dialect? (That is, do you think VerbLearn learned a sense distinction that is cognitively real for you?) Why/why not?
  2. What kinds of errors are in the recognition/obey tests? Do some errors seem more plausible/expected than others?

Part 2. Experimenting with the training parameters

Now that you are familiar with the program functions, you should experiment with varying the default training parameters to see how the resulting lexicon and senses differ from the original experiment. Follow the instructions above for learning again, with the following changes:

  1. Pick one of the following parameters; the relevant descriptions from the parameters guide are repeated here:
  2. Vary your chosen parameter over several training runs. Make sure you choose a new lexicon name for each training run to allow you to compare them later. You may wish to save each training log to examine. (Again, no need to submit these logs!)

Questions

  1. Which parameter did you choose to vary? Over what range?
  2. How did the learned lexicons and/or test performance on "Recognize" or "Obey" differ?
  3. Try to explain your results in terms of the model merging algorithm. (It may be helpful to do Part 4 of the assignment first.)

Part 3. Learning new verbs

Based on what you know about the system, you will now consider how you would go about teaching the system a few new verbs, which may require a different set of features than those already built in to the program. You may need to add some features, and perhaps remove a few.

The words you should consider are break and tap, as well as one other verb of your choice that requires one of the following features:

Questions
  1. For each of your three words:
    1. Describe any features you would need to change or add to the current set of motor and world features to accommodate the word.
    2. Show some examples of scenarios you would add for each word sense. Make sure the examples cover a reasonable span of the semantic range of your new words. Describe in general the range of variation of feature values for your added scenarios.
    3. Should the system be able to learn the new word? Why or why not?
  2. Now consider the following verbs:
    throw (X at Y), accept (X from Y), juggle (the ball), aim (the ball), peel (the apple), block (a punch)
    Discuss whether the system (which its original features) would be able to learn these verbs. If not, what features would have to be added to the system for it to learn the verb?

Part 4. Model merging computation exercise
See handout: [PDF] on the model merging algorithm and how it applies to the problem of learning simple grammars. You should answer the questions in the handout on the calculations involved in the algorithm.
Readings
Reader: O2 (Bailey et al.)

You may also wish to see the computational version of this assignment for some additional links related to model merging and right-regular grammars.

FYI: the computational and non-computational versions of the assignment use variations of the same model merging handout, ending either in a final set of calculations (non-comp) or in an implementation (comp).


What to do if things go wrong