ahmed bou-rabee stephen boyd ee103 stanford …...i = 1 if x i is digit kand y i = 1 if not i classi...

26
Handwritten Digit Classification Stephen Boyd ENGR108 Stanford University November 10, 2020

Upload: others

Post on 19-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ahmed Bou-Rabee Stephen Boyd EE103 Stanford …...i = 1 if x i is digit kand y i = 1 if not I classi er will have form y^ = sign(wT x+v) wis weight 256-vector, vis o set I we’ll

Handwritten Digit Classification

Stephen BoydENGR108

Stanford University

November 10, 2020

Page 2: Ahmed Bou-Rabee Stephen Boyd EE103 Stanford …...i = 1 if x i is digit kand y i = 1 if not I classi er will have form y^ = sign(wT x+v) wis weight 256-vector, vis o set I we’ll

Outline

Classification

k-means

Boolean classification

Multiclass classification

Classification with random features

Classification 2

Page 3: Ahmed Bou-Rabee Stephen Boyd EE103 Stanford …...i = 1 if x i is digit kand y i = 1 if not I classi er will have form y^ = sign(wT x+v) wis weight 256-vector, vis o set I we’ll

Handwritten digit classification

I goal is to automatically determine what a handwritten digit image is(i.e., 0, 1, . . . , 8, or 9?)

Classification 3

Page 4: Ahmed Bou-Rabee Stephen Boyd EE103 Stanford …...i = 1 if x i is digit kand y i = 1 if not I classi er will have form y^ = sign(wT x+v) wis weight 256-vector, vis o set I we’ll

Classifier

I images are 16× 16 pixels, represented as 256-vectors

I values in [0, 1] (0 is black, 1 is white)

I images were first de-slanted and size normalized

I our classifier is a function f : R256 → {0, 1, . . . , 9}(called multiclass or in this case 10-way classification)

I our guess is y = f(x) for image x

I our classifier is wrong when y 6= y

Classification 4

Page 5: Ahmed Bou-Rabee Stephen Boyd EE103 Stanford …...i = 1 if x i is digit kand y i = 1 if not I classi er will have form y^ = sign(wT x+v) wis weight 256-vector, vis o set I we’ll

Data set

I NIST data from US Postal Service

I training set has N = 7291 images

– we’ll use this data set to develop our classifiers

I test set has N test = 2007 images

– we’ll use this data set to test/judge our classifiers

I we’ll look at error on training set and on test set

Classification 5

Page 6: Ahmed Bou-Rabee Stephen Boyd EE103 Stanford …...i = 1 if x i is digit kand y i = 1 if not I classi er will have form y^ = sign(wT x+v) wis weight 256-vector, vis o set I we’ll

Outline

Classification

k-means

Boolean classification

Multiclass classification

Classification with random features

k-means 6

Page 7: Ahmed Bou-Rabee Stephen Boyd EE103 Stanford …...i = 1 if x i is digit kand y i = 1 if not I classi er will have form y^ = sign(wT x+v) wis weight 256-vector, vis o set I we’ll

k-means

I start with a collection of image 256-vectors x1, . . . , xNI run k-means algorithm to cluster into k groups, 10 times with

random initial centroids

I use best of these 10 (in mean-square distance to closest centroid)

I centroids/representatives z1, . . . , zk can be viewed as images

k-means 7

Page 8: Ahmed Bou-Rabee Stephen Boyd EE103 Stanford …...i = 1 if x i is digit kand y i = 1 if not I classi er will have form y^ = sign(wT x+v) wis weight 256-vector, vis o set I we’ll

Centroids, k = 2

k-means 8

Page 9: Ahmed Bou-Rabee Stephen Boyd EE103 Stanford …...i = 1 if x i is digit kand y i = 1 if not I classi er will have form y^ = sign(wT x+v) wis weight 256-vector, vis o set I we’ll

Centroids, k = 10

k-means 9

Page 10: Ahmed Bou-Rabee Stephen Boyd EE103 Stanford …...i = 1 if x i is digit kand y i = 1 if not I classi er will have form y^ = sign(wT x+v) wis weight 256-vector, vis o set I we’ll

Centroids, k = 20

k-means 10

Page 11: Ahmed Bou-Rabee Stephen Boyd EE103 Stanford …...i = 1 if x i is digit kand y i = 1 if not I classi er will have form y^ = sign(wT x+v) wis weight 256-vector, vis o set I we’ll

