## 4 Simulation Results and Analysis
### Simulation Results and Discussions
Hence, it can be concluded from Figure 4 that a batch size of 50 is appropriate as it has demonstrated an asymptotic behavior, where further increasing the batch size provides a very minor or no boost in the MSE score. At the same time, the R\({}^{2}\) score of this regression model is also evaluated to observe the predictive accuracy of this proposed scheme. From Figure 4, the proposed DNN-UC can achieve the best R\({}^{2}\) value, about 0.98 when a batch size of 50 is used at 50 training epochs, which corresponds to that achieved for MSE performance. In other words, the DNN-UC is able to achieve nearly 0.98 of R\({}^{2}\) which implies that the DNN-UC is a good model to characterize all the variations in response to the clustering output around its mean value. The effects of the learning rate and numbers of epochs on the efficiency of the DNN-UC are investigated in Figure 5. In this simulation, 70,000 data samples at a batch size of 50 (optimal batch size) are used. As anticipated, it is observed that the best throughput of 8.8 Mbps can be obtained when the learning rate is fixed at 0.001 while using 50 epochs. At this slow learning rate, the DNN-UC usually requires more training epochs given the smaller changes made to the weight update, leading to a smaller loss. When the learning rate is increased, it is perceived that the throughput drops. At the learning rate of 0.1,  
Figure 4: Evaluation of MSE of the DNN-UC using different batch sizes for different numbers of epochs. the throughput of 6 Mbps can be obtained if the training epoch is 50, which is a drop of 32%. This degradation is mainly due to the large weight update in which the optimizer may overshoot the optimal weight values. The cluster formation of a NOMA system is highly dependent on the users' channel gains and their powers where fine-grained weight updates are essential in the context of UC optimization. Another important hyper-parameter would be the length of training data samples because we need to ensure that the DNN-UC is sufficiently trained to operate efficiently during the testing phase. As the cluster formation in the DNN-UC exhibits an exponentially increasing complexity with the number of users and subcarriers, the variations in terms of cluster formation and power allocation may grow tremendously with a slight increase in the number of users and subcarriers. Therefore, it is essential to find out the sufficient length of training data samples that can facilitate the DNN-UC to function satisfactorily. Figure 6 illustrates the throughput attainments with respect to different training sample lengths for different network sizes at the learning rate of 0.001. As expected, the throughput increases with the growing number of users, but the rising rate becomes slower as the bandwidth resource (number of subcarriers) is not increased accordingly. Among the compared sample lengths, it is seen that the DNN-UC can acquire the best throughput if it is trained with 70,000. Other sample lengths below 70,000 degrade the efficiency of the DNN-UC as the model is not adequately trained to capture the relationships of the cluster formation and the input features. Increasing the training samples beyond 70,000 may not yield a better performance because the excess number of data samples leads to overfitting of the model. In such a scenario, the DNN attempts to learn too much in the training data samples along with the noise from the samples, which results in poorer performance. Figure 5: Throughput performance achieved by the DNN-UC at different learning rates for different numbers of epochs. The number of hidden layers plays a vital role in learning the cluster formation for the NOMA system. The DNN-UC is simulated with different numbers of hidden layers and their performance plots in terms of MSE and throughput versus the number of epochs are presented in Figure 7. For the case of 50 epochs, the best throughput performance of 8.7 Mbps and the best MSE of 0.2 can be obtained with four hidden layers.