石鑫鑫, 鱼 昕, 刘 铭
(长春工业大学 数学与统计学院, 长春 130012)
近年来, 维护生态环境稳定健康发展的生态观己经受到人们的高度重视, 国家也通过立法将珍稀野生动物的保护纳入了国家法律中, 如《中华人民共和国野生动物保护法》, 对其重视程度显而易见[1]。由于野生动物基本都生存于荒山野岭之中, 这对于众多的野生动物研究人员, 无疑是一项艰难的任务, 环境条件阻碍了野生动物的研究及保护工作的进展。然而, 野生动物的声音数据只需要在野外放置一些简单的无线电子设备即可获取, 它不受光线的限制, 同时也不需要野生动物在视野范围内, 从而获取通过视觉无法采集到的信号。另外, 相比于视频信号, 在所要求的存储空间上, 声音信号要小很多。这些声音数据的优点有助于大幅度减少人力、 物力及财力。因此, 可以在森林、 孤岛和荒野等人迹罕至的环境中通过自动采集不同物种的声音和使用相应的声音识别技术侦察濒危野生动物, 能及时发现濒危物种并积极执行相关的保护工作。信号检测的正确与否会在较大程度上干扰声音识别系统的识别准确率。在声音识别系统中, 许多相关要素制约着识别性能和效率, 由于噪声无处不在, 在野外录制的野生动物声音中总是伴随各种噪声。动物声音识别系统处理的音频信号中的噪声干扰, 不仅使样本丢失了很多重要的声音信号, 而且使整个识别系统的准确率下降。研究指出, 即便处于无噪声背景中, 声音识别系统中超过50%的误识别皆是因为信号检测的不准确所造成的。因此, 有效的声音识别算法能降低运算负载, 节省处理时间, 可获得充足的信息量, 并且能去除静音时背景干扰噪声, 从而有效提高系统的识别正确率。因此, 高效的声音识别系统是声音信号处理中的一个重要的环节。
声音识别技术已逐渐引起了国内外相关领域研究人员的广泛关注, 并通过一系列的尝试性研究, 为未来的研究提供了一定的研究基础和方向。目前音频识别的主要研究内容重点集中于语音识别和音乐的分类上, 有关动物方面的声音识别研究则相对较少。近年来, 在动物声音识别方面有以下研究成果。Bashit等[2-3]为了保护一种濒临灭绝的休斯敦蟾蜍, 利用太阳能电池设计一个麦克风, 该麦克风在规定的时间间隔记录环境声音, 目的是部署训练有素的神经网络模型以识别休斯顿蟾蜍的声音及位置, 然后对其加以保护; 同时利用收集的环境声音, 采用信号处理和训练多层感知器神经网络(MLP-NN: Multilayer Perceptron Neural Networks)预测模型识别语音, 检测它们交配叫声的位置, 以保护休斯顿蟾蜍的卵不被捕食者猎杀。Colonna等[4]利用多个分类器组成层次树, 采用分层分类方法对声学信号进行分类, 最高准确率达到86%, 平均准确率为62%。Weninger等[5]比较了左右、 循环的隐马尔科夫模型和长短期记忆递归神经网络, 对德国洪堡大学的动物声音库中的动物声音进行分类, 使用的特征为语音识别中的常用特征, 包括过零率、 基频、 谐波噪声比等。Joaquín等[6]提出一种基于音频模式的特定识别的音频监视系统及环境无线声学传感器网络体系结构, 该体系结构侧重于使用基于MPEG-7标准的通用描述符, 这些描述符证明它适合用于识别不同的模式, 从而具有很高的可伸缩性。Huang等[7]提出了狭口蛙科的5类青蛙的声音识别系统, 采用支持向量机(SVM: Support Vector Machine)和邻近算法(KNN: K-Nearest Neighbor)对频谱质心、 信号带宽、 过闭值率等特征参数进行训练和分类。Le[8]给出了农业生产中的害虫识别系统, 该系统使用概率性神经网络(PNN: Probabilistic Neural Network)分类器对美国农业科学研究院昆虫声音库中的60种昆虫声音进行识别。Raju等[9]利用自相关函数分析(AF: Autocorrelation Function)的基因特征、 平均幅度差函数(AMDF: Average Magnitude Difference Function)分析的基因特征以及共振峰和短时能量等特征参数表征包括猫、 狗等在内的19类动物声音, 并用SVM对这些特征训练与分类。Ma等[10]给出了两类须鲸的海洋哺乳动物声音识别系统, 该系统使用Moorer混响模型对所提出的时频感知特征进行识别, 但这种方法只使用两类须鲸的声音作为声音样本库, 声音的样本种类偏少。Somervuo等[11]提出了结合MFCC(Mel Frequency Cepstrum Coefficient)类特征(MFCC、 一阶差分MFCC、 二阶差分MFCC)和动态时间规整(DTW: Dynamic Time Warping)的鸟类声音识别系统, 同时还比较了高斯混合模型(GMM: Gaussian Mixture Model)和隐马尔科夫模型(HMM: Hidden Markov Model)分类器的识别性能, 其使用的数据为14类普通的北欧雀形目鸟类。
通过查看相关的研究不难发现, 动物的声音识别系统在不断发展与完善, 系统的识别性能也在逐步提高。但在分类算法的选择方面, 目前使用较多的算法如SVM、 MLP(Multilayer Perceptron)、 KNN等, 构建的识别系统虽然识别性能在不断改善, 但是算法的分类准确率还有待提高, 并且模型的泛化能力较差[12-15]。因此, 笔者针对以上问题, 以从蛙类动物的音节中提取的声学特征为实验数据, 提出深度学习模型----FCNN(Fully Convolutional Neural Network)模型, 用于声学特征的分类。该模型关于不同的科进行4分类, 关于不同的属进行8分类, 关于不同的种进行10分类, 且均可实现较高准确率, 具有一定的泛化能力, 且易于实现和推广。
笔者利用全连接算法与稀疏连接算法相结合, 设计了一个两端具有全连接性的全连接卷积神经网络(FCNN), 用于对声音信号分类。模型结构如图1所示。一方面, FCNN的完全连接的第1层使模型不会忽略重要的特征组合。另一方面, CNN(Convolutional Neural Network)结构由于其稀疏的连接和参数共享, 使模型可以自动筛选重要特征且易于训练加速收敛[16]。该模型共包含3部分, 第1和第3部分为全连接操作, 第2部分主要是卷积操作。每个部分之间的连接是向量与矩阵间结构变换。
图1 模型结构示意图Fig.1 Schematic diagram of the model structure
第1部分为一个全连接层, 即含有一层的BP(Back Propagation)神经网络, 有121个神经元, 用于获取尽可能多的信息。每个样本22个特征作为输入送入本层, 经过加权求和得到活化的多个神经元。多个神经元体现了输入特征的多种组合特征。
第2部分为含有6层的网络, 做两次卷积、 池化和归一化操作, 卷积部分减少了参数并且使训练变得更加可控。第1层是1个卷积层, 卷积时为了不丢失输入矩阵的边缘信息, 添加一层补零层, 使用64个大小为3×3的卷积核, 做步长为1的卷积操作, 得到尺寸不变但深度增加的64维的特征图。第2层为1个池化层, 通过步长为2的3×3最大池化, 减小深度增加的计算复杂程度。第3层为1个归一化层, 采用Layer Normalization方法对微型批次的输入进行层归一化, 提高模型的泛化能力。第4层是1个卷积层, 通过补零层保护边缘特征, 使用16个大小为3×3的卷积核, 做步长为1的卷积操作, 得到尺寸不变, 深度增加的16个特征图。第5层为1个池化层, 通过步长为2的3×3最大池化, 得到16个尺寸为3×3的强化的特征图。第6层为一个归一化层, 池化后的特征图通过Layer Normalization方法进行归一化, 进一步简化模型的训练和提升模型的预测能力。
第3部分为3层的BP神经网络, 全连接层分别有128、128和n个神经元, 其中n表示分类数, 本实验中n的取值分别为4、8、10。多个全连接层可以把前面操作得到的有用信息进行提取整合, 然后传送到Softmax分类器中得到最后的分类结果。
笔者使用UCI提供的Anuran Calls数据集[17]进行试验。该数据集为具有3列标签的多标签数据集。该数据集的创建方式是对60个音频记录进行分段, 总共7 195条数据。这些音频记录属于4个不同的科, 8个属和10个种。数据分布如表1所示, 由于各类数据分布不均衡, 所以对数据量少的类采用过采样的方法进行试验。
表1 数据分布
损失函数采用交叉熵损失函数(Cross Entropy Error Function)。在模型效果较差时学习速度较快, 可以加快速度寻找最优解; 在模型效果较好时学习速度变慢, 在距离最优解近时减缓速度, 避免越过最优解。
优化参数的方法采用自适应矩估计(Adaptive Moment Estimation)。自适应矩估计是一种自适应学习率的优化方法, 其将Momentum和RMSprop相结合, 并进行了偏差修正。该优化算法计算效率高, 更新参数时不受梯度伸缩变换的影响, 对超参数具有良好的解释性, 且通常不需要调整或仅需要很小的微调, 可自动调整学习率。
分类器采用Softmax分类器。Softmax回归算法是分析因变量取某个值的概率与自变量的关系, 实质上为可以解决多分类问题的模型, 输出结果为该样本属于各个类别的概率, 从这些概率中选择最优概率对应的类别, 作为该样本的预测类别。
根据本实验的语音数据特点, 以及模型的框架结构, 设置模型的具体参数值(见表2)。
表2 分类模型的参数设置
为客观评价FCNN模型根据声音进行分类识别效果, 使用两个性能指标对网络模型进行测试, 分别为准确率(Accuracy)和AUC(Area Under the ROC Curve)。
准确率表示总体样本中预测正确的样本的占比, 是机器学习中模型评价的最常用评价指标。准确率的计算方法为C=A/N, 其中C为模型对语音识别的准确率,N为所有输入到模型中的样本数量,A为识别结果与样本标签相同的样本数量。
AUC为接收者操作特性(ROC: Receiver Operating Characteristic)曲线下的面积[18]。AUC是在整个类先验分布及错分代价范围内度量算法的总体分类性能、 排序性能和后验概率, 因此在使用人工智能方法进行分类时越来越多的受到关注[19]。AUC的值为区间[0,1]内的数值, 数值越大, 表示当前的分类模型越有可能将负样本排在正样本的后面, 说明该模型为更优的分类模型。
为验证FCNN模型适用于动物语音自动识别, 笔者在Anuran Calls数据集上设计了实验, 并与传统CNN进行对比。关于科、 属、 种进行的4、8、10分类问题, FCNN的准确率明显高于CNN, 可见FCNN对动物语音的识别效果更佳。
表3 模型准确率对比
为充分证明实验结果的有效性, 采取5折交叉验证的方法。通过设置随机种子, 将数据做随机的乱序处理, 然后将数据分为5个部分, 每次取其中一个部分作为测试集, 剩余部分做训练, 共进行5次实验。每次实验的准确率均达95%以上, 没有较大波动。说明该模型具有很高鲁棒性, 易于推广。5折交叉验证的准确率如表4所示。
表4 交叉验证的准确率
根据科、 属、 种进行分类的分类模型的ROC曲线如图2~图4所示。图2中4个科分别记作0、1、2、3, 每个科对应的ROC曲线下面积分别是0.988、0.993、0.997、1.000。图3中8个属分别记作0、1、2、3、4、5、6、7, 每个属对应的ROC曲线下面积分别是0.983、1.000、0.996、1.000、0.996、1.000、1.000、1.000。图4中10个种分别记作0、1、2、3、4、5、6、7、8、9, 每个种对应的ROC曲线下面积分别是0.992、1.000、1.000、0.997、0.999、1.000、0.998、1.000、0.986、1.000。
图2 根据科进行4分类的ROC曲线Fig.2 ROC curves for the four classifications according to section
图3 根据属进行8分类的ROC曲线Fig.3 ROC curves for eight classifications according to genus
根据ROC曲线, 得到FCNN模型对语音信号数据按照科、 属、 种进行4分类、 8分类、 10分类的AUC值分别为0.990、0.998、0.996, 均非常接近1, 即该深度分类模型接近完美分类器。多分类问题中每类的AUC值都很均衡且均达到0.98以上, 说明该实验是一个准确性很高的分类实验, 且该模型对于每个类别, 即每个科、 属、 种, 都能准确提取该类的声学信号特征, 具有良好的识别性能。FCNN模型应用于声音分类可达到较高的识别准确率且具有泛化性。
随着大数据时代的到来和人工智能的发展, 动物声音作为一种重要的信息, 逐渐被重视和利用。动物声音识别方法的研究和实现也有着重要的意义, 为了避免传统的特征提取方法造成的人为影响, 笔者以BP神经网络和卷积神经网络为基础提出了一种基于FCNN的动物声音识别算法, 充分利用了全连接操作提取更多的组合特征, 以及卷积操作的稀疏连接对特征具有针对性的自动提取与筛选, 最终对科、 属、 种的分类平均准确率分别达到99.67%、98.84%、98.59%, 通过不同属性的分类实验与交叉验证, 证明了模型具有较好的泛化能力。