Classification via k-means

I label k = 20 centroids by hand

I classify new image by label of nearest centroid

I classification error rate (on test set): 24%

k-means 11

Page 12: Ahmed Bou-Rabee Stephen Boyd EE103 Stanford …...i = 1 if x i is digit kand y i = 1 if not I classi er will have form y^ = sign(wT x+v) wis weight 256-vector, vis o set I we’ll

Classification via k-means

confusion matrix:true ↓ predicted →

0 1 2 3 4 5 6 7 8 90 338 0 2 3 6 0 9 0 0 11 0 253 0 1 4 0 2 0 0 42 7 1 131 10 29 1 3 2 13 13 4 0 1 143 3 6 1 1 6 14 1 4 4 0 103 0 1 4 2 815 10 0 0 50 8 78 7 0 0 76 6 0 2 0 4 2 154 0 1 17 0 3 0 0 6 0 0 113 1 248 5 2 5 16 10 7 0 1 107 139 0 2 0 0 18 1 0 43 3 110

k-means 12

Page 13: Ahmed Bou-Rabee Stephen Boyd EE103 Stanford …...i = 1 if x i is digit kand y i = 1 if not I classi er will have form y^ = sign(wT x+v) wis weight 256-vector, vis o set I we’ll

Outline

Classification

k-means

Boolean classification

Multiclass classification

Classification with random features

Boolean classification 13

Page 14: Ahmed Bou-Rabee Stephen Boyd EE103 Stanford …...i = 1 if x i is digit kand y i = 1 if not I classi er will have form y^ = sign(wT x+v) wis weight 256-vector, vis o set I we’ll

Boolean classifier

I a simpler problem: determine if an image x is digit k or not digit k

I we use label yi = 1 if xi is digit k and yi = −1 if not

I classifier will have form

y = sign(wTx+ v)

w is weight 256-vector, v is offset

I we’ll use training set to choose w and v, and test the classifier ontest data set

Boolean classification 14

Page 15: Ahmed Bou-Rabee Stephen Boyd EE103 Stanford …...i = 1 if x i is digit kand y i = 1 if not I classi er will have form y^ = sign(wT x+v) wis weight 256-vector, vis o set I we’ll

Least-squares Boolean classifier

I want w, v for which yi ≈ yi = sign(wTxi + v) = sign(yi)

I choose w, v to minimize

N∑i=1

(yi − yi)2 + λ‖w‖2 = ‖XTw + v1− y‖2 + λ‖w‖2

I X = [x1 · · ·xN ] is matrix of training image vectors

I λ > 0 is regularization parameter

Boolean classification 15

Page 16: Ahmed Bou-Rabee Stephen Boyd EE103 Stanford …...i = 1 if x i is digit kand y i = 1 if not I classi er will have form y^ = sign(wT x+v) wis weight 256-vector, vis o set I we’ll

Least-squares Boolean classifier

classification error versus λ for predicting the digit 0

100

101

102

103

104

105

0.01

0.02

0.03

0.04

0.05

0.06

0.07

0.08

0.09

0.1

0.11

lambda

cla

ssific

ation e

rror

0 versus the rest

train CE

test CE

Boolean classification 16

Page 17: Ahmed Bou-Rabee Stephen Boyd EE103 Stanford …...i = 1 if x i is digit kand y i = 1 if not I classi er will have form y^ = sign(wT x+v) wis weight 256-vector, vis o set I we’ll

Weight vector

Boolean classification 17

Page 18: Ahmed Bou-Rabee Stephen Boyd EE103 Stanford …...i = 1 if x i is digit kand y i = 1 if not I classi er will have form y^ = sign(wT x+v) wis weight 256-vector, vis o set I we’ll

Outline

Classification

k-means

Boolean classification

Multiclass classification

Classification with random features

Multiclass classification 18

Page 19: Ahmed Bou-Rabee Stephen Boyd EE103 Stanford …...i = 1 if x i is digit kand y i = 1 if not I classi er will have form y^ = sign(wT x+v) wis weight 256-vector, vis o set I we’ll

10-way classification

I let wi, vi be weight vector, offset for Boolean classification of digit i

I for image x, yi = wTi x+ vi

I the larger yi is, the more confident we are that image is digit i

