The final project for the Machine Learning course will be a mini research project done by groups of 3 or 4 people. The overall goal of such a project is to do something that nobody else has ever done before. Ways to accomplish this goal include (but
are not limited to):
taking an existing machine learning model or algorithm and tweaking it to improve it in some way (make it faster, make it more accurate, etc.);
taking an existing machine learning model or algorithm and applying it to a brand new application;
inventing a new machine learning model or algorithm for a new application;
creating a new way of visualizing a machine learning algorithm;
and deriving a new theoretical analysis for a new or existing machine learning algorithm.
Because this is a class project on a tight schedule, it's important to keep your proposed ideas tractable, but at the same time the motivation of your project should be toward making a significant scientific contribution, one that we can imagine being
a published paper if you had enough time to work on it. For the class project, the expectation is you will most likely only have preliminary results.
You will not need to submit code for the project, nor are you required to use any particular programming language, platform, or software. You are free to use whatever helps you accomplish your research goals the best.
The first deliverable is a project proposal that is due in conjunction with Homework 4 (on November 1).
Your project proposal should be one page long in a reasonable format. You should use at least 10-point font in a standard typeface such as Times New Roman, Arial, or Helvetica.
It should discuss
what problem you plan to address,
your preliminary plan for how you will address it, including what algorithms and data you will use, and
how you will evaluate success of your ideas.
It should list at least three recent, relevant papers you and your team will read and understand as background for your contribution. You probably want to have read at least one of these before writing the proposal.
It should discuss a proposed plan of who on your team will be responsible for what tasks. These contributions should just be a prediction for planning purposes, and you are not obligated to adhere to them precisely.
The final deliverables for the class project are (1) a five-minute video presenting your results and (2) a project website that details your project with any supplementary material, data, charts that appear in the video presentation.
Your video and website should have the following elements.
They should describe the motivation, the problem you are addressing, and your approach to solving the problem;
They should describe your technical contribution. For example, it may describe an algorithmic approach and describe experimental setup and results. A viewer/visitor should be able to reproduce your experimental results or analysis.
Your presentations must discuss prior work: research that studies related problems, or the same problem you are addressing, other approaches that are related to your technical approach that may or may not have been applied to the same type of
application, or foundational mathematical or scientific ideas you are building on. Establish why none of these existing studies solves the problem your contribution aims to fix.
Lastly, your website should contain a list of references to relevant papers.
The project website has no length limit, but it should be concise. It should primarily only contain additional material to support the results you include in your video presentation.
The project website and video are due on the last day of classes, December 13, 2017. We will create a YouTube playlist of your videos and link (or host) your project pages on the course homepage.
This section is under construction. You are welcome to propose any idea you want, and you are welcome to include work you are doing in your job, your own research, or your other classes, as long as it is okay with your other professors or supervisors.
The list below is a brainstormed list of ideas that could be interesting, but you are not at all obligated to use one of these ideas.
Take an existing batch learning algorithm and devise an online, stochastic, or block-coordinate training approach for it.
Treat standard preprocessing steps as part of a deep predictor and use back propagation (or a variant of it) to tune parameters of the preprocessing.