CS 289A: Machine Learning (Spring 2024)


20% of final grade. The project should be done in teams of 2–3 students. Please find a partner.

Please discuss your ideas with one of the Project Teaching Assistants before submitting your initial proposal. The Project TAs, and their areas of expertise, are:

Pierre Boyeau, pierreboyeau@berkeley.edu: single-cell RNA modeling using deep generative models.
Charles Dove, charles_dove@berkeley.edu: machine learning, biomedical imaging, photonic design, artificial vision, quantum mechanics, and quantum field theory.
Norman Mu, thenorm@berkeley.edu: deep learning robustness and safety; multimodal visual recognition; large language models/assistants.



The project theme may be anything related to machine learning techniques discussed in class, including

You are encouraged to design a project that is related to your research outside this course; we really hope that the project will help you make progress in your primary research duties (or a teammate's). However, please be honorable and don't suggest a project that you've already fully completed as part of your research.

Initial proposal

The initial proposal is primarily a proposal, and need not be long. Write a few paragraphs describing what you have decided to do. You may have any number of figures and references.


Final report

Grading criteria

The video and the final report will be graded with 5 criteria.

Project ideas

The ideas in this list fall mainly under the fourth category, practical research. If you prefer to revisit an important paper, simply pick a paper. If you prefer to conduct a literature review, simply pick a machine learning topic that interests you. If you prefer to conduct theoretical research, you'd better already know what you're doing.

We'll start by listing projects and data sets of particular interest to our Teaching Assistants, then add some others.

Pierre's suggestions

Charles' suggestions

Norman's suggestions

A standard paradigm for training large neural networks has emerged across the domains of natural language processing, image recognition, robotics, and now genetics: randomly initialize a model, pre-train on a big blob of diverse data, then fine-tune on a representative sample of the specific task(s) of interest, before shipping the final model for production use. This process works extremely well on static tasks and benchmarks, but the dream of ML models which continue to learn after deployment into the real world still eludes us. Here are five papers which gesture in the same general direction; they might be interesting to build off of or combine pieces from. You might consider re-implementing one of these papers, updating methods from the “older” papers with newer techniques, or adapting existing code to another task or data modality.

Other Ideas

Other useful data sources