COMPSCI 682 Neural Networks: A Modern Introduction
Acknowlegements
These project guidelines originally accompany the Stanford CS class
CS231n, and are now provided here for
the UMass class COMPSCI 682 with minor changes reflecting our course contents. Many thanks to Fei-Fei Li and Andrej Karpathy for graciously letting us use their course materials!
Important Dates (tentative)
Project proposal due: Tuesday, March 31
Final write-up due: Tuesday, May 12
Presentations: TBD
Overview
The course project is an opportunity for you to apply what you have learned in class to a problem of your interest.
Your 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 background and interests (e.g. biology, engineering, physics), we'd love to see you apply deep neural networks to problems related to your particular domain of interest. Pick a real-world problem and apply deep neural networks to solve it.
- Models. You can build a new model (algorithm) with deep neural networks, or a new variant of existing models, and apply it to tackle vision tasks. This track might be more challenging, and sometimes leads to a piece of publishable work.
Here you can find some sample project ideas:
To inspire ideas, you might look at recent deep learning publications from top-tier vision conferences, as well as other resources below.
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. Some successful examples can be found below:
Deep neural networks also run in real time on mobile phones and Raspberry Pi's - feel free to go the embedded way. You may find
this TensorFlow demo on Android helpful.
For models, deep neural networks have been successfully used in a variety of computer vision and NLP tasks. This type of projects would involve understanding the state-of-the-art vision or NLP models, and building new models or improving existing models. The list below presents some papers on recent advances of deep neural networks in the computer vision community.
- Object recognition: [Krizhevsky et al.], [Russakovsky et al.], [Szegedy et al.], [Simonyan et al.], [He et al.]
- Object detection: [Girshick et al.], [Sermanet et al.], [Erhan et al.]
- Image segmentation: [Long et al.]
- Video classification: [Karpathy et al.], [Simonyan and Zisserman]
- Scene classification: [Zhou et al.]
- Face recognition: [Taigman et al.]
- Depth estimation: [Eigen et al.]
- Image-to-sentence generation: [Karpathy and Fei-Fei], [Donahue et al.], [Vinyals et al.]
- Visualization and optimization: [Szegedy et al.], [Nguyen et al.], [Zeiler and Fergus], [Goodfellow et al.], [Schaul et al.]
We also provide a list of popular computer vision datasets:
Grading Policy (tentative)
Project: 25% of final grade
- Proposal: 5% of final grade
- Final Report: 15% of final grade
write-up (40% of Final Report):
• clarity, structure, language, references
• background literature survey, good understanding of the problem
• good insights and discussions of methodology, analysis, results, etc.
technical (30% of Final Report):
• correctness
• depth
• innovation
evaluation and results (30% of Final Report):
• sound evaluation metric
• thoroughness in analysis and experimentation
• results and performance
- Project Presentation: 5% of final grade
Project Proposal
Your project proposal should be between 2-3 pages using the template (
pdf,
latex source). The following is a suggested structure for your report:
- Title, Author(s): Pick a relevant title and include all the members in your group as authors.
- Introduction: This section introduces your problem, motivation, and the overall plan. It should describe your problem precisely specifying the dataset to be used, expected results and evaluation.
- Related work: A literature survey of past work on this topic.
Introduce the baselines you will compare to and the weakness you plan to address.
You should also describe what data will you use. If you are collecting new datasets, how do you plan to collect them? If the datasets are huge what compute resources are you using?
- Technical Approach: Describe the methods you intend to apply to solve the given problem. If there are existing implementations, will you use them and how? How do you plan to improve or modify such implementations?
- Evaluation Metric: 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)?
- Preliminary Results: Share any preliminary results if you have them.
Submission: Please upload a PDF file to Gradescope. Please coordinate with your teammates to submit under one of your accounts and add your teammates to the submission. If there are multiple submissions from a group we will grade one randomly.
Final Submission
Your final write-up should be between
6-8 pages using the same template as the milestone report (
pdf,
latex source) and fully flesh out the sections in the milestone.
After the class, we may 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.
Project Presentation
We will either have a presentation or poster toward the end of the class. More details on the presentation format will be provided later in the semester.
Collaboration Policy
You can work in teams of 2 or 3 people. Individual projects or larger group sizes are permitted only in exceptional circumstances (e.g., remote students, etc) and need prior permission from the instructor.
We do expect that projects done with 3 people have more impressive writeup and results than 2 person projects.
Honor Code
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.