In this step-by-step Keras tutorial, you’ll learn how to build a convolutional neural network in Python!
In fact, we’ll be training a classifier for handwritten digits that boasts over 99% accuracy on the famous MNIST dataset.
Before we begin, we should note that this guide is geared toward beginners who are interested in applied deep learning.
Our goal is to introduce you to one of the most popular and powerful libraries for building neural networks in Python. That means we’ll brush over much of the theory and math, but we’ll also point you to great resources for learning those.
Before we start...
The recommended prerequisites for this guide are:
Understanding of essential machine learning concepts
Python programming skills
To move quickly, we'll assume you have this background.
Keras is our recommended library for deep learning in Python, especially for beginners. Its minimalistic, modular approach makes it a breeze to get deep neural networks up and running. You can read more about it here:
The Keras library for deep learning in Python
WTF is Deep Learning?
Deep learning refers to neural networks with multiple hidden layers that can learn increasingly abstract representations of the input data. This is obviously an oversimplification, but it's a practical definition for us right now.
For example, deep learning has led to major advances in computer vision. We're now able to classify images, find objects in them, and even label them with captions. To do so, deep neural networks with many hidden layers can sequentially learn more complex features from the raw input image:
The first hidden layers might only learn local edge patterns.
Then, each subsequent layer (or filter) learns more complex representations.
Finally, the last layer can classify the image as a cat or kangaroo.
These types of deep neural networks are called Convolutional Neural Networks.