## 2 Materials and Methods
### Convolutional Neural Networks  
Convolutional neural networks are widely used across various domains due to their robust performance based on a deep feedforward architecture, reducing the number of parameters needed, smooth training, and expandability [30]. While there are specific CNN architectures that have been repeatedly used, all CNNs follow the same general structure that allows them to be easily modified, trained, and implemented depending on the desired application and restrictions presented [31,32]. CNNs have an intrinsic ability to automatically extract features and classify them, streamlining the typical extraction/classification work required in other models [33]. CNN operates by passing images through three sections that include an input layer, a collection of hidden layers, and an output layer. The hidden layers can be further segregated into specific components that consist of a (1) convolution layer, (2) pooling layer, and finally (3) a fully connected layer, which handles the classification.  
(1) Convolution Layer (CL)  
The first hidden layer is the CL, which defines the operation of the entire CNN by extracting the features present based on the composition of its filters. The filter, commonly called a kernel or a weight vector, is a defined set of learnable parameters that is convoluted with a restricted area of the input that is dimensionally equivalent. This 2D convolution is repeated multiple times as the kernel slides along the length and width of the image. The frequency of the convolutions is controlled by the stride parameter, which defines the number of pixels the kernel shifts in each step. The output is then combined with an activation function that increases the non-linearity of the network. One of the most used functions is the rectified linear unit (ReLU), as it prevents the exponential growth in computational costs required to implement the CNN.  
(2) Pooling Layer (PL)  
The next consecutive layer in the CNN is the PL, which works to reduce the size of feature maps and, in turn, reduce the overall computation time of the network. Since the location of a detected feature is not as relevant once identified [34], PLs, or rather sub/down-sampling layers, can reduce the parameters of the data by solely keeping meaningful information by implementing a specified pooling function (e.g., max, mean, and sum) determined by the type of PL. The function is applied using the sliding kernel method, similar to that of the CL. One of the most used pooling methods is max pooling.  
(3) Fully Connected Layer (FC)  
The next consecutive layer is the FC layer. Defined by un-looped nodes, the FC is a feedforward layer that converts the condensed data layer into a 1D feature map. The map is calculated by taking the dot product of the weight matrix and input vector. A SoftMax function can also be commonly found in this layer.  
The CNN used in this study consists of two CLs, two PLs, one flattened, and two FC layers. The CLs have the same architecture, both using a kernel of size 3 \(\times\) 3 and stride 1. A ReLU activation function is implemented using the output. A max pooling layer of size 2 \(\times\) 2 follows immediately after each CL to reduce the spatial dimension of the feature map. After the two sequential CL, the output is flattened, and two dense FC layers are used. The first FC layer consists of 128 ReLU-activated nodes and the second consists of 2 SoftMax-activated nodes. The structure is summarized in Figure 2.