Project Info

Overview

The CS 335 course project is your chance to apply state-of-the-art machine learning methods to an application that you care about or to explore some area of machine learning more deeply than we covered in class. An ambitious project may try to innovate in some area of ML.

Important Dates

You may work by yourself or in groups of up to three students for the project. (But more is expected from larger project groups.)

What does a project look like?

Here are some possible types of projects:

Your project can also cross these boundaries. If you have any doubt about what you want to do or would like a suggestions, I highly encourage you to talk to me about your project!

The most fun and exciting projects are likely to come from applications you are passionate about. For example, if you are involved in another research project or a hobby that could somehow benefit from machine learning, these could make great projects.

You may choose to explore a purely theoretical area of machine learning (we did not touch on these areas in class, but they exist).

Inspiration

One way to gain inspiration is to look at recent papers from the main machine learning conferences (ICML and NIPS):

You can see a long list of projects from the Stanford CS 229 class here:

(That class is somewhat more advanced than ours and the project has a longer timeline, so you will want to calibrate your expectations based on those two facts.)

Resources

Here are some resources that may come in helpful or inspire some ideas for your project:

There are many other sources of free implementations of machine learning algorithms. If there is something in particular you are interested in, please look around and ask me.

Project Components

Proposal

The proposal is due Friday, March 15 at noon and should be submitted as a post on Piazza. I encourage you to post the entire proposal publicly. I will also accept proposals posted privately to me, but these should be accompanied by a shorter public post describing your project plan at a high level. (Rationale: you can learn and get ideas from others; this will make all projects better!)

It should be the equivalent of 1-2 pages and include the following:

In the description, please address topics that will allow me (and classmates) to judge the feasibility, such as:

You may not know the answers to all of these questions, and some may change. That’s OK. This is not a contract, just an initial plan that should be as detailed as possible to help guide your work and so I can give you feedback.

Milestones: Weekly Status Reports

After the proposal, you should submit weekly status reports on Piazza by Friday at noon. These will be public posts. If for some reason a public post absolutely does not work for you, let me know. The weekly status reports should chronicle the progress you’ve made and the issues you have encountered.

A recommended format is as a bulleted list addressing each of the following:

You could have up to a few sub-bullets for each category.

By ~early April these should start including concrete results.

The purpose of these reports are:

  1. To make sure you are on track with your project and uncover any major problems or need to change course as soon as possible.
  2. To share information and learn from your classmates.

Presentations

Final presentations will take place during the last one or two class sessions or possibly during a special presentation session around the last day of classes. The format is still to be determined. These will either be very short oral presentations (with slides) or poster presentations.

Final report

The final report is due at the end of finals period: Tuesday, May 7 at noon. It can, of course, be turned in earlier.

The report should be 5-8 pages long and describe your project in detail. It should be roughly organized like most research papers:

Submissions instructions will be provide here closer to the final due date.

Acknowledgments

Large sections of this document are based on an older version of Stanford’s CS 229 project guidelines.