0% found this document useful (0 votes)
199 views16 pages

What Is Convolutional Neural Network

A Convolutional Neural Network (CNN) is a type of deep learning algorithm used for tasks like image classification, detection, and segmentation. CNNs have a hierarchical structure with convolutional layers that apply filters to extract patterns from data. They also use pooling layers to reduce dimensionality and fully connected layers to perform classification. CNNs are inspired by the visual cortex and use techniques like convolution operations, shared weights, and pooling to achieve translation invariance. Regularization methods like dropout and data augmentation help reduce overfitting in CNNs.

Uploaded by

ahmedliet143
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
199 views16 pages

What Is Convolutional Neural Network

A Convolutional Neural Network (CNN) is a type of deep learning algorithm used for tasks like image classification, detection, and segmentation. CNNs have a hierarchical structure with convolutional layers that apply filters to extract patterns from data. They also use pooling layers to reduce dimensionality and fully connected layers to perform classification. CNNs are inspired by the visual cortex and use techniques like convolution operations, shared weights, and pooling to achieve translation invariance. Regularization methods like dropout and data augmentation help reduce overfitting in CNNs.

Uploaded by

ahmedliet143
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

WHAT IS ?

Convolutional
Neural Networks

Deep Learning
What is a Convolutional Neural Network (CNN)?

A Convolutional Neural Network (CNN), also known as ConvNet, is a


specialized type of deep learning algorithm mainly designed for tasks
that necessitate object recognition.

It includes image classification, detection, and segmentation.

CNNs are employed in a variety of practical scenarios, such as


autonomous vehicles, security camera systems, and others.

Why CNN is important ?


CNNs are distinguished from classic machine learning algorithms
such as SVMs and decision trees by their ability to autonomously
extract features at a large scale, bypassing the need for manual
feature engineering and thereby enhancing efficiency.

The convolutional layers grant CNNs their translation-invariant


characteristics, empowering them to identify and extract
patterns and features from data irrespective of variations in
position, orientation, scale, or translation.

linkedin.com/in/ileonjose
Beyond image classification tasks, CNNs are versatile and can be
applied to a range of other domains, such as natural language
processing, time series analysis, and speech recognition.

Parallels With The Human Visual System


Convolutional neural networks were inspired by the layered
architecture of the human visual cortex, and below are some key
similarities and differences:
llustration of the correspondence between the areas associated with
the primary visual cortex and the layers in a convolutional neural
network

Hierarchical architecture: Both CNNs and the visual cortex have a


hierarchical structure, with simple features extracted in early
layers and more complex features built up in deeper layers. This
allows increasingly sophisticated representations of visual inputs.

Local connectivity: Neurons in the visual cortex only connect to a


local region of the input, not the entire visual field. Similarly, the
neurons in a CNN layer are only connected to a local region of the
input volume through the convolution operation. This local
connectivity enables efficiency.

Translation invariance: Visual cortex neurons can detect features


regardless of their location in the visual field. Pooling layers in a
CNN provide a degree of translation invariance by summarizing
local features.

Multiple feature maps: At each stage of visual processing, there


are many different feature maps extracted. CNNs mimic this
through multiple filter maps in each convolution layer.

Non-linearity: Neurons in the visual cortex exhibit non-linear


response properties. CNNs achieve non-linearity through
activation functions like ReLU applied after each convolution.
Key Components of a CNN

The convolutional neural network is made of four main parts.


But how do CNNs Learn with those parts?
They help the CNNs mimic how the human brain operates to
recognize patterns and features in images:

Convolutional layers
Rectified Linear Unit (ReLU for short)
Pooling layers
Fully connected layers

This section dives into the definition of each one of these


components through the example of the following example of
classification of a handwritten digit.
Convolution layers
This is the first building block of a CNN. As the name suggests, the
main mathematical task performed is called convolution, which is the
application of a sliding window function to a matrix of pixels
representing an image. The sliding function applied to the matrix is
called kernel or filter, and both can be used interchangeably.

In the convolution layer, several filters of equal size are applied, and
each filter is used to recognize a specific pattern from the image,
such as the curving of the digits, the edges, the whole shape of the
digits, and more.

Put simply, in the convolution layer, we use small grids (called filters
or kernels) that move over the image. Each small grid is like a mini
magnifying glass that looks for specific patterns in the photo, like
lines, curves, or shapes. As it moves across the photo, it creates a
new grid that highlights where it found these patterns.

For example, one filter might be good at finding straight lines,


another might find curves, and so on. By using several different
filters, the CNN can get a good idea of all the different patterns that
make up the image.

