Newer
Older
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Neural Networks - SVM Loss Function and Gradient"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Import and Visualize CIFAR-10 Data Set"
]
},
{
"cell_type": "code",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 70 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train data shape: (49000, 3072)\n",
"Train labels shape: (49000,)\n",
"Validation data shape: (1000, 3072)\n",
"Validation labels shape: (1000,)\n"
]
}
],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"\n",
"# function to import CIFAR-10 data set\n",
"def unpickle(file):\n",
" import pickle\n",
" with open(file, 'rb') as fo:\n",
" dict = pickle.load(fo, encoding='bytes')\n",
" return dict\n",
"data_batch_1 = unpickle(\"/work/hslu-deep-learning/notebooks/Block 1/data/data_batch_1\")\n",
"data_batch_2 = unpickle(\"/work/hslu-deep-learning/notebooks/Block 1/data/data_batch_2\")\n",
"data_batch_3 = unpickle(\"/work/hslu-deep-learning/notebooks/Block 1/data/data_batch_3\")\n",
"data_batch_4 = unpickle(\"/work/hslu-deep-learning/notebooks/Block 1/data/data_batch_4\")\n",
"data_batch_5 = unpickle(\"/work/hslu-deep-learning/notebooks/Block 1/data/data_batch_5\")\n",
"test_batch = unpickle(\"/work/hslu-deep-learning/notebooks/Block 1/data/test_batch\")\n",
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
"\n",
"# Let us concatenate the batch training data \n",
"X_train=np.concatenate([data_batch_1[b'data'], \n",
" data_batch_2[b'data'], \n",
" data_batch_3[b'data'], \n",
" data_batch_4[b'data'], \n",
" data_batch_5[b'data']], \n",
" axis = 0)\n",
"\n",
"\n",
"# What is the shape of Xtr_rows ?\n",
"X_train.shape\n",
"\n",
"\n",
"# Let us concatenate the training labels\n",
"y_train=np.concatenate([data_batch_1[b'labels'] , \n",
" data_batch_2[b'labels'],\n",
" data_batch_3[b'labels'],\n",
" data_batch_4[b'labels'],\n",
" data_batch_5[b'labels']], \n",
" axis = 0)\n",
"\n",
"# Let us define the test data as X_test\n",
"X_test=test_batch[b'data']\n",
"X_test.shape\n",
"\n",
"# Let us cast the test labels as ndarray\n",
"y_test=np.array(test_batch[b'labels']) \n",
"y_test.shape\n",
"\n",
"\n",
"# Visualize some examples from the dataset.\n",
"# We show a few examples of training images from each class.\n",
"\n",
"classes = ['plane', 'car', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck']\n",
"num_classes = len(classes)\n",
"samples_per_class = 7\n",
"\n",
"\n",
"\n",
"for y, cls in enumerate(classes):\n",
" idxs = np.flatnonzero(y_train == y)\n",
" idxs = np.random.choice(idxs, samples_per_class, replace=False)\n",
" for i, idx in enumerate(idxs):\n",
" plt_idx = i * num_classes + y + 1\n",
" plt.subplot(samples_per_class, num_classes, plt_idx)\n",
" plt.imshow(X_train[idx].reshape((3,32,32)).transpose((1,2,0)).astype('uint8'))\n",
" plt.axis('off')\n",
" if i == 0:\n",
" plt.title(cls)\n",
"plt.show()\n",
"\n",
"# Split the data into train, val, and test sets. In addition we will\n",
"# create a small development set as a subset of the training data;\n",
"# we can use this for development so our code runs faster.\n",
"num_training = 49000\n",
"num_validation = 1000\n",
"num_test = 1000\n",
"num_dev = 500\n",
"\n",
"# Our validation set will be num_validation points from the original\n",
"# training set.\n",
"mask = range(num_training, num_training + num_validation)\n",
"X_val = X_train[mask]\n",
"y_val = y_train[mask]\n",
"\n",
"# Our training set will be the first num_train points from the original\n",
"# training set.\n",
"mask = range(num_training)\n",
"X_train = X_train[mask]\n",
"y_train = y_train[mask]\n",
"\n",
"# We will also make a development set, which is a small subset of\n",
"# the training set.\n",
"mask = np.random.choice(num_training, num_dev, replace=False)\n",
"X_dev = X_train[mask]\n",
"y_dev = y_train[mask]\n",
"\n",
"# We use the first num_test points of the original test set as our\n",
"# test set.\n",
"mask = range(num_test)\n",
"X_test = X_test[mask]\n",
"y_test = y_test[mask]\n",
"\n",
"print('Train data shape: ', X_train.shape)\n",
"print('Train labels shape: ', y_train.shape)\n",
"print('Validation data shape: ', X_val.shape)\n",
"print('Validation labels shape: ', y_val.shape)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" ## Preprocessing the Data : Subtract the Mean Image"
]
},
{
"cell_type": "code",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[130 130 130 131 132 132 133 133 134 134]\n"
]
},
{
"data": {
"image/png": "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\n",
"metadata": {
"needs_background": "light"
},
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"(49000, 3073) (1000, 3073) (1000, 3073) (500, 3073)\n"
]
}
],
"source": [
"# First: compute the image mean based on the training data\n",
"mean_image = np.mean(X_train, axis=0).astype('uint8')\n",
"print(mean_image[:10]) # print a few of the elements\n",
"plt.figure(figsize=(4,4))\n",
"# visualize the mean image\n",
"plt.imshow(mean_image.reshape((3,32,32)).transpose((1,2,0))) \n",
"plt.show()\n",
"\n",
"# Second: subtract the mean image from train and test data\n",
"X_train -= mean_image\n",
"X_val -= mean_image\n",
"X_test -= mean_image\n",
"X_dev -= mean_image\n",
"\n",
"\n",
"# Third: append the bias dimension of ones (i.e. bias trick) so that our SVM\n",
"# only has to worry about optimizing a single weight matrix W.\n",
"X_train = np.hstack([X_train, np.ones((X_train.shape[0], 1))])\n",
"X_val = np.hstack([X_val, np.ones((X_val.shape[0], 1))])\n",
"X_test = np.hstack([X_test, np.ones((X_test.shape[0], 1))])\n",
"X_dev = np.hstack([X_dev, np.ones((X_dev.shape[0], 1))])\n",
"\n",
"print(X_train.shape, X_val.shape, X_test.shape, X_dev.shape)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## SVM Loss Function and Gradient (Not Vectorized)"
]
},
{
"cell_type": "code",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
]
}
],
"source": [
"from random import shuffle\n",
"\n",
"def svm_loss_naive(W, X, y, reg):\n",
" \"\"\"\n",
" Structured SVM loss function, naive implementation (with loops).\n",
"\n",
" Inputs have dimension D, there are C classes, and we operate on minibatches\n",
" of N examples.\n",
"\n",
" Inputs:\n",
" - W: A numpy array of shape (D, C) containing weights.\n",
" - X: A numpy array of shape (N, D) containing a minibatch of data.\n",
" - y: A numpy array of shape (N,) containing training labels; y[i] = c means\n",
" that X[i] has label c, where 0 <= c < C.\n",
" - reg: (float) regularization strength\n",
"\n",
" Returns a tuple of:\n",
" - loss as single float\n",
" - gradient with respect to weights W; an array of same shape as W\n",
" To be precise: it is the Jacobian matrix of L with respect to all \n",
" matrix elements of W : dW is shorthand notation for dL/dW_ij\n",
" \"\"\"\n",
" \n",
"\n",
" \n",
" # initialize the gradient as zero\n",
" dW = np.zeros(W.shape) \n",
" # compute the loss and the gradient\n",
" num_classes = W.shape[1]\n",
" num_train = X.shape[0]\n",
" loss = 0.0\n",
" for i in range(num_train):\n",
" scores = X[i].dot(W)\n",
" correct_class_score = scores[y[i]]\n",
" diff_count = 0 \n",
" for j in range(num_classes):\n",
" margin = scores[j] - correct_class_score + 1\n",
" if j == y[i]:\n",
" continue\n",
" if margin > 0:\n",
" diff_count += 1\n",
" # gradient update for incorrect rows\n",
" dW[:, j] += X[i] \n",
" loss += margin\n",
" # gradient update for correct row\n",
" dW[:, y[i]] += -diff_count * X[i]\n",
"\n",
" # Right now the loss is a sum over all training examples, but we want it\n",
" # to be an average instead so we divide by num_train.\n",
" loss /= num_train\n",
" dW /= num_train\n",
" dW += reg*W # regularize the weights\n",
" # Add regularization to the loss.\n",
" loss += 0.5 * reg * np.sum(W * W) \n",
" \n",
" # Add regularization to the loss.\n",
" loss += 0.5 * reg * np.sum(W * W)\n",
"\n",
" return loss, dW\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"# generate a random SVM weight matrix of small numbers\n",
"W = np.random.randn(3073, 10) * 0.0001 \n",
"\n",
"loss, grad = svm_loss_naive(W, X_dev, y_dev, 0.00001)\n",
"print('loss: %f' % (loss, ))\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Gradient Check"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We compute numerically the gradient along several randomly chosen \n",
"dimensions, and compare them with our analytically computed gradient. \n",
"The numbers should match almost exactly along all dimensions."
]
},
{
"cell_type": "code",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"numerical: -50.477261 analytic: -50.622000, relative error: 1.431648e-03\n",
"numerical: -1.795996 analytic: -1.790000, relative error: 1.672047e-03\n",
"numerical: 55.391832 analytic: 55.288000, relative error: 9.381257e-04\n",
"numerical: -26.967832 analytic: -26.902000, relative error: 1.222049e-03\n",
"numerical: 33.095996 analytic: 33.084000, relative error: 1.812626e-04\n",
"numerical: -34.094832 analytic: -33.992000, relative error: 1.510301e-03\n",
"numerical: 17.840000 analytic: 17.840000, relative error: 5.665324e-12\n",
"numerical: 79.316000 analytic: 79.316000, relative error: 1.285348e-12\n",
"numerical: 23.174000 analytic: 23.174000, relative error: 1.013790e-11\n",
"numerical: 48.145081 analytic: 48.148000, relative error: 3.030900e-05\n",
"numerical: 32.292644 analytic: 32.434191, relative error: 2.186841e-03\n",
"numerical: 18.595902 analytic: 18.603951, relative error: 2.163774e-04\n",
"numerical: 49.828929 analytic: 49.799966, relative error: 2.907024e-04\n",
"numerical: -9.053657 analytic: -8.914913, relative error: 7.721512e-03\n",
"numerical: 6.206379 analytic: 6.214318, relative error: 6.391512e-04\n",
"numerical: -4.918906 analytic: -5.013323, relative error: 9.506102e-03\n",
"numerical: 68.583254 analytic: 68.590627, relative error: 5.374962e-05\n",
"numerical: 44.232408 analytic: 44.231204, relative error: 1.360857e-05\n",
"numerical: 43.772898 analytic: 43.763951, relative error: 1.022077e-04\n",
"numerical: -82.757823 analytic: -82.761912, relative error: 2.470062e-05\n"
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
]
}
],
"source": [
"def grad_check_sparse(f, x, analytic_grad, num_checks=10, h=1e-5):\n",
" \"\"\"\n",
" sample a few random elements and only return numerical values\n",
" in this dimensions.\n",
" - f : is the loss function which will be passed to grad_check_sparse \n",
" as a lambda function\n",
" - x : is the array containing the weight matrix\n",
" - num_checks : how many elements of the array are randomly sampled\n",
" \"\"\"\n",
"\n",
" for i in range(num_checks):\n",
" ix = tuple([np.random.randint(m) for m in x.shape])\n",
"\n",
" oldval = x[ix]\n",
" # increment by h\n",
" x[ix] = oldval + h \n",
" # evaluate f(x + h)\n",
" fxph = f(x)\n",
" # increment by h\n",
" x[ix] = oldval - h \n",
" # evaluate f(x - h)\n",
" fxmh = f(x) \n",
" # reset\n",
" x[ix] = oldval \n",
"\n",
" grad_numerical = (fxph - fxmh) / (2 * h)\n",
" grad_analytic = analytic_grad[ix]\n",
" rel_error = abs(grad_numerical - grad_analytic) / (abs(grad_numerical) + abs(grad_analytic))\n",
" print('numerical: %f analytic: %f, relative error: %e' % (grad_numerical, grad_analytic, rel_error))\n",
"\n",
"\n",
"\n",
"loss, grad = svm_loss_naive(W, X_dev, y_dev, 0.0)\n",
"f = lambda w: svm_loss_naive(w, X_dev, y_dev, 0.0)[0]\n",
"grad_numerical = grad_check_sparse(f, W, grad)\n",
"\n",
"# do the gradient check once again with regularization turned on\n",
"# you didn't forget the regularization gradient did you?\n",
"\n",
"loss, grad = svm_loss_naive(W, X_dev, y_dev, 1e2)\n",
"f = lambda w: svm_loss_naive(w, X_dev, y_dev, 1e2)[0]\n",
"grad_numerical = grad_check_sparse(f, W, grad)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## SVM Loss Function and Gradient (Vectorized)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We implement the function `svm_loss_vectorized`; we compute\n",
"the loss and the gradient by means of vectorized operations"
]
},
{
"cell_type": "code",
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
"metadata": {},
"outputs": [],
"source": [
"def svm_loss_vectorized(W, X, y, reg):\n",
" \"\"\"\n",
" Structured SVM loss function, vectorized implementation.\n",
"\n",
" Inputs and outputs are the same as svm_loss_naive.\n",
" Inputs have dimension D, there are C classes, and we operate on minibatches\n",
" of N examples.\n",
"\n",
" Inputs:\n",
" - W: A numpy array of shape (D, C) containing weights.\n",
" - X: A numpy array of shape (N, D) containing a minibatch of data.\n",
" - y: A numpy array of shape (N,) containing training labels; y[i] = c means\n",
" that X[i] has label c, where 0 <= c < C.\n",
" - reg: (float) regularization strength\n",
"\n",
" Returns a tuple of:\n",
" - loss as single float\n",
" - gradient with respect to weights W; an array of same shape as W\n",
" \"\"\"\n",
" loss = 0.0\n",
" delta = 1\n",
" # initialize the gradient as zero\n",
" dW = np.zeros(W.shape) \n",
" # compute the loss \n",
" num_train = X.shape[0]\n",
" scores = X.dot(W)\n",
" correct_class_score = scores[np.arange(num_train), y]\n",
" margin = scores - correct_class_score[:, np.newaxis] + delta\n",
" margin[np.arange(num_train), y] = 0\n",
" margin = np.where(margin > 0, margin, 0)\n",
" loss = np.sum(margin)/num_train\n",
" # regularization\n",
" loss += 0.5 * reg * np.sum(W * W) \n",
" \n",
" # Compute the gradient : fully vectorized version \n",
" mask = np.zeros(margin.shape)\n",
" # column maps to class, row maps to sample; a value v in X_mask[i, j]\n",
" # adds a row sample i to column class j with multiple of v\n",
" mask[margin > 0] = 1\n",
" # for each sample, find the total number of classes where margin > 0\n",
" incorrect_counts = np.sum(mask, axis=1)\n",
" mask[np.arange(num_train), y] = -incorrect_counts\n",
" dW = X.T.dot(mask)\n",
"\n",
" dW /= num_train # average out weights\n",
" dW += reg*W # regularize the weights\n",
" \n",
"\n",
" return loss, dW"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Check Correctness and Performance of Vectorized Gradient Computation"
]
},
{
"cell_type": "code",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Naive loss: 9.524765e+00 computed in 0.130793s\n",
"Vectorized loss: 9.524765e+00 computed in 0.003474s\n",
"Naive loss and gradient: computed in 0.089280s\n",
"Vectorized loss and gradient: computed in 0.003155s\n",
"2.39 ms ± 123 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n",
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
"difference: 0.000000\n"
]
}
],
"source": [
"import time\n",
"\n",
"tic = time.time()\n",
"loss_naive, _ = svm_loss_naive(W, X_dev, y_dev, 0.00001)\n",
"toc = time.time()\n",
"print('Naive loss: %e computed in %fs' % (loss_naive, toc - tic))\n",
"\n",
"\n",
"tic = time.time()\n",
"loss_vectorized, _ = svm_loss_vectorized(W, X_dev, y_dev, 0.00001)\n",
"toc = time.time()\n",
"print('Vectorized loss: %e computed in %fs' % (loss_vectorized, toc - tic))\n",
"\n",
"# The losses should match but your vectorized implementation should be much faster.\n",
"print('difference: %f' % (loss_naive - loss_vectorized))\n",
"\n",
"\n",
"# The naive implementation and the vectorized implementation should match, but\n",
"# the vectorized version should still be much faster.\n",
"tic = time.time()\n",
"_, grad_naive = svm_loss_naive(W, X_dev, y_dev, 0.00001)\n",
"toc = time.time()\n",
"print('Naive loss and gradient: computed in %fs' % (toc - tic))\n",
"\n",
"tic = time.time()\n",
"_, grad_vectorized = svm_loss_vectorized(W, X_dev, y_dev, 0.00001)\n",
"toc = time.time()\n",
"print('Vectorized loss and gradient: computed in %fs' % (toc - tic))\n",
"\n",
"# Alternative time measurement with ipython : use %timeit\n",
"%timeit svm_loss_vectorized(W, X_dev, y_dev, 0.00001)\n",
"\n",
"# The loss is a single number, so it is easy to compare the values computed\n",
"# by the two implementations. The gradient on the other hand is a matrix, so\n",
"# we use the Frobenius norm to compare them.\n",
"difference = np.linalg.norm(grad_naive - grad_vectorized, ord='fro')\n",
"print('difference: %f' % difference)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Linear Classifier with Stochastic Gradient Descent (SGD)"
]
},
{
"cell_type": "code",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"iteration 0 / 1500: loss 796.467133\n",
"iteration 100 / 1500: loss 288.813947\n",
"iteration 200 / 1500: loss 112.093123\n",
"iteration 300 / 1500: loss 47.003432\n",
"iteration 400 / 1500: loss 21.543203\n",
"iteration 500 / 1500: loss 15.474673\n",
"iteration 600 / 1500: loss 12.437557\n",
"iteration 700 / 1500: loss 10.859243\n",
"iteration 800 / 1500: loss 13.143675\n",
"iteration 900 / 1500: loss 12.065388\n",
"iteration 1000 / 1500: loss 11.266365\n",
"iteration 1100 / 1500: loss 9.517066\n",
"iteration 1200 / 1500: loss 11.927069\n",
"iteration 1300 / 1500: loss 11.840023\n",
"iteration 1400 / 1500: loss 10.438228\n",
"That took 4.530363s\n"
"image/png": "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\n",
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"training accuracy: 0.157653\n",
"validation accuracy: 0.158000\n"
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
]
}
],
"source": [
"\n",
"class LinearClassifier():\n",
"\n",
" def __init__(self):\n",
" self.W = None\n",
"\n",
" def train(self, X, y, learning_rate=1e-3, reg=1e-5, num_iters=100,\n",
" batch_size=200, verbose=False):\n",
" \"\"\"\n",
" Train this linear classifier using stochastic gradient descent.\n",
" Inputs:\n",
" - X: A numpy array of shape (N, D) containing training data; there are N\n",
" training samples each of dimension D.\n",
" - y: A numpy array of shape (N,) containing training labels; y[i] = c\n",
" means that X[i] has label 0 <= c < C for C classes.\n",
" - learning_rate: (float) learning rate for optimization.\n",
" - reg: (float) regularization strength.\n",
" - num_iters: (integer) number of steps to take when optimizing\n",
" - batch_size: (integer) number of training examples to use at each step.\n",
" - verbose: (boolean) If true, print progress during optimization.\n",
" Outputs:\n",
" A list containing the value of the loss function at each training iteration.\n",
" \"\"\"\n",
" num_train, dim = X.shape\n",
" # assume y takes values 0...K-1 where K is number of classes\n",
" num_classes = np.max(y) + 1 \n",
" if self.W is None:\n",
" # lazily initialize W\n",
" self.W = 0.001 * np.random.randn(dim, num_classes)\n",
"\n",
" # Run stochastic gradient descent to optimize W\n",
" loss_history = []\n",
" for it in range(num_iters):\n",
" X_batch = None\n",
" y_batch = None\n",
"\n",
" \n",
" # Sample batch_size elements from the training data and their \n",
" # corresponding labels to use in this round of gradient descent. \n",
" # Store the data in X_batch and their corresponding labels in \n",
" # y_batch; after sampling X_batch should have shape (dim, batch_size) \n",
" # and y_batch should have shape (batch_size,) \n",
" # \n",
" # Use np.random.choice to generate indices. Sampling with \n",
" # replacement is faster than sampling without replacement. \n",
" \n",
" sample_indices = np.random.choice(np.arange(num_train), batch_size)\n",
" X_batch = X[sample_indices]\n",
" y_batch = y[sample_indices]\n",
" \n",
"\n",
" # evaluate loss and gradient\n",
" loss, grad = self.loss(X_batch, y_batch, reg)\n",
" loss_history.append(loss)\n",
"\n",
" # perform parameter update\n",
" \n",
" # Update the weights using the gradient and the learning rate. \n",
" \n",
" self.W += -learning_rate * grad\n",
" \n",
"\n",
" if verbose and it % 100 == 0:\n",
" print('iteration %d / %d: loss %f' % (it, num_iters, loss))\n",
"\n",
" return loss_history\n",
"\n",
" def predict(self, X):\n",
" \"\"\"\n",
" Use the trained weights of this linear classifier to predict labels for\n",
" data points.\n",
" Inputs:\n",
" - X: D x N array of training data. Each column is a D-dimensional point.\n",
" Returns:\n",
" - y_pred: Predicted labels for the data in X. y_pred is a 1-dimensional\n",
" array of length N, and each element is an integer giving the predicted\n",
" class.\n",
" \"\"\"\n",
" y_pred = np.zeros(X.shape[1])\n",
" \n",
" # Implement this method. Store the predicted labels in y_pred. \n",
" \n",
" y_pred = np.argmax(X.dot(self.W), axis=1)\n",
"\n",
" return y_pred\n",
" \n",
" def loss(self, X_batch, y_batch, reg):\n",
" \"\"\"\n",
" Compute the loss function and its derivative. \n",
" Subclasses (child class) will override this.\n",
" Inputs:\n",
" - X_batch: A numpy array of shape (N, D) containing a minibatch of N\n",
" data points; each point has dimension D.\n",
" - y_batch: A numpy array of shape (N,) containing labels for the minibatch.\n",
" - reg: (float) regularization strength.\n",
" Returns: A tuple containing:\n",
" - loss as a single float\n",
" - gradient with respect to self.W; an array of the same shape as W\n",
" \"\"\"\n",
" pass\n",
"\n",
"class LinearSVM(LinearClassifier):\n",
" \"\"\" A subclass (child class) that uses the Multiclass SVM loss function \n",
" The function loss of the parent class LinearClassifier will be \n",
" overwritten by the following loss function.\n",
" \"\"\"\n",
"\n",
" def loss(self, X_batch, y_batch, reg):\n",
" return svm_loss_vectorized(self.W, X_batch, y_batch, reg)\n",
"\n",
"\n",
"\n",
"\n",
"svm = LinearSVM()\n",
"tic = time.time()\n",
"loss_hist = svm.train(X_train, y_train, learning_rate=1e-7, reg=5e4,\n",
" num_iters=1500, verbose=True)\n",
"toc = time.time()\n",
"print('That took %fs' % (toc - tic))\n",
"\n",
"\n",
"# A useful debugging strategy is to plot the loss as a function of\n",
"# iteration number:\n",
"plt.plot(loss_hist)\n",
"plt.xlabel('Iteration number')\n",
"plt.ylabel('Loss value')\n",
"plt.show()\n",
"\n",
"\n",
"# Evaluate the performance on both the\n",
"# training and validation set\n",
"y_train_pred = svm.predict(X_train)\n",
"print('training accuracy: %f' % (np.mean(y_train == y_train_pred), ))\n",
"y_val_pred = svm.predict(X_val)\n",
"print('validation accuracy: %f' % (np.mean(y_val == y_val_pred), ))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Tune the Hyperparameters Learning Rate and Regularization Strength"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Use the validation set to tune hyperparameters (regularization strength and\n",
"learning rate). You should experiment with different ranges for the learning\n",
"rates and regularization strengths; if you are careful you should be able to\n",
"get a classification accuracy of about 0.4 on the validation set.\n",
"learning_rates = [1e-7, 5e-5]\n",
"regularization_strengths = [5e4, 1e5]"
]
},
{
"cell_type": "code",
"metadata": {},
"outputs": [],
"source": [
"learning_rates = np.logspace(-5, 0, 40) \n",
"# causes numeric issues: np.logspace(-5, 5, 8) #[-4, -3, -2, -1, 1, 2, 3, 4, 5, 6]\n",
"regularization_strengths = np.logspace(-5, 2, 40) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`results` is dictionary mapping tuples of the form\n",
"(`learning_rate`, `regularization_strength`) to tuples of the form\n",
"(training_accuracy, validation_accuracy). The accuracy is simply the fraction\n",
"of data points that are correctly classified."
]
},
{
"cell_type": "code",
"metadata": {},
"outputs": [],
"source": [
"results = {}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The highest validation accuracy that we have seen so far."
]
},
{
"cell_type": "code",
"metadata": {},
"outputs": [],
"source": [
"best_val = -1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The LinearSVM object that achieved the highest validation rate. "
]
},
{
"cell_type": "code",
"metadata": {},
"outputs": [],
"source": [
"best_svm = None"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The corresponding learning rates and regularization strengths"
]
},
{
"cell_type": "code",
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
"metadata": {},
"outputs": [],
"source": [
"best_l = np.min(learning_rates)\n",
"best_r = np.min(regularization_strengths)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Code that chooses the best hyperparameters by tuning on the validation \n",
"set. For each combination of hyperparameters, we train a linear SVM on the \n",
"training set, compute its accuracy on the training and validation sets, and \n",
"store these numbers in the results dictionary. In addition, we store the best \n",
"validation accuracy in `best_val` and the LinearSVM object that achieves this \n",
"accuracy in `best_svm`. \n",
" \n",
"Hint: You should use a small value for `num_iters` as you develop your \n",
"validation code so that the SVMs don't take much time to train; once you are \n",
"confident that your validation code works, you should rerun the validation \n",
"code with a larger value for `num_iters`. "
]
},
{
"cell_type": "code",
"source": [
"for l in learning_rates:\n",
" for r in regularization_strengths:\n",
" svm = LinearSVM()\n",
" svm.train(X_train, y_train, learning_rate=l, reg=r, num_iters=1500, batch_size=200)\n",
" y_train_pred = svm.predict(X_train)\n",
" y_val_pred = svm.predict(X_val)\n",
" training_accuracy = np.mean(y_train == y_train_pred)\n",
" validation_accuracy = np.mean(y_val == y_val_pred)\n",
" results[(l, r)] = (training_accuracy, validation_accuracy)\n",
" if validation_accuracy > best_val:\n",
" best_val = validation_accuracy\n",
" best_svm = svm\n",
" best_l = l\n",
" best_r = r"
]
},
{
"cell_type": "code",
"source": [
"# Print out results.\n",
"for lr, reg in sorted(results):\n",
" train_accuracy, val_accuracy = results[(lr, reg)]\n",
" print('lr %e reg %e train accuracy: %f val accuracy: %f' % (lr, reg, train_accuracy, val_accuracy))\n",
" \n",
"print('best validation accuracy achieved during cross-validation: %f' % best_val)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Visualize the cross-validation results"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Plot training accuracy"
]
},
{
"cell_type": "code",
"source": [
"import math\n",
"x_scatter = [math.log10(x[0]) for x in results]\n",
"y_scatter = [math.log10(x[1]) for x in results]\n",
"\n",
"marker_size = 100 # default size of markers is 20\n",
"colors = [results[x][0] for x in results]\n",
"plt.subplot(2, 1, 1)\n",
"plt.scatter(x_scatter, y_scatter, marker_size, c=colors)\n",
"plt.colorbar()\n",
"plt.xlabel('log learning rate')\n",
"plt.ylabel('log regularization strength')\n",
"plt.title('CIFAR-10 training accuracy')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Plot validation accuracy"
]
},
{
"cell_type": "code",
"source": [
"colors = [results[x][1] for x in results] \n",
"plt.subplot(2, 1, 2)\n",
"plt.scatter(x_scatter, y_scatter, marker_size, c=colors)\n",
"plt.colorbar()\n",
"plt.xlabel('log learning rate')\n",
"plt.ylabel('log regularization strength')\n",
"plt.title('CIFAR-10 validation accuracy')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Evaluate the best svm on test set"
]
},
{
"cell_type": "code",
"source": [
"y_test_pred = best_svm.predict(X_test)\n",
"test_accuracy = np.mean(y_test == y_test_pred)\n",
"print('linear SVM on raw pixels final test set accuracy: %f' % test_accuracy)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Rerun the training with larger value of num_iters"
]
},
{
"cell_type": "code",
"metadata": {},
"outputs": [],
"source": [
"svm = LinearSVM()\n",
"svm.train(X_train, y_train, learning_rate=best_l, reg=best_r, num_iters=3000, batch_size=200)\n",
"y_train_pred = svm.predict(X_train)\n",
"y_val_pred = svm.predict(X_val)\n",
"training_accuracy = np.mean(y_train == y_train_pred)\n",
"validation_accuracy = np.mean(y_val == y_val_pred)\n",
"if validation_accuracy > best_val:\n",
" best_svm = svm"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Evaluate the new best svm on test set\n"
]
},
{
"cell_type": "code",
"source": [
"y_test_pred = best_svm.predict(X_test)\n",
"test_accuracy = np.mean(y_test == y_test_pred)\n",
"print('linear SVM on raw pixels final test set accuracy: %f' % test_accuracy)"
]
},
{