What's a good accuracy on the last part of assignment 2?
IIRC in lecture, Andrej said his inefficient for-loop implementation got 80% accuracy overnight, so I'm wondering what accuracy I should be aiming for.
Currently, I'm only matching the 80%(7conv+1fc).
Validation set accuracy: 0.811
Test set accuracy: 0.799
I was also thinking of building an ensemble, but I'd like to know what accuracy to gun for on the base models.
Posted Jul 3, 2016, 2:03 PM UTC
16
If you are curious you can check out the scores that various models get for CIFAR-10. A test time accuracy of 80% is very good start for a model (although it depends on the number of filters, size of the filters and various other hyper-parameters - for example changing how much the learning rate decays can provide a significant increase in test accuracy after a few more epochs.).
Couple of tips:
Thanks for the feedback. Fixed a major bug with my Xavier init, and accuracy shot up 4%, which was nice.
It was mentioned in the lecture that dropout may not be as critical if batch norm is used. So, I was hesitant to do it. Good idea though, I should test it instead of making assumptions.
I tried doing a strategy of dropping the learning rate if the accuracy was plateauing. I think my implementation is too simplistic though, so I should probably work on that.
I only train on my cpu, but after looking at the links, it looks like I should be able to hit 90% before doing anything with ensembles. Should be interesting.
In addition you can also do some data augmentation - which can often help improve things. This can include:
Finally if you do decide to train an ensemble consider doing transfer learning can improve how quickly you can build new models (but be careful, because it can cause features to be identical between models and thus trying to improve inference by using an ensemble will not generate a better model).
If you look at the tensorflow model, it achieves 86% test time accuracy (after 256 epochs) with a shallow model.
EDIT: reworked a sentence.
Thanks, I think I need to pursue some of those data augmentation techniques, because I'm starting to get super high accuracy on the training data, and l2 regularization doesn't seem to bring up the validation accuracy that much when I crank it up.
i.e. (Epoch 17 / 20) train acc: 0.985000; val_acc: 0.845000
The data augmentation could help address some of the overfitting I've been getting.