## 2 Methodology  
### CNN Model Design  
In deep learning, CNNs are the most common networks used with image classification. CNNs were inspired by the human visual system proposed by [PERSON] [28] and [PERSON] et al. [29]. They are state-of-the-art approaches for pattern recognition, object detection, and many other image applications. In particular, in 2012, the champion of the ImageNet Large Scale Visual Recognition Challenge 2012 competition [30, 31] was a deep CNN solution by [PERSON] et al. [21] which demonstrated the great power of deep CNNs.  
CNNs are very different from other pattern recognition algorithms in that CNNs combine both feature extraction and classification [32]. Figure 1 shows an example of a simple schematic representation of a basic CNN. This simple network consists of five different layers: an input layer, a convolution layer, a pooling layer, a fully-connected layer, and an output layer. These layers are divided into two parts: feature extraction and classification. Feature extraction consists of an input layer, a convolution layer, and a pooling layer, while classification consists of a fully-connected layer and an output layer. The input layer specifies a fixed size for the input images, which is resized if needed. Then the image is convolved with multiple learned kernels using shared weights by convolution layer. Next, the pooling layer reduces the image size while trying to maintain the contained information. The outputs of the feature extraction are known as feature maps. The classification combines the extracted features in the fully-connected layers. Finally, there exists one output neuron for each object category in the output layer. The output of the classification part is the classification result.  
In real applications, the feature extraction part contains many convolution and pooling layers, and the classification part also contains many fully connected layers. Common CNN architectures have the following pattern [33]:  
\[IN=>[CONV=>POOL?]*M=>[FC]*N=>OUT, \tag{1}\]  
where \(IN\) denotes the input layer, \(CONV\) denotes the convolution layer, \(POOL\) denotes the pooling layer, \(FC\) denotes the fully connected layer, and \(OUT\) denotes the output layer. \(M\) and \(N\) are integer numbers, \"*\" indicates repetition and \"?\" indicates optional. The activations were not mentioned, but by default the activation always follows the \(CONV\) and \(FC\) layers. In this research, we chose four blocks of \(CONV\) layers and \(POOL\) layers in the feature extraction part and three \(FC\) layers in the classification part, i.e., \(M\) = 4 and \(N\) = 3. The architecture of the proposed CNN model is shown in Figure 2.  
Figure 1: Schematic diagram of a basic convolutional neural network (CNN) architecture [26].  
Figure 2: The proposed CNN model architecture.  
The detailed parameters of the proposed CNN model architecture are shown in Table 1. We applied \(3\times 3\) kernel sizes for all CONV layers and \(2\times 2\) window sizes for the all POOL layers. We use 32 filters for the first CONV layer, 64 filters for the second and third CONV layers and 16 filters for the fourth CONV layer. We use 784 neurons for the first FC layer and 16 neurons for the second FC layer. We apply dropout [34] to the classification part. We specify a dropout probability of 0.25 between the first and the second FC layers, and a dropout probability of 0.5 between the second and the third FC layers.