/cs231n

:mortar_board: CS231n: Convolutional Neural Networks for Visual Recognition

Primary LanguageJupyter Notebook

CS231n: Convolutional Neural Networks for Visual Recognition

This course is a deep dive into details of the deep learning architectures with a focus on learning end-to-end models for visual recognition systems, particularly image classification. During the course, students will learn to implement, train and debug their own neural networks and gain a detailed understanding of cutting-edge research in computer vision.

Syllabus

  1. Intro to Computer Vision, historical context.
  2. Image classification and the data-driven approach. K-nearest neighbors. Linear classification I.
  3. Linear classification II. Higher-level representations, image features. Optimization, stochastic gradient descent.
  4. Backpropagation. Introduction to neural networks.
  5. Training Neural Networks Part 1: activation functions, weight initialization, gradient flow, batch normalization babysitting the learning process, hyperparameter optimization.
  6. Training Neural Networks Part 2: parameter updates, ensembles, dropout. Convolutional Neural Networks: intro.
  7. Convolutional Neural Networks: architectures, convolution / pooling layers. Case study of ImageNet challenge winning ConvNets.
  8. ConvNets for spatial localization. Object detection.
  9. Understanding and visualizing Convolutional Neural Networks. Backprop into image: Visualizations, deep dream, artistic style transfer. Adversarial fooling examples.
  10. Recurrent Neural Networks (RNN), Long Short Term Memory (LSTM). RNN language models. Image captioning.
  11. Training ConvNets in practice. Data augmentation, transfer learning. Distributed training, CPU/GPU bottlenecks. Efficient convolutions.
  12. Overview of Caffe/Torch/Theano/TensorFlow.
  13. Segmentation. Soft attention models. Spatial transformer networks.
  14. ConvNets for videos. Unsupervised learning.