# Texture and Materials Image Classification Based on Wavelet Pooling Layer in CNN
## 5 Experimental Results
### Model Training Results and Analysis
#### 5.1.2 Image Classification with Textures DTD  
The second dataset we use is DTD, with 47 classes of different textures. Note that it has only 120 images for each category, which may cause overfitting in the model. Thus, the proposed method is also a solution when you have a small dataset. In this case, we performed two experiments by varying the training optimizer. First, we use SGD as the optimizer. Table 4 shows that our proposed DWTP method using its DWTaP configuration outperforms all the methods. In addition, we retain similitude in all three sets: training (37.40%), validation (31.17%), and test (34.16%). The DWTaP model obtained with this configuration is shown in Figure A4 of Appendix B, which shows the correlation of each class with its actual and predicted label. Based on this result, we decided to use the following optimizer to improve classification performances.  
In the second experiment, we use an Adam-an extension of stochastic gradient descent. Table 5 shows that our proposed DWTaP method and MaxP exhibit the best classification performance on all three data sets. In this case, we consider a change in the optimizer that resulted in an essential factor for learning MaxP. Figure 4 shows the learning curves of the pooling methods for DTD. Here, MaxP shows a smooth learning decay and similar behavior between the two sets. It also resists overfitting, managing to have good accuracy performance. AveP and DWTP maintain a consistent learning progression, and their validation sets progress at a similar rate but does not resist overfitting. The learning rate of DWTaP resists overfitting in both sets, achieving one of the best accuracy performances. DWTdP shows a slow learning behavior; thus, the learning rate does not improve after epoch 28.  
\begin{table}
\begin{tabular}{l l l l l l l l} \hline \hline \multirow{2}{*}{**Method**} & \multicolumn{1}{c}{
\begin{tabular}{c} **Trainable** \\ **Params** \\ \end{tabular} } & \multirow{2}{*}{**Loss**} & \multirow{2}{*}{**Acc**} & \multirow{2}{*}{**Val\_Loss**} & \multirow{2}{*}{**Val\_Acc**} & \multirow{2}{*}{**Test\_Loss**} & \multirow{2}{*}{**Test\_Acc**} \\ \hline MaxP & 12,344,831 & 2.5715 & 0.3176 & 2.9217 & 0.2480 & 2.8203 & 0.2742 \\ AveP & 12,344,831 & 1.7849 & 0.5024 & 2.4606 & 0.3766 & 2.3937 & 0.3865 \\ DWTP & 48,748,031 & 1.8842 & 0.4817 & 2.4958 & 0.3685 & 2.4415 & 0.3924 \\ DWTaP & 12,344,831 & 2.3214 & 0.3740 & 2.7459 & 0.3117 & 2.6390 & 0.3416 \\ DWTdP & 36,613,631 & 3.5035 & 0.1069 & 3.4968 & 0.1136 & 3.4817 & 0.1288 \\ \hline \hline \end{tabular}
\end{table}
Table 4: Performance of pooling methods on DTD - SGD optimizer.  
\begin{table}
\begin{tabular}{l l l l l l l l} \hline \hline \multirow{2}{*}{**Method**} & \multicolumn{1}{c}{
\begin{tabular}{c} **Trainable** \\ **Params** \\ \end{tabular} } & \multirow{2}{*}{**Loss**} & \multirow{2}{*}{**Acc**} & \multirow{2}{*}{**Val\_Loss**} & \multirow{2}{*}{**Val\_Acc**} & \multirow{2}{*}{**Test\_Loss**} & \multirow{2}{*}{**Test\_Acc**} \\ \hline MaxP & 545,206 & 0.2741 & 0.9069 & 0.3058 & 0.8990 & 0.3365 & 0.8913 \\ AveP & 545,206 & 0.3220 & 0.8906 & 0.3296 & 0.8932 & 0.3493 & 0.8850 \\ DWTP & 1,558,966 & 0.1958 & 0.9330 & 0.3181 & 0.9020 & 0.3461 & 0.8946 \\ DWTaP & 545,206 & 0.2568 & 0.9126 & 0.2970 & 0.9067 & 0.3208 & 0.8970 \\ DWTdP & 1,221,046 & 0.3678 & 0.8735 & 0.4040 & 0.8701 & 0.4207 & 0.8672 \\ \hline \hline \end{tabular}
\end{table}
Table 3: Performance of pooling methods on CIFAR-10.