This is my knowledge comb and program implementation of CS231n. The jupyter notebook and python documents of Assignment 1 and 2 are provided. Assignment 3 will come soon.
In assignment 1, you will practice putting together a simple image classification pipeline, based on the k-Nearest Neighbor or the SVM/Softmax classifier. The goals of this assignment are as follows:
- 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.
- develop proficiency in writing efficient vectorized code with numpy
- implement and apply a k-Nearest Neighbor (kNN) classifier
- 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
Q1: k-Nearest Neighbor classifier
The IPython Notebook knn.ipynb (KNN_validation.py) will walk you through implementing the kNN classifier.
Q2: Training a Support Vector Machine
The IPython Notebook MSVM.ipynb (MSVM.py) will walk you through implementing the SVM classifier.
Q3: Implement a Softmax classifier
The IPython Notebook Softmax.ipynb (SoftMax.py) will walk you through implementing the Softmax classifier.
Q4: Two-Layer Neural Network The IPython Notebook TwoLayerClassifier.ipynb (Two_layerNN.py) will walk you through the implementation of a two-layer neural network classifier.
In assignment 2, you will practice writing backpropagation code, and training Neural Networks and Convolutional Neural Networks. The goals of this assignment are as follows:
- understand Neural Networks and how they are arranged in layered architectures
- understand and be able to implement (vectorized) backpropagation
- implement various update rules used to optimize Neural Networks
- implement batch normalization for training deep networks
- implement dropout to regularize networks
- effectively cross-validate and find the best hyperparameters for Neural Network architecture
- understand the architecture of Convolutional Neural Networks and train gain experience with training these models on data