Skip to content

Latest commit

 

History

History
72 lines (63 loc) · 4.56 KB

README.md

File metadata and controls

72 lines (63 loc) · 4.56 KB

Stanford CS231n CNN for Visual Recognition

Solution to 2016 & 2017 Course Assignments

This course is a deep learning treasure. It guides you to implement everything (machine learning models, CNN layers, backpropagation, optimizers, etc.) by hand with only lib of numpy. Though the process of implementing vectorized batch normalization backprop or convolutional filters are painful, it lays a solid fundation on one's understanding in deep learning. The visulizations (saliency map, class image generation) and applications (style transfer) help gain insight. Implementing more powerful models in Tensorflow/PyTorch is a good entry point to start building something fun.

Assignment 1 - Put Together Image Classification

Assignment 2 - Train Deep Neural Networks

  • implement Fully Connected Nets
    • vectorized backpropagation
    • modular layer design for arbitrary depth
    • implement optimization solver with SGD/Momentum/RMSProp/Adam update rules
  • implement Batch Normalization to stably train deep networks
  • implement Dropout to regularize networks
  • implement Convolutional Nets on CIFAR-10
    • implement convolutional layers
    • visualize filters and understand feature extraction, e.g. first layer filters are excited by pattern:

    - effectively cross-validate and find the best hyperparameters - 74% test classification accuracy is achieved by a CNN with only 4 layers on CIFAR-10 dataset, a test sample:

  • implement TensorFlow CNN on CIFAR-10

Assignment 3 - RNNs, GANs, & Image Gradients Applications

Many thanks to CS231n instructors and TAs for creating such a meaty course.