Uploaded by Shubham Khatarkar

IMAGE CLASSIFICATION (1)

advertisement
1
2
Acknowledgements
It was an excellent opportunity for me to work and research on a topic that seemed to be
taking the future world to solve the problems. The research process helped me realize
how deep learning has evolved in past decades by solving and simplifying the
complexities . Hence, I am thankful to everyone who was associated with me through the
whole process and guided me throughout, be it directly or indirectly. I want to extend my
gratitude especially to my seminar guide Prof. Suman Deb, Assistant Professor,
Electronics Engineering Department, Sardar Vallabhbhai National Institute of
Technology, who acted as a backbone for me and helped me wherever I got stuck in the
whole flow. Without his constant support and mentorship, I would not have been able to
select and complete an exciting project like this. Also, I am thankful to my friends for
helping me out in understanding different technology stacks.
3
ABSTRACT
Multiclass Image Classification Using Deep Learning
Neural network, as a fundamental classification algorithm, is widely used in many
image classification issues. With the rapid development of high performance computing
device and parallel computing devices, convolutional neural network also draws
increasingly more attention from many researchers in this area
The term Deep Learning or Deep Neural Network refers to Artificial Neural Networks
(ANN) with multi layers. Over the last few decades, it has been considered to be one of
the most powerful tools, and has become very popular in the literature as it is able to
handle a huge amount of data. The interest in having deeper hidden layers has recently
begun to surpass classical methods performance in different fields; especially in pattern
recognition. One of the most popular deep neural networks is the Convolutional Neural
Network (CNN). It take this name from mathematical linear operation between matrixes
called convolution. CNN have multiple layers; including convolutional layer, nonlinearity layer, pooling layer and fully-connected layer. The convolutional and fullyconnected layers have parameters but pooling and non-linearity layers don't have
parameters. The CNN has an excellent performance in machine learning problems.
Specially the applications that deal with image data, such as largest image classification
data set (Image Net), computer vision, and in natural language processing (NLP) and
the results achieved were very amazing
4
Table of Contents
Table of Contents
Acknowledgements .......................................................................................................... 3
Table of Contents ............................................................................................................. 5
List of Figures .................................................................................................................. 6
CHAPTER 1 .................................................................................................................... 7
INTRODUCTION ............................................................................................................ 7
Overview… ............................................................................................................ 8
Motivation ...............................................................................................................8
Applications............................................................................................................ 8
CHAPTER 2 .................................................................................................................... 9
VGGNet ................................................................................................................ 11
GoogLeNet ............................................................................................................ 12
ResNet ................................................................................................................... 13
CHAPTER 3 .................................................................................................................. 14
3.1 Deep Learning ............................................................................................. 14
Chapter 4........................................................................................................................ 19
CONVOLUTION NEURAL NETWORK ............................................................. 19
Terms Related to Convolution NeuralNetwork Explaination .................................. 21
Convolution ........................................................................................................... 24
Stride ...........................................................................................................24
Padding. ...................................................................................................... 25
Pooling........................................................................................................ 27
Fully-Connected Layer ................................................................................ 28
CHAPTER 5................................................................................................................ 29
5.2 Trained Model Output ........................................................................................... 30
CHAPTER-6 ..................................................................................................................... 33
Conclusion .............................................................................................................. 33
Future Scope............................................................................................................. 33
Refrences ................................................................................................................. 34
5
List of Figures
LeNET Architecture ..................................................................................................... 9
AlexNET Architecture ................................................................................................ 10
VggNET Architecture ................................................................................................ 11
GoogleNET Architecture ............................................................................................ 12
RESNET .................................................................................................................... 13
AI vs ML vs DL. Machine Learning is a subset of Artificial Intelligence and Deep
Learning Is subset of Machine Learning… ............................................................. 14
Simple Neural Network diagram to show how different layers are connected…..........15
How Implementation of Machine Learning is different from Deep Learning…........... 16
How Performance changes when we increase amount of data input ........................... 17
Image of a dog for understanding how human brain recognize things ....................... 18
Image of a complete Convolution Neural Network ................................................... 19
Convolution Operation Mathematically how it works ................................................22
Diff filters used for convolution and its output..........................................................23
Showing What exactly is Stride feature with help of a diagram................................. 24
Diagrammatically showing how padding is used in convolution operation ............... 25
Graph Of different Activation method and their comparison .................................... 26
Figure to illustrate Pooling operation ....................................................................... 27
Figure to illustrate Max Pooling operation ............................................................... 28
figure for showing the fully connected layer used in CNN process........................... 29
In this a glacier Image was given as input and model predicted it correctly .............. 33
In this a Building Image was given as input and model predicted it correctly ........... 34
In this a Sea Image was given as input and model predicted it correctly ................... 34
6
CHAPTER 1
INTRODUCTION
Overview
The term image processing refers to the use of computers to alter digital images. It's a
broad topic that encompasses mathematically complex processes. Certain essential
operations, such as image categorization, image restoration/rectification, and image
compression, are all part of image processing.
Image enhancement, image fusion, and other similar techniques are available. Image
categorization is an important part of the process. Processing of images
The purpose of image classification is to assign photographs to categories
automatically. Lessons with a theme There are two types of classifications: supervised
classification and unsupervised classification.
To deal with a limited amount of samples and computational units, traditional machine
learning algorithms (such as multilayer perception machines, support vector machines,
and so on) usually use shallow structures. The performance and generalization capabilities
of complex classification problems are clearly insufficient when the target objects have
rich meanings. Because it is good at dealing with picture classification and recognition
difficulties and has improved the accuracy of many machine learning tasks, the
convolution neural network (CNN) created in recent years has been widely used in the
field of image processing. It's evolved into a powerful and widely used deep learning
mode.
Motivation
Medical imaging, item recognition in satellite images, traffic management systems, brake
light detection, machine vision, and other applications all require image classification
software.
Convolutional neural networks (CNN) are the underlying idea underpinning current
deep learning advances and improvements. CNNs have shattered the mould and
climbed to the throne as the most advanced computer vision technology. CNNs are by
far the most prevalent form of neural network (others include recurrent neural networks
(RNN), long short term memory (LSTM), artificial neural networks (ANN), and so on).
These convolutional neural network models are used in picture data. They perform
exceptionally well in computer vision tasks such as picture categorization, object
identification, image recognition, and so on.
Applications
Predicting Consumerism Behavior
Of course, the area of brand advertisements, Ad targeting, and improving customer
service was bound to benefit from the useful applications of image recognition. By
7
targeting customer’s posted photos through IR – they can learn about their interests and
consumerism behaviors. This, in turn, will help the brand’s targeting efforts to be
streamlined and perfected. Since they will have the required data to target a relevant
audiences and place their ads smartly.
Iris Recognition Improvement
Iris recognition has been improved considerably with the help of image recognition
technology that recognizes the unique patterns in the iris. One of the most important and
essential applications of iris recognition is biometric identification.
Optimizing Medical Imagery
Given the advent of the photo-centric age, where images, photos, and video are
preferred, the medical industry isn't far behind, with 90 percent of medical data
consisting of medical images, making it the largest data source in healthcare.
As a result of connecting one dot with another, these medical photos will be educated
by clever image recognition technology to change the art of diagnosis, making it easier
to detect severe diseases such as cancer.
8
CHAPTER 2
Literature Review
LeNet
Before starting, let's note that we would not have been successful if we simply used a raw
multi-layer perceptron connected to each pixel of an image. On top of becoming quickly
intractable, this direct operation is not very efficient as pixels are spatially correlated.
Therefore we first need to extract
1. meaningful and
2. low-dimensional features that we can work on
And that's where convolutional neural networks come in the game!
To tackle this issue, Yann Le Cun's idea proceeds in multiple steps.
First, an input image is fed to the network. Filters of a given size scan the image and
perform convolutions. The obtained features then go through an activation function.
Then, the output goes through a succession of pooling and other convolution
operations.As you can see, features are reduced in dimension as the network goes on.
At the end, high-level features are flattened and fed to fully connected layers, which
will eventually yield class probabilities through a softmax layer. During training time,
the network learns how to recognize the features that make a sample belong to a given
class through backpropagation.To give an example of what such a network can 'see':
let's say we have an image of a horse. The first filters may focus on the animal's overall
shape. And then as we go deeper, we can reach a higher level of abstraction where
details like eyes and ears can be captured.That way, ConvNets appear as a way to
construct features that we would have had to handcraft ourselves otherwise.
Fig 2.1 LeNet architecture
10
AlexNet
Then you could wonder, why have ConvNets not been trendy since 1998? The short
answer is: we had not leveraged their full potential back then.
Here, AlexNet takes the same top-down approach, where successive filters are designed
to capture more and more subtle features. But here, his work explored several crucial
details
First, Krizhevsky introduced better non-linearity in the network with the ReLU
activation, whose derivative is 0 if the feature is below 0 and 1 for positive values. This
proved to be efficient for gradient propagation.
Second, his paper introduced the concept of dropout as regularization. From a
representation point of view, you force the network to forget things at random, so that
itcan see your next input data from a better perspective. Just to give an example, after
you finish reading this post, you will have most probablyforgotten parts of it. And yet
this is OK, because you will have only kept in mind what was essential.Also, it
introduced data augmentation. When fed to the network, images are shown with
random translation, rotation, crop.
That way, it forces the network to bemore aware of the attributes of the images, rather
than the images themselves.Finally, another trick used by AlexNet is to be deeper. You
can see here that they stacked more convolutional layers before pooling operations.
The representation captures consequently finer features that reveal to be useful for
classification.This network largely outperformed what was state-of-the-art back in
2012, with a 15.4% top-5 error on the ImageNet dataset.
Fig 2.2 AlexNet Architecture
11
VGGNet
Deeper is better
The next big milestone of image classification further explored the last point that I
mentioned: going deeper.And it works. This suggests that such networks can achieve a
better hierarchical representation of visual data with more layers.As you can see,
something else is very special on this network. It contains almost exclusively 3 by 3
convolutions. This is curious, isn't?In fact, the authors were driven by three main
reasons to do so:
First, using small filters induces more non-linearity, which means more degrees of
freedom for the network.Second, the fact of stacking these layers together enables the
network to see more things than it looks like. For example, with two of these, the
network in fact sees a 5x5 receptive field. And when you stack 3 of these filters, you
have in fact a 7x7 receptive field! Therefore, the same feature extraction capabilities as
in the previous examples can be achieved on this architecture as well.Third, using only
small filters also limits the number of parameters, which is good when you want to go
that deep.Quantitatively speaking, this architecture achieved a 7.3% top-5 error on
ImageNet.
Fig 2.3 VGGNet Architecture
12
GoogLeNet
Next, GoogLeNet came in the game. It bases its success on its inception modules.As
you can see, convolutions with different filter sizes are processed on the same input, and
then concatenated together.From a representation point of view, this allows the model to
take advantage of multi-level feature extraction at each step. For example, general
features can be extracted by the 5x5 filters at the same time that more local features are
captured by the 3x3 convolutions.But then, you could tell me. Well that's great. But isn't
that insanely expensive to compute?And I would say: very good remark! Actually, the
Google team had a brilliant solution for this: 1x1 convolutions.On the one hand,
it reduces the dimensionality of your features.On the other, it combines feature maps in
a way that can be beneficial from a representation perspective.Then you could ask, why
is it called inception? Well, you can see all of those modules as being networks stacked
one over another inside a bigger network.And for the record, the best GoogLeNet
ensemble achieved a 6.7% error on ImageNet.
Fig 2.4 GoogleNet Architecture
13
ResNet
Connect the layers
So all these networks we talked about earlier followed the same trend: going deeper.
But at some point, we realize that stacking more layers does not lead to better
performance. In fact, the exact opposite occurs. But why is that? In one word:
the gradient, ladies and gentlemen. But don't worry, researchers found a trick to
counterthis effect. Here, the key concept developed by ResNet is residual learning. As
you can see, every two layers, there is an identity mapping via an element-wise
addition. This proved to be very helpful for gradient propagation, as the error can be
back propagated through multiple paths. Also, from a representation point of view, this
helps to combinedifferent levels of features at each step of the network, just like we
saw it with
the inception modules. It is to this date one of the best performing network on Image
Net,with a 3.6% top-5 error rate.
Fig 2.5 ResNet Architecture
14
CHAPTER 3
Deep Learning
Deep Learning
Deep Learning is a subset of Machine Learning, which on the other hand is a subset of
Artificial Intelligence. Artificial Intelligence is a general term that refers to techniques that
enable computers to mimic human behavior. Machine Learning represents a set of
algorithms trained on data that make all of this possible.
Fig 3.1 AI vs ML vs DL. Machine Learning is a subset of Artificial Intelligence and
Deep Learning Is subset of Machine Learning.
Deep Learning, on the other hand, is a sort of Machine Learning that is inspired by the
human brain's structure. Deep learning algorithms analyze data with a predetermined
logical structure in order to reach similar conclusions as humans. Deep learning achieves
this by employing a multi-layered structure of algorithms known as neural networks.
15
Fig 3.2 A simple Neural Network diagram to show how different layers are connected
The neural network's design is inspired by the structure of the human brain. Neural
networks can be taught to perform the same tasks on data that our brains do when
identifying patterns and classifying different sorts of information.
Individual layers of neural networks can also be thought of as a kind of filter that works
from the most obvious to the most subtle, improving the possibility of detecting and
producing a right result.
The human brain operates in a similar manner. When we get new knowledge, our brain
attempts to compare it to previously encountered objects. Deep neural networks make
use of the same notion.
Reason of Popularity of Deep Learning these
days
Why are artificial neural networks and deep learning so strong and unique in today's
industry? Why are deep learning models more potent than machine learning models,
above all? Please allow me to clarify.
The lack of requirement for so-called feature extraction is the primary advantage of deep
learning over machine learning.
16
Traditional machine learning approaches were widely utilized long before deep learning.
Decision Trees, SVM, Nave Bayes Classifier, and Logistic Regression are some
examples.
These algorithms are also called flat algorithms. Flat here means that these algorithms
can not normally be applied directly to the raw data (such as .csv, images, text, etc.). We
need a preprocessing step called Feature Extraction.
The result of Feature Extraction is a representation of the given raw data that can now be
used by these classic machine learning algorithms to perform a task. For example, the
classification of the data into several categories or classes.
Feature Extraction is usually quite complex and requires detailed knowledge of the
problem domain. This preprocessing layer must be adapted, tested and refined over
several iterations for optimal results.
On the other side are the artificial neural networks of Deep Learning. These do not
need the Feature Extraction step.
The layers are able to learn an implicit representation of the raw data directly and on
their own. Here, a more and more abstract and compressed representation of the raw data
is produced over several layers of an artificial neural-nets. This compressed
representation of the input data is then used to produce the result. The result can be, for
example, the classification of the input data into different classes.
17
Fig 3.3 How Implementation of Machine Learning is different from Deep Learning
During the training process, this step is also optimized by the neural network to obtain
the best possible abstract representation of the input data. This means that the models of
deep learning thus require little to no manual effort to perform and optimize the feature
extraction process.
Old Machine learning algo comparison with deep learning method
Let us look at a concrete example. For example, if you want to use a machine learning
model to determine if a particular image is showing a car or not, we humans first need to
identify the unique features or features of a car (shape, size, windows, wheels, etc.) extract
the feature and give them to the algorithm as input data.
In this way, the algorithm would perform a classification of the images. That is, in machine
learning, a programmer must intervene directly in the action for the model to come to a
conclusion.
In the case of a deep learning model, the feature extraction step is completely unnecessary.
The model would recognize these unique characteristics of a car and make correct
predictions.
That completely without the help of a human.
In fact, refraining from extracting the characteristics of data applies to every other task
you’ll ever do with neural networks. Just give the raw data to the neural network, the rest
is done by the model.
18
Fig 3.4 How Performance changes when we increase amount of data input.
Deep Learning models tend to increase their accuracy with the increasing amount of
training data, where’s traditional machine learning models such as SVM and Naive
Bayes classifier stop improving after a saturation point
19
Chapter 4
CONVOLUTION NEURAL NETWORK
Convolutional Neural Networks (ConvNet or CNN) are a type of deep neural network
that is often used for image analysis. The CNNs' building blocks are convolution
layers.
A convolution is the simple application of a filter to an input that results in an
activation. Repeated application of the same filter to an input result in a map of
activations called a feature map, indicating the locations and strength of a detected
feature in an input, such as an image.
What makes CNNs so powerful and useful is that they can generate excellent
predictions with minimal image preprocessing. Also, the CNNs are immune to spatial
variance and hence are able to detect features anywhere in the input images.
Before Going into deep Let's discuss about human Brain Actually recognize an image
using example....
Fig 4.1 Image of a dog for understanding how human braing recognize things
We all know it's an image of dog and even with just a glimpse of this image or any other
similar image we would always know that this a dog, but how do we know this?? How
are we so sure and correct all the time?
The reason is that with every evolution step in Humankind, our brain has learned to
identify certain key features (big ears, hairy face, long mouth, large teeth etc.) in an
20
image and basis of these feature it would just recognize the above image as a Dog
Image.
Convolutional layers apply a convolution operation to the input. This passes the
information on to the next layer.
Pooling combines the outputs of clusters of neurons into a single neuron in the next
layer.
Fully connected layers connect every neuron in one layer to every neuron in the next
layer.
This is what a CNN tries to mimic for classifying Images.
Fig 4.2 Image of a complete Convolution Neural Network
CNN FLOW
1 starts with an input image
2 applies many different filters to it to create a feature map
3 applies a ReLU function to increase non-linearity
4 applies a pooling layer to each feature map
5 flattens the pooled images into one long vector.
inputs the vector into a fully connected artificial neural network.
processes the features through the network. The final fully connected layer provides the
voting of the classes that we’re after.
trains through forward propagation and backpropagation.To for many, many epochs.
This repeats until we have a well-defined neural network with trained weights and
feature detectors.
A Convolutional Neural Network can be interpreted as two sub networks where each
sub network is responsible for performing a specific task. These Sub networks are
21
Feature Learning Net (The Eyes of our CNN) and Classification Net (The Brain of
our CNN). Together they perform an approximate function of how a Human Brain
classifies the Images.
1) Feature Learning — Convolutional Layers and Pooling Layers make up
themajority of the Feature Learning section. The number of Convolutional and
Pooling Layers in a CNN is typically greater than one and is directly proportional to
the complexity of the classification problem (a more difficult problem would require
more Convolutional and Pooling layers for feature extraction).
2) Classification — The classification part is responsible for classifying the
images to their respective categories based on the features (Feature Maps) that
FeatureLearning part has extracted (created) from the image. The Classification part
usually consist of a Flatten Layer and a network of Fully Connected Hidden Layer
Terms Related to Convolution Neural
Network Explanation:
Convolution
In purely mathematical terms, convolution is a function derived from two given
functions by integration which expresses how the shape of one is modified by the other.
The convolution function is presumably recognizable to those of you who have worked
in any subject that involves signal processing.
Let's get into the actual convolution operation in the context of neural networks. The
following example will provide you with a breakdown of everything you need to know
about this process.
Here are the three elements that enter into the convolution operation:



