## 4 Experiments  
### DL on Bulzz1  
In BUZZ1, the train/test dataset of 9,110 labeled samples was obtained from beehives 1.1 and 2.1. The validation dataset of 1,150 was obtained from beehives 1.2 and 2.2. In the experiments described in Section 3, the train/test was repeatedly split into a training set (70%) and a testing test (30%) with the train_test_split procedure from the the Python sklearn.model_selection library [52]. The ConvNets were implemented in Python 2.7 with tflearn [53] and were trained on the train/test dataset of BUZZ1 with the Adam optimizer [54] on an Intel Core [EMAIL_ADDRESS] GHz \(\times\) 8 processor with 15.5 GiB of RAM and 64-bit Ubuntu 14.04 LTS. The Adam optimizer is a variant of stochastic gradient descent that can handle sparse gradients on noisy problems. Both ConvNets used categorical crossentropy as their cost function. Categorical crossentropy measures the probability error in classification tasks with mutually exclusive classes. The best learning rate (\(\eta\)) for SpectConvNet was found to be 0.001 and the best learning rate for RawCovNet was found to be 0.0001. Each ConvNet was trained for 100 epochs with a batch size of 128 (experimentally found to be optimal) and a 70-30 train/test split of the training data set of BUZZ1 train/test dataset of 9110 audio samples with the train_test_split procedure from the the Python sklearn.model_selection library [52]. Table 3 gives the performance results comparing SpectConvNet with RawConvNet with different sizes of the receptive field. The ConvNet hyperparameters are given in Appendix A. RawConvNet's testing accuracy increased with the size of the receptive field. The accuracy was lowest (98.87%) when the receptive field size was 3 and highest (99.93%) when it was 80 with a slight drop at 100. With a receptive field size of 80, RawConvNet classified raw audio samples with a testing accuracy of 99.93% and a testing loss of approximately 0.004. RawConvNet slightly outperformed SpectConvNet in terms of a higher validation accuracy (99.93% vs. 99.13%), a lower testing loss (0.00432 vs. 0.00702), and a much lower runtime per epoch (462 s vs. 690 s). As the size of the receptive field increased in RawConvNet, more information was likely learned in the first convolution layer, which had a positive impact on its performance. The runtime per epoch was slowest when the receptive field's size was smallest. Figures S1-S5 of the Supplementary Materials give the graphs of the loss curves of RawConvNet for each receptive field size \(n\in\{3,10,30,80,100\}\) on the BUZZ1 training and testing dataset. The loss curves gradually reduce with training. The shapes of the loss curves are almost identical, which indicates that there is no overfitting. Figures 9 and 10 show the testing loss and accuracy graphs, respectively, of RawConvNet with different receptive field sizes. The number of training steps per epoch is a function of the size of the dataset (9110), the percentage of the dataset used for training in the train/test split (0.7), and the batch size (128), which gives us \(9100\times 0.7/128=49.82\approx 50\) steps. Thus, 100 epochs of training result in 5000 steps, which is the number of steps on the x-axes of the graphs in Figures 9 and 10. \begin{table}
\begin{tabular}{c c c c c c} \hline \hline
**Number of Training Samples: 6377; Number of Testing Samples: 2733** & & & & \\ \hline
**Model Name** & **Training Loss** & **Training Accuracy** & **Testing Loss** & **Testing Accuracy** & **Runtime per Epoch** \\ \hline SpectConvNet & 0.00619 & 99.04\% & 0.00702 & 99.13\% & 690 s \\ RawConvNet (\(n=3\)) & 0.02759 & 99.24\% & 0.03046 & 98.87\% & 460 s \\ RawConvNet (\(n=10\)) & 0.01369 & 99.74\% & 0.01429 & 99.60\% & 462 s \\ RawConvNet (\(n=30\)) & 0.00827 & 99.91\% & 0.00679 & 99.71\% & 465 s \\ RawConvNet (\(n=80\)) & 0.00692 & 99.85\% & 0.00432 & 99.93\% & 462 s \\ RawConvNet (\(n=100\)) & 0.00456 & 99.97\% & 0.00785 & 99.74\% & 505 s \\ \hline \hline \end{tabular}
\end{table}