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 data-driven algorithm design. 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.
(To be updated)
Explore architectural considerations for a learned optimizer, e.g. recurrent vs. feedforward, depth, width, residual connections.
Investigate the generalization capabilities of learned optimizers in terms of tasks, iterations, etc.
Apply hyperparameter tunings to models on new datasets. Identify crucial hyperparameters in a model class and formulate the optimization problem with frameworks covered in class.
Identify an existing algorithm with manually-designed heuristic components and apply a data-driven approach to replace existing heuristics. For example, rounding is a common routine used in approximation algorithm design and there are lots of existing rounding heuristics, can you design a data-driven one as well?
Create your own algorithm portfolios. Potential ideas include sorting, clustering and gradient descent algorithms. Decide when to use a certain algorithm based on features of the input.
Think about where techniques related to learning to search can be applied. A general domain is tree search. Examples include Monte Carlo tree search and RRT for path planning.
Planning in model-based reinforcement learning can be viewed as an optimization problem, where we aim to maximize reward over actions. However, there has been little research in planning using meta-learning, which is being explored for optimization in neural networks. What is the efficient way of applying meta-learning to tasks like planning?
Study a new application, such as designing materials or structures, using a simulator as the experimental platform.
If you are interested in specific projects by the TAs, you can contact them for advice.
Due May 1st.
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 (see Piazza post) 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.
Due June 3rd-5th.
The project presentation 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.
Less is more. Do not cram your entire project report onto the presentation. 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.
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.
For groups containing graduate students or graduating seniors:
Due June 6th by 5pm.
For groups containing only non-graduating undergrads:
Due June 13th by 5pm.
The project report 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. 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.