CS231n icon indicating copy to clipboard operation
CS231n copied to clipboard

My Solution to Assignments of CS231n in Winter2016

My Solution to Assignments of CS231n Winter2016

This is my solution to three assignments of CS231n Winter2016.
CS231n: Convolutional Neural Networks for Visual Recognition Winter2016 is a classical class, which teaches you to implement, train and debug your own neural networks via python package numpy on Cifar10 datasets. And after finishing the assignments, you can gain a deep understanding of cutting-edge researches in machine learning and computer vision issues.


Note: If you consult my source codes that you may want to incorporate into your algorithm or system, you should clearly cite references in your codes.


Table of Contents

  • Assignment 1
    • 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
    • get a basic understanding of performance improvements from using higher-level representations than raw pixels (e.g. color histograms, Histogram of Gradient (HOG) features)
  • Assignment 2
    • 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
  • Assignment 3
    • Understand the architecture of recurrent neural networks (RNNs) and how they operate on sequences by sharing weights over time
    • Understand the difference between vanilla RNNs and Long-Short Term Memory (LSTM) RNNs
    • Understand how to sample from an RNN at test-time
    • Understand how to combine convolutional neural nets and recurrent nets to implement an image captioning system
    • Understand how a trained convolutional network can be used to compute gradients with respect to the input image
    • Implement and different applications of image gradients, including saliency maps, fooling images, class visualizations, feature inversion, and DeepDream.

Dependencies

  • Anaconda
  • Python 2.7
  • Numpy
  • Pandas

Author

@zlpure