CS231n icon indicating copy to clipboard operation
CS231n copied to clipboard

Working through CS231n: Convolutional Neural Networks for Visual Recognition

Understanding Convolutional Neural Networks

This repository is an archive of the course CS231n: Convolutional Neural Networks for Visual Recognition (Winter 2016). If you’re even vaguely interested in this topic, you should probably take this class. It is outstanding.

To use this repository, make a fork of it and then tick off the items in the following syllabus as you complete them. (You can tick off items by replacing [ ] with [x] in README.md.)

Happy learning!

Harish Narayanan, 2017

Course Syllabus

  • [ ] Lecture 1: Intro to computer vision, historical context
  • [ ] Lecture 2: Image classification and the data-driven approach; k-nearest neighbors; Linear classification I
    • [ ] Video
    • [ ] Slides
    • [ ] Python/NumPy tutorial
    • [ ] Image classification notes
    • [ ] Linear classification notes
  • [ ] Lecture 3: Linear classification II; Higher-level representations, image features; Optimization, stochastic gradient descent
    • [ ] Video
    • [ ] Slides
    • [ ] Linear classification notes
    • [ ] Optimization notes
  • [ ] Lecture 4: Backpropagation; Introduction to neural networks
    • [ ] Video
    • [ ] Slides
    • [ ] Backprop notes
    • [ ] Related references
  • [ ] Assignment 1
    • [ ] k-Nearest Neighbor classifier
    • [ ] Training a Support Vector Machine
    • [ ] Implement a Softmax classifier
    • [ ] Two-Layer Neural Network
    • [ ] Higher Level Representations: Image Features
    • [ ] Cool Bonus: Do something extra!
  • [ ] Lecture 5: Training Neural Networks Part 1; Activation functions, weight initialization, gradient flow, batch normalization; Babysitting the learning process, hyperparameter optimization
    • [ ] Video
    • [ ] Slides
    • [ ] Neural Nets notes 1
    • [ ] Neural Nets notes 2
    • [ ] Neural Nets notes 3
    • [ ] Related references
      • [ ] Tips/Tricks 1
      • [ ] Tips/Tricks 2
      • [ ] Tips/Tricks 3
      • [ ] Deep learning review article
  • [ ] Lecture 6: Training Neural Networks Part 2: parameter updates, ensembles, dropout; Convolutional Neural Networks: intro
    • [ ] Video
    • [ ] Slides
    • [ ] Neural Nets notes 3
  • [ ] Lecture 7: Convolutional Neural Networks: architectures, convolution / pooling layers; Case study of ImageNet challenge winning ConvNets
    • [ ] Video
    • [ ] Slides
    • [ ] ConvNet notes
  • [ ] Lecture 8: ConvNets for spatial localization; Object detection
  • [ ] Lecture 9: Understanding and visualizing Convolutional Neural Networks; Backprop into image: Visualizations, deep dream, artistic style transfer; Adversarial fooling examples
  • [ ] Assignment 2
    • [ ] Fully-connected Neural Network
    • [ ] Batch Normalization
    • [ ] Dropout
    • [ ] ConvNet on CIFAR-10
    • [ ] Do something extra!
  • [ ] Lecture 10: Recurrent Neural Networks (RNN), Long Short Term Memory (LSTM); RNN language models; Image captioning
  • [ ] Lecture 11: Training ConvNets in practice; Data augmentation, transfer learning; Distributed training, CPU/GPU bottlenecks; Efficient convolutions
  • [ ] Lecture 12: Overview of Caffe/Torch/Theano/TensorFlow
  • [ ] Assignment 3
    • [ ] Image Captioning with Vanilla RNNs
    • [ ] Image Captioning with LSTMs
    • [ ] Image Gradients: Saliency maps and Fooling Images
    • [ ] Image Generation: Classes, Inversion, DeepDream
    • [ ] Do something extra!
  • [ ] Lecture 13: Segmentation; Soft attention models; Spatial transformer networks
  • [ ] Lecture 14: ConvNets for videos; Unsupervised learning
  • [ ] Invited Lecture: A sampling of deep learning at Google
  • [ ] Lecture 15: Conclusions
    • [ ] Slides