Notes
These notes accompany the original Stanford CS class CS231n: Convolutional Neural Networks for Visual Recognition. Many thanks to Fei-Fei Li and Andrej Karpathy for letting us use their course materials!
Additional supplementary notes provided by Erik Learned-Miller and Hang Su from the class COMPSCI 697L: Deep Learning. Thanks Erik and Hang!
Setup
Follow the preparation tutorials for Virtualenv to get setup on your home machine. Follow the AWS tutorial to get started with a student user account on Tufts' AWS GPU instances.
If you are unfamiliar with scientific computing in Python or have never used Jupyter notebooks, please follow those tutorials to get ready for this class. All homeworks are in Python and use Jupyter notebooks for problem set exercises.
Module 0: Preparation
Python Virtualenv Tutorial
Tufts AWS Tutorial
Python / Numpy Tutorial
Jupyter Notebook Tutorial
Module 0.5: Vector Calculus
Vector, Matrix, and Tensor Derivatives
Module 1: Neural Networks
Image Classification: Data-driven Approach, k-Nearest Neighbor, train/val/test splits
Module 1: Neural Networks
L1/L2 distances, hyperparameter search, cross-validation
Linear classification: Support Vector Machine, Softmax
parameteric approach, bias trick, hinge loss, cross-entropy loss, L2 regularization, web demo
Optimization: Stochastic Gradient Descent
optimization landscapes, local search, learning rate, analytic/numerical gradient
Backpropagation, Intuitions
chain rule interpretation, real-valued circuits, patterns in gradient flow
Neural Networks Part 1: Setting up the Architecture
model of a biological neuron, activation functions, neural net architecture, representational power
Neural Networks Part 2: Setting up the Data and the Loss
preprocessing, weight initialization, batch normalization, regularization (L2/dropout), loss functions
Neural Networks Part 3: Learning and Evaluation
gradient checks, sanity checks, babysitting the learning process, momentum (+nesterov), second-order methods, Adagrad/RMSprop, hyperparameter optimization, model ensembles
Putting it together: Minimal Neural Network Case Study
minimal 2D toy data example
Module 2: Convolutional Neural Networks
Convolutional Neural Networks: Architectures, Convolution / Pooling Layers
layers, spatial arrangement, layer patterns, layer sizing patterns, AlexNet/ZFNet/VGGNet case studies, computational considerations
Understanding and Visualizing Convolutional Neural Networks
tSNE embeddings, deconvnets, data gradients, fooling ConvNets, human comparisons