Machine Learning (W4771)
Homework 3: Neural Networks
Due Date: Class time, Part I:Thursday February 24,
Part II: Thursday March 2. The Part I hand-in is done simply
by e-mailing to Dave (email@example.com), in text, enough to show
you have done it -- it won't be graded until after handing in the
complete hardcopy submission for both parts (together, on the Part II
Chapter 4 of "Machine Learning" by Tom M. Mitchell. Note, Sections 4.5.3
and 4.8 are optional. However, section 4.8 may provide ideas for
the Part II of this assignment.
Your assignment: Follow the instructions for Mitchell and Blum's
"Neural Networks and face images" assignment. The first level of detail
for this project is described in section 4.7 of Mitchell's text. The
remaining details for the NN implementation and assignment are in
attached if you got this handout in class. You are provided with a NN
implementation in C, which you will have to modify a little. Note that
this assignment description says "Homework 5", but this is actually your
third assignment, and also note the above due date, in contrast to that in
decision trees, this assignment has two parts, the second of which is
open-ended. For this assignment, we strongly recommend that you team up
for the second part. For the second part you will optionally make a
brief presentation in class, and will hand in a write-up.
Changes from the assignment description file:
- Files are available on ACiS from the TA's account at:
- The implementation C code: ~dke3/cs4771/code/
- The (small) pictures to train on: ~dke3/cs4771/data/faces_4/
- The lists of file names to train on: ~dke3/cs4771/data/trainset/
- Remote students with no AcIS account should arrange with Dave to
get the code and data.
For Part I you are to hand in answers to the questions listed among the 13
steps described in the assignment.
For the open-ended portion of the assignment, we strongly recommend you
team up with one or two other people. This way, you can build on each
other's ideas, share the implementation and write-up responsibilities, and
have more fun. For this portion, you hand in one write-up for your group.
Since you do not have to write the implementation from scratch, emphasis
is weighted more on Part II of this assignment than it was for the decision
tree assignment. However, do be careful again to keep your experiments
very reasonable in terms of effort -- there are still two more projects
after this one. If you have "big ideas", they may best wait until
the final project, which is, in principle, completely open-ended (i.e.,
can use NNs, decision trees, GAs, anything).
Please choose something that you find interesting. Your choice
should be motivated, not just random. You should be able to explain
why your experiment was an interesting thing to try out.
In addition to the suggestions listed in the assignment
description file, other possibilities include:
- Apply the package to your own data, i.e., image data or otherwise.
For example, cameras in the SRL lab will allow you to take your own
pictures of faces or other objects. However, you will need help
from someone with a computer science account.
If you collect this data,
you may want to continue using it for your final project.
fyi, a CRF person said: The software is in /opt/SUNWits and /opt/SUNWrtvc.
I think you
can use "SunVideo", "rtvc_display", "rtvc_capture_movie"
- One student at CMU reportedly created a "sunglass learner/generator" that
placed sunglasses on a sunglasses-less face.
- NN for hand signal recognition
Deliverables for Part II:
- a written description of the experiments you conducted, 4 page max.
This should describe
the details of your modification, the motivation ("why?"), and
the resulting change of performance. As supporting reference
material for this, also append:
- hard copy of additional or modified code (well documented). Please
organize your code well.
- hard copy of sample runs (also well documented)
- 2 slides, one on what you did, and one on the results.
more members of your group
will "flash" these slides for the class and describe your work.
Please e-mail me if you are interested in doing this (we
do not have time for everyone to present -- I will do
quick overviews of the remaining ones myself) -- it
will be fun to present. To presenters:
You will only have a few minutes to do this, so you need
to focus on the important aspects of what you've done.
If this makes you feel nervous, that is normal, and you are welcome
to speak with us about it. Keep in mind that the purpose of this
is to share ideas in a fun way, and you are not expected to "perform"
well, but simply to convey some basic information to the class.
- Please email your writeup, any supporting materials (slides, etc)
and any modified to the TA, Dave Evans at firstname.lastname@example.org.
The submission can be in any reasonable format, such as a gzipped
tar archive, a windows zip attachment, a Macintosh stuffit
archive, etc. I consider submissions in Disk Disintegrator Deluxe
(Apple ][) or obscure Amiga formats to be unreasonable. Similarly
for the writeup, MS Word, LaTex, HTML, and so on are reasonable.
Wordstar is not.
- (a brief demo may also be requested later)
email: evs at cs dot columbia dot edu