The LeNet model itself is quite simple, just 5 layers. Yet it performs impressively well on the MNIST dataset. We can get around 98% accuracy with just 20 iterations of training with ease.
The training time for the model is also quite low. I tested on my MSI GE60 2PF Apache Pro laptop with CUDA enabled, and the training time was just 2 minutes 20 seconds on average. On CPU only (with CUDA disabled) it took around 30 minutes.
LeNet giving 98% accuracy on MNIST data |
It even classifies a quite deformed '2' correctly.
LeNet correctly classifying a deformed digit |
Rarely, it will classify a digit incorrectly, such as seen below,
A rare mis-classification |
With this amount of accuracy, LeNet - one of the smallest convolutional neural network models - shows the power of Deep Learning algorithms.
So, I was wondering how LeNet would perform with a more complex task - Face Recognition, using raw pixel intensities of face images.
I built a training set of 10 faces, with ~500 images each for training. Used the same LeNet model, only adjusting the input shape to accommodate the size of the training images of my training set. Following is the result,
LeNet giving a 99% accuracy on Face Recognition |
It turns out the simple model of LeNet can be used for much more.
I will dive into the code I used to get LeNet to work on face recognition in my next post.
Update: I've added a new post - Getting the LeNet model working with Face Recognition - describing the step-by-step code I used to get LeNet working with Face Recognition.
Related links:
http://www.pyimagesearch.com/2016/08/01/lenet-convolutional-neural-network-in-python/
Build Deeper: Deep Learning Beginners' Guide is the ultimate guide for anyone taking their first step into Deep Learning.
Get your copy now!
No comments:
Post a Comment