Let’s consider this 32x32 grayscale image of a handwritten digit. The


values in the matrix are given for illustration purposes.
Also, let’s consider the kernel used for the convolution. It is a matrix
with a dimension of 3x3. The weights of each element of the kernel is
represented in the grid. Zero weights are represented in the black
grids and ones in the white grid.

Do we have to manually find these weights?

In real life, the weights of the kernels are determined during the
training process of the neural network.

Using these two matrices, we can perform the convolution operation


by applying the dot product, and work as follows:
1. Apply the kernel matrix from the top-left corner to the right.
2. Perform element-wise multiplication.
3. Sum the values of the products.
4. The resulting value corresponds to the first value (top-left
corner) in the convoluted matrix.
5. Move the kernel down with respect to the size of the sliding
window.
6. Repeat steps 1 to 5 until the image matrix is fully covered.

The dimension of the convoluted matrix depends on the size of the


sliding window. The higher the sliding window, the smaller the
dimension.
Another name associated with the kernel in the literature is feature
detector because the weights can be fine-tuned to detect specific
features in the input image.

For instance:

Averaging neighboring pixels kernel can be used to blur the input


image.
Subtracting neighboring kernel is used to perform edge
detection.

The more convolution layers the network has, the better the layer is
at detecting more abstract features.

Activation function
A ReLU activation function is applied after each convolution
operation. This function helps the network learn non-linear
relationships between the features in the image, hence making the
network more robust for identifying different patterns. It also helps
to mitigate the vanishing gradient problems.

linkedin.com/in/ileonjose
Pooling layer
The goal of the pooling layer is to pull the most significant features
from the convoluted matrix. This is done by applying some
aggregation operations, which reduce the dimension of the feature
map (convoluted matrix), hence reducing the memory used while
training the network. Pooling is also relevant for mitigating
overfitting.

The most common aggregation functions that can be applied are:

Max pooling, which is the maximum value of the feature map


Sum pooling corresponds to the sum of all the values of the
feature map
Average pooling is the average of all the values.

Below is an illustration of each of the previous example:


Fully connected layers
These layers are in the last layer of the convolutional neural network,
and their inputs correspond to the flattened one-dimensional matrix
generated by the last pooling layer. ReLU activations functions are
applied to them for non-linearity.

Finally, a softmax prediction layer is used to generate probability


values for each of the possible output labels, and the final label
predicted is the one with the highest probability score.

Overfitting and Regularization in CNNs


Overfitting is a common challenge in machine learning models and
CNN deep learning projects. It happens when the model learns the
training data too well (“learning by heart”), including its noise and
outliers. Such a learning leads to a model that performs well on the
training data but badly on new, unseen data.

This can be observed when the performance on training data is too


low compared to the performance on validation or testing data, and
a graphical illustration is given below:
Deep learning models, especially Convolutional Neural Networks
(CNNs), are particularly susceptible to overfitting due to their
capacity for high complexity and their ability to learn detailed
patterns in large-scale data.

Several regularization techniques can be applied to mitigate


overfitting in CNNs, and some are illustrated below:

linkedin.com/in/ileonjose
Dropout: This consists of randomly dropping some neurons
during the training process, which forces the remaining neurons
to learn new features from the input data.

Batch normalization: The overfitting is reduced at some extent by


normalizing the input layer by adjusting and scaling the
activations. This approach is also used to speed up and stabilize
the training process.
Pooling Layers: This can be used to reduce the spatial dimensions
of the input image to provide the model with an abstracted form
of representation, hence reducing the chance of overfitting.

Early stopping: This consists of consistently monitoring the


model’s performance on validation data during the training
process and stopping the training whenever the validation error
does not improve anymore.

Noise injection: This process consists of adding noise to the


inputs or the outputs of hidden layers during the training to make
the model more robust and prevent it from a weak generalization.

L1 and L2 normalizations: Both L1 and L2 are used to add a


penalty to the loss function based on the size of weights. More
specifically, L1 encourages the weights to be spare, leading to
better feature selection. On the other hand, L2 (also called weight
decay) encourages the weights to be small, preventing them from
having too much influence on the predictions.

Data augmentation: This is the process of artificially increasing


the size and diversity of the training dataset by applying random
transformations like rotation, scaling, flipping, or cropping to the
input images.
Practical Applications of CNNs
Convolutional Neural Networks have revolutionized the field of
computer vision, leading to significant advancements in many real-
world applications. Below are a few examples of how they are
applied.
If you find this helpful, Repost

Follow for Data Science content

linkedin.com/in/ileonjose

You might also like