Individual Proposals

Requirements

Project proposals should be a simple web-page (no styling necessary, but feel free to use a nice template) with the following information:

  • Project name
  • 100 to 300 word project description
    • What are you planning to do?
    • Why is your project exciting/fun/educational?
    • What does success look like?
  • List of three to five goals
  • (Optional) Images, diagrams, etc.

You will submit a link to your web-page on gradescope, and you will present your proposal in class. Presentations should take no more than three minutes.

After you all complete your presentations, you will form groups and start on the next project milestone.

Proposal Website (and example)

You can host your proposal however you’d like, but I recommend the following:

  1. Create a GitHub account (or use your current account).
  2. Create a new public repository.
  3. Create a “Project site” using GitHub Pages and Jekyll.

Here is an example proposal: https://anthonyjclark.github.io/cs152sp21-project/

You do not need to know markdown (or even use it); you do not need to know any web development. You can have a plain text website.

Types of Proposals

You have four (standard) pathways for your projects, but feel free to pitch any idea you find interesting. The most important element is that you pick something that sparks your curiosity. I want you to be excited about learning something.

  • Comparison. Compare frameworks, algorithms, hyperparameters, architectures, etc.

  • Research. Come up with an original idea, develop a solution, and report on results (results do not need to be good).

  • Application. Create and deploy an application using existing tools (this can run on your local computer).

  • Ethical Investigation. Examine an existing technique(s), research paper(s), and/or dataset(s) and discuss ethical issues such as bias, overuse of metrics, harmful positive feedback loops, etc.

Projects will (mostly) follow this flow:

  1. Idea
  2. Data collection
  3. Preliminary training
  4. Data cleaning
  5. Algorithm development
  6. Hyperparameter tuning
  7. Full-scale training
  8. Deployment

Clearly an application project will have more emphasis on step 8 and quite a bit less on step 5. The other project paths have analogous emphases.

Note that these milestones are heavily geared toward code-based projects, but that doesn’t mean that you cannot focus on ethics. You can complete your project without any coding portion.

Past Projects

Projects from spring 2023

Projects from spring 2022

Projects from fall 2021

Projects from spring 2021

Projects from previous semesters

  • playing star craft with deep reinforcement learning
  • benchmarking/comparing many networks on MNIST dataset
  • detecting sarcasm in sitcoms
  • estimating depth from binocular images
  • playing NES with deep reinforcement learning
  • classifying traffic signs
  • classifying different types of electronic devices

A lot of these projects were computer vision centric, but that does not have to be the case. In fact, that is why I introduce fastai at the beginning of the course now–so you can see a wider variety of options. Don’t forget that it supports (and that you do not have to use it):

  • computer vision
  • tabular data
  • text data
  • collaborative filtering

You can find a collection of fastai projects here. And this post on the “Top 10 Deep Learning Projects Ideas for Beginners and Professionals” might give you some additional ideas.

Advice

Since your projects will be semester long affairs, they should use techniques not yet discussed in class. Do not wait until we’ve covered a topic to use framework implementation.

Project write-ups will end up with this outline (more or less):

  • Here is a problem
  • It’s an interesting problem
  • It’s an unsolved problem
  • Here is my idea
  • Here’s how my idea compares to other peoples’
  • My idea works (details, data)

If you want some extra insight on writing a research paper, I agree with most of Simon Peyton Jones’s information in How to write a great research paper.

Some things to consider for your project that you can include in your proposal:

  • Be ambitious. I will never punish a project for failing to meet the initial goals.

  • I also am happy to give full credit to a project that failed to achieve good results. Just be able to tell me what might lead to better results in the future.

  • Can you find or create a dataset?

  • You need to do more than just follow a tutorial.

  • Do you have possible extensions (if the project is easy) or contingency plans (if the project becomes too difficult)?

  • The project should include a neural network, but it doesn’t have to completely use NNs. You can compare with other techniques, or use a NN as part of a larger system.

  • You are not required to use fastai.

  • You can deploy an app using a free web-hosting service. I’ve that the following work well:

  • I don’t recommend spending any money for this course. You can always take what you make here and scale it up by buying cycles from Amazon, and deploy it on a pay-for server, but that is not my expectation.

  • It is a great idea to include non-CS domain knowledge. Maybe you can combine your other major or minor (or your partner’s).

  • I will provide some high-level feedback for each of you during your in-class project pitches.

  • After the project pitches, you will create your own groups and refine your ideas.

  • Although it might seem like a bit of a waste to throw out so many project ideas, I expect that many projects will overlap, some can be merged, some are too difficult or too easy, and others will be happily abandoned. It is still great practice to come up with your own idea and see the ideas of others.

  • Take risks. You don’t always get an opportunity to fail miserably. Failed projects can still be great projects as long as you can tell me how and why it failed.

  • It is very difficult to judge how difficult or easy a project might be. For this reason, it is important to design your project with easy, intermediate, and more difficult tasks.

  • As long as you work on a regular basis (and don’t back-load) your project should take about the same amount of time as the assignments in a normal class.

  • I would love to have some ethics-focused projects. You wouldn’t even need to have much code (if any) compared to a research or application focused project. For example, you could take existing tools and show how they fail.

  • You can use techniques that we don’t cover in-depth (e.g., reinforcement learning, generative adversarial networks, etc.).

  • I’m less interested in your results, and more interested in your process. You do not have to create something ground-breaking.

  • Consider turning your project idea into a RAISE project.

Time-line

  1. Submit links to proposals

    • I will aggregate all proposals links and put them below.
  2. Read through other projects that sounds interesting the next day

    • Feel free to contact the authors of other proposals on Slack
  3. Pitch your proposal idea in class

  4. Form project teams

    • I will learn of your teams when you submit an outline of your project introduction

Presentation Instructions

For your pitch, you should focus on what makes your project worth pursuing. Why should anyone want to join you? Is the project doable? Is it well thought-out? Do you have a plan?

While watching pitches, you should write down the project name and the presenter’s name so that you know with whom to speak when trying to form groups.

I will start a running list of groups on Slack.

Submissions