## 4 Results  
### Datasets and Empirical Settings  
The RADIOML 2016.10A dataset (2016A) [3] was generated in GNU Radio using the GNU Radio channel model. The 2016A dataset contains 220,000 signal samples with a category number of 11. Considering that the AM-SSB signal in the dataset may be channel noise, we removed it from the dataset. In addition, existing studies have shown that the average accuracy of existing models is below 20% when the SNR is below \(-8\) dB [43]. Therefore, we chose an SNR range of \(-8\) dB to 18 dB for the data, and the censored dataset, therefore, contains 140,000 signal samples. To control the degree of data imbalance, we used an imbalance factor \(\beta\) used in [44] to describe the severity of the class imbalance problem with the number of training session samples for the most frequent class and the least frequent class, e.g., \(\beta=N_{max}/N_{min}\). The imbalance factors we use in experiments are 10, 20, and 50. Table 1 shows the composition of each dataset. Each dataset consists of a training set, a validation set, and a testing set. The training and validation sets are used for training sessions. The 2016A and 2016A-1 datasets are class-balanced datasets. The 2016A dataset is the full version of the 2016A dataset, without the AM-SSB signals and with signal samples below \(-8\) dB. This dataset is used for comparative analysis with existing methods. We follow the mainstream approach in the existing literature by dividing the dataset into a training, validation, and test set in a 6:2:2 ratio. The second dataset is the baseline dataset under class-balanced conditions, denoted 2016A-1, which contains the same test  
Figure 2: The proposed SigAugment and pipeline for online augmentation during model training. dataset as the five imbalanced datasets and the remaining 70,000 samples as training and validation sets. The ratio of training to validation sets on the 2016A-1 and imbalanced datasets is 3:1. The 2016A-10, 2016A-10a, 2016A-10b, 2016A-20, and 2016A-50 datasets are class-imbalanced datasets with an imbalance degree \(\beta\) of 10, 10, 10, 20, and 50, respectively. Table 2 shows the number of samples per class in the datasets used for training sessions. We sampled from the original dataset using the default class order in the 2016A dataset to form the imbalanced datasets. The most frequent class to the least frequent class are, in order, as follows: 8 PSK, AM-DSB, BPSK, CPFSK, GFSK, PAM4, QAM16, QAM64, QPSK, and WBFM. The number of samples per class in 2016A-10a and 2016A-10b is half and one-fifth, respectively, of the number in the 2016A-10 dataset. The 2016A-10a and 2016A-10b datasets are used to validate the effect of the number of samples on the performance of the algorithm for the same degree of imbalance. In addition, the difference between the 2016A-10b dataset and the 2016A-50 dataset is a fivefold difference in the number of the most frequent class. They can be used to analyze the effect of the number of head classes on the model. The training process is terminated when the validation loss does not decrease after 25 epochs or when the number of training epochs reaches 300. We used the Adam [45] optimizer and a warm-up learning rate with an initial learning rate of 0.001 to minimize the cross-entropy loss. The model was built with Tensorflow [46] and trained with two GPU cards. We use the average classification accuracy of all classes across all SNRs to evaluate the performance algorithm in our tests, as the distribution of classes in the test dataset is balanced. We used the average results of three independent experiments. The standard deviation is also used to measure the stability of the model. Assuming \(C\) is the number of classes and \(A_{ij}\) is the classification accuracy of the \(ith\) class in the \(jth\) experiment on a single model, the comparison accuracy is expressed as follows:  
\[Mean\_Average\_Accuracy=\frac{1}{3}\sum_{j=1}^{3}\sum_{i=1}^{C}A_{ij} \tag{9}\]