Hello everyone, what I have usually seen is that we learn the best and the fastest when we are doing projects. So, this is a simple attempt to make you learn the things that we will be discussing in the class as well as otherwise.
The Course Project is an opportunity for you to apply what you have learned in class to a problem of your interest. There are two project options you can pick from:
You are encouraged to select a topic and work on your own project. Potential projects usually fall into these two tracks:
-
Applications. If you're coming to the class with a specific interests, we'd love to see you apply Machine Learning to problems related to your particular domain of interest. Pick a real-world problem and apply Machine Learning to solve it.
-
Models. You can build a new model (algorithm) using any basic algorithms, or a new variant of existing models, and apply it to tackle machine learning tasks. This track might be more challenging, and sometimes leads to a piece of publishable work.
We know that machine learning is a vast field, and can be applied to any specific domains, so we give you the liberty of choosing anything from anywhere.
To inspire ideas, you might look at recent publications from top-tier conferences, as well as other resources below.
- Awesome Deep Vision
- CVPR: IEEE Conference on Computer Vision and Pattern Recognition
- ICCV: International Conference on Computer Vision
- ECCV: European Conference on Computer Vision
- NIPS: Neural Information Processing Systems
- ICLR: International Conference on Learning Representations
- Past CS229 Projects: Example projects from Stanford machine learning class
- Kaggle challenges: An online machine learning competition website. For example, a Yelp classification challenge.
For applications, this type of projects would involve careful data preparation, an appropriate loss function, details of training and cross-validation and good test set evaluations and model comparisons. Don't be afraid to think outside of the box.
If you are unable to come up with a project idea, you can fall back to working on the Recommendation System. The goal of the challenge will be for you to do as well as possible on the System of recommending locations to user based on their previously visited locations.
You will submit your final recommendations and we will maintain a class leaderboard.
The project proposal should be one paragraph (200-400 words). If you work on your own project, your proposal should contain:
-
What is the problem that you will be investigating? Why is it interesting?
-
What data will you use? If you are collecting new datasets, how do you plan to collect them?
-
What method or algorithm are you proposing? If there are existing implementations, will you use them and how? How do you plan to improve or modify such implementations?
-
What reading will you examine to provide context and background?
-
How will you evaluate your results? Qualitatively, what kind of results do you expect (e.g. plots or figures)? Quantitatively, what kind of analysis will you use to evaluate and/or compare your results (e.g. what performance metrics or statistical tests)?
Your project milestone report should be between 2 - 3 pages using the provided template. The following is a suggested structure for your report:
-
Title, Author(s)
-
Introduction: this section introduces your problem, and the overall plan for approaching your problem
-
Problem statement: Describe your problem precisely specifying the dataset to be used, expected results and evaluation
-
Technical Approach: Describe the methods you intend to apply to solve the given problem
-
Intermediate/Preliminary Results: State and evaluate your results upto the milestone
Submission: Please upload a PDF file named _milestone.pdf to the Project folder. Note that, each individual in a team is required to make submission (i.e. the same PDF) for grading purpose. The late days are counted by the timestamp of the last submission in the team.
Your final write-up should be between 6 - 8 pages using the provided template. After the class, we will post all the final reports online so that you can read about each others' work. If you do not want your writeup to be posted online, then please let us know at least a week in advance of the final writeup submission deadline.
Submit your final submission through CourseWork. You will submit one or two files:
-
A pdf file of your final report
-
(OPTIONAL) zip file (or pdf file) with Supplementary Materials
Report. The following is a suggested structure for the report:
-
Title, Author(s)
-
Abstract: It should not be more than 300 words
-
Introduction: this section introduces your problem, and the overall plan for approaching your problem
-
Background/Related Work: This section discusses relevant literature for your project
-
Approach: This section details the framework of your project. Be specific, which means you might want to include equations, figures, plots, etc
-
Experiment: This section begins with what kind of experiments you're doing, what kind of dataset(s) you're using, and what is the way you measure or evaluate your results. It then shows in details the results of your experiments. By details, we mean both quantitative evaluations (show numbers, figures, tables, etc) as well as qualitative results (show images, example results, etc).
-
Conclusion: What have you learned? Suggest future ideas.
-
References: This is absolutely necessary.
Supplementary Material is not counted toward your 6-8 page limit. Examples of things to put in your supplementary material:
-
Source code (if your project proposed an algorithm, or code that is relevant and important for your project.).
-
Cool videos, interactive visualizations, demos, etc.
Examples of things to not put in your supplementary material:
-
All of Caffe source code.
-
Various ordinary data preprocessing scripts.
-
Any code that is larger than 1MB.
-
Model checkpoints.
-
A computer virus.
Course project proposal: due March 6.
Course project milestone: due April 3.
Final course project: due June 5 (11:59pm).
You may consult any papers, books, online references, or publicly available implementations for ideas and code that you may want to incorporate into your strategy or algorithm, so long as you clearly cite your sources in your code and your writeup. However, under no circumstances may you look at another group’s code or incorporate their code into your project.