/EECS498-WI22

Assignments of EECS 498-007 / 598-005 Winter 2022

Primary LanguageJupyter Notebook

Assignments for EECS 498.008 / 598.008: Deep Learning for Computer Vision Winter 2022

This repository contains uncompleted and completed assignments from the "Deep Learning for Computer Vision" course offered by the University of Michigan in the Winter of 2022.

All course materials can be found here.

Please note that this repo exclusively contains my self-learning materials and is not officially affiliated with the course.

If you need the solutions, please check the solutions branch.

A1

A1 include 2 questions:

Q1: PyTorch 101. Walk you through the basics of working with tensors in PyTorch.

Q2: k-Nearest Neighbor classifier. Walk you through implementing a kNN classifier.

The goals:

  • Develop proficiency with PyTorch tensors
  • Gain experience using notebooks on Google Colab
  • Understand the basic Image Classification pipeline and the data-driven approach (train/predict stages)
  • Understand the train/val/test splits and the use of validation data for hyperparameter tuning
  • Implement and apply a k-Nearest Neighbor (kNN) classifier
  • Learn how to test your implementation on Autograder

A2

A2 include 3 questions:

Q1: Linear Classifiers. Walk you through implmenting SVM and Softmax classifier.

Q2: Two-layer Neural Network. Walk you through implementing a two-layer neural network-based classifier.

Q3: MNIST Challenge. Walk you through the challenge problem where you will manually set the weights of a Two-layer Neural Network classifier and evaluate on MNIST hand drawn digits. This interesting notebook encourages you to rely on your intuition to achieve the desired results.

The goals:

  • Implement and apply a Multiclass Support Vector Machine (SVM) classifier
  • Implement and apply a Softmax classifier
  • Implement and apply a Two-layer Neural Network classifier
  • Understand the differences and tradeoffs between these classifiers
  • Understand how a Two-layer Neural Network can approximate an arbitrary function
  • Practice implementing vectorized gradient code by checking against naive implementations, and using numeric gradient checking

A3

A3 include 2 questions:

Q1: Fully-Connected Neural Network. Walk you through implementing Fully-Connected Neural Networks.

Q2: Convolutional Neural Network. Walk you through implementing Convolutional Neural Networks.

The goals:

  • Understand Neural Networks and how they are arranged in layered architectures
  • Understand and be able to implement modular backpropagation
  • Implement various update rules used to optimize Neural Networks
  • Implement Batch Normalization for training deep networks
  • Implement Dropout to regularize networks
  • Understand the architecture of Convolutional Neural Networks and get practice with training these models on data