system: [SYSTEM]

user: 3. 实验及结果 3.1. 数据集描述 以监督学习方式训练深度神经网络结构主要问题之一是有效学习所需的计算量和含标签数据量。虽然前者在某方面通过硬件改进和GPU计算在通用基础上得到解决，但后者非常依赖于相关领域知识，往往很难获得有效的源数据。然而，无论是在数量上还是记录大小上，公开可用的环境声音记录数据集都十分有限。考虑到手动注释的高成本，虽然随着新的录制设备的引入逐渐改善了这种情况，但它仍然是该领域新数据密集型方法发展的主要障碍之一。因为监督的深度学习模型的性能受可用于学习的数据集大小的影响强烈，所以选择一个合适的数据集对模型训练的性能影响很大。 本实验数据集使用公开数据集UrbanSound8K [ 28 ]，这个数据集包含了8732个短音频样本，每个音频文件不超过4秒(有少量文件略大于4秒)，这些音频样本被预编为10类声音(空调发动机(Air conditioner， AI)、汽车鸣笛声(Car horn， CA)、小孩子玩闹声(Children playing， CH)、狗叫声(Dog barking， DO)、钻孔声(Drilling， DR)、发动机空转声(Engine idling， EN)、枪声(Gun shot， GU)、手提钻(Jackhammer， JA)、警报器声(Siren， SI)和街边音乐(Street music， ST))。我们对这些音频文件使用相同的处理方式将数据统一基准并消除数据分割对实验精度的影响。 3.2. 实验设置 3.2.1. 数据预处理 所使用数据集的所有音频文件采样率均为22050 Hz和16位字深wav格式的单声道信道，使用1024的FFT窗口和50%的重叠以及它们的增量(沿时间维度谱图的一阶导数)将文件转换为频谱图。对所有的数据文件将其提取为4 s长度的频谱，超过4 s的文件截取为4 s，不足4 s的文件通过填充0补足为4 s。在时频变换后提取分段，以提取音频文件的梅尔频率倒谱系数，为了更好地利用数据以及优化模型训练，使用z-score标准化对所有训练文件进行标准化特征，并且同时作用于验证集和测试集上，以达到将音频文件转化为矩阵信息的操作，进而将矩阵输入模型进行训练。图6为某个音频文件经过分帧、加窗、FFT变换得到的频谱图，将该频谱图转换为灰度图，以提取该音频文件MFCC特征的输出，输出结果为40 × 173的二维MFCC矩阵，样本数据集D(8732， 40， 173)，将总数据集划分为训练集和测试集，其中70%作为训练集，30%作为测试集，最终得到训练集T(6112， 40， 173)，测试集V(2620， 40， 173)。 图6. 一段音频文件提取特征信息的结果 3.2.2. 模型设置 为了提取频谱图的高层次特征，本文调整卷积神经网络层结构并利用数据集D(8732， 40， 173)训练网络模型参数。由于频谱图为单通道数据，因此网络输入层大小设置为(40， 173， 1)，卷积层使用3 × 3的卷积核，初始使用32个过滤器，激活函数使用relu函数，卷积处理后填充边界，池化层使用2 × 2的核大小，步长设置为2 × 2，堆叠5层卷积层和池化层后映射到全连接层再到softmax层，对应分类预测的结果，由于本实验数据共有10类，在softmax设置为10类。本实验所设置的卷积网络层结构具体见表1，将该结构卷积神经网络模型命名为ProposedCNN。 Table 1 ProposedCNN related setting Layer Ksize Stride Nums of filters Out shape Input - - - (40， 173， 1) Conv1 (3， 3) (1， 1) 32 (40， 173， 32) Pool1 (2， 2) (2， 2) - (20.86， 32) Conv2 (3， 3) (1， 1) 64 (20.86， 64) Pool2 (2， 2) (2， 2) - (10， 43， 64) Conv3 (3， 3) (1， 1) 128 (10， 43， 128) Pool3 (2， 2) (2， 2) - (5， 21， 128) Conv4 (3， 3) (1， 1) 256 (5， 21， 256) Pool4 (2， 2) (2， 2) - (2， 10， 256) Conv5 (3， 3) (1， 1) 512 (2， 10， 512) Pool5 (2， 2) (2， 2) - (1， 5， 512) FC - - 2560 (2560) Dense (Softmax) - - Nums of classes (10) 表1. 本文卷积神经网络层结构ProposedCNN相关设置 当卷积神经网络训练完成后，提取最后softmax层前一层的输出结果作为LightGBM模块的输入。LightGBM模块中，输入训练数据由原来的T(6112， 40， 173)重构为T’(6112， 2560)，测试数据由原来的V(2620， 40， 173)重构为V’(2620， 2560)，并在训练过程中使用GBDT的提升类型，为了防止模型训练过程过拟合，设置较小的叶子节点数num_leaves = 15、较小的学习率learning_rate = 0.01及较小的树深度max_depth = 10。 实验将通过对比本文提出的CNN模型结构ProposedCNN和Piczak提出的卷积网络层结构框架PiczakCNN、Zhang提出的卷积网络层结构框架ZhangCNN训练过程的模型效果，其相关网络设置如表2和表3所示，同时比较本文提出CNN模型结构下融合不同分类学习方法的综合模型效果。 Table 2 PiczakCNN related setting Layer Ksize Stride Nums of filters Out shape Input - - - (40， 173， 1) Conv1 (3， 3) (1， 1) 32 (40， 173， 32) Pool1 (2， 2) (2， 2) - (20.86， 32) Conv2 (3， 3) (1， 1) 64 (20.86， 64) Pool2 (2， 2) (2， 2) - (10， 43， 64) Dropout - - - (10， 43， 64) FC - - 2560 (2560) Dense (Softmax) - - Nums of classes (10) 表2. PiczakCNN相关设置 Table 3 ZhangCNN related setting Layer Ksize Stride Nums of filters Out shape Input - - - (40， 173， 1) Conv1-1 (3， 3) (1， 1) 32 (40， 173， 32) Conv1-2 (3， 3) (1， 1) 32 (40， 173， 32) Pool1 (2， 2) (2， 2) - (20.86， 32) Conv2-1 (3， 3) (1， 1) 64 (20.86， 64) Conv2-2 (3， 3) (1， 1) 64 (20.86， 64) Pool2 (2， 2) (2， 2) - (10， 43， 64) Conv3-1 (3， 3) (1， 1) 128 (10， 43， 128) Conv3-2 (3， 3) (1， 1) 128 (10， 43， 128) Pool3 (2， 2) (2， 2) - (5， 21， 128) Conv4-1 (3， 3) (1， 1) 256 (5， 21， 256) Conv4-2 (3， 3) (1， 1) 256 (5， 21， 256) Pool4 (2， 2) (2， 2) - (2， 10， 256) FC - - 2560 (2560) Dense (Softmax) - - Nums of classes (10) 表3. ZhangCNN相关设置 3.3. 实验结果及分析 在实验过程中，通过对比PiczakCNN、ZhangCNN和本文ProposedCNN训练过程，其训练过程中的模型准确率和模型损失如图7、图8所示，从图中可以看出，不管是在训练集中还是在测试集中，本文提出的混合框架的模型准确率及模型损失均优于前面两种框架，通过对比表4中实验结果，进一步表明本文提出的CNN结构框架是有效的。 图7. 不同卷积层结构下的模型训练过程准确率 图8. 不同卷积层结构下的模型训练过程损失 Table 4 Accuracy of different CNN structur Model Accuracy PiczakCNN 0.6618320608867033 ZhangCNN 0.7141221376775785 ProposedCNN 0.7519083969465649 表4. 不同CNN结构分类的准确率 通过对比本文所提出CNN结构结合不同分类方法实验比较，表5显示了各种模型的模型准确率和模型损失情况。从表中可以看出，实验的结果表明了融合LightGBM的综合模型，效果更优于融合其它常见的分类算法的混合模型，进一步证明了本文提出的混合结构框架的有效性，这说明融合的模型具有更好的预测分类效果，算法模型能够更好地应用于环境声音分类问题中。使用ProposedCNN + LightGBM混淆模型进行预测分类混合矩阵结果情况如图9所示，混淆矩阵是通过统计每个音频信息其对应的真实类别及预测类别的情况，矩阵中的数为统计真实类别样本被预测为指定类别的样本数，矩阵对角线上的数代表了正确分类预测到该类别的样本数，从混淆矩阵分布情况可以看出，大多数音频文件能够正确分类到对应类别中。 Table 5 Accuracy of ProposedCNN combined with different classification mecho Model Accuracy ProposedCNN (softmax) 0.7519083969465649 ProposedCNN + KNN 0.7660305346241434 ProposedCNN + RandomForest 0.7751908396946565 ProposedCNN + SVM 0.7851908396946565 ProposedCNN + LightGBM 0.7916030534351145 表5. 本文所提CNN结构结合不同分类方法的准确率 图9. 模型分类结果混淆矩阵