I choose y = argmaxi(yi) = argmaxi(wTi x+ vi)

I use the same regularization parameter λ for each digit i

I choose λ so that the total classification error on test set is small

Multiclass classification 19

Page 20: Ahmed Bou-Rabee Stephen Boyd EE103 Stanford …...i = 1 if x i is digit kand y i = 1 if not I classi er will have form y^ = sign(wT x+v) wis weight 256-vector, vis o set I we’ll

Example

multi-class classification error versus λ

10−1

100

101

102

103

104

0.06

0.08

0.1

0.12

0.14

0.16

0.18

0.2

0.22

lambda

cla

ssific

ation e

rror

10−way Classification

train CE

test CE

with λ = 50, test classification error is about 13%

Multiclass classification 20

Page 21: Ahmed Bou-Rabee Stephen Boyd EE103 Stanford …...i = 1 if x i is digit kand y i = 1 if not I classi er will have form y^ = sign(wT x+v) wis weight 256-vector, vis o set I we’ll

Example

test confusion matrix

true ↓ predicted →

0 1 2 3 4 5 6 7 8 90 348 2 0 1 3 1 3 0 0 11 0 256 0 2 3 0 1 0 1 12 8 3 160 7 9 1 1 1 8 03 5 0 3 140 2 8 0 2 3 34 3 6 4 0 173 0 3 1 0 105 10 1 0 20 2 120 0 1 1 56 3 1 4 0 5 5 151 0 1 07 2 1 1 1 6 0 0 131 0 58 10 3 2 14 4 7 1 2 119 49 0 3 0 1 7 0 0 7 2 157

Multiclass classification 21

Page 22: Ahmed Bou-Rabee Stephen Boyd EE103 Stanford …...i = 1 if x i is digit kand y i = 1 if not I classi er will have form y^ = sign(wT x+v) wis weight 256-vector, vis o set I we’ll

Outline

Classification

k-means

Boolean classification

Multiclass classification

Classification with random features

Classification with random features 22

Page 23: Ahmed Bou-Rabee Stephen Boyd EE103 Stanford …...i = 1 if x i is digit kand y i = 1 if not I classi er will have form y^ = sign(wT x+v) wis weight 256-vector, vis o set I we’ll

Doing even better

I in classes you’ll take later (AI, statistics), you’ll see (and construct)way better classifiers

I we’ll look at a simple example here

Classification with random features 23

Page 24: Ahmed Bou-Rabee Stephen Boyd EE103 Stanford …...i = 1 if x i is digit kand y i = 1 if not I classi er will have form y^ = sign(wT x+v) wis weight 256-vector, vis o set I we’ll

Generating random features

I generate a random 2000× 256 matrix R with entries +1 or −1I scale R by 1/

√256, so each row has norm 1

I create 2000 new features x from original x via

xi = max{Rx, 0}

I now do least-squares classification with feature 2256-vectors (xi, xi)

Classification with random features 24

Page 25: Ahmed Bou-Rabee Stephen Boyd EE103 Stanford …...i = 1 if x i is digit kand y i = 1 if not I classi er will have form y^ = sign(wT x+v) wis weight 256-vector, vis o set I we’ll

Example

multi-class classification error versus λ

10−1

100

101

102

103

0

0.01

0.02

0.03

0.04

0.05

0.06

0.07

0.08

0.09

0.1

lambda

cla

ssific

ation e

rror

Random Features 10−way Classification

train CE

test CE

with λ = 1, test classification error is about 5%

Classification with random features 25

Page 26: Ahmed Bou-Rabee Stephen Boyd EE103 Stanford …...i = 1 if x i is digit kand y i = 1 if not I classi er will have form y^ = sign(wT x+v) wis weight 256-vector, vis o set I we’ll

Example

test confusion matrix

true ↓ predicted →

0 1 2 3 4 5 6 7 8 90 352 0 3 0 2 0 1 0 0 11 0 256 0 0 4 0 3 1 0 02 1 0 186 3 2 0 1 1 4 03 1 0 4 150 0 7 0 0 3 14 0 1 3 0 188 0 1 0 1 65 2 0 0 3 0 150 0 0 1 46 3 0 3 0 2 1 161 0 0 07 0 0 1 0 6 0 0 138 1 18 4 0 3 3 0 1 2 0 153 09 0 0 0 0 4 1 0 1 1 170

Classification with random features 26