What Is a Convolutional Neural Network?
Machine learning and neural networks are crucial to our lives and the technology we use every day. But artificial intelligence and deep learning go beyond traditional neural networks, and if you’re interested in a career involving machine learning, it’s vital to understand all the facets that can be involved.
That’s where convolutional neural networks come in. Sometimes called ConvNets or CNNs, convolutional neural networks are a class of deep neural networks used in deep learning and machine learning. Convolutional neural networks are usually used for visual imagery, helping the computer identify and learn from images. They give the computer vision to help it see an input image, classify it, see patterns, and overall learn from it.
These networks are inspired by biological processes—as humans we begin using our eyes to identify objects from the time we are born. But computers don’t have this—when they see an image they see numbers. So CNNs help a computer have “human” eyes, giving them computer vision, and allowing it to take in all of the pixels and numbers it sees aiding in image recognition and image classification. The use activation functions to create a feature map, helping the computer understand what it is seeing. The feature map is passed from layer to layer, helping the computer gain more information each time until it is able to see the whole picture.
For example, as humans we can easily distinguish the difference between a cat and a dog. But a computer doesn’t see things, it learns about an image from its characteristics. Trying to tell a computer to look for four paws or fur can be confusing—both cats and dogs have these features. So neural networks are used to detect as many characteristics as possible in order to help the computer classify an image. We tell the computer to look for edges, lines, all represented by pixel numbers. The computer is then able to combine all of the things it finds, look for patterns, and classify the image as either a cat or a dog. While this may seem like a lot of work, and it is, computers can do this incredibly quickly, making them more efficient than humans for image identification. These neural networks are also getting smarter and more sophisticated, with error rates going down every day. The error rate for this neural network is actually extremely important—in order for it to be effective we need to have low error rates that can justify not having humans do the classification manually. Because these neural networks can learn, they are also able to learn from their mistakes and improve, helping error rates get lower every time.
Convolutional neural networks get their name from a mathematical operation called convolution. This is a specialized kind of linear operation, and CNNs use this mathematical operation instead of matrix multiplication in at least one of the layers. This is what separates ConvNets from other neural networks in deep learning.
A convolutional neural network layer has to have these elements:
-
Convolutional kernels (filters) that are defined by width and height. These kernels go over the image, one unit or pixel at a time, to get the pixel value so it can be added to the matrix.
-
Input channels and output channels and input volumes and output volumes. These input and output channels are where the feature maps go in and out of the different layers. This helps the information that the neural network has learned be passed on to the next layer where more matrix and analysis can be done.
-
The depth of the convolution filter needs to be equal to the number of channels of the input feature map. This means that however many times a filter is applied to an image, that is how deep the end result feature map should be. This is because each time a filter passes over the image or feature map, a new layer is added.
While it may seem a bit complex, convolutional neural networks are fascinating and are extremely valuable in different technology fields. There is quite a bit of complicated math involved in these neural networks, so better understanding of them can be achieved by learning more about linear algebra and how it functions. If you find this information interesting, a degree in IT and eventual career in machine learning may be an ideal fit for you.
In this guide you’ll learn the basics of CNNs, but if you are interested in learning more, a degree program may be the best way to continue your learning.