Input image
Feature detector
Feature map
The input image is the same smiley face image that we used in the previous example, as
you can see. Again, if you look closely at the sequence of 1s and 0s, you can see the
happy face.
22
A 55% or 77% matrix is sometimes used as a feature detector, but the more common
one, and the one we will be working with, is a 33% matrix. The feature detector is also
known as a "kernel" or a "filter," terms you may come across as you read more about
the subject.
To avoid confusion, it is preferable to remember both terms. They all mean the same
thing and are used interchangeably in this course as well.
How exactly does the Convolution Operation work?
The feature detector can be thought of as a window with 9 (3*3) cells. Here's what
you're supposed to do with it:





You position it over the input image starting at the top-left corner and counting
the number of cells where the feature detector matches the input image within
the above-mentioned borders.
The number of matching cells is then entered in the feature map's top-left cell.
After that, you move the feature detector one cell to the right and repeat the
process. Because we are moving the feature detector one cell at a time, this
movement is referred to as a stride of one pixel.
What you will find in this example is that the feature detector's middle-left cell
with the number 1 inside it matches the cell that it is standing over inside the
input image. That's the only matching cell, and so you write “1” in the next cell
in the feature map, and so on and so forth.
After you have gone through the whole first row, you can then move it over to
the next row and go through the same process.
It's important not to confuse the feature map with the other two elements. The cells of
the feature map can contain any digit, not only 1's and 0's. After going over every pixel
in the input image in the example above, we would end up with these results:
Fig 4.3 Convolution Operation Mathematically how it works
23
By the way, just like feature detector can also be referred to as a kernel or a filter, a
feature map is also known as an activation map and both terms are also interchangeable.
What is the point from the Convolution Operation?
There are several uses that we gain from deriving a feature map. These are the most
important of them: Reducing the size of the input image, and you should know that the
larger your strides (the movements across pixels), the smaller your feature map. In this
example, we used one-pixel strides which gave us a fairly large feature map.
When dealing with proper images, you will find it necessary to widen your strides. Here
we were dealing with a 7×7 input image after all, but real images tend to be
substantially larger and more complex.
That way you will make them easier to read.
Do we lose information when using a feature detector?
The answer is YES. The feature map that we end up with has fewer cells and therefore
less information than the original input image. However, the very purpose of the feature
detector is to sift through the information in the input image and filter the parts that are
integral to it and exclude the rest.
Basically, it is meant to separate the wheat from the chaff.
Why do we aim to reduce the input image to its essential features?
Think of it this way. What you do is detect certain features, say, their eyes and their
nose, for instance, and you immediately know who you are looking at.
These are the most revealing features, and that is all your brain needs to see in order to
make its conclusion. Even these features are seen broadly and not down to their
minutiae.
If your brain actually had to process every bit of data that enters through your senses at
any given moment, you would first be unable to take any actions, and soon you would
have a mental breakdown. Broad categorization happens to be more practical.
Convolutional neural networks operate in exactly the same way.
24
Fig 4.4 diff filters used for convolution and its output
Stride
Stride is a feature of convolutional neural networks, which are neural networks
optimized for image and video compression. Stride is a filter parameter in a neural
network that controls the amount of movement in an image or video. When the stride of
a neural network is set to 1, for example, the filter moves one pixel (or unit) at a time.
Because the size of the filter has an impact on the encoded output volume, stride is
usually set to a whole number rather than a fraction or decimal.
25
Fig 4.5 showing what exactly is Stride feature with help of a diagram
Padding
Padding is a term used in convolutional neural networks to describe how many pixels are
added to an image when it is processed by the CNN kernel. If the padding in a CNN is
set to zero, for example, every pixel value added will have the value zero. If the zero
padding is set to one, a one-pixel border with a pixel value of zero will be added to the
image.
Fig 4.6 Diagrammaticaly showing how padding is used in convolution operation.
How does Padding work?
Padding is a term used in convolutional neural networks to describe how many pixels
are added to an image when it is processed by the CNN kernel. If the padding in a CNN
is set to zero, for example, every pixel value added will have the value zero. If the zero
26
padding is set to one, a one-pixel border with a pixel value of zero will be added to the
image.
Activation Functions
The next layer after the convolution is non-linearity. The non-linearity can be used to
adjust or cut-off the generated output. This layer is applied in order to saturate the
output or limiting the generated output.
For many years, sigmoid and tanh were the most popular non-linearity. Fig. 11, shows
the common types of nonlinearity. However, recently, the Rectified Linear Unit (ReLU)
has been used more often for the following reasons.
Fig 4.7 Different Activation Function with there graph
1) ReLU has simpler definitions in both function and gradient.
ReLU(x)=max(0,x)
d(x)/dx ={1 if x>0; 0 otherwise}(4)(5)
2 ) The saturated function such as sigmoid and tanh cause problems in the back
propagation. As the neural network design is deeper, the gradient signal begins to
vanish, which is called the “vanishing gradient”. This happens since the gradient of
those functions is very close to zero almost everywhere but the center. However, the
27
ReLU has a constant gradient for the positive input. Although the function is not
differentiable, it can be ignored in the actual implementation.
3)
The ReLU creates a sparser representation. because the zero in the gradient leads to
obtaining a complete zero. However, sigmoid and tanh always have non-zeroresults
from the gradient, which might not be in favor for training.
Pooling
A pooling layer is another building block of a CNN.
Pooling
Fig 4.8 Figure to illustrate Pooling operation
Its function is to progressively reduce the spatial size of the representation to reduce the
amount of parameters and computation in the network. Pooling layer operates on each
feature map independently.The most common approach used in pooling is max pooling.
Max Pooling
Fig 4.9 Figure to illustrate Max Pooling operation
28
Fully-Connected Layer
The fully-connected layer is a similar to the way that neurons are arranged in a
traditional neural network. Therefore, each node in a fully-connected layer is directly
connected to every node in both the previous and in the next layer as shown in Fig. 13,
From this figure we can note that each of the nodes in the last frames in the pooling
layer are connected as a vector to the first layer from the fully-connected layer. These
are the most parameters used with the CNN within these layers, and take a long time in
training .
The major drawback of a fully-connected layer, is that it includes a lot of parameters
that need complex computational in training examples. Therefore, we try to eliminate
the number of nodes and connections. The removed nodes and connection can be
satisfied by using the dropout technique. For example, LeNet and AlexNet designed a
deep and wide network while keeping the computational complex constant [4,6,9].
The essence of the CNN network, which is the convolution, is when the nonlinearity
and pooling layer are introduced. Most common architecture uses three of them as
Fig 4.10 figure for showing the fully connected layer used in CNN process.
20
29
CHAPTER 5
IMAGE CLASSIFICATION USING CNN:
For compiling the model, we have to specify the following parameters —
Optimizer → Algorithm used for updating the weights of our CNN. “Adam”
(Gradient Descent) is one of the popular optimizer used for updating weights.
Loss → Cost function used for calculating the error between the predicted & actual
value. In our case we will be using “categorical_crossentropy” since we are dealingwith
multiclass classification. In case of binary classification we have to use
“binary_crossentropy” as loss function.
Metrics → Evaluation metric for checking performance of our model.
For fitting the model, we have to specify the following parameters —
Batch_size → Number of images that will be used by to train our CNN model before
updating the weights using back propagation.
Epochs → An epoch is a measure of the number of times all of the training images are
used once to update the weights.Till now we have learnt about the different components
of a Convolutional NeuralNetwork. Let us now develop our own CNN for image
classification.The problem at our hand is image data of Nature Scenes around the world.
The Datacontains around 25k images of size 150x150 distributed under 6 categories.
30
As you can see, our model has an accuracy of ~83 % on validation data whichis not
bad. The accuracy can be further increased by playing around with different
parameters such as
1. Increasing number of Neurons
2. Increasing number of hidden layers
3. Increasing epochs
4. Playing around with convolutional layer parameters
Trained Model Output:
Fig 5.1 In this a glacier Image was given as input and model predicted it correctly..
31
Fig 5.2 In this a Building Image was given as input and model predicted it correctly..
32
Fig 5.3 In this a Sea Image was given as input and model predicted it correctly..
33
CHAPTER-6
Conclusion
With today's quickly evolving technology in artificial intelligence and computer vision,
it's more important than ever to be more precise and optimal with your research. The
sciences of picture categorization and image recognition are likewise progressing and
reaching new heights. In this subject, numerous innovative, complicated, and efficient
algorithms and neural networks are being introduced.
In my report I have presented model for Classification of natral scenes around the
world.
In the training of model I has shown accuracy of approx 83%.So By this We can say
natural scenes can also be detected by using Convolution Neural Network.As shown in
above figures the model is working properly.
Future Scope
Scanning the heavens for other sentient species out in space will be the future of image
processing. Advances in image processing applications will also be included in new
intelligent, digital species created wholly by research experts in various countries across
the world. In a few decades, developments in image processing and associated
technologies will have resulted in millions upon millions of robots in the planet, altering
the way the world is managed. Spoken instructions, anticipating government
information needs, interpreting languages, detecting and tracking people and things, and
diagnosing medical issues will all benefit from advances in image processing and
artificial intelligence.
Image recognition is an excellent prototype problem to learn about neural networks, and
it's a great way to develop more advanced techniques of deep learning. Which can be
added to my model in future. Multi label image classification can be further added to
these models.
34
References
1 https://ieeexplore.ieee.org/document/8308186/figures#figures
2 https://towardsdatascience.com/wtf-is-image-classification8e78a8235acb
3 Yann LeCun et al., 1998, Gradient-Based Learning Applied to Document
Recognition
4 Adit Deshpande, 2016, The 9 Deep Learning Papers You Need To Know
About (Understanding CNNs Part 3)
5. C.-C. Jay Kuo, 2016, Understanding Convolutional Neural Networks
with A Mathematical Model
6 https://www.sciencedirect.com/science/article/pii/S0924271617303660
7(Conference proceeding) A. Z. Kouzani, F. He and K. Sammut,
"Commonsense knowledge-based face detection," Proceedings of IEEE
International Conference on Intelligent Engineering Systems, 1997
8 Conference proceeding) H. A. Rowley, S. Baluja and T. Kanade,
"Rotation invariant neural network-based face detection," Proceedings.
1998 IEEE Computer Society Conference on Computer Vision and Pattern
Recognition (Cat. No.98CB36231), 1998
9 (Conference proceeding) P. Viola and M. Jones, "Rapid object detection
using a boosted cascade of simple features," Proceedings of the 2001 IEEE
Computer Society C
Download