# Convolutional Neural Networks

## What is a Convolutional Neural Network?

Convolutional Neural Networks are Deep Learning algorithms that can take in a picture, assign importance (learnable weights and biases) to various aspects/objects within the image, and then distinguish them. In contrast to other classification algorithms, a ConvNet requires much less pre-processing.

## Why is a Convolutional Neural Network Important

Consider the examples below to better understand the important role of a convolution neural network.

### Weight sharing

It uses local spatial coherence that provides the same weights to some of the edges. This sharing reduces the cost of computing. In situations where GPUs are low-power or not available, such sharing is particularly useful.

### 2. Memory Saving

The reduced number of parameters helps in memory saving. To recognize digits from the MNIST dataset, if we use a Convolutional neural network with just one hidden layer and ten nodes, we'd need a few hundred nodes. If we use a simple deep neural network, we would need a simple deep neural network with around 19,000 parameters.

### 3. Independent of local variations in Image

Let's consider using headshot images of people to train our fully connected neural network to recognize faces. It may fail to recognize a full-body image if we test it on images that are not headshot images. But, since the convolutional neural network uses convolution operation, they are independent of local variations in the picture, making it more useful.

### 4. Independent of Transformations

Convolutional neural networks are more independent of geometrical transformations like Scaling, Rotation, etc.

## What is an example of a Convolutional Neural Network?

Examples of convolutional neural networks in computer vision are face recognition and image classification.

## Convolutional Neural Network vs. Other Technologies & Methodologies

### Convolutional neural network vs. neural network

Traditional Artificial Neural Networks (ANN) and Convolutional Neural Network (CNN) differ in that only the last layer of a CNN is fully connected. In contrast, in ANN, each neuron is connected to every other neuron.

### Convolutional neural network vs. fully connected

In Convolutional Neural Network (CNN) architectures, inputs are explicitly assumed to be images, which permits the encoding of specific properties into the model architecture. Fully connected neural networks consist of fully connected layers that connect each neuron in one layer to every neuron in the other layer.

### Convolutional neural network vs. feedforward

Convolutional Neural Network (CNN) uses several layers of sparsely connected neurons for processing information (usually visual), whereas, in a feedforward network, there are no cycles.

### Convolutional neural network vs. deep neural network

The only difference between Convolutional Neural Network and Deep Convolutional Neural Network is the number of layers. Deep learning models are called deeper when they have more layers. Deep Convolutional Neural Network is a Convolutional Neural Network with more layers. There are usually 5–10 layers in a regular Convolutional Neural Network, while most modern Convolutional Neural Network architectures have 30–100 layers.

## H2O AI Cloud and Convolutional Neural Network

Although Convolutional Neural Network (CNN) models are primarily used on image-level machine learning tasks, their use case on representing text as information has proven to be quite efficient and faster compared to RNN models. In Driverless AI, we pass word embeddings as input to CNN models, which return cross-validated predictions that can be used as a new set of features.