Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy...

31
Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei http://vision.stanford.edu/teaching/cs2

Transcript of Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy...

Page 1: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

Lecture 27: Recognition Basics

CS4670/5670: Computer VisionKavita Bala

Slides from Andrej Karpathy and Fei-Fei Lihttp://vision.stanford.edu/teaching/cs231n/

Page 2: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

Announcements

• PA 3 Artifact votingVote by Tuesday night

Page 3: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

Today

• Image classification pipeline• Training, validation, testing• Score function and loss function

• Building up to CNNs for learning– 5-6 lectures on deep learning

Page 4: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

Image Classification

Slides from Andrej Karpathy and Fei-Fei Lihttp://vision.stanford.edu/teaching/cs231n/

Page 5: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

Image Classification: Problem

Page 6: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

Data-driven approach

• Collect a database of images with labels• Use ML to train an image classifier• Evaluate the classifier on test images

Slides from Andrej Karpathy and Fei-Fei Lihttp://vision.stanford.edu/teaching/cs231n/

Page 7: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

Data-driven approach

• Collect a database of images with labels• Use ML to train an image classifier• Evaluate the classifier on test images

Slides from Andrej Karpathy and Fei-Fei Lihttp://vision.stanford.edu/teaching/cs231n/

Page 8: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

Train and Test

• Split dataset between training images and test images

• Be careful about inflation of results

Page 9: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

Classifiers

• Nearest Neighbor• kNN

• SVM• …

Page 10: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

Nearest Neighbor Classifier

• Train– Remember all training images and their labels

• Predict– Find the closest (most similar) training image– Predict its label as the true label

Page 11: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

How to find the most similar training image? What is the distance metric?

Slides from Andrej Karpathy and Fei-Fei Lihttp://vision.stanford.edu/teaching/cs231n/

Page 12: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

Choice of distance metric

• Hyperparameter

Slides from Andrej Karpathy and Fei-Fei Lihttp://vision.stanford.edu/teaching/cs231n/

Page 13: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

k-nearest neighbor• Find the k closest points from training data• Labels of the k points “vote” to classify

Page 14: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

How to pick hyperparameters?

• Methodology– Train and test– Train, validate, test

• Train for original model• Validate to find hyperparameters• Test to understand generalizability

Page 15: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

Validation

Slides from Andrej Karpathy and Fei-Fei Lihttp://vision.stanford.edu/teaching/cs231n/

Page 16: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

Cross-validation

Slides from Andrej Karpathy and Fei-Fei Lihttp://vision.stanford.edu/teaching/cs231n/

Page 17: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

CIFAR-10 and NN results

Slides from Andrej Karpathy and Fei-Fei Lihttp://vision.stanford.edu/teaching/cs231n/

Page 18: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

Visualization: L2 distance

Page 19: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

Complexity and Storage

• N training images, M testing images

• Training: O(1)• Testing: O(MN)

• Hmm– Normally need the opposite– Slow training (ok), fast testing (necessary)

Page 20: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

Summary

• Data-driven: Train, validate, test– Need labeled data

• Classifier– Nearest neighbor, kNN (approximate NN, ANN)

Page 21: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

Score function

Slides from Andrej Karpathy and Fei-Fei Lihttp://vision.stanford.edu/teaching/cs231n/

Page 22: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

Linear Classifier

Page 23: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

Linear Classifier

Page 24: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

Computing scores

Page 25: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

Geometric Interpretation

Page 26: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

Interpretation: Template matching

Page 27: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

Linear classifiers• Find linear function (hyperplane) to separate

positive and negative examples

0:negative

0:positive

b

b

ii

ii

wxx

wxx

Which hyperplaneis best?

Page 28: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

Support vector machines

• Find hyperplane that maximizes the margin between the positive and negative examples

C. Burges, A Tutorial on Support Vector Machines for Pattern Recognition, Data Mining and Knowledge Discovery, 1998

Page 29: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

Support vector machines

• Find hyperplane that maximizes the margin between the positive and negative examples

1:1)(negative

1:1)( positive

by

by

iii

iii

wxx

wxx

MarginSupport vectors

For support, vectors, 1 bi wx

Page 30: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

Support vector machines

• Find hyperplane that maximizes the margin between the positive and negative examples

1:1)(negative

1:1)( positive

by

by

iii

iii

wxx

wxx

MarginSupport vectors

Distance between point and hyperplane: ||||

||

w

wx bi

For support, vectors, 1 bi wx

Therefore, the margin is 2 / ||w||

Page 31: Lecture 27: Recognition Basics CS4670/5670: Computer Vision Kavita Bala Slides from Andrej Karpathy and Fei-Fei Li

Bias Trick