## 4 Results and Discussion  
We performed our experiments with the configuration described in the previous section. We describe the performance of our model in confusion matrixes; five confusion matrixes for five folds  
Figure 6: Visualizing learned convolutional filters: (**a**) Convolutional filters of CONV1; (**b**) Convolutional filters of CONV2; (**c**) Convolutional filters of CONV3; (**d**) Convolutional filters of CONV4. Figure 7: Visualization of feature maps from four CONV blocks (denoted CONV1-9: channel number 9 on CONV block 1). are shown in Figure 8. In each confusion matrix, each column represents the instances in a predicted class, and each row represents the instances in the actual class. Values on the matrix diagonal indicate correct prediction, and the values outside the matrix diagonal show incorrect prediction. A summary of the experimental results is given in Table 4. We obtained an average accuracy of 99.5%. In all five folds, a classification accuracy of 100% was achieved for the sky, patterned clouds, and thick dark cloud classes. Fold 5 achieved an accuracy of 100% for all classes. Figure 8: Fold cross validation results expressed in confusion matrixes: (**a**) Confusion matrix showing results of test on fold 1; (**b**) Confusion matrix showing results of test on fold 2; (**c**) Confusion matrix showing results of test of fold 3; (**d**) Confusion matrix showing results of test on fold 4; (**e**) Confusion matrix showing results of test on fold 5. Here we discuss the effect of some parameters on the proposed model during the training, and we compare our results to the previous methods. Two hyper-parameters are considered in our experiments: the learning rate of the optimizer and the batch size. The effect of the number of models in the ensemble is also discussed. One of the most important hyper-parameters of neural networks is the learning rate, which controls how quickly a neural network model learns a problem; Figure 9 shows the effect of learning rate parameters on training and validation history. With a learning rate of 0.001, oscillating problems still occur in both training and validation curves. The reason is that this learning rate is still large, it is possible to make large weights, and then cause oscillation. In Figure 9, the oscillation is seen clearly at the 415 th epoch. However, when we reduce the learning rate from 0.001 to a rate of 0.0001, the performance of both the training and the validation improve significantly and are very stable. Figure 10 demonstrates the effect of batch size on the training and validation history. With a big batch size, such as the batch size of 64, there are some small oscillating problems in the early epochs, and after a long time of training, these oscillations are eliminated. With a small batch size, such as the batch size of eight, the training process is smooth and converges faster. In summary, a smaller batch size produces a faster training process, but it does not have much effect on the accuracy. \begin{table}
\begin{tabular}{c c c c c} \hline \hline
**No.** & **Fold** & **Accuracy** & **F1 Score** & **Cohen’s Kappa** \\ \hline
1. & Fold 1 & 0.994 & 0.992 & 0.992 \\
2. & Fold 2 & 0.994 & 0.990 & 0.992 \\
3. & Fold 3 & 0.994 & 0.990 & 0.992 \\
4. & Fold 4 & 0.994 & 0.994 & 0.992 \\
5. & Fold 5 & 1.000 & 1.000 & 1.000 \\
6. & Average & 0.995 & 0.993 & 0.993 \\ \hline \hline \end{tabular}
\end{table} 
Table 4: Experiment results. Figure 9: Effect of learning rate: (**a**) Training accuracy plot; (**b**) Validation accuracy plot; (**c**) Training loss plot; (**d**) Validation loss plot. To evaluate the effect of the number of models in the ensemble, we created different ensembles with the number of models ranging from one to ten and evaluated the performance of each ensemble on the test set. We also evaluated the performance of each of the ten standalone models on the test set.