## 3 Materials and Methods
### Convolutional Neural Network (CNN) Architectures  
CNNs are extensively employed for tasks such as image classification, identification, object detection, and captioning [42]. Their effectiveness in tackling complex image-processing challenges stems from the direct application of convolution operations on images, which helps extract shared patterns and features that underpin accurate predictions [22]. Additionally, CNNs decentralized image data distribution, enabling the rapid extraction of visual features from extensive datasets. Their design, which features sparse connectivity, spatial subsampling, and weight-sharing, allows them to tackle challenging regression tasks and non-linear problems efficiently [22,32]. CNNs comprise various layers, including pooling layers, normalization layers, convolutional layers, fully connected layers, common hidden layers, and activation functions. Additional layers may be implemented in more complex simulations [22]. In image classification, CNNs have achieved a revolutionary level of performance [43]. Depending on specific requirements, filters may be applied in the convolution layer. Feature maps are generated by convolving these filters with source images and subsequently manipulating the results using nonlinear activation functions. The primary advantage of employing CNNs over their competitors is their ability to identify critical characteristics without the need for human intervention [42]. These critical characteristics can include edges, corners, and textures in the case of image classification. Successful examples of CNN models include AlexNet, ResNet, and VGG. Convolution operations in CNNs generally rely on two-dimensional layers equipped with trainable kernels or filters, often including an optional bias term for each kernel. The kernels move over the input image in \"strides\" in these layers. The stride parameter is pivotal; more considerable strides cause the kernel to cover more area with each move, thereby reducing both the output dimensions and the total number of convolution operations [44]. At every step, the kernel multiplies with the corresponding section of the input, and then the bias is added to form a feature map that captures the convolution's outcome. These feature maps are subsequently passed through an activation function before moving to the next layer [44]. Beyond convolution, CNN architectures also employ two-dimensional sub-sampling layers that utilize fixed, non-learnable kernels (or windows) to reduce the spatial dimensions of the input features. This down-sampling step decreases the number of features and minimizes the network's reliance on the exact spatial positioning of those features [45]. Standard pooling techniques include max pooling and average pooling, which compute the maximum or average values within each window to produce a smaller, more manageable feature map. The output size of these pooling layers is determined similarly to that of the convolutional layers. In certain implementations, specific trainable parameters are introduced in the pooling layers to enhance the learning process [44] further. Furthermore, CNNs typically conclude with fully connected layers, which come into play after the convolution and pooling stages. These layers--integral to the network's final decision-making--consist of several hidden layers, such as an activation function, an output layer, and a loss function. They multiply the incoming features with trainable weight vectors, add a bias, and then sum the results to yield the final output [44]. Like those in convolution layers, activation functions are used to pass the output forward. CNNs use dropout regularization to prevent overfitting, a technique that randomly sets some neurons to zero during backpropagation and forward learning. This simple method helps ensure the neural network generalizes well, maintaining its ability to perform accurately on new data. CNNs were implemented as reliable methodologies in our investigation.