zlpure / CS231n

My Solution to Assignments of CS231n in Winter2016

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

My Solution to Assignments of CS231n in Winter2016

License:MIT License


Languages

Language:Jupyter Notebook 97.7%Language:Python 2.2%Language:Shell 0.0%