原文:Data-Efficient Classification of Birdcall Through Convolutional Neural Networks Transfer Learning
Deep learning Convolutional Neural Network (CNN) models are powerful classification models but require a large amount of training data. In niche domains such as bird acoustics,it is expensive and difficult to obtain a large number of training samples. One method of classifying data with a limited number of training samples is to employ transfer learning. In this research,we evaluated the effectiveness of birdcall classification using transfer learning from a larger base dataset (2814 samples in 46 classes) to a smaller target dataset (351 samples in 10 classes) using the ResNet-50 CNN. We obtained 79% average validation accuracy on the target dataset in 5-fold cross-validation. The methodology of transfer learning from an ImageNet-trained CNN to a project-specific and a much smaller set of classes and images was extended to the domain of spectrogram images, where the base dataset effectively played the role of the ImageNet.
生态学研究中,常用鸟叫声的种类评价物种复杂度,而鸟叫声数据不易收集,标注昂贵,耗时。
so,迁移学习 来了。
Dataset
本文模仿了图片分类中常用的base dataset---Image net,创建了一个“SoundNet”数据集(公开数据集,BirdCELF挑战赛中使用的Xeno-Canto集的子集),其中包含了在距离巴西南部库里蒂巴市250公里半径内记录的鸟鸣。--------------------Source dataset
作者家乡澳大利亚昆士兰州常见的10种鸟类的叫声,在Xeno-Canto网站上至少有20个人工注释(且置信分数很高)的记录。数据集有10种鸟类的351个音频样本--------------------Target dataset
除了sourcet和target数据集之外,CNN模型还使用与sourcet和target数据集相似但来自不同域的Negative dataset进行训练(公开)。该数据集有243个环境声音的16930个声音实例,这些声音都不是鸟鸣。
将以上数据转换为光谱图。
Model
这项研究的重点是验证ImageNet式的迁移学习,而不是发明一个更好的CNN声音分类模型。因此,我们使用了的ResNet-50 CNN,这是一个50层深的CNN架构,用来对鸟鸣进行分类。RESNET-50是第一个利用残差学习的深度CNN架构。RESNET-50已经成功地提高了计算机视觉挑战比赛中的准确性,获得了ImageNet大型视觉识别挑战赛2015(ILSVRC,2015)和Microsoft Common Objects in Context 2015竞赛的一等奖。
改进模型
在ImageNet训练的ResNet-50模型和输入灰度图像(谱图)之间增加一个可学习通道,将RetNet-50所期望的3通道RGB图像的单通道灰度谱图转换为单通道灰度谱图;
在丢弃原始ResNet-50中的ImageNet分类器层后,添加全局最大池化层,然后是0.5概率丢弃层,将ResNet-50的最后2维(具有2048个通道)热图输出转换为2048个特征向量;
所需的分类是通过添加完全连接的Sigmoid激活层(分类器层)来实现的,以适应基础或目标数据集中的类数。
Base Dataset Training
我们将Keras中ResNet-50模型与TensorFlow Backend一起使用。该模型经过训练以识别1000个不同的ImageNet对象类。原来的ImageNetTraded架构被修改为分47个类别(46个类别的鸟鸣基本数据集+1个负的类别声音数据集),方法是移除其1000个类别的顶部,添加全局2D最大池、0.5个dropout和一个47个神经元完全连接层。具体地说,训练光谱图被随机裁剪成具有256行和256列。然后,网络接受256×256×1的输入图像,其中灰度谱图图像通过可训练的1×1卷积层被转换成ResNet CNN期望的三个颜色通道。
Target Dataset Training
在用46只鸟的基础数据集训练ResNet-50模型之后,为了将学习从基础数据集迁移到目标10只鸟的数据集,ResNet-50被修改为分类11类(10类鸟叫基础数据集+1个负类声音数据集)。这是通过将最后一个密集连接的47个神经元层替换为11个全连接层来实现的。训练流水线保持与前面47个类别的情况相同;即,使用类别加权的二进制交叉熵损失函数进行训练。然后,用来自目标数据集的所有351个标记的谱图对ResNet-50进行训练,这些谱图分别被随机分为72%(即90%的80%)、18%(即90%的20%)和10%的训练、验证和测试子集,以监视训练过程并估计CNN的预测准确性。此外,对于每个训练时期,从负数据集中随机选择175个样本。执行随机五次交叉验证:重复完整训练(来自46只鸟的预先训练的ResNet-50)周期五次,其中每次使用不同的随机种子来选择训练、验证和测试图像的不同子集。
Result
图4(A)和图4(B)分别给出了ResNet-50模型在基础和目标鸟鸣数据集上的训练过程。在图4(B)中,较浅的颜色表示较高的点密度。对于这两个数据集,ResNet-50在从光谱图中随机裁剪的256(高)×256(宽)图像上进行训练。
对于基础数据集的训练,网络达到了约82%的训练正确率和78%的验证正确率。精度在150个纪元之后开始趋于平台期。在NVIDIA GTX 1080 Ti 上对ResNet-50模型进行培训花费了大约10个小时。
对于目标数据集,网络达到了大约89%的训练准确率和79%的验证准确率。精度在50个纪元后开始趋于平。在NVIDIA GTX 1080 Ti 对ResNet-50模型进行培训花费了大约2个小时。
两种情况下的训练精度都仅比验证精度高出少量(<∼9%)。这表明网络没有与训练数据拟合不足或过度拟合。请注意,只有额外的训练噪声、随机的行和列缩放以及大得多的负数据集才能防止ResNet-50模型严重过度拟合如此小的目标数据集(10只鸟只有351张图像)。
图5显示了目标数据集的测试样本的实际分类与预测分类的混淆矩阵(在五个训练/测试交叉验证上平均)。不出所料,负类(非鸟鸣类)的分类正确率最高。在目标数据集的鸟鸣中,类别10(图2(J)牙鲆)由于其非常明显的鸟类叫声特征而具有最高的正确分类,而类别7(图2(G)Meliphaga gracilis)的正确分类最低。为了进行测试,将每个测试图像转换为一系列50%列重叠的256×256图像,然后使用最大类别预测值(针对11个类别中的每一个)来分配测试图像的分类预测。虽然这项研究假设每幅图像只有一个鸟类物种,但将来可以使用相同的测试程序从同一图像中提取多个鸟类物种,例如通过使用激活级别阈值。
CONCLUSION
在本研究中,我们评估了迁移学习在鸟类叫声分类中的应用。我们评估了从较大基数的鸟声数据集(2814声)到较小的目标数据集(351声)的迁移学习的应用,因为很难获得特定鸟类的大量鸟鸣。除了开发跨领域和领域内的知识转移程序外,我们还开发了一种新的(至少对于声音领域)正规化技术,使用由环境声音(非鸟鸣)组成的更大的负例池。大量的负样本迫使训练将重点放在鸟鸣上,而不是非鸟类周围的声音上,这有助于防止大容量ResNet50 CNN对相对较少的训练样本进行过度拟合。由于ResNet-50在2015年ILSVRC和MS Coco 2015大赛中成功地进行了图像分类,我们使用了Deep CNN ResNet-50进行特征提取和分类[39]。此外,ResNet-50已经成功地对鸟类叫声进行了分类[40]。
我们通过微调ResNet-50将迁移学习从较大的基础数据集应用到较小的目标数据集(仅351个样本)。有效地,从较大的基础数据集中提取的特征被用于对较小的目标数据集进行分类。在本研究中,我们使用数据效率高的少量鸟鸣样本实现了79%的验证分类正确率。
仅供自学记录使用,转载注明出处。