# Hybrid CNN-NLP Model for Detecting LSB Steganography in Digital Images
## 4 Results and Comparison with Existing Models
### Evaluation of the Proposed Model  
To evaluate the performance of the proposed CNN-NLP model, multiple experiments were conducted using data subsets of 5000, 7000, 9000, 10,000, and 12,500 images per class (_With-Steganography_ and _Without-Steganography_). In all cases, 80% of the images were used for training and the remaining 20% for validation, ensuring a stratified and random distribution. As an initial part of the performance analysis, Figure 3 presents the evolution of accuracy and the loss function over the training epochs, corresponding to the experiments with 7000, 9000, 10,000, and 12,500 images per class. This graph illustrates how, with a larger dataset, the model exhibits more progressive and stable convergence, characterized by noticeably smoother curves and fewer oscillations. This behavior confirms that a larger volume of data significantly contributes to improving the robustness and stability of the learning process and the generalization capacity of the model. Performance evaluation was carried out using classic binary classification metrics: accuracy corresponds to the proportion of correctly classified images out of the total evaluated; precision indicates how many of the images were correctly predicted to be _With-Steganography_, reducing false positives; recall reflects the model's ability to identify all true cases, avoiding false negatives; and F1-score balances precision and sensitivity, representing an integrated performance measure, especially useful in balanced sets. Their definitions are presented in Equations (15)-(18). \[\text{Accuracy} = \frac{TP+TN}{TP+TN+FP+FN} \tag{15}\] \[\text{Precision} = \frac{TP}{TP+FP}\] (16) \[\text{Recall} = \frac{TP}{TP+FN}\] (17) \[\text{F1} = 2\frac{\text{Precision}\cdot\text{Recall}}{\text{Precision}+ \text{Recall}} \tag{18}\]  
In Equations (15)-(18), \(TP\) represents the true positives, \(TN\) the true negatives, \(FP\) the false positives, and \(FN\) the false negatives. Table 1 presents the average results obtained for each experiment based on the number of images per class employed. \begin{table}
\begin{tabular}{c c c c c c} \hline \hline
**No. of Images per Class** & **Accuracy (\%)** & **Precision (\%)** & **Recall (\%)** & **F1-Score (\%)** & **ROC AUC** \\ \hline
5000 & 98.20 & 98.20 & 98.26 & 98.20 & 0.9826 \\ \hline
7000 & 98.89 & 98.93 & 99.05 & 99.12 & 0.9894 \\ \hline
9000 & 94.17 & 94.17 & 94.78 & 94.15 & 0.9417 \\ \hline
10,000 & 99.35 & 99.35 & 99.36 & 99.35 & 0.9941 \\ \hline
1 Figure 3: Evolution of accuracy and loss during training: (**a**) Evolution of loss during training employing 7000 images per class. (**b**) Evolution of accuracy during training using 7000 images per class. (**c**) Evolution of loss during training employing 9000 images per class. (**d**) Evolution of accuracy during training using 9000 images per class. (**e**) Evolution of loss during training employing 10,000 images per class. (**f**) Evolution of accuracy during training using 10,000 images per class. (**g**) Evolution of loss during training employing 12,500 images per class. (**h**) Evolution of accuracy during training using 12,500 images per class. Figure 4 shows the confusion matrix obtained corresponding to the experiments with 7000, 9000, 10,000, and 12,500 images per class. For the 5000-image dataset, the model achieved an accuracy of 98.20%, with 98.20% precision and an F1-score of 98.20%. Although the classification results were already solid, some variability in the training curves suggests the model was still learning to generalize under limited-data conditions. In the 7000-image experiment, performance improved significantly: the model achieved an accuracy of 98.89%, with 98.93% precision and an F1-score of 99.12%. This suggests a more robust learning process with reduced error rates and earlier convergence. In the case with 9000 images per class, the performance decreased slightly.