Students are required to conduct and submit a research project as well as present an accompanying poster at the poster session on June 6th. Students may work on projects in groups of up to 5 people. Note that your project group can be different from your presentation group, and the topic of your project can be different from the topic of your presentation.
The project can be on any topic related to the course material. This is not limited to the papers covered in lecture (see this larger list of references). The purpose of the project is to gain a better understanding of experimental and/or theoretical aspects of deep generative models. While we encourage you to explore new research directions, projects may also focus on reproducing or comparing previous approaches, perhaps investigating various theoretical or design choices. If you are a graduate student currently working on a related topic, you may use your research for the project. Generally, projects will fall into one of the following categories:
- Pure Theory: study proof techniques, try to extend a proof, or apply a proof to a new setting.
- Algorithms & Models: extend an algorithm or model, design a new one, or adapt one for a new setting.
- Applications: identify the correct assumptions for approaching a new setting, experimentally validate these assumptions.
The course website contains a list of resources for computing, data, and code. You may find this helpful for getting started with your project. We have also prepared a list of example research topics below. Feel free to use one of these if you are having difficulty settling on a topic.
- Due April 26th.
- The project proposal is a mechanism to get you to start thinking about your project. It also allows the TAs to give you feedback on potential challenges. It is non-binding; you can change the direction of the project after the proposal submission.
- Create a folder in the Google Drive and upload your project proposal.
- Project proposals can be 3 pages maximum, excluding references.
- We recommend the following structure for the project proposal:
- Introduction of research area: Motivate why this area is interesting and describe key technical challenges.
- Overview of previous work: Give an overview of different types of approaches and highlight assumptions of previous work. This should not be a laundry list of previous papers. Rather, it should describe previous approaches in broad strokes.
- Research question(s): Describe one or more research questions to be addressed. The research question should be a high-level description of the project topic.
- Plan of attack: Describe a preliminary plan to address the research question(s), and outline any experimental set-ups, such as datasets, models, etc. The plan of attack should extend the research question(s) to the details of the project.
- Examples of previous proposals are linked to on Piazza.
- Submission instructions on Piazza.
- Apply a deep generative model to a new data domain. Explore whether any modifications to the distribution types, architecture, training algorithm, etc. are necessary for this domain.
- Explore various modeling choices for a particular family of deep generative models. For example, explore the trade-offs between continuous and discrete latent variables in latent variable models, or look at the trade-offs in various forms of invertible functions for flow-based models.
- Combine two different types of generative models in an interesting or novel way. For example, replace the simple prior in a flow-based model with an auto-regressive model, or use an auto-regressive or flow-based model as the prior or conditional likelihood in an explicit latent variable model.
- Propose a new objective or divergence for training deep generative models, or explore trade-offs between existing approaches. You may want to do this in the context of simpler, toy models and datasets to get an intuitive understanding.
- Explore generative model evaluation procedures. Take existing models and study how evaluation metrics like log-likelihood, inception score, etc. correspond with sample quality and data fit.
- Explore trade-offs in various approximate inference techniques, e.g. amortized variational inference, regular stochastic variational inference, variational inference with normalizing flows, MCMC.
- If you are interested in specific projects by the TAs, you can contact them for advice.
- Due June 6th (in class).
- The project poster should illustrate the key concepts of your project to someone who is unfamiliar with your specific research area, such as someone who is familiar with basic machine learning or generative modeling concepts.
- We will cover poster printing (details coming soon).
The poster should be 3' x 4' (landscape).
- Less is more. Do not cram your entire project report onto the poster. Instead, summarize the main points of each section: What is the problem setting? How have previous works approached it? How are you approaching it? What did you find?
- Avoid text whenever possible; try to use figures and plots to make your main points.
- Separate different sections to provide clear structure. Leave open space between sections.
- Make text and figures large enough for people to see from a distance. Even if there is a crowd around your poster, you want people in the back to be able to clearly see the main ideas.
- Use equations sparingly. A few equations are often necessary to communicate key points, but do not include a lengthy derivation.
- A simplified algorithm box can also help to convey technical details.
- Give a brief summary upfront in the first section of the poster. People should be able to grasp the main idea of the project in the first sentence, then decide if they are interested in reading further.
- For groups containing graduate students or graduating seniors:
- For groups containing only non-graduating undergrads:
- The project repot is expected to be a mini research paper, like the ones that we have read in class. You may not have had time to explore all of the relevant aspects of the project or even improve upon existing methods. However, the project report should demonstrate that you put careful thought and consideration into how you have approached the problem setting.
- Upload your project report to your folder in the Google drive.
- There is no page limit. The main report will likely be around 6-10 pages, but you may use additional pages for references, appendices, etc.
- Use the NeurIPS LaTeX format, and use the "preprint" option when compiling your report.
- Use vector graphics (SVG, EPS, PDF) for all figures.
There is not a specific grading rubric for the project report. However, we will look for the following factors:
- How much thought and consideration did you put into the problem setting? Is the problem setting sufficiently challenging or interesting to explore? Have you adequately motivated the research direction?
- How much thought and consideration did you put into your approach? Did you correctly identify the previous approaches and their limitations? Did you attempt to address theses limitations through your work? Did you note key obstacles in implementing your approach? Even if your results were not successful, did you try enough things and reflect on why they did not work? What would you have done differently given more time and resources?
- How much thought and consideration did you put into your investigation? Did you use reasonable performance metrics? Did you compare with appropriate baselines? Did you provide insight and visualize key aspects of your approach (using tables, figures, toy examples)? For any theoretical components of the project, have you identified the crucial assumptions and limitations?
You can structure the report however you see fit. We recommend the following structure:
- Introduction: Motivate why this area is interesting, describe key technical challenges, and give a short summary of how you have addressed these challenges.
- Background and previous work: Briefly review any necessary background material (e.g. variational inference, GANs, change of variables formula, etc.). Give an overview of previous approaches, making sure to highlight their assumptions or limitations. This should not be a laundry list of previous papers.
- Research question and approach: If not already described in the previous sections, outline the research question(s) that you are addressing. Describe the approach(es) that you considered, providing justification for your choice. If necessary, you may use this section to introduce any proofs or derivations, which will be included in the appendices.
- Experiments and results: If there is an empirical component to your project, describe the experimental set-up in this section. You may include additional details in the appendices if necessary. Make sure to describe the data, models, training scheme, performance metrics, etc. Describe the experimental results, referencing relevant figures and tables.
- Discussion and conclusion: Restate the research question, approach, and main findings. Describe any interesting implications of your project, outlining possible directions for future research.