CS 448 - Big Lab Writeup.

Assignment

Chose a substantial machine learning project, research/implement and present it to class. You may work individually or in groups of up to 3 people.

Some possible choices of projects

  1. Extend my Type 2 Vehicles. Implement whichever mechanisms sketched in Vehicles seem interesting.
  2. Implement Samuel's generalized learning for small board go, or other game.
  3. Implement an iterated octapawn (or other small game) tournament using GAs or other learning techniques.
  4. Research GA operators/parameters in the context of other interesting fitness functions. Convince the audience you have not implemented a headless chicken.
  5. Implement a back-propagation network to learn to solve some problem of interest.
  6. Implement a learning ANN to solve some problem of interest.
  7. Do library research on some aspect of machine learning that seems interesting; write a report on what you learned.

Schedule

This will be the last lab in this course; it is due the last day of classes. Like any substantial project, it cannot be done in a day or two. You should plan to spend between 20 and 40 hours working on it. To help you complete your project in a timely manner, the following schedule of milestones will be strictly adhered to. The penalty for missing any milestone is 10% of the project grade. Plan accordingly.

Not all projects will fit the following exactly; please adapt these steps as they apply to your project.

  1. 11/17/11 - Project proposal -- emailed to me before class.
    1. All the people doing this project
    2. What the project is (feel free to consult with me if you are stuck)
    3. What learning techniques will be implemented and/or investigated
    4. What existing software will the project build on
    5. Email acceptance/revision request will follow shortly.
  2. 11/22/11 - All projects approved.
    1. If your initial project proposal was not accepted, make sure you have an accepted proposal by now.
    2. onward!
  3. 11/29/11 - Class structure completed. First prototype working.
    1. Hand in class (cloud) diagram and a list of responsibilities (i.e. who will do what?).
    2. All interfaces/abstract classes finished
    3. Prototypes of all classes written/compiled
    4. Main loop/main GUI completed (with stubs)
  4. 12/1/11 - All classes filled in and tested.
    1. Classes tested on all expected inputs
    2. Diagnostic (debugging) code embedded in every substantial class (with switches)
    Substantial prototype completed, and demo'd in class!
    1. Main loops run properly and output diagnostic messages (as required)
    2. Components communicate correctly
    3. All major algorithms debugged
    4. Frameworks for experiments and/or data collection in place
  5. 12/6/11 - Project working.
    1. Project essentially complete and demonstrated briefly in class
  6. 12/8/11 - Completed project (with demonstration/presentation).
    1. Experiments complete
    2. Data collected/analyzed
    3. Presentation made.
    4. Final write-up emailed.
    5. Code emailed (in runnable form).