文章为翻译,仅供学习参考
论文地址:[2104.01778] AST: Audio Spectrogram Transformer (arxiv.org)
论文作者:Yuan Gong, Yu-An Chung, James Glass
摘要
在过去的十年中,卷积神经网络(CNN)已经被广泛应用于端到端音频分类模型的主要构建模块,旨在学习从音频频谱图到相应标签的直接映射。为了更好地捕捉长程全局上下文,最近的趋势是在CNN之上添加自注意机制,形成一个CNN-attention混合模型。然而,目前尚不清楚是否有必要依赖CNN,并且纯粹基于注意力的神经网络是否足以在音频分类中获得良好的性能。本文通过引入音频频谱图变换器(AST)回答了这个问题,AST是第一个无卷积、纯粹基于注意力的音频分类模型。我们在各种音频分类基准上评估了AST,在AudioSet上实现了0.485 mAP的新最优结果,在ESC-50上实现了95.6%的准确率,在Speech Commands V2上实现了98.1%的准确率。
1.引言
随着深度神经网络的出现,在过去的十年里,音频分类研究已经从基于手工设计特征[1,2]的模型转变为直接将音频频谱图映射到相应标签的端到端模型[3,4,5]。具体来说,卷积神经网络(CNNs)被广泛用于从原始频谱图中学习表示,作为端到端建模的一部分,因为CNNs固有的归纳偏差,如空间局部性和平移等变性被认为是有帮助的。为了更好地捕捉长距离全局上下文,最近的一个趋势是在CNN之上添加自注意机制。这种CNN-注意力混合模型已经在许多音频分类任务中取得了最先进的结果,比如音频事件分类[7,8]、语音命令识别和情感识别[10]。然而,受纯注意力模型在视觉领域的成功启发[11,12,13],有理由质疑CNN对于音频分类是否仍然至关重要。
为了回答这个问题,我们引入了音频频谱变换器(AST),这是一个无卷积、纯注意力的模型,直接应用于音频频谱图,并且可以在最底层捕捉长距离全局上下文。此外,我们提出了一种方法,将在ImageNet上[14]预训练的Vision Transformer(ViT)[12]的知识转移到AST,这可以显著提高性能。AST的优势有三个方面。首先,AST具有卓越的性能:我们在包括AudioSet[15]、ESC-50[16]和Speech Commands[17]在内的各种音频分类任务和数据集上评估AST。AST在所有这些数据集上都优于最先进的系统。其次,AST自然地支持可变长度的输入,并且可以应用于不同的任务而无需更改架构。具体来说,我们用于所有前述任务的模型具有相同的架构,而输入长度从1秒(语音命令)到10秒(AudioSet)不等。相比之下,基于CNN的模型通常需要调整架构以获得不同任务的最佳性能。第三,与最先进的CNN-注意力混合模型相比,AST具有更简单的架构,参数更少,在训练过程中收敛速度更快。据我们所知,AST是第一个纯注意力的音频分类模型。
相关工作 所提出的音频频谱变换器(Audio Spectrogram Transformer,AST)顾名思义,基于Transformer架构[18],该架构最初用于自然语言处理任务。最近,Transformer也被用于音频处理,但通常与CNN结合使用[19, 20, 21]。在[19, 20]中,作者在CNN之上堆叠了一个Transformer,而在[21]中,作者在每个模型块中结合了Transformer和CNN。其他研究将CNN与更简单的注意力模块相结合[8, 7, 9]。与这些研究不同的是,AST是无卷积的,完全基于注意力机制。与我们的工作最接近的是Vision Transformer(ViT)[11, 12, 13],它是一种用于视觉任务的Transformer架构。AST和ViT具有相似的架构,但ViT仅应用于固定维度的输入(图像),而AST可以处理可变长度的音频输入。此外,我们还提出了一种从预训练的ImageNet的ViT向AST的知识迁移方法。我们还进行了大量实验证明AST在音频任务上的设计选择。
2. Audio Spectrogram Transformer
2.1模型架构
图1展示了提出的音频频谱变换器(AST)的架构。首先,输入的t秒音频波形被转换成一系列128维的对数Mel滤波器组(fbank)特征,每10毫秒使用25毫秒的汉明窗计算一次。这样得到了一个128×100t的频谱图作为AST的输入。然后,我们将频谱图分割成一个N个16×16的补丁序列,时间和频率维度都有6个重叠,其中N = 12[(100t − 16)/10]是补丁的数量,也是Transformer的有效输入序列长度。我们使用线性投影层将每个16×16的补丁展平成大小为768的1D补丁嵌入。我们称这个线性投影层为补丁嵌入层。由于Transformer架构不捕捉输入的顺序信息,而补丁序列也不是按时间顺序排列的,所以我们为每个补丁嵌入添加一个可训练的位置嵌入(也是大小为768的向量),以使模型能够捕捉2D音频频谱的空间结构。
类似于[22],我们在序列的开头添加了一个[CLS]词元。然后将得到的序列输入到Transformer中。Transformer由多个编码器和解码器层组成。由于AST是为分类任务设计的,我们只使用Transformer的编码器。有意地,我们使用原始的Transformer编码器[18]架构而没有修改。这种简单设置的优势是:1)标准的Transformer架构易于实现和复现,因为它是TensorFlow和PyTorch中的现成工具,2)我们打算应用迁移学习到AST中,标准架构使得迁移学习更容易。具体来说,我们使用的Transformer编码器具有768的嵌入维度、12层和12个注意力头,这与[12, 11]中的设置相同。Transformer编码器的[CLS]标记的输出作为音频频谱表示。一个具有sigmoid激活函数的线性层将音频频谱表示映射到用于分类的标签。
严格来讲,补丁嵌入层可以看作是一个具有大内核和步幅大小的单个卷积层,而每个Transformer块中的投影层等效于1×1卷积。然而,这种设计与传统的具有多个层和小内核以及步幅大小的CNN不同。这些Transformer模型通常被称为无卷积模型,以区别于CNNs [11, 12]。
2.2 ImageNet预训练
与CNN相比,Transformer的一个缺点是需要更多的数据进行训练 [11]。在 [11] 中,作者指出,只有当数据量超过1400万时,Transformer才开始在图像分类任务中胜过CNN。然而,音频数据集通常没有这么大量的数据,这促使我们将跨模态迁移学习应用到AST中,因为图像和音频频谱具有类似的格式。之前在 [23, 24, 25, 8] 中已经研究了从视觉任务到音频任务的迁移学习,但仅限于基于CNN的模型,其中使用ImageNet预训练的CNN权重作为音频分类训练的初始CNN权重。在实践中,训练一种最先进的视觉模型计算上非常昂贵,但许多常用的架构(如ResNet [26]、EfficientNet [27])都有TensorFlow和PyTorch的现成ImageNet预训练模型,使得迁移学习变得更加容易。我们也按照这个规则,将一个现成的预训练视觉Transformer(ViT)调整到AST中。
虽然ViT和AST具有类似的架构(例如,它们都使用标准Transformer、相同的补丁大小和嵌入大小),但它们并不相同。因此,需要进行一些修改以适应这种转换。首先,ViT的输入是一个3通道图像,而AST的输入是单通道频谱图,我们对ViT补丁嵌入层中每个通道的权重进行平均,并将其用作AST补丁嵌入层的权重。这相当于将单通道频谱扩展为具有相同内容的3通道,但在计算上更有效率。我们还对输入音频频谱进行归一化,使数据集的均值和标准差分别为0和0.5。其次,ViT的输入形状是固定的(224×224或384×384),这与典型的音频频谱不同。此外,音频频谱的长度可以是可变的。虽然Transformer自然支持可变长度的输入,并且可以直接从ViT转移到AST,但位置编码需要仔细处理,因为它在ImageNet训练期间学习到了编码空间信息。我们提出了一种切割和双线性插值方法用于位置编码的调整。例如,对于接受384×384图像输入并使用16×16补丁大小的ViT,补丁数量和相应的位置嵌入为24×24=576(ViT在没有重叠的情况下划分补丁)。接受10秒音频输入的AST有12×100个补丁,每个补丁需要一个位置嵌入。因此,我们将ViT的24×24位置嵌入的第一维度切割并插值为12×100,然后将其用作AST的位置嵌入。我们直接重用[CLS]标记的位置嵌入。通过这样做,即使输入形状不同,我们也能够将预训练的ViT中的2D空间知识传递到AST中。最后,由于分类任务本质上是不同的,我们放弃了ViT的最后一个分类层,并为AST重新初始化了一个新的分类层。通过这种适应性框架,AST可以使用各种预训练的ViT权重进行初始化。在这项工作中,我们使用了一个数据高效的图像Transformer(DeiT)[12]的预训练权重,该模型通过CNN知识蒸馏训练,处理384×384图像,具有8700万参数,并在ImageNet 2012数据集上达到了85.2%的top-1准确率。在ImageNet训练中,DeiT有两个[CLS]标记;我们将它们平均为单个[CLS]标记用于音频训练。
3.实验
在这一部分,我们专注于在AudioSet上评估AST的性能,因为弱标签音频事件分类是最具挑战性的音频分类任务之一。我们将在第3.1节中介绍我们的主要AudioSet结果和消融研究,分别在第3.1.2节和第3.1.3节中进行说明。接下来,在第3.2节中,我们将介绍我们在ESC-50和Speech Commands V2数据集上的实验结果。
3.1AudioSet实验
3.1.1数据集和训练细节
AudioSet [15]是一个包含超过200万个从YouTube视频中提取的10秒音频片段的集合,这些片段被标记为来自一组527个标签中包含的声音。平衡训练、完整训练和评估集分别包含22,000、2,000,000和20,000个样本。在AudioSet实验中,我们使用了与[8]中描述的完全相同的训练流程。具体来说,我们使用了ImageNet预训练(如第2.2节所述)、平衡采样(仅用于完整集实验)、数据增强(包括mixup [28],mixup比例为0.5,以及频谱掩蔽[29],最大时间掩码长度为192帧,最大频率掩蔽长度为48个频段),以及模型集成(包括权重平均化[30]和集成[31])。我们使用批量大小为12、Adam优化器[32]和二元交叉熵损失进行模型训练。我们在官方的平衡和完整训练集上进行实验,并在AudioSet评估集上进行评估。对于平衡集实验,我们使用初始学习率为5e-5,并训练模型25个epochs,学习率在第10个epoch后每5个epoch减半。对于完整集实验,我们使用初始学习率为1e-5,并训练模型5个epochs,学习率在第2个epoch后每个epoch减半。我们使用均值平均精度(mAP)作为我们的主要评估指标。
3.1.2AudioSet结果
我们对每个实验重复进行三次,采用相同的设置但不同的随机种子,并报告均值和标准偏差。当AST使用完整的AudioSet进行训练时,最后一个epoch的mAP为0.448±0.001。与[8]中类似,我们还使用权重平均化[30]和集成[31]策略来进一步提高AST的性能。具体地,在权重平均化中,我们将从第一个到最后一个epoch的模型检查点的所有权重进行平均。权重平均化的模型达到了0.459±0.000的mAP,这是我们最好的单一模型(权重平均化不会增加模型大小)。对于集成,我们评估了两种设置:1)集成-S:我们以完全相同的设置运行实验三次,但使用不同的随机种子。然后,我们平均每次运行的最后一个检查点模型的输出。在此设置中,集成模型实现了0.475的mAP;2)集成-M:我们集成采用不同设置训练的模型,具体来说,我们将集成Ensemble-S中的三个模型与另外使用不同路径分割策略训练的三个模型一起。在此设置中,集成模型实现了0.485的mAP,这是我们在AudioSet上的最佳完整模型。如表1所示,提出的AST在所有设置中均优于[8]中的最佳系统。请注意,我们与[8]使用相同的训练流程,而且[8]也使用ImageNet预训练,因此这是一个公平的比较。此外,我们对最佳集成模型使用的模型数量(6个)少于[8](10个)。最后,值得一提的是,AST的训练收敛速度很快;AST只需5个训练epochs,而在[8]中,CNN-attention混合模型需要训练30个epochs。
我们还对平衡的AudioSet(大约是完整数据集的1%)进行实验,以评估AST在训练数据量较小时的性能。对于权重平均化,我们对最后20个epochs的模型检查点的所有权重进行平均。对于Ensemble-S,我们采用与完整AudioSet实验相同的设置;对于Ensemble-M,我们包括了使用不同随机种子训练的11个模型(表1),不同的预训练权重(表3),不同的位置嵌入插值(表4)和不同的路径分割策略(表5)。单一模型、Ensemble-S和Ensemble-M分别达到了0.347±0.001、0.363和0.378的mAP,全部优于以前的最佳系统。这表明即使训练集相对较小,AST也能比CNN-attention混合模型表现更好。
3.1.3消融实验
我们进行了一系列的消融实验,以说明AST的设计选择。为了节省计算资源,我们主要使用平衡的AudioSet进行消融实验。在所有的实验中,我们都使用了权重平均化,但没有使用集成。
ImageNet预训练的影响。我们比较了在ImageNet上预训练的AST和随机初始化的AST。如表2所示,对于平衡和完整的AudioSet实验,ImageNet预训练的AST明显优于随机初始化的AST。当训练数据量较小时,ImageNet预训练的性能提升更为显著,表明ImageNet预训练可以大大减少AST对领域内音频数据的需求。我们进一步研究了使用的预训练权重的影响。如表3所示,我们比较了使用ViT-Base、ViT-Large和DeiT模型的预训练权重初始化的AST模型的性能。这些模型具有相似的架构,但是使用不同的训练设置进行训练。我们对AST进行了必要的架构修改以重用这些权重。我们发现,在ImageNet2012上表现最好的带蒸馏的DeiT模型的权重初始化的AST在AudioSet上也表现最好。
位置嵌入适应性的影响。如第2.2节所述,当从视觉Transformer传递知识到AST时,我们使用剪切和双线性插值方法进行位置嵌入适应性。我们将其与带有随机初始化位置嵌入的预训练AST模型进行比较。如表4所示,我们发现重新初始化位置嵌入并没有完全破坏预训练模型,因为该模型仍然表现优于完全随机重新初始化的模型,但与所提出的适应性方法相比,它确实导致了明显的性能下降。这证明了转移空间知识的重要性。双线性插值和最近邻插值不会造成很大的差异。
补丁分割重叠的影响。我们比较了使用不同补丁分割重叠[13]训练的模型的性能。如表5所示,对于平衡和完整集实验,性能随着重叠大小的增加而提高。然而,增加重叠也会导致Transformer输入的补丁序列变长,从而使计算开销呈二次增加。即使没有补丁分割重叠,AST仍然可以胜过[8]中的先前最佳系统。
补丁形状和大小的影响。如第2.1节所述,我们将音频频谱图分割成16×16的方形补丁,因此输入到Transformer的序列不能按时间顺序排列。我们希望位置嵌入能够学习编码2D空间信息。另一种拆分补丁的方法是按时间顺序将音频频谱图切割成矩形补丁。我们在表6中比较了这两种方法,当补丁的面积相同时(256),使用128×2的矩形补丁在从头开始训练时比使用16×16的方形补丁表现更好。然而,考虑到没有基于128×2补丁的ImageNet预训练模型,使用16×16补丁仍然是当前的最佳解决方案。我们还比较了使用不同大小的补丁,较小尺寸的补丁导致更好的性能。
3.2在ESC-50和Speech Commands数据集上的结果
ESC-50数据集[16]包含了2,000个5秒钟的环境音频录音,分为50个类别。目前ESC-50数据集上的最佳结果是86.5%的准确率(从头开始训练,SOTA-S)[33] 和94.7%的准确率(使用AudioSet预训练,SOTA-P)[7]。我们将AST与这两种设置下的SOTA模型进行比较,具体地,我们训练了一个只使用ImageNet预训练的AST模型(AST-S)和一个同时使用ImageNet和AudioSet预训练的AST模型(AST-P)。我们使用频率/时间掩蔽[29]数据增强,在批量大小为48和Adam优化器[32]的情况下训练模型20个epochs。我们将AST-S和AST-P的初始学习率分别设定为1e-4和1e-5,并在第5个epoch后每个epoch以0.85的因子减小学习率。我们遵循标准的5折交叉验证来评估我们的模型,每个实验重复三次,并报告平均值和标准偏差。如表7所示,AST-S实现了88.7±0.7的准确率,AST-P实现了95.6±0.4的准确率,两者都在相同设置下优于SOTA模型。值得注意的是,尽管ESC-50每个fold只有1,600个训练样本,AST仍然能够在没有AudioSet预训练的情况下很好地处理如此少量的数据。
Speech Commands V2[17]是一个包含105,829个1秒录音的数据集,涵盖了35个常见语音命令。其中,训练集、验证集和测试集分别包含84,843、9,981和11,005个样本。我们专注于35类别的分类任务,在Speech Commands V2数据集上,没有额外音频数据预训练的SOTA模型是时域-通道可分离卷积神经网络[34],在测试集上达到了97.4%的准确率。在[35]中,使用额外的2亿个YouTube音频进行预训练的CNN模型在测试集上达到了97.7%的准确率。我们还在这两种设置下评估了AST。具体而言,我们训练了一个只使用ImageNet预训练的AST模型(AST-S)和一个同时使用ImageNet和AudioSet预训练的AST模型(AST-P)。我们对两个模型都使用频率和时间掩蔽、随机噪声和mixup增强技术[29],批量大小为128,优化器为Adam[32]。我们将初始学习率设定为2.5e-4,并在第5个epoch后每个epoch以0.85的因子减小学习率。我们训练模型最多20个epochs,使用验证集选择最佳模型,并报告测试集上的准确率。每个实验重复三次,并报告平均值和标准偏差。AST-S模型实现了98.11±0.05的准确率,优于[9]中的SOTA模型。此外,我们发现对于语音命令分类任务,AST-S的性能优于AST-P,因此认为AudioSet预训练在此任务中是不必要的。总结而言,尽管输入音频长度从1秒(Speech Commands)、5秒(ESC-50)到10秒(AudioSet)不同,内容从语音(Speech Commands)到非语音(AudioSet和ESC-50)不同,我们使用了相同的AST架构,并在所有数据集上取得了SOTA结果。这表明AST作为通用音频分类器的潜力。
4.结论
在过去的十年中,CNN已经成为音频分类的常见模型组件。然而,在本研究中,我们发现CNN并非不可或缺,引入了一种名为音频频谱变换器(AST)的基于注意力机制、不含卷积层的音频分类模型,该模型具有简单的架构和出色的性能。
5.致谢
本研究部分得到Signify的支持。