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
- Extend my Type 2 Vehicles. Implement whichever mechanisms sketched in Vehicles seem interesting.
- Implement Samuel's generalized learning for small board go, or other game.
- Implement an iterated octapawn (or other small game) tournament using GAs or other learning techniques.
- Research GA operators/parameters in the context of other interesting fitness functions. Convince the audience you have not implemented a headless chicken.
- Implement a back-propagation network to learn to solve some problem of interest.
- Implement a learning ANN to solve some problem of interest.
- 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.
- 11/17/11 - Project proposal -- emailed to me before class.
- All the people doing this project
- What the project is (feel free to consult with me if you are stuck)
- What learning techniques will be implemented and/or investigated
- What existing software will the project build on
- Email acceptance/revision request will follow shortly.
- 11/22/11 - All projects approved.
- If your initial project proposal was not accepted, make sure you have an accepted proposal by now.
- onward!
- 11/29/11 - Class structure completed. First prototype working.
- Hand in class (cloud) diagram and a list of responsibilities (i.e. who will do what?).
- All interfaces/abstract classes finished
- Prototypes of all classes written/compiled
- Main loop/main GUI completed (with stubs)
- 12/1/11 - All classes filled in and tested.
- Classes tested on all expected inputs
- Diagnostic (debugging) code embedded in every substantial class (with switches)
Substantial prototype completed, and demo'd in class!
- Main loops run properly and output diagnostic messages (as required)
- Components communicate correctly
- All major algorithms debugged
- Frameworks for experiments and/or data collection in place
- 12/6/11 - Project working.
- Project essentially complete and demonstrated briefly in class
- 12/8/11 - Completed project (with demonstration/presentation).
- Experiments complete
- Data collected/analyzed
- Presentation made.
- Final write-up emailed.
- Code emailed (in runnable form).