|
Convolution Neural Network (CNN)
|
|
Convolution Neural Networks are used extensively
in image processing, classification, pattern
detection/recognition and similar applications.
CNN is a feed-forward neural
network where neuron in one layer is connected
to neuron in the next layer. This configuration
forms a fully connected network. A
neural network consists of input layer, several
hidden layers and output layer. In CNN, the
hidden layers are configured as
filters or kernels. Each filter
consisting of a part of the image (e.g [3 x 3]
matrix) processes the image block by block and
compute the weights. The activation function
(
sigmoid function)
computes the output and recognizes the input
image.
|
| |
|
| |
|
Convolution - Mathematical Definition
|
| The mathematical definition of convolution from
Wolfram MathWorld
[21]
is -
A convolution is an integral that expresses the amount
of overlap of one function g as it is shifted over another
function f. It therefore "blends" one function with
another
.
|
| |
|
Convolution Formulation
|
|
| |
|
Convolution theorem in mathematics and physics defines a
way to transform time-domain signal to frequency-domain
signal. Convolution theorem is defined as
The Fourier
transform of a convolution is the product of the
Fourier transforms.
Using Fourier transforms, frequency domain can be made
to perform faster than time domain. Thus Fourier
transforms are used in
GPU
implementation.
|
| |
| |
|
Analysis of the letter 7 image in CNN
|
|
| |
|
In the simple analysis of the letter 7 in the
above image, we use two [3 x 3] filters to
process the image. Using CNN, the two [3 x 3]
filters process the image block by block across
the whole image. When a
match is detected, the weights computed have a
higher value than where is no match. The weight
computation is vector dot product of the
filter/kernel and layer's input matrix.
|
| |
|
Simplified filters (kernels) used to process the image of letter 7
|
|
| |
|
|
Source:
Mathworks CNN
|
| |
|
Images will have complex shapes, edges, color
patterns etc. that require deep learning
techniques. The matrix sizes can be very
large in real-time image processing and
require extreme computing power to process
images accurately.
|