1. The document outlines an agenda for an AI and ML study group covering Stanford's CS231n course on convolutional neural networks.
2. The agenda includes reviewing key points from lectures 1 and 2, basic Python concepts, and watching lecture 2 before discussing it and reviewing detailed notes.
3. Lecture 2 covers image classification tasks, challenges, and algorithms like K-nearest neighbors and linear classifiers that are precursors to convolutional neural networks.
2. Agenda
1. Course overview + Lecture 1 key points
2. Review basic Python concepts
3. Heads up on lecture 2 key points
4. Watch lecture 2
5. Review lecture 2 key points
6. Discussion
7. Review lecture 2 detailed notes (if time)
8. Project?
○ Get the code from lecture 2 and train a model on CIFAR-10.
3. The course
Home page: http://cs231n.stanford.edu/
Syllabus: http://cs231n.stanford.edu/2017/syllabus.html
Videos:
https://www.youtube.com/playlist?list=PLC1qU-LWwrF64f4QKQT-Vg5Wr4qEE1Zx
k
Google group: https://groups.google.com/forum/#!forum/ml-and-ai-study-group
4. Course overview
● Understand how to write from scratch, debug and train CNNs
● CPU vs GPU
● Tools
○ Caffe
○ TensorFlow
○ (Py)Torch
7. Key points
● The course is mostly about convolutional neural networks (CNNs) and
computer vision.
● History of computer vision and machine learning - interesting, but not
essential.
● Deep learning really took off from 2012.
● Image.net competition
○ SuperVision (AlexNet) won in 2012
○ Every winner since is a neural network
9. What can we do with CNNs?
● Visual recognition - image classification
● Object detection - draw bounding boxes.
● Image captioning.
● Action classification.
10. Why did deep learning take off?
● It’s been around since the 90s.
● CPU / GPU power (Moore’s law)
○ Allowed researchers to explore bigger models
● We have more data than ever before
● Open source tools
11. Related courses
● CS131 - Undergraduate intro course.
● CS224n - intersection of Deep Learning and natural language processing.
● CS231a - Neural networks for image classification.
● CS331 / CS431 - advanced topics in computer vision.
14. Key points
● Image classification
○ Core task in computer vision
○ Difficult to hard-code an algorithm
○ Need a data driven approach
○ Sets of labelled images
○ Model learns how to relate images to labels
● Algos:
○ K nearest neighbour
○ linear classifier
○ Stepping stones to convolutional neural networks (CNN)
17. Nearest neighbour
● Nearest neighbour
○ Finds the single ‘nearest’ image and uses it to classify.
● K nearest neighbour (KNN)
○ Finds the K ‘nearest’ images, figures the most common label, and uses that to classify.
● Problems
○ Quick to train, slow to predict
○ Requires a lot of storage for the data
○ The 'image distance' metric doesn't correspond well to how we perceive the distances
between images.
○ Our data needs to be evenly distributed and cover the space densely.
● Demo
○ http://vision.stanford.edu/teaching/cs231n-demos/knn/
18. Linear classifier
● Can be used a layer in a neural network.
● Parametric approach.
● Uses weights to classify
○ Much less storage than KNN, training data is thrown away.
● Draws a line through the problem space
○ Image is classified based on which side of the line it is on.
● Problems
○ Easy to create example data that breaks this algo.
● Demo
○ http://vision.stanford.edu/teaching/cs231n-demos/linear-classify/
19. Hyper parameters
● Parameters to the algo that are chosen, not learned.
● For example
○ K in KNN
○ Choice of distance metric
● Can be tuned through validation/optimization.
● Cross validation
○ Split up data into segments.
○ Best bang for buck in validation.
○ Like ‘walk forward optimization’ in quantitative trading.
20. Loss function
● Measures how compatible a given set of parameters is with respect to the
ground truth labels in the training dataset.
● We also saw that the loss function was defined in such way that making good
predictions on the training data is equivalent to having a small loss.
21. Resources
CIFAR-10
Image data set
60k 32x32 colour images
10 classes, 6k images per class
https://www.cs.toronto.edu/~kriz/cifar.html
KNN demo
http://vision.stanford.edu/teaching/cs231n-demos/knn/
Linear classifier demo
http://vision.stanford.edu/teaching/cs231n-demos/linear-classify/