What is a Convolutional Neural Network?
A convolutional neural network, or CNN, is a subset of deep learning and neural networks most commonly used to analyze visual imagery. Compared to other image classification algorithms, convolutional neural networks use minimal preprocessing, meaning the network learns the filters that typically are hand-engineered in other systems. Because CNNs operate with such independence from human effort, they offer many advantages over alternative algorithms.
How does a Convolutional Neural Network function?
CNNs process images as volumes, receiving a color image as a rectangular box where the width and height are measure by the number of pixels associated with each dimension, and the depth is three layers deep for each color (RGB). These layers are called channels. Within each pixel of the image, the intensity of the R, G, or B is expressed by a number. That number is part of three, stacked two-dimensional matrices that make up the image volume and form the initial data that is fed to into the convolutional network. The network then begins to filter the image by grouping squares of pixels together and looking for patterns, performing what is known as a convolution. This process of pattern analysis is the foundation of CNN functions.
Image credit to Andrej Karpathy
Applications of Convolutional Neural Networks
Convolutional neural networks are a useful resource for other applications outside of machine learning and artificial intelligence. As a powerful tool for image and data analysis, CNNs are used in situations ranging from image recognition, to drug discovery.
Convolutional Neural Networks and Machine Learning
Image credit to Shaoqing Ren, Kaiming He, Ross Girshick, Jian Sun, Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks, arXiv:1506.01497.
CNNs and GPUs
Because CNNs are adept at decoding visual imagery, they have proven useful in text analysis. The power of CNNs make natural-language processing possible on analog or handwritten documents, where the images are symbols that need transcription. This function of CNNs is known as optical character recognition, or OCR in short.
As image recognition is a common use for CNNs, facial recognition is a frequent application. As recently as 2015, CNNs have demonstrated the ability to recognize faces from a wide variety of angles, even with limited visibility. The best alternative algorithms struggle with recognizing figures in an image that may be small and thin, but CNNs can handle the task.