## 4 Experimental Results  
Experimental studies within the scope of this research were conducted using two newly curated datasets derived from the original dataset obtained from the Kaggle platform. Two experimental studies are conducted, one with a dataset consisting of 157,572 images of \(50\times 50\times 3\) dimensions and the other with 1116 images of \(50\times 50\times 3\) dimensions. Using deep learning methods, a custom-built CNN model and VGG16, MobileNet, and DenseNet201 models were used to classify the datasets. For a fair classification process, the same CNN architecture was employed in both experimental studies as seen in Figure 4. Two consecutive convolutional (Conv2D) layers are employed, followed by a max pooling (MaxPool2D) layer, which reduces the dimensionality of the feature map by half, thereby enhancing the density of critical features. Then, to ensure stability during the training process, batch normalization is applied post-convolution, normalizing the distribution of data from the preceding layers. To reduce the risk of overfitting and improve the model's generalizability, a dropout layer was added, randomly deactivating neurons during training. Subsequently, a second block of convolutional and pooling layers is implemented. The resulting deep features are then flattened by a flatten layer. The model architecture continues with the addition of five fully connected (dense) layers, each followed by a batch normalization and dropout layer to maintain robust learning and reduce the risk of overfitting. In particular, the weight of the final dense layer is optimized using the PSO algorithm. This process begins by extracting and flattening the current weights of the model's final dense layer, and then the PSO algorithm optimizes these weights. Regularization techniques such as dropout and batch normalization were incorporated in the architecture of the custom-built CNN model and in the customized layers of the transfer learning models. This method aimed to increase the generalization ability of the models. Dropout helped reduce overfitting by randomly deactivating neurons during train  
Figure 4: Architecture of custom-built CNN model within the scope of experimental studies. ing, while batch normalization ensured more stable learning by normalizing intermediate outputs. In this way, excessive dependencies were prevented during the learning process of the model. In addition, the training process was terminated by applying the early stopping technique when the validation loss did not improve for 10 epochs. These strategies were effectively used to optimize the training process of the model and minimize overfitting. By using this strategy, the training process was focused on periods that contributed to meaningful learning while avoiding overfitting to the training dataset. Specifically, early stopping restored the model's weights from the epoch where the validation loss was minimal. This allowed us to use the most generalizable version of the model rather than one trained for unnecessary additional epochs. This approach was particularly beneficial given computational constraints, as it optimized resource usage while maintaining robust model performance. All experimental studies conducted as part of this research were performed on a computer equipped with an 11 th generation Intel(r) Core(tm) i7-11800H processor, 16 GB of RAM, and an NVIDIA GeForce RTX 3060 6 GB graphics card. The Anaconda platform (version 23.1.0) was used in the experiments, and the Jupyter Notebook environment in Anaconda was employed for conducting the analyses. The programming language used was Python 3.9.16. The primary libraries used in the experiments were scikit-learn 1.2.0, CUDA Toolkit 11.3.1, cuDNN 8.2.1, Keras 2.6.0, and TensorFlow (including TensorFlow-GPU) 2.6.0. In this section, the results of the deep learning models implemented within the scope of this study are shown.