2019 - Improving The Classification of Tiny Images For Forensic Analysis
2019 - Improving The Classification of Tiny Images For Forensic Analysis
12-2019
By
Roba Jafar Alharbi
Master of Science
in
Information Assurance and Cybersecurity
Melbourne, Florida
December 2019
We the undersigned committee hereby approve the attached Thesis
by
Roba Jafar Alharbi
_________________________________________________
William Allen, Ph.D.
Associate Professor
Computer Science
Committee Chair
_________________________________________________
Veton Këpuska, Ph.D.
Associate Professor
Electrical and Computer Engineering
Outside Committee Member
_________________________________________________
Marius Silaghi, Ph.D.
Associate Professor
Computer Science
Committee Member
_________________________________________________
Philip Bernhard, Ph.D.
Associate Professor and Department Head
Computer Engineering and Science
Abstract
Title: Improving the Classification of Tiny Images for Forensic Analysis
Forensics can be defined as the approach that connects with and uses in
forensics is one of the most beneficial ways that are used in digital forensics in order to
evidence besides what is already available on their systems when they use some digital
forensics techniques.
This thesis focuses on identifying an image based on its contents, especially tiny
and convolutional neural network (CNN). In order to test these different classification
techniques, we used feature extraction in order to extract the most useful features that
are used as inputs to the classifiers. Therefore, we used the CIFAR-10 dataset that
Three different classification techniques are tested in order to identify the most
accurate algorithm for classifying the tiny image of the CIFAR-10 dataset. The results
iii
of our experiments showed that the best results were achieved when we used the
algorithm to use since it produced the best results matching approximately 74.10%
among the other two classification techniques that are used in this research, which are
iv
Table of Contents
Acknowledgements................................................................................................. xi
Chapter 1 ..................................................................................................................1
Chapter 2 ..................................................................................................................9
Chapter 3 ................................................................................................................22
vi
3.3.3.3 The Results..................................................................................54
Chapter 4 ................................................................................................................60
Chapter 5 ................................................................................................................66
Chapter 6 ................................................................................................................69
vii
List of Figures
Figure 3.6: Showing the test image and matched image for two different types
of ‘Truck’ ........................................................................................................37
Figure 3.7: Showing the test image and matched image for two different types
of ‘Ship’ ...........................................................................................................38
Figure 3.8: Showing the test image and matched image for two different images
of ‘Automobile’ .............................................................................................. 38
Figure 3.9: Showing the test image and matched image for two different images
of ‘Cat’ ............................................................................................................39
Figure 3.10: Showing the test image and matched image for two different
Figure 3.11: Showing the test image and matched image for two different
images of ‘Dog’............................................................................................... 40
viii
Figure 3.12: Showing the test image and matched image for two different
Figure 3.13: Showing wrong matching between the test image and matched
image ...............................................................................................................41
Figure 3.14: Showing wrong matching between the test image and matched
image ...............................................................................................................41
Figure 3.15: The output of matching with different distence metrics ..............46
[30] ...................................................................................................................50
Figure 3.22: The code of including all categories of CIFAR-10 dataset when
Figure 3.26: Showing matching images between test image and matched image
..........................................................................................................................59
Figure 4.1: The chart of the PCA & KNN results ..............................................62
ix
List of Tables
Table 3.1: Classification results using Principal Component Analysis (PCA) .36
Table 3.3: Classification results using Convolution Neural Network (CNN) ...59
Table 4.1: The results of the three different classification techniques. .............65
Table 5.1: A comparison of our results with Norko’s results [33] while using
x
Acknowledgements
First and foremost, I would like to thank Allah, the one who is most deserving
of thanks and praise, for giving me the strength, ability, opportunity, knowledge, and
thank Allah again for supporting me during my educational journey to reach and achieve
my goal.
Dr. William Allen who advised, supported, and inspired me to complete my research
work. Thank you for your time, suggestions, and guidance to help me finish this thesis
and make it full proof of success. Thank you for the valuable instructions that have
served as the primary contributor to the completion of my master thesis. I cannot express
enough thanks to you for the motivation, inspiration, and encouragement to achieve my
goal. I am grateful to have been supervised by such a professor like you, who has the
knowledge and skills to provide me with expert advice that showed me the right path for
I also would like to thank my committee members, Dr. Veton Kepuska and Dr.
Marius Silaghi, for the learning opportunities in many different fields and the
I want to take the advantage to thank my dear parents Mr. Jafar Alharbi and Mrs.
Ratebh Mugharbel, for raising me, standing next to me, motivating me, and supporting
xi
My parents, thank you for inspiring me to follow my dreams and try my best to reach
and achieve my goals and for encouraging me in all of my pursuits. My parents had a
dream to finish my master’s successfully, and their dream is coming true; thank you for
believing in me.
xii
Dedication
This thesis is dedicated to my parents, who taught me how to be strong and
independent. My parents taught me how to face and deal with life challenges and never
xiii
Chapter 1
Introduction
1.1 Overview
Forensic analysis is an approach that is used by governments and other
and law enforcement use forensics for criminal cases and many other organizations use
forensics to detect violations of their policies and rules. Therefore, forensic science can
be defined as the science that relates to or deals with gathering data and applying some
techniques in order to solve legal problems. There are several categories for forensic
science based on the area that is dealing with, such as chemistry forensics, medicine
Institute of Justice defines the digital forensics as gathering and analyzing the digital
evidence in order to use them against criminals in the court; that evidence can be
presented to sue criminals for all kinds of crimes, not limited to computer crimes. Thus,
information that is stored or transmitted in binary form to use in the court called digital
evidence. Any information that is stored in digital form is considered as digital evidence,
such as images, audio, documents, log files, web cookies, and emails.
1
Most of the crimes that are based on computers directly or indirectly can be
identified by using some digital forensics tools. These digital forensics tools play a
media. Nowadays, digital forensics become the most common approach that is used in
crime investigations for most organizations due to the popularity of using digital media.
Moreover, some forensics tools, such as Guidance Software's Encase [11] and Access
Data's FTK [12] have combined some of the most efficient functions over the past 15
years [5]. However, there are some challenges that researchers should be aware of in
In a federal level, there are some challenges that are categorized into three main
• Technical challenges
• Legal challenges
These challenges have been produced based on laws and legal tools that are
necessary for cybercrime investigations, which based on the changes that are
• Resource challenges
These challenges come up when the investigators try to guarantee that they
have the whole data that they need for the investigation at all the
2
government’s level. For instance, analyzing time for forensic media and data
volume.
1.2 Motivation
Many researchers proposed and tested various techniques in order to come up
with effective results that improve accuracy due to the importance of digital forensics in
identifying the image content. Moreover, image forensic is one of the most popular
approaches that is used to apply digital investigation by using some analysis and
already available on the system when they use some digital forensics techniques.
Therefore, digital forensics techniques help the investigators to discover and recover
some information that may criminals partially delete or manipulate to hide their
Image forensic is one of the most beneficial ways that are used in digital
forensics in order to extract useful data. Then, the data extraction result is analyzed by
investigators instead of analyzing all data that is stored in the system. Therefore, image
forensics reduces the time consumption of analyzing the data due to the fact that the
image forensics techniques will only analyze and compare useful data.
For instance, if investigators try to find a specific car that is owned by someone,
and they only have an image of the car and many images from a surveillance camera.
3
Moreover, the investigators will try to find a match for this particular car. Therefore, the
investigators will search for this specific image of the same car by analyzing all the
images and spreading out the car images. It means that the investigators will not look
through all the images, and they will only look through car images. Thus, classifying
those images may reduce thousands of car images to only hundreds of car images, which
makes the searching for this particular car much faster than the traditional ways.
Subtracting similar images and labeling them simplify the work for the examiners since
they do not have to search and look through all other images, which leads to reduce the
time consumption.
However, digital forensics that are related to identifying the image based on its
content is considered as a significant challenging issue due to the high false-positive rate.
The percentage of images that are incorrectly identified as the correct image is the
definition of the false-positive rate. Furthermore, there are many reasons for the high
false-positive rate, such as missing an essential part of the image. For instance, images
that contain many objects on it, such as people, cars, buildings, and traffic signs, are
The focus on tiny images, also called thumbnail images, is motivated by the fact
that operating systems will commonly create smaller versions of full-sized images stored
images may still be accessible after the original, larger image has been deleted,
classify these tiny images, they could be useful evidence that the original images existed
4
Figure 1.1: Windows thumbnail images
image content to test accuracy while using some of the well-known classification
techniques. We will apply three classification techniques, which are principal component
analysis (PCA), K-nearest neighbors (KNN), and convolutional neural network (CNN).
Furthermore, we will compare our results with some other existing studies that have
classification of tiny images from the CIFAR-10 dataset. There are two goals of this
5
• First, to determine if different sizes of training and test data can improve the
Nearest Neighbor (K-NN), which are commonly used for file type
recent researches that produced some studies that have been conducted in this
2.
described in Chapter 3. We used the CIFAR-10 training data to train the model
and testing data to evaluate those techniques and compare the results across all
6
• To compare the performance of data classification with the selected approaches
• To compare the results with an existing study that has been done by Norko [33],
experiments with those techniques using the CIFAR-10 dataset, then compare
and some data classification techniques that have been proposed and tested.
that we used to build our model and tested it. This chapter presents the data
structure, the dataset, and the three classification techniques that we used to
7
• Chapter 4: Analyzing results. This chapter represents the results and the
of all the sections that are provided in the thesis and a comparison of our
results with the results of an existing study. Moreover, this chapter presents
• Chapter 6: A bibliography.
8
Chapter 2
Background
Digital forensic has become an essential approach to cyber investigation. There are
many studies that have been done to examine some existing tools. Thus, it leads to come
up with some questions about the future of this field. Some studies have been conducted
in order to identify the existing digital forensics challenges, such as challenges related
to data size (database and hard drive) and the technology platforms variation (tablets,
Dezfoli et al. [8] aimed to provide some of the trends in digital forensics and security
applications. Also, in this field, some assessments about future researches are introduced.
Furthermore, there are some criminal activities that are related to computers and mobile
phones due to the fast evolution of these devices [8]. Moreover, these devices are used
by criminals to achieve their nefarious goals. The investigation of crimes that involve
these devices becomes hard because most of these devices are complex. Therefore, there
crime investigation. The way that is used to investigate computer crimes in the cyber
world is called digital forensics. However, this area of forensic investigation catches
9
researchers' attention, and they have done many experiments to find some
Al Fahdi et al. [5] focused on determining the digital forensics challenges that are
related to data size and technology platforms variation. It leads to make other researchers
focus on the issues that have an impact on the field. The researchers presented a survey
of all other studies that have been conducted in the field of digital forensics in law
between real challenges and anticipated challenges in order to realize the future impacts
on this domain.
The results show that most of the participants, around 93%, believed that the
investigation number and complication might boost in the future. The study has been
done based on 42 participants, who were from different knowledge levels, such as 45%
organization, and 55% have three or more experience years [5]. The results have also
identified some future challenges that are related to anti-forensics, encryption, and cloud
computing. Moreover, the results show that communication between practitioners and
researchers should be improved. They have to evolve the extracting and identifying data
Digital forensics consists of four types, as is shown in Figure 1.1, which are data file
forensics, network forensics, database forensics, and web forensics. Each type has a
specific area that is focused on and used to help investigators in some cases. We will
10
Network
Forensic
Web
Forensic
txt, jpg, WAV, and mp3. However, there are some attackers who can identify the file's
type in order to hide their malicious activities. Therefore, the issue of file type
identification catches the researchers' attention due to the importance of analyzing these
data in order to detect any suspicious activity caused by attackers. Various studies have
been done in the area of file-type identification in order to come up with new methods
and approaches that can be useful for improving the existing techniques [1, 2, 3, 4].
11
Investigators use file type identification technologies to analyze and extract valuable
information from some different digital devices, such as phones, tablets, CDs, hard disks,
and computers. However, damaged hard-disks, broken CDROMs, and deleted files
(partly) have been considered as some challenges that may be faced by forensics
practitioners [2].
Ahmed et al. [1] compared and tested 500 files of each ten different file types that
are related to images, sounds, and documents, such as JPG, MP3, and PDF, and the
highest accuracy was when they applied the k-nearest neighbor algorithm about 90%
They tested different classification techniques by using parts from each file and applying
the feature extractions. After applying the feature extraction, some classification
techniques are used to detect the file type and identify the accuracy of each classifier,
there are some studies that have been conducted in order to test and improve some of the
Meghanathan et al. [9] introduced some tools and techniques based on the
efficiency, ease of use, and cost to manage network forensics. Furthermore, discovering
order to analyze any part of data that is captured when it is needed. For instance, network
forensic is used to find out some evidence, detect any intrusion, and respond to any
administrators. There are some advantages of using these tools, such as capturing parts
of traffic segments and analyzing the transmitted data over the networks in order to
investigate any attack or any suspicious activity. NFATs support deep defense, which
means that the data of some other security tools, such as firewalls, can be correlated with
NFATs.
Additionally, there are many uses for these network forensics analysis tools
intellectual property protection, data theft analysis [13,14]. Some NFATs are beneficial
for improving network security level by detecting criminals and avoiding crimes.
Ghafarian tested some open-source network forensics analysis tools in order to find out
strong and weak points for each one of them. The experiment results were presented in
13
2.1.3 Database Forensic
Database forensic aims to check data that is stored in some of the database
by analyzing the database, investigators will be able to identify the integrity of the data
to store their data, which means the high-security level is required to protect that data
from an attack. This kind of database has become a target for an adversary due to the
popularity of using it to store relevant data. Therefore, some techniques are used to
understand the changes in the database and determine if the data have been manipulated
by an attacker or not.
Khanuja et al. [16] focused on the databases that are used in banking transactions
since most financial organizations use different database applications to store and
manage their data. Therefore, fraudulent banking activities have become an essential
issue because it threatens the trust and the security level of using online banking
transactions [16, 18,19]. This problem of dealing and detecting these kinds of financial
crimes catches the researchers' attention due to the Money Laundering (ML) practices.
The Money Laundering (ML) practices are considered one of the most dangerous
significant challenge for all banks, which leads to an increase in the worriedness about
on this area and addressed it in [20, 21, 23]. Moreover, database forensics is one area of
digital forensics that the researchers focus on in order to get useful information after
analyzing the extracted data [23, 24, 25]. Thus, these data can be used as evidence in
daily life, which leads criminals to expose any information that may help them to achieve
their suspicious goals. If criminals succeed in determining the weakness points in web
security, they will exploit them to reach and achieve their malicious goals. However,
web forensics will help investigators to detect and collect evidence of any illegal
activities.
Meghanathan et al. [9] identified that web forensic is based on gathering essential
information for any crime to determine the criminals and any suspicious activity. Web
forensics deals with all collected data that are related to the web. For instance, collecting
data can be done by finding the browsing history of a user, such as how many times the
user visited a specific website, how long the user spent on each visit, what files that the
user downloaded and uploaded into the visited website, and much more critical
information.
activities in the cyber world, such as identity theft and compromised web servers.
15
Therefore, some web forensics techniques play a significant role in helping investigators
CIFAR-10 dataset is a well-known dataset that uses to train and test models.
analyze, and improve those techniques by using a dataset that contains many simple
images. The dataset that is used is CIFAR-10 to test some simple image classification
algorithms with using and without using the principal component analysis (PCA).
Furthermore, the researcher used 10000 32x32 color images, and those images
are classified by using the k - nearest neighbor (KNN) and linear support vector machine
(SVM) classification algorithms to make a comparison that shows the accuracy. This
paper [33] uses different accuracy measures for representing the results of the
classification techniques while using the training and testing data. Those different
accuracy measures are the confusion matrixes, and the ROC (receiver operating
the classification models. The researcher trained and examined the models by using the
16
classification learner application. He exported and applied the created model to the test
Computer forensics investigators try to test and analyze various file types by
developing various tools, methods, and techniques in order to discover and detect any
suspicious activity that is related to file-type identification and make the required
researchers faced. Therefore, the researchers have been provided several approaches
and techniques that can be used to identify various types of files, such as jpg, doc, pdf,
and mp3.
The issue of file type identification catches the researchers' attention due to the
importance of analyzing these data in order to detect any suspicious activity caused by
an adversary. Therefore, several studies have been conducted in the area of file-type
identification in order to come up with new methods and approaches that can be useful
Ahmed et al. [1] compared and tested 500 files of each ten different file types that
are related to images, sounds, and documents. The researchers used two different
17
techniques in order to minimize the classification time. The first technique is feature
selection, which is about determining some features that have the highest appearance in
the dataset. The second technique is content sampling, which is taking random samples
Moreover, six classification algorithms are used to perform the experimental tests
for those techniques, such as artificial neural network, decision tree algorithm, k-means
algorithm, k-nearest neighbor algorithm, linear discriminant analysis, and support vector
machine [1]. Consequently, 500 files of each ten different file types, such as JPG, MP3,
and PDF, are tested and compared by the researchers. Thus, the highest accuracy was
when they applied the k-nearest neighbor algorithm about 90% while using 40% of the
features [1].
analysis (PCA) and unsupervised neural networks (NN) for applying feature extraction.
After they applied the feature extraction, they used some classification techniques to
detect the file type and identify the accuracy of each classifier. The researchers come up
with results that show the accuracy of each classification techniques depending on the
length of the file fragments. The principal component analysis (PCA) is one of the most
using a support vector machine (SVM) classifier improves the accuracy and speed.
Gopal et al. [2] focused on comparing the performance of statistical classifiers, such
18
intrusion detection. However, state-of-the-art classification techniques help the
In paper [2] the researchers interduce three different aspects, which are:
is provided.
The researchers analyzed some different methods that are used to handle the
damaged files and file segments in order to evaluate the robustness of the tested methods.
Therefore, two alternative criteria that are used to measure the performance are proposed
• The predictions by using the based approaches to know intact files are treated
as true labels.
Additionally, these two criteria are based on signature bytes as the true labels, and
these signature bytes are removed before testing each method. As a result, the
researchers concluded that SVM and KNN provide the best results over all other COTS
solutions that are tested using simulated damages in files [2]. The results of their
some COTS methods that would not be able to identify damaged files [2].
19
Vulinović et al. [34] one of the most fundamental steps in data file forensics is file
fragment classification, which identifies the file type based on its content fragments.
Therefore, byte frequency distributions and fragment entropy measures are two methods
that are used to identify the file using machine learning techniques on features. In
addition, the researchers provided a contribution in identifying the file based on its
The researchers trained the Feedforward neural networks by using byte histograms
and with byte-pair histograms while they trained convolution neural networks (CNN) by
using blocks containing 512 bytes of data. These data are acquired from the GovDocs1
dataset. As a result, the researches evaluated these two classification techniques, and
they indicated that the feedforward artificial neural networks provide better results than
Al-Saffar et al. [35] Convolutional neural networks (CNNs) are more beneficial
than traditional machine learning methods due to the increasing number of hidden layers
that provide more complex network structure and more robust feature learning.
Moreover, the deep learning algorithm is used to train the convolution neural network
identification tasks. The development of deep learning and convolution neural network
is presented with summarizing the basic model structure, convolution feature extraction,
and the pooling operation that is considered as one of the most essential operations for
applying the CNN classification. However, the convolutional neural networks (CNNs)
20
After that, the researchers reviewed the development of the convolution neural
network (CNN) model using deep learning of image classification. The researchers
represented that by introducing the training method and the performance. However, the
researchers outlined and discussed some existing problems and predicted the new
Chen et al. [36] proposed a novel schema that is used to improve the classification
accuracy by extracting much more hidden features. This proposed novel is based on
fragment-to-grayscale image conversion and deep learning due to the fact that the file
deep convolution neural network (CNN) model that have the ability to extract thousands
researchers used the GovDocs1 dataset to train and test their CNN model. The results
of their experiments with their proposed CNN model achieved 70.9% correct
21
Chapter 3
Methodology
review on digital forensics and its four different types, and some classification
techniques that are used to classify the file based on its content. This chapter describes
the research methodology, which presents our work in detail. Therefore, this section
3.1 Framework
We start this chapter with a clarification of steps that are followed in our
the number of features is reduced to a smaller number of features with keeping the most
useful features, which helps the classifier to determine the file based on its contents.
22
Figure 3.1: The general framework of file identification
23
In addition, we designed a general framework of the steps that are used to classify
data and identify the content of tiny images in order to clarify the approach that is used
in this research. Thus, our general framework contains four stages, which are explained
automatically and split into two sets: the training set and the test set.
• Stage 3: Before the classification stage, the features can be reduced by using
number of features in training set to a smaller number with keeping the useful
features.
• Stage 4: In this stage, the data in the training set is classified, followed by
the classification technique with the test set step. Finally, the performance
24
Figure 3.2: The proposed framework of file identification
25
In this section, the proposed framework is introduced (see Figure 3.2), which is
designed to build a model for classifying the tiny images. The proposed research
2. Using the CIFAR-10 dataset and splitting data automatically into a training
3. Using the dimension reduction techniques on the training set only in order to
reduce the data features and keep the most useful ones.
trained dataset using the chosen test data. Thus, several classifiers are used
to assess the testing data. Then, the classification results can be obtained.
described. This research structure contains the preprocessing experimental study, which
1. The suitable software tools that are used in our research are determined.
2. The dataset description shows the contents of the chosen dataset in detail.
26
3. The data preparation that is used with each classification technique is
described.
Besides, MATLAB has a set of toolboxes, which include several functions that
are used to solve problems and enhance performance. For instance, there are some
toolboxes that are related to various areas, such as audio, images, and computer vision.
implement the research experiment in order to test some of the chosen classification
techniques, such as PCA, KNN, and CNN with tiny images. Some MATLAB toolboxes
are needed in our experiment in order to obtain good results, such as image processing
27
3.2.1 Dataset
The dataset that is used in our experiment is the CIFAR-10. The CIFAR-10 is
composed of 60,000 32x32 color images divided into ten different classes, and each class
has 6,000 images. Those images divided into two subsets, which are training and test
images. Therefore, the training set consists of 50,000 images, while the test set consists
of 10,000 images [31]. The ten different classes that the images are divided into are:
Airplane, Automobile, Bird, Cat, Deer, Dog, Frog, Horse, Ship, and Truck. Moreover,
all the images in the CFAR-10 dataset are in the Portable Network Graphics (PNG)
format.
Krizhevsky et al. [31] divided the CIFAR-10 dataset into five training batches
and one test batch, and each batch has 10,000 images. The test batch is formed of 1000
images that are selected randomly from each class. Therefore, the remaining images are
stored in the training batches in random order. However, some training batches may be
composed of more images from one class than others. Among that, the training batches
The ten classes that the CIFAR-10 consist of are represented by ten random
28
Figure 3.3: CIFAR-10 [31]
"The classes are completely mutually exclusive" [31]. For instance, the classes
automobiles and trucks do not have overlap between each other due to the fact that
sedans, SUVs, "things of that sort" are included in automobiles. While only the big trucks
are included in truck class, which means the pickup trucks do not belong to the truck
class.
29
3.2.2 Data Preparation
The data preparation is a process of cleaning raw data to make the data ready for
feeding the model. In our experiment, the CIFAR-10 dataset is used to test three
Nearest Neighbors (KNN), and Convolution Neural Network (CNN). Therefore, the
CIFAR-10 data goes through some processes to have suitable data for training the model
in order to obtain a high correct classification accuracy rate. The processes that are
• First, we used the resizing process to make sure that all images that are used in
our experiment have the same size, which is 32x32. It means after the resizing;
we will have three-dimensional colorful images with a size of 32x32, which are
need to worry about the data size of the images that will be added to the
experiment due to the fact that the resizing process will take care of all the
images.
• Second, the CIFAR-10 dataset is divided into two sets, which are the training set
and the testing set. Thus, in order to train data, we have vectorized the image by
using the reshape function, which means that the image will turn out to be a
vector with 1024 elements. The same process is applied for the whole training
and testing data. For instance, if we choose 2000 images for the training set, the
size of the whole data will be 2000x1024. Then, labels are saved, which are
30
• Third, we normalized the data by extracting the mean value of the whole data,
which helps us to stabilize the data (see figure 3.4). Moreover, this step helps us
to move the data to the center where has zero mean. Therefore, all of these
processes are applied for training and testing data to prepare the data for the
classification.
31
3.3 Classification Techniques
This section presents the three classification techniques that are used in the
experiment. These classification techniques were chosen because they have been used
in the previous work, which are principal component analysis (PCA) [3, 28, 29, 33], K-
nearest neighbors (KNN) [2,1], and convolutional neural network (CNN) [34,35]. The
algorithms that are chosen are the ones that are used for images and other kind of data
we provide the steps that are followed in the experiment when applying each of these
that is used in statistics data science. Karamizadeh et al. [28] defined the principal
PCA is a tool that is used for dimension reduction, which means minimize
multidimensional data to fewer dimensions (e.g., reducing the three dimensions image
to two dimensions image). PCA keeps the most useful data instead of whole data in
order to compare it and obtain the needed results with less amount of time. In order to
32
apply the PCA, there will be a need to calculate the Euclidean distance, covariance
Therefore, PCA is one of the most beneficial statistical technique that is used in
some applications, such as image compression and faces recognition due to its usability
the most useful features of each image and then representing the image that is wanted as
a linear combination. These Eigen images are acquired from applying the feature
extraction technique (see Figure 3.5). Then, the principal components analysis (PCA) of
the images in the training dataset is applied. Furthermore, a comparison of the images
is made; it based on the Euclidian distance of the Eigen images and the eigenvectors of
those Eigen images. According to the Euclidean distance formula, the distance between
two points in the plane which coordinates (x, y) and (a, b) is given by:
The eigenvectors are founded from the covariance matrix. Therefore, if this
distance is small enough, the image is matched correctly. Thus, if the distance is too
large, the image is not matched. In addition, the researchers in [28] applied the same
33
3.3.1.3 The Results
following results. Those results consist of the first nine eigen images (see Figure 3.5),
the matching results between the testing data and the training data, and the accuracy, as
is described below.
34
In our experiment, we applied the Principal Component Analysis (PCA) with four
different attempts that contain different numbers of training and testing data, as is shown
in Table 3.1. Different numbers for the training and testing data are chosen, and then
these numbers are multiplied by 10, which is the number of the classes. For instance, if
the number of the training data was 2,000, it means 200 images will be chosen from each
class and the same for the testing data. If the testing data was 400, 40 images would be
chosen from each class. Moreover, the number of training and testing data were
increased in each next attempt. The four attempts are described below, which are:
• In the first attempt, the number of the training data was 1,000, and the testing
data was 200. As a result, the correct classification accuracy rate with the PCA
• In the second attempt, the number of training and testing data were increased.
Therefore, the number of the training data was 2,000, and the test data was 400.
As a result, the correct classification accuracy rate with the PCA was 20% due
• In the third attempt, the number of training and testing data were increased.
Therefore, the number of the training data was 3,000, and the test data was 600.
As a result, the correct classification accuracy rate with the PCA was 17.78%
• In the fourth attempt, the number of training and testing data were increased.
Therefore, the number of the training data was 4,000, and the test data was 800.
As a result, the correct classification accuracy rate with the PCA was 19.31%
The results of applying the experiment showed the correct matching of the test
image from the testing data and the matched image from the training data (see Figures
3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, and 3.13). Moreover, in table 3.1, the results showed
the number of training data and the testing data that are chosen in each attempt. Also, it
shows the number of images that are matched correctly in each attempt. Besides, since
the dataset that we used is divided into two different sets, which are the testing data and
the training data, the results will show the correct matching between these two sets. For
instance, Figure 3.6 shows the test image and matched image for two different types of
Furthermore, Figures 3.7 shows the test image and matched image for two
different types of ‘Ship’ that are matched correctly. Figures 3.8 shows the test image
and matched image for two different images of ‘Automobile’ that are matched correctly.
Figures 3.9 shows the test image and matched image for two different images of ‘Cat’
different images of ‘Horse’ that are matched correctly. Figures 3.11 shows the test image
and matched image for two different images of ‘Dog’ that are matched correctly. Figures
3.12 shows the test image and matched image for two different images of ‘Bird’ that are
matched correctly. On the other hand, figures 3.12 and 3.13 show the results of wrong
Figure 3.6: Showing the test image and matched image for two different types of
‘Truck’
37
Figure 3.7: Showing the test image and matched image for two different types of
‘Ship’
Figure 3.8: Showing the test image and matched image for two different images of
‘Automobile’
38
Figure 3.9: Showing the test image and matched image for two different images of
‘Cat’
Figure 3.10: Showing the test image and matched image for two different images
of ‘Horse’
39
Figure 3.11: Showing the test image and matched image for two different images
of ‘Dog’
Figure 3.12: Showing the test image and matched image for two different images
of ‘Bird’
40
Figure 3.13: Showing wrong matching between the test image and matched image
Figure 3.14: Showing wrong matching between the test image and matched image
41
3.3.2 K- Nearest Neighbors (KNN)
learning algorithms that is mostly used for classification. The KNN is one of the oldest
techniques that is used in pattern classification [37]. It depends on the finding some of
the different distance metric that are used to determine the nearest neighbors [37]. KNN
classifies a data point based on how its neighbors are classified. Therefore, it stores all
Therefore, many studies have been conducted in order to test the KNN
classification technique as is shown in Chapter 2. Ahmed et al. [1] applied six different
classification algorithms in order to compare and test 500 files of each ten different file
types that are related to images, sounds, and documents, such as JPG, MP3, and PDF.
As a result, the highest accuracy was when they applied the k-nearest neighbor algorithm
42
3.3.2.2 The Experiment with K- Nearest Neighbors (KNN)
Moreover, there is a need to choose K, which is a parameter that refers to the number
of the nearest neighbor to include in the majority voting process. Thus, choosing the
right value of K is a process called parameter tuning, which is essential for getting better
accuracy.
Besides, in order to identify the nearest neighbors and produce the optimal results,
the type of the distance metric that provides the best result had to be determined, such as
• We select the K entries in our database which are closest to the new sample.
However, there are some disadvantages that may affect the results, which are:
• The main drawback of KNN is the complexity of searching the nearest neighbors
for each sample because it will be lots of elements in large datasets [32].
• There is a need to determine the value of the parameter K, which is the number
of the nearest neighbor. It is hard to apply that with the data that have high
dimensions.
• Computation cost is high due to the fact that there is a need to compute the
43
3.3.2.3 The Results
In our experiment, we applied the K- Nearest Neighbors (KNN) with the same four
numbers for training and testing data, that are used with the PCA. The four different
attempts are shown in Table 3.2. The number of training and testing data were increased
in each following attempt. The four attempts are described below, which are:
• In the first attempt, the number of the training data was 1,000, and the test data
was 200. As a result, the correct classification accuracy rate with the KNN was
39%.
• In the second attempt, the number of training and testing data were increased.
Therefore, the number of the training data was 2,000, and the test data was 400.
As a result, the correct classification accuracy rate with the KNN was 40%.
• In the third attempt, the number of training and testing data were increased.
Therefore, the number of the training data was 3,000, and the test data was 600.
As a result, the correct classification accuracy rate with the KNN was 38.19%.
• In the fourth attempt, the number of training and testing data were increased.
Therefore, the number of the training data was 4,000, and the test data was 800.
Unfortunately, the program is stopped due to the fact that there is a need for more
resources, such as much more memory, to test the number of images that had
chosen.
Therefore, figures 3.15, 3.16, 3.17, and 3.18 show the results when applying the
experiment with the KNN classification. Figure 3.15 shows the output of running the
KNN program that tests that data by using different types of distance metrics, such as
correlation, spearman, and hamming, in order to find the best match, while figure 3.16
44
shows the output of the minimum objective versus number of function evaluations.
Moreover, figure 3.17 shows the different distance metrics calculations of testing
best, or error. Thus, by having this information and the numbers of neighbors, the
program determines which one is the best. Figure 3.18 shows that the optimization is
completed. It presents the result of the best observed feasible point, which is when the
number of neighbors was 12 with correlation distance metrics while the best estimated
observed feasible point was when the number of neighbors was 16 with correlation
distance metrics.
45
Figure 3.15: The output of matching with different distence metrics
46
Figure 3.16: The output of function evaluations
47
Figure 3.17: The output of applying the KNN
48
Figure 3.18: KNN Results
49
3.3.3 Convolution Neural Network (CNN)
known algorithm that is used for deep learning. CNN is one type of machine learning
technique that is used to train a model with the way that classification tasks are executed
directly from different data types (e.g., video, text, images, or sound). CNN can be used
in many various applications based on computer vision and object recognition, such as
Figure 3.19: Deep Learning Workflow of Classifying Images by Using CNN [30]
CNN is considered as one of the most useful classification techniques that are used
in finding patterns in images to identify the content of the image and recognize it, such
as recognizing the faces, objects, and scenes. CNN eliminates the need for doing the
50
feature extraction manually due to the ability of CNN to recognize the image by
CNN is one of the techniques that provide an optimal architecture for object
detection and image recognition by finding image patterns (see Figure 3.19). CNN is
one of the most popular methods that is used in automated driving and facial recognition
development due to the evolution of GPUs and parallel computing. For instance, self-
driving cars have the ability to detect objects and define them, such as determining the
The three essential factors that make Convolutional Neural Network (CNN) one of
the most beneficial classification techniques for deep learning are described in [30],
which are:
• There is no need to do the feature extraction manually. The CNN identifies the
features directly.
• The ability to retain the CNNs with new recognition tasks is provided, which
CNN contains several layers, which are some different hidden layers that are
surrounded by an input layer and an output layer as is shown in Figure 3.20. Thus, these
layers can be tens or hundreds to detect various features of a specific image. Therefore,
51
increasing the number of the hidden layers obtains better results due to the intent of
Each training image at different resolutions is filtered by some filters. The filter
operation starts with simple features, such as edges and brightness, and then increase the
complexity level until reaching the unique features that defined the object. Moreover,
each convoluted image has an output, and this output is used as an input for the next
layer. Therefore, the feature identification and classification of video, sound, image, and
52
Figure 3.21: How the Convolution Neural Network (CNN) Works [30]
Some operations can be implemented by these layers in order to change data and
learn the specific features of the data as is shown in Figure 3.21. Therefore, three layers
• Convolution Layer: The input images are put by the convolution layer over a
group of convolutional filters. Particular features from the images are activated
by those filters.
• Rectified linear unit (ReLU) Layer: In this layer, the positive values are
preserved, and negative values are mapped to zero. This step sometimes can be
indicated as activation due to the fact that only the active features will be
transferred to the next layer. Therefore, this layer increases speed processing
It means that the number of parameters that the network needs to learn is reduced.
53
Repeating these operations over tens or hundreds of layers will provide a good level
classifications, we used the SoftMax classifier. Therefore, the result will be improved
and provided a high accuracy based of those features that the CNN produced.
In our experiment, we applied the Convolution Neural Network (CNN) with two
different attempts that contain different numbers of training and testing data as is shown
in Table 3.3. The number of training and testing data were increased in the following
• In the first attempt, the number of the training data was all data of four categories,
which is 20,000 images (5,000 images from each one of the ten classes), and the
testing data was 4,000 images (1,000 images from each one of the ten classes).
As a result, the correct classification accuracy rate while using CNN was
73.15%.
• In the second attempt, the number of training and testing data were increased.
The whole dataset is used, which means all the images of the ten different classes
in the CIFAR-10 of training and testing data (see Figure 3.22). Therefore, the
number of training data was 50,000 images, and the testing data was 10,000
images. As a result, the correct classification accuracy rate with CNN was
74.10%.
54
Figure 3.22: The code of including all categories of CIFAR-10 dataset when
applying CNN
Figure 3.23, 3.24, and 3.25 show part of the results of 7,500 iterations when applying
the CNN. The training of the data was on a single GPU, which is NVIDIA GeForce.
Those figures show the results of mini-batch accuracy, mini-batch loss, base learning
Figure 3.24 shows the first nine matching images between the testing data and the
training data with showing the name of the class on the top of each image. Besides, the
green color shows the correct match, while the red color shows the wrong match.
Therefore, eight out of the nine images are matched correctly. There are three images
of ‘Deer’ and one image for each one of these classes, which are Frog, Bird, Cat, and
airplane. There are two images of ‘Horse’, one is matched correctly while the other not.
55
Figure 3.23: The output of applying the CNN
56
Figure 3.24: The output of applying the CNN
57
Figure 3.25: The output of applying the CNN
58
Figure 3.26: Showing matching images between test image and matched image
In Figure 3.24, the first nine matching images between the testing data and the training
data with showing the name of the class on the top of each image. Besides, the green
color shows the correct match, while the red color shows the wrong match.
59
Chapter 4
The previous chapter described the research methodology, which represented our
work in detail. It presented the research framework, the research structure, the three
different classification techniques that are used, and their results. This chapter describes
the analyzing results, which compares the results of the three classification techniques.
Among the principal component analysis (PCA) we found that the best accuracy
when the number of the training data was 1,000 (100 from each class of the ten classes),
and the testing data was 200 (20 from each class of the ten classes); the accuracy was
24.44% with 44 images that are matched correctly. However, we found more correct
matches of 139 images when the number of the training data was 4,000 (400 from each
class of the ten classes), and the testing data was 800 (80 from each class of the ten
classes); the accuracy was 19.31%. Consequently, increasing the number of training and
testing data is not necessary leads to increase the accuracy, but it increased the number
of the images that matched correctly. In table 4.1, we can see that the correct
classification accuracy rate decreased from 24.44% to 17.78% and then increased
60
slightly to 19.31% when the number of the training data was 1000, 3000, and 4000 and
the number of testing data was 200, 600, and 800, respectively.
On the other hand, among the K-Nearest Neighbors (KNN) we found the best
accuracy when the number of the training data was 2,000 (200 from each class of the ten
classes), and the testing data was 400 (40 from each class of the ten classes); the accuracy
was 40%. In table 4.1, increasing the number of training and testing data may cause a
partial increasing. However, when we attempted to run the KNN with 4,000 images for
the training data and 800 images for the testing data, the program would not be able to
However, we believe this cause by the fact that the computer that is used was not
a high-performance computer, and it has a limited amount of memory. Thus, the limited
amount of memory tries to run and build all the results in memory, but it ran out of the
memory and crashed. Therefore, there are no mistakes with applying the KNN since
the computer worked good with other two classification techniques, which are principal
component analysis (PCA) and convolutional neural network (CNN). It means that the
limitation of the machine is the reason why the program stopped the running, and we
would not be able to obtain the results. Thus, if the code is run in a different machine
that has a high performance with huge memory space, the result may be much better.
component analysis (PCA) and the K-Nearest Neighbors (KNN), have the same number
of the training and testing data, but the results were different. The KNN produced better
results than PCA with all different combinations that are chosen for the training and
testing data (see Figure 4.1). For 1,000, 2,000, and 3,000 images of training data, the
61
KNN produced higher correct classification accuracy rate than PCA, which means the
KNN was above the PCA. Thus, if the computer was able to complete the run of 4,000
images for the training data and 800 images for the testing data, we can assume that the
KNN would also have provided better result because the results of the PCA were not
even better while using 1,000, 2,000, and 3,000 images for the training data.
45 40
39 38.16
40
35
30
24.44
ACCURACY
25 20
17.78
20
15
10
5
0
1000 IMAGES 2000 IMAGES 3000 IMAGES
Furthermore, among the convolutional neural network (CNN), the approach that
is followed to choose the number of training and testing data was different from the PCA
and the KNN. In CNN, we choose a specific number of categories in order to notify the
differences of the results between using all the training data of chosen categories and
62
As a result, when the number of the training data was 20,000 a total of four
categories (5,000 images from each class), and the testing data was 4,000 images (1,000
images from each class), the accuracy was 73.15%, while when the whole dataset of the
training and testing data is used the accuracy was 74.10 %. It means the number of the
training data was 50.000 images, and the testing data was 10,000 images (all the training
and testing data of the CIFAR-10 dataset). However, there were not many differences
between limited the categories of training data and using all the categories in the dataset.
Consequently, there was a slight improvement in the accuracy when we used the 20,000
Moreover, improving the results while using the convolutional neural network
(CNN) was due to using the Graphics Processing Unit GPU. It means that the
extraordinary performance of CNN took advantage of using the GPU, which enhances
the performance and produces the highest accuracy results. The CNN algorithm based
on the GPU and the code that is used in this experiment was built on a library. There are
two main types of GPUs, which are Nvidia and AMD. The NVIDIA GeForce has one
library for the GPU while the AMD has a different library. The code that is used was
written for that particular library, which is NVIDIA GeForce. It means that this code
will only work with a machine that has GeForce. Therefore, if the code is run in a regular
processor, it will not run due to the need to have NVIDIA GeForce.
As a result, the K-Nearest Neighbors (KNN) provided better results than the
principal component analysis (PCA), which means that KNN was more accurate than
PCA, while the convolutional neural network (CNN) did even better with classifying
these tiny images of CIFAR-10 dataset. Moreover, the highest accuracy with the PCA
63
was 24.44% when the training data was 1,000 images, and the test data was 200 images,
while the highest accuracy with the KNN was 40% when the training data was 2,000
images, and the test data was 400 images. Therefore, among all of these three
improving the accuracy by producing the highest correct classification accuracy with
74.10% when all the images in each category of the CIFAR-10 dataset are used.
Furthermore, the larger size of data that is tried did give us the best matching.
However, it might be better by using more powerful computer with reasonable time.
Therefore, running larger data with more powerful computer may be done in the future.
It means running this on machines with more GPUs to see how that may improve the
64
Table 4.1: The results of the three different classification techniques.
65
Chapter 5
order to identify the most accurate algorithm for classifying the tiny image of the CIFAR-
10 dataset. Therefore, the best results that are achieved was when we used the
algorithm to use since it produced the best results matching approximately 74.10%
among the other two classification techniques that are used in this research, which are
As we discussed in section 2.2, there was earlier work [33] that also examined
the CIFAR-10 dataset with some different classification techniques, such as principal
component analysis (PCA), K-Nearest Neighbors (KNN), and linear Support Vector
Machines (SVM). As a result, the researchers in [33] used the KNN algorithm, and their
result was 29.5%, while the KNN in our experiment provided 40% accuracy. It means
that our KNN produced a much better correct classification accuracy rate than what the
researcher presented in [33]. Furthermore, CNN produced the best results in our
experiment, and the results were 74.10%, whereas the researchers in [33] used the SVM,
and the SVM only produced 39.6%. Thus, it appears that CNN is the better algorithm
to use than the SVM due to the higher matching results and accuracy rate that the CNN
produced.
66
Table 5.1: A comparison of our results with Norko’s results [33] while using some
classification techniques.
The larger size of data that is tried did give us the best matching. Therefore, In
the future, it might be better by using a more powerful computer at a reasonable time.
Finding more resources that provide high performance with a larger amount of data may
be considered as one of the most critical steps that should be followed in future work.
Therefore, running larger data with a more powerful computer may be done in the future.
It means running this on machines with more GPUs to see how that may improve the
performance in order to make the comparison and provide high correct classification
accuracy rate.
Furthermore, we will try to use some different feature reduction and feature
extraction techniques in order to keep the most useful features of the actual data. Each
method will produce different features and that may improve the matching results due to
67
the fact that those methods minimize the number of features in training set to a smaller
and provide much accurate results. Moreover, we will try to apply the same
classification techniques that have been examined in this research with other datasets in
order to identify how they will perform. Therefore, we will try other different
68
Chapter 6
6.1 Bibliography
[1] Ahmed, I., Lhee, K. S., Shin, H. J., & Hong, M. P. (2011, January). Fast content-
based file type identification. In IFIP International Conference on Digital
Forensics (pp. 65-75). Springer, Berlin, Heidelberg.
[2] Gopal, S., Yang, Y., Salomatin, K., & Carbonell, J. (2011, December). Statistical
learning for file-type identification. In 2011 10th international conference on
machine learning and applications and workshops (Vol. 1, pp. 68-73). IEEE.
[3] Amirani, M. C., Toorani, M., & Mihandoost, S. (2013). Feature‐based Type
Identification of File Fragments. Security and Communication Networks, 6(1), 115-
128.
[4] CaoD, Luo J, YinM,Yang H. Feature selection based file type identification
algorithm. In 2010 IEEE International Conference on Intelligent Computing and
Intelligent Systems (ICIS), Xiamen, China, 2010; 58–62.
[5] Al Fahdi, M., Clarke, N. L., & Furnell, S. M. (2013, August). Challenges to digital
forensics: A survey of researchers & practitioners attitudes and opinions. In 2013
Information Security for South Africa (pp. 1-8). IEEE.
[6] Quick, D., & Choo, K. K. R. (2014). Impacts of increasing volume of digital
forensic data: A survey and future research challenges. Digital Investigation, 11(4),
273-294.
[7] Damshenas, M., Dehghantanha, A., & Mahmoud, R. (2014). A survey on digital
forensics trends. International Journal of Cyber-Security and Digital
Forensics, 3(4), 209-235.
[8] Dezfoli, F. N., Dehghantanha, A., Mahmoud, R., Sani, N. F. B. M., & Daryabar,
F. (2013). Digital forensic trends and future. International Journal of Cyber-Security
and Digital Forensics, 2(2), 48-77.
[9] Meghanathan, N., Allam, S. R., & Moore, L. A. (2010). Tools and techniques for
network forensics. arXiv preprint arXiv:1004.0570.
69
[10] Khanikekar, Sandeep Kumar. "Web Forensics." PhD diss., Texas A&M
University-Corpus Christi, 2010.
[11] Guidance Software, “EnCase Forensic v7”, Guidance Software. Retrieved from
http://www.guidancesoftware.com/encase-forensic.htm [Accessed 21/5/13].
[14] Pilli, E. S., Joshi, R. C., & Niyogi, R. (2010). Network forensic frameworks:
Survey and research challenges. digital investigation, 7(1-2), 14-27.
[15] Kieseberg, P., Schrittwieser, S., Mulazzani, M., Huber, M., & Weippl, E. (2011,
September). Trees cannot lie: Using data structures for forensics purposes. In 2011
European Intelligence and Security Informatics Conference (pp. 282-285). IEEE.
[16] Khanuja, H. K., & Adane, D. S. (2014, September). Forensic analysis for
monitoring database transactions. In International Symposium on Security in
Computing and Communication (pp. 201-210). Springer, Berlin, Heidelberg.
[18] Bertino, E., & Sandhu, R. (2005). Database security-concepts, approaches, and
challenges. IEEE Transactions on Dependable and secure computing, (1), 2-19.
[19] Berger, U. (2011). CSI/FBI Computer Crime and Security Survey 2011-
2012. CSI Computer Security Institute.
[20] Raghavan, S. (2013). Digital forensic research: current state of the art. CSI
Transactions on ICT, 1(1), 91-114.
[21] Khanuja, H. K., & Adane, D. S. (2011). Database security threats and challenges
in database forensic: A survey. In Proceedings of 2011 International Conference on
Advancements in Information Technology (AIT 2011), available at http://www.
ipcsit. com/vol20/33-ICAIT2011-A4072. pdf.
70
[22] Khanuja, H. K., & Adane, D. S. (2012). A framework for database forensic
analysis. Computer Science & Engineering: An International Journal (CSEIJ), 2(3),
27-41.
[24] Khanuja, H. K., & Adane, D. S. (2014, September). Forensic analysis for
monitoring database transactions. In International Symposium on Security in
Computing and Communication (pp. 201-210). Springer, Berlin, Heidelberg.
[27] Hunt, R., & Zeadally, S. (2012). Network forensics: an analysis of techniques, tools,
and trends. Computer, 45(12), 36-43.
[28] Karamizadeh, S., Abdullah, S. M., Manaf, A. A., Zamani, M., & Hooman, A.
(2013). An overview of principal component analysis. Journal of Signal and Information
Processing, 4(03), 173.
[29] Meng, J., & Yang, Y. (2012). Symmetrical two-dimensional PCA with image
measures in face recognition. International Journal of Advanced Robotic Systems, 9(6),
238.
[30] Convolutional Neural Network: 3 things you need to know (n.d.). Retrieved from
https://www.mathworks.com/solutions/deep-learning/convolutional-neural-
network.html#matlab
[31] Krizhevsky, A., & Hinton, G. (2009). Learning multiple layers of features from tiny
images (Vol. 1, No. 4, p. 7). Technical report, University of Toronto.
[33] Norko, A. (2015). Simple image classification using principal component analysis
(PCA). GMU Volgenau School of Engineering, Fairfax, VA, USA, 9.
71
[34] Vulinović, K., Ivković, L., Petrović, J., Skračić, K., & Pale, P. (2019, January).
Neural Networks for File Fragment Classification. In 42nd International Convention for
Information and Communication Technology, Electronics and Microelectronics-
MIPRO.
[35] Al-Saffar, A. A. M., Tao, H., & Talab, M. A. (2017, October). Review of deep
convolution neural network in image classification. In 2017 International Conference
on Radar, Antenna, Microwave, Electronics, and Telecommunications (ICRAMET) (pp.
26-31). IEEE.
[36] Chen, Q., Liao, Q., Jiang, Z. L., Fang, J., Yiu, S., Xi, G., ... & Liu, D. (2018, May).
File Fragment Classification Using Grayscale Image Conversion and Deep Learning in
Digital Forensics. In 2018 IEEE Security and Privacy Workshops (SPW) (pp. 140-147).
IEEE.
[37] Weinberger, K. Q., Blitzer, J., & Saul, L. K. (2006). Distance metric learning for
large margin nearest neighbor classification. In Advances in neural information
processing systems (pp. 1473-1480).
72