音频频谱预训练模型思维框架

一、基础音频频谱预训练模型

Transformer
ViT
AST
SSAST
Mamba
SSAMBA

二、重要概念总结

2.1 Transformer

Transformer是一种非常主流的基于自注意力机制的神经网络架构.

2.2 ViT

ViT(Vision Transformer)是将Transformer应用于图像分类任务的模型。将原本用于自然语言处理的 Transformer 架构(及其核心的注意力机制)创新性地应用于图像识别领域的。

点击展开

核心思想其实很简单:将图像切分成一个个小块(Patch),把这些图像块视为类似于 NLP 中的“单词”(Token),然后送入标准的 Transformer 编码器中进行处理。

2.2.1 图像预处理:从 2D 图像到 1D 序列

传统的 CNN 直接处理二维的像素网格,而 Transformer 的输入是一个一维的序列(比如一句单词)。所以,ViT 的第一步就是进行一个“序列化”操作。

  • 图像分块
    假设我们有一张 224x224 像素的 RGB 图像。
    ViT 会将其分割成固定大小的 patches,例如 16x16 像素。那么,总共会得到 (224/16) x (224/16) = 14 x 14 = 196 个 patches

  • 展平与线性投影
    每个 patch(16x16x3=768 个像素值)会被展平成一个一维向量。
    然后,这个向量会通过一个可训练的线性投影层(一个全连接层),将其映射到一个固定的维度 D(例如 768)。这个投影后的向量,就被称为一个 Patch Embedding
    此时,图像已经变成了一个包含 196 个向量的序列,每个向量的维度是 768。这就像 NLP 中一个有 196 个单词的句子,每个单词用 768 维的向量表示。

2.2.2 添加位置信息与分类Token
  • 位置编码
    Transformer 本身是置换不变的,即它不关心输入序列的顺序。但对于图像来说,像素/块的空间位置关系至关重要。
    为了解决这个问题,ViT 会为每一个 patch embedding 加上一个位置编码。这个位置编码也是一个 D 维的向量,它记录了该 patch 在原始图像中的位置(比如第1行第1列,第1行第2列…)。
    这使得模型能够理解图像块之间的空间结构。

  • 可学习的分类Token
    借鉴 BERT 中的 [CLS] Token,ViT 在输入序列的最前面添加了一个额外的、可学习的嵌入向量,称为 class token
    这个Token会与所有其他的 patch 进行交互,并在 Transformer 的每一层中聚合全局信息。最终,最后一层的 class token 的输出状态会被送入一个分类头(MLP),用于进行最终的图像分类预测。
    CLS Token 是 ViT 架构中的一个精巧设计,它巧妙地利用了 Transformer 的全局注意力机制,为自己创建了一个“总揽全局”的视角,使其能够有选择地整合图像所有部分的信息,并形成一个高度抽象和有效的图像表示,从而作为图像分类的理想依据。CLS token 在架构上不是绝对必要的,因为注意力机制本身已经提供了全局交互的能力,全局平均池化可以作为替代方案。但 CLS token 提供了一种更直接和集中的方式来捕捉全局信息,通常能带来更好的性能。

现在,输入到 Transformer 编码器的序列长度是 197(196个patch + 1个class token),每个向量的维度是 D。

2.2.3 核心:Transformer 编码器中的注意力机制

现在,这个富含位置信息的 patch 序列(加上 class token)被送入一个由 L 层堆叠而成的标准 Transformer 编码器 中。每一层都包含两个核心组件:

  1. 多头自注意力机制
  2. 前馈神经网络

这里就是注意力机制发挥神奇作用的地方:

  • 自注意力的本质:对于序列中的每一个元素(例如,一个 patch 或 class token),自注意力机制会计算它与序列中所有其他元素(包括它自己)的关联性(注意力分数)。

  • 在 ViT 中的应用

    • 当模型处理 class token 时,它会关注所有 196 个图像块,并根据它们与最终分类任务的相关性,为每个块分配一个“注意力权重”。
    • 同样,当一个图像块(比如“狗鼻子”的块)被处理时,它也会去关注其他所有块(如“狗眼睛”、“狗尾巴”的块),从而在语义层面上建立远距离的依赖关系。
  • 多头注意力的优势:ViT 使用多头注意力。这意味着它可以并行地在多个不同的“表示子空间”中学习关系

    • 比如,一个“头”可能专门关注物体的轮廓边缘。
    • 另一个“头”可能专门关注纹理信息。
    • 第三个“头”可能负责将不同部分的颜色信息联系起来。
    • 通过多个头,模型能够从不同角度综合理解图像的整体信息。
2.2.4 输出与分类

经过所有 L 层 Transformer 编码器的处理後,我们取序列第一个位置(即 class token)对应的输出向量。
这个向量已经融合了整个图像所有 patch 的、经过多层抽象和交互的全局信息。
最后,将这个向量通过一个多层感知机 进行最终的分类,输出每个类别的概率。

总结:
ViT 的创新与意义
  1. 摒弃卷积:ViT 是第一个完全摒弃卷积操作,纯粹基于 Transformer 架构在图像识别任务上达到顶尖水平的主流模型。
  2. 全局感受野:与 CNN 的局部感受野不同,从第一层开始,ViT 的注意力机制就具备全局感受野。每个 patch 都能直接与任何其他 patch 进行交互,这使得它能非常高效地捕捉图像中长距离的依赖关系。
  3. 可解释性:通过可视化注意力图,我们可以发现模型在做出决策时关注了图像的哪些部分。通常,这些注意力区域能很好地对应到物体本身,提供了比 CNN 更具语义意义的解释。
ViT 的局限性及后续发展
  • 数据饥渴:原始的 ViT 需要在超大规模的数据集(如 JFT-300M)上预训练才能发挥出色性能,否则可能不如同等规模的 CNN。这是因为它缺乏 CNN 固有的归纳偏置(如平移不变性、局部性),需要更多数据来学习这些特性。
  • 计算复杂度:注意力机制的复杂度是序列长度的平方。对于高分辨率图像,patch 数量会非常多,导致计算量巨大。

为了克服这些局限性,后续出现了很多优秀的改进模型,例如:

  • Swin Transformer:引入了分层结构滑动窗口注意力,使其像 CNN 一样具有金字塔结构,能高效处理多尺度特征,并降低了计算复杂度,成为了更通用的骨干网络。
  • DeiT:通过知识蒸馏等技术,使得 ViT 能在 ImageNet 这样相对较小的数据集上也能取得优异表现。

总而言之,ViT 的成功在于它用一种极其简洁和统一的方式,将 NLP 领域的突破性成果迁移到了视觉领域,开创了视觉领域的一个全新研究方向——基于 Transformer 的视觉模型
![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/ima在这里插入图片描述

补充
- 知识蒸馏:让“学生”向“老师”学习

核心思想:训练一个庞大、复杂但性能强大的模型(教师模型),然后利用这个教师模型的“知识”来指导一个更小、更高效的模型(学生模型)进行训练。目标是在不牺牲太多性能的前提下,获得一个轻量级的模型。

技术流程

  1. 训练教师模型:在一个大型数据集上训练一个庞大的模型(如大型CNN或ViT-Huge),直到其收敛,性能优异。
  2. 蒸馏训练
    • 将同一张图片同时输入教师模型和学生模型。
    • 教师模型输出一个软标签(经过高温T缩放后的概率分布,更平滑,蕴含更多信息)。
    • 学生模型也输出一个软标签
    • 损失函数由两部分组成
      • 蒸馏损失:衡量学生模型的软标签与教师模型的软标签之间的差异(如KL散度)。这让学生模仿老师的“思维方式”。
      • 学生损失:衡量学生模型的输出与真实硬标签之间的差异(如交叉熵)。这确保学生不偏离基本事实。
    • 通过优化这个联合损失函数,学生模型既能从真实标签中学习,又能从教师模型的丰富知识中学习。
- DeiT:基于知识蒸馏的高效ViT

DeiT 的全称是 Data-efficient Image Transformer。它的核心贡献就是:在不依赖海量私有数据集(如JFT-300M)的情况下,仅使用ImageNet这类公开数据集,成功训练出了高性能的ViT模型。

它解决了什么问题?

  • 原始ViT的“数据饥渴”问题:ViT缺乏CNN固有的归纳偏置(如平移不变性、局部性),因此需要在大规模数据集(数亿张图片)上预训练才能发挥出色性能。如果在ImageNet上从头训练,其性能通常不如同等规模的CNN(如ResNet)。
  • DeiT的解决方案巧妙地使用知识蒸馏,让一个ViT(学生)向一个已经训练好的CNN(教师)学习。

DeiT的核心创新点

  1. 使用CNN作为教师

    • 在DeiT中,教师模型不是一个更大的ViT,而是一个高性能的CNN(如RegNet或EfficientNet)。
    • 为什么? 因为CNN本身就具备良好的归纳偏置,即使在ImageNet这样“相对较小”的数据集上也能训练得很好。让ViT向CNN学习,就相当于让ViT间接地、快速地学会了那些CNN固有的、对视觉任务有益的归纳偏置
  2. 引入蒸馏令牌

    • 这是DeiT在架构上最巧妙的设计。除了 CLS Token(用于与真实标签交互),DeiT额外引入了一个 Distillation Token
    • 这个蒸馏令牌和CLS令牌一样,是一个可学习的向量,被添加到输入序列中。
    • 它的唯一目标就是通过注意力机制与图像块交互,最终使其输出状态尽可能地去匹配教师模型输出的软标签
    • CLS令牌和蒸馏令牌在训练结束后都会被丢弃,只保留核心的Transformer编码器。

DeiT的训练与推理

  • 训练:输入一张图片,ViT学生模型输出两个结果:一个由CLS令牌产生的分类结果,一个由蒸馏令牌产生的分类结果。总损失是这两个结果分别与硬标签教师软标签的损失之和。
  • 推理:训练完成后,只需要普通的ViT骨干网络。在推理时,可以将CLS令牌和蒸馏令牌的输出取平均作为最终预测,或者直接使用其中一个(通常性能都很好)。

2.3 AST

AST(Audio Spectrogram Transformer)是将Vision Transformer应用于音频分类任务的模型,AST的核心思想是将音频的spectrogram视为一幅图像,并使用改进的Vision Transformer架构来处理它。

点击展开
2.3.1 主要思想

(AST)——是无卷积纯注意力模型,可直接处理音频频谱图,即使在最底层也能捕捉长程全局上下文。此外,作者提出将ImageNet预训练的视觉转换器(ViT)知识迁移至AST的方法,可显著提升性能。AST优势有三:首先,其性能卓越——我们在AudioSet、ESC-50和Speech Commands等数据集上评估AST,其表现均超越现有最优系统;其次,AST天然支持可变长度输入,无需调整架构即可应用于不同任务(所有任务使用相同架构,输入长度从1秒到10秒不等);第三,相比SOTA CNN-注意力混合模型,AST架构更简洁、参数量更少且训练收敛更快。

2.3.2 架构设计

在这里插入图片描述

如图所示是AST的整体架构

  1. 频谱转换
    首先,将 t 秒的输入音频波形转换为128维对数梅尔滤波器组(fbank)特征序列,该特征使用 25ms 汉明窗每 10ms 计算一次。最终生成 128×100t 频谱图作为AST的输入。
    直观地解释一下AST是如何将时间长度 t 秒的音频转换为 128 × 100t 的音频谱图:
点击展开

分帧(Framing):
* 声音信号是连续的波形。但我们无法一次处理整个波形。为了分析声音随时间变化的特性(比如音高、响度、音色),我们需要将它分成一个个小片段来单独分析。
* 这个过程叫做“分帧”。AST(或者说常见的音频特征提取方法)使用的参数是:
* 窗长(Window size): 25毫秒(ms)。这意味着每次我们取25毫秒长的音频片段来分析。
* 步长(Hop size): 10毫秒(ms)。这意味着我们每隔10毫秒就取一个新的25毫秒的片段。这两个片段之间会有15毫秒的重叠。

帧的数量: 每秒(1000毫秒)会产生多少帧呢?
* 第一帧在0ms开始。
* 第二帧在10ms开始。
* 第N帧在 (N-1) * 10ms 开始。
* 所以每10ms产生一帧。因此,1秒钟的音频会产生 1000ms / 10ms = 100 帧。
* 对于 t 秒的音频,就会有 100 * t 帧。
* 这就是谱图的宽度(时间维度)是 100t 的来源。

Mel滤波器组特征(Mel Filterbank Features):
* 对于每一帧(25毫秒的音频片段),我们需要把它转换成一种能代表其音高和能量的特征。
* 傅里叶变换: 首先,对每一帧进行傅里叶变换(或短时傅里叶变换),将声音波形从时域转换到频域,得到它的频谱(显示包含哪些频率成分及其能量)。
* Mel刻度: 人耳对不同频率的感知是非线性的。低频区域的微小变化人耳更容易察觉,而高频区域需要更大的变化才能感知。Mel刻度就是模仿人耳的这种感知方式,将线性的频率轴映射到非线性的Mel频率轴上。
* Mel滤波器组: 然后,我们会应用一组(这里是128个)Mel刻度上的三角形滤波器。就像给频谱套上128个“滤网”,每个滤网只允许某个特定的Mel频率范围内的能量通过。
* 求和: 每个滤网通过的能量被求和,就得到了这个特定频率区域内的能量值。
* 这样,每一帧25毫秒的音频经过这个过程,就会被表示成一个包含128个数值的向量,每个数值代表了在该帧中一个特定Mel频率带的能量。
* 对数: 最后,通常会对这些能量值取对数(log),因为声音的响度也是对数感知的,并且对数操作有助于压缩特征的动态范围,使其在机器学习模型中表现更好。
* 直观理解:
* 想象每一帧声音是一个复杂的“和弦”或“音色”。
* 我们用128个定制的“麦克风”去听这个和弦。这些麦克风不是均匀分布在钢琴键盘上的,而是更密集地分布在低音区,而在高音区分布得稀疏一些(Mel刻度)。
* 每个麦克风捕捉到的能量值,就成了我们128个特征维度中的一个。
* 这就是谱图的高度(频率维度)是 128 的来源。

组合起来:

  • 你有一个 t 秒的音频。
  • 每10毫秒产生一帧,所以总共有 100t 帧(时间维度)。
  • 每帧都会被提取出128个Mel滤波器组对数能量特征(频率维度)。
  • 所以,最终结果就是一个 128 行(频率) × 100t 列(时间)的二维矩阵,也就是可视化后的音频谱图。

这个谱图现在就像一张图像:频率在Y轴,时间在X轴,每个像素点的颜色或亮度代表了该时间点和该频率范围的能量强度。这就是AST的输入,也是ViT能够处理的图像形式,尽管它在时间维度上是可变的。


  1. 频谱图patch分割与embedding

    • ①分块:将生成的128 × 100t 的2D音频谱图分割成一系列固定大小的16×16像素块(patches)。这是ViT的核心思想,将图像分解为patch,并将其视为序列中的“token”。
    • ②重叠分块: 为了更好地捕获局部信息并提高性能,AST在时间和频率维度都使用了重叠分块(overlap of 6)。尽管这会增加Transformer输入的序列长度,但实验表明它能带来性能提升。所以是将频谱图分割为 N 个 16×16 的重叠6个单位的时频块序列,其中 N= 12[(100t-16)/10],也就是是Transformer的有效输入序列长度。
    • ③线性投影: 每个16×16的块被展平(flatten)并使用一个线性投影层转换为一个固定大小的1D向量(768维),这个向量被称为“patch embedding”。
    • ④添加CLS token:和transformer一致,编码器对[CLS]标记的输出作为音频频谱图的表征,通过带sigmoid激活的线性层将该表征映射为分类标签。
  2. 解决AST到ViT迁移的难点

    • ①AST的1通道频谱图适配ViT的3通道输入
      将ViT分块嵌入层中对应三个输入通道的权重取平均后作为AST分块嵌入层的权重。这等效于将单通道频谱图复制为三通道内容,但计算效率更高。同时对输入音频频谱图进行标准化,使其数据集均值与标准差分别为0和0.5。
    • ②AST的可变输入序列长度适配ViT的固定长度输入
      ViT的输入尺寸固定( 224×224 或 384×384 ),而音频频谱图长度可变,为了解决这个问题,作者提出了截取+双线性插值的位置嵌入适配方法:例如对于输入 384×384 图像、分块尺寸 16×16 的ViT,其分块数量及对应位置嵌入为 24×24=576 (ViT采用无重叠分块)。而输入10秒音频的AST具有 12×100 个分块,每个分块都需要位置嵌入。因此我们将ViT的 24×24 的第一维24截取12个、第二维24插值至100个后作为AST的位置嵌入,并直接复用[CLS]标记的位置嵌入。这样即使输入尺寸不同,也能将预训练ViT的2D空间知识迁移至AST。
    • ③舍弃ViT最后的分类层并为AST重新初始化新分类层
      最后由于分类任务本质不同,我们舍弃ViT最后的分类层并为AST重新初始化新分类层。通过此适配框架,AST可使用各类预训练ViT权重初始化。
  3. 采用DeiT(data-efficient image Transformer)
    作者最终选取使用DeiT的预训练权重,——该模型通过CNN知识蒸馏训练、输入 384×384 图像、含 87M 参数、在ImageNet2012上达到 85.2% 的top-1准确率。DeiT在ImageNet训练时使用两个[CLS]标记,将其取平均后作为音频训练的单一[CLS]标记。


2.4 SSAST

SSAST(Self-Supervised Audio Spectrogram Transformer)是AST的自监督学习预训练改进,提出了 联合判别和生成式掩码谱图块建模(Joint Discriminative and Generative Masked Spectrogram Patch Modeling, MSPM) 的自监督学习框架,用于预训练 AST 模型。

点击展开
2.4.1 自监督学习

自监督学习是一种机器学习方法,它通过从未标记的数据中自动生成标签来训练模型,而不需要人工标注的数据。自监督学习的核心思想是利用数据本身的结构和属性来创建预测任务,从而让模型学习有用的表示。

CV领域的自监督学习方法主要包括三类:基于对比学习的方法,基于掩码图像建模的方法,基于蒸馏的方法。本节主要用到的是基于掩码图像建模的方法

下面详细深入地讲解一下掩码图像建模 的原理,以及它为什么是自监督学习的典范。

点击展开
核心原理:受NLP启发的“完形填空”

掩码图像建模的核心思想非常简单直接,它借鉴了自然语言处理领域BERT模型的巨大成功。

  1. 在NLP中(以BERT为例):

    • 步骤: 输入一个句子,例如 “我喜欢吃[MASK]果。”
    • 任务: 模型需要根据上下文(“我喜欢吃”和“果”)来预测被[MASK]替换掉的词是什么(最可能是“苹”)。
    • 目标: 通过这个任务,模型被迫学习词语之间的语法、语义和逻辑关系。
  2. 在CV中(以MAE为例):

    • 步骤: 输入一张图片,随机地“掩盖”(即丢弃)其中一大部分像素块(例如,掩盖75%)。
    • 任务: 模型需要根据剩余的、未被掩盖的少量像素块,来预测或“重建”被掩盖部分的原始像素信息。
    • 目标: 通过这个看似不可能的“补全”任务,模型被迫学习图像中物体的结构、纹理、部件之间的几何关系等本质的视觉特征。

为什么这个任务有效?
因为图像不是随机的噪声,它具有高度的结构和语义信息。要成功地预测出被掩码的部分,模型必须理解:

  • 对称性: 看到一只眼睛,应该能预测出另一只眼睛的位置。
  • 物体部件: 看到车轮和部分车身,应该能推测出车头或车尾的样子。
  • 纹理连续性: 看到草地的部分纹理,应该能延续这个纹理去填充被掩码的区域。
  • 上下文关系: 看到键盘,上方很可能有显示器。

这个过程,本质上就是在教模型理解“什么是合理的图像结构”。

详细工作流程:以MAE为例

我们以最经典的MAE 框架为例,拆解其工作步骤:

  1. 分割与掩码:

    • 将输入图像分割成规则的非重叠图像块。
    • 以很高的比例(如75%)随机选择一部分图像块,并将它们“掩码”掉(即移除它们的像素信息)。只剩下25%的可见块。
  2. 编码:

    • 仅将可见的图像块(25%) 输入到编码器(通常是Vision Transformer, ViT)中。
    • 这是MAE高效的关键!编码器只处理一小部分数据,大大减少了计算量。
    • 编码器对这些可见块进行处理,输出它们的特征表示。
  3. 解码:

    • 将编码器输出的特征,与代表被掩码块的[MASK]令牌组合在一起,形成一个完整的特征序列。
    • 将这个完整的序列输入一个轻量级的解码器(可以是另一个Transformer)。
    • 解码器的任务是:根据可见块的特征和[MASK]令牌的位置信息,为每一个[MASK]令牌预测出被掩盖图像的原始像素值。
  4. 损失计算与优化:

    • 计算解码器预测的像素值与被掩盖区域的真实像素值之间的差异(通常使用均方误差MSE)。
    • 关键点: 损失函数只计算在被掩码的区域上。模型不需要重建已经看到的部分,它的全部精力都集中在“猜出”缺失的部分。
    • 通过反向传播这个重建损失,来更新编码器和解码器的参数。
  5. 下游任务应用:

    • 在预训练完成后,我们丢弃解码器
    • 此时,这个经过千百万张图像“完形填空”训练的编码器,已经学会了如何从图像的碎片中理解其整体结构和语义。
    • 我们将这个强大的、拥有通用视觉知识的编码器,用于下游任务(如图像分类、目标检测等),只需要用有标签的数据对其进行微调即可,通常能取得极佳的性能。

为什么掩码图像建模属于自监督学习?

要理解这一点,我们首先要明确自监督学习的核心定义:

自监督学习是一种特殊的无监督学习,其核心是 从数据本身自动生成标签,然后利用这些生成的标签来训练模型。

在掩码图像建模中,这个“自动生成标签”的过程体现得淋漓尽致:

  1. 监督信号来自数据本身:

    • 我们不需要任何来自人类的、外部的标签(如“这是一只猫”、“这是一辆车”)。
    • 监督信号就是被掩盖部分的“原始像素”。这个信号天然地、毫无成本地存在于每一张图片之中。
  2. 自己创造任务,自己提供答案:

    • 任务(输入): 原始图像 -> 人为掩盖一部分的图像
    • 标签(答案): 被掩盖掉的那部分
    • 对于任何一张输入图像,系统都能自动地生成一个(输入,标签)训练对。这个过程是完全可自动化的。
  3. 核心目标是一致的:

    • 自监督学习的最终目标不是完美地执行前置任务(比如完美重建像素),而是通过完成这个前置任务,让模型学习到高质量、可迁移的通用数据表征
    • 在MAE中,我们的目标不是得到一个完美的“图像修补工具”,而是为了得到一个强大的编码器。这个编码器学到的特征,能够很好地服务于后续的各种视觉任务。
为什么在下游任务要保留编码器丢弃解码器

丢弃解码器、保留编码器是一个基于职责分工、任务需求和工程效率的理性选择。它确保了我们将预训练中获得的最有价值的部分——通用的视觉表征能力——以最纯粹、最高效的方式应用到各种实际任务中。

2.4.2 SSAST的联合判别和生成式掩码谱图块建模(MSPM)

AST的成功依赖于需要大量标注数据和复杂训练流程的监督预训练,这限制了其实际应用.但我们可以轻松从广播或YouTube获取网络规模的无标注音频与语音数据。这促使我们探索利用无标注数据缓解数据需求问题的自监督音频频谱变换器(SSAST)。本文提出了一种基于联合判别与生成的掩码频谱块建模(MSPM)的新型自监督学习(SSL)框架,该框架能在有限标注数据下显著提升AST性能。

而本工作证明SSL模型可泛化至语音和音频双领域。经MSPM预训练的模型在所有6个基准测试中均显著优于从头训练模型,平均提升 60.9% ,其性能甚至可匹敌或超越有监督预训练模型。本工作的贡献包含两方面:

  1. 提出MSPM——一种基于频谱块的联合判别与生成自监督学习框架。经MSPM预训练后,SSAST模型达到或超越此前有监督预训练AST性能。
  2. 证明了联合语音与音频数据集预训练能显著提升模型泛化能力,其效果优于单一领域预训练。因此,SSAST模型在语音与音频下游任务中均表现优异。

在这里插入图片描述

如图所示,作者提出的自监督AST架构。二维音频频谱图被分割为 16×16 个非重叠块序列,经线性投影转为1维块嵌入序列 E 。每个块嵌入叠加可学习位置嵌入 P 后输入Transformer编码器,其输出 O 作为频谱图块表示。自监督预训练时,我们随机掩蔽部分频谱图块,要求模型:
(1)从所有掩蔽块中定位每个掩蔽位置的正确块;
(2)重建被掩蔽块。这两个代理任务迫使AST模型学习音频数据的时频结构。微调阶段对所有块表示 {O} 进行均值池化,并通过线性分类头完成分类。

联合判别式与生成式掩码频谱图块建模具体内容包括:

  1. 得益于AST的这种特殊设计,我们能在预训练时掩码频谱图块而非整段时间帧,使模型能同时学习数据的时频结构。

  2. 我们使用聚类因子 C 控制掩码块的聚集程度:先随机选择一个块,然后掩码以该块为中心、边长为 C 的正方形区域(例如 C=3 时掩码9个块,总面积 48\times48 )。 C 越大模型需学习更全局的频谱结构,越小则学习更局部结构。如图所示:
    在这里插入图片描述

  3. 联合判别式与生成式掩码频谱图块建模:提出了联合判别式与生成式掩码频谱图块建模(MSPM)框架进行自监督预训练任务:
    在这里插入图片描述

    如算法所示每个输入频谱图 X 被分割为512个块 x 并转换为对应的块嵌入 E (第8-9行)。按前述方法随机生成含 N 个掩码位置索引的集合 I (第10-11行)。对每个待掩码块,将其块嵌入替换为可学习的掩码嵌入 E mask E_{\mathrm{\ mask\ }}E mask  (第12行)。添加位置嵌入后输入Transformer编码器(第13行)。对每个掩码块 xix_ixi ,获取对应编码器输出 OiO_iOi ,将其分别输入分类头和重建头得到输出 cic_icirir_iri 两个头部均为双层MLP,将 OiO_iOi (768维)映射到与 x_i\left(256\right) 相同维度。要求 rir_iri 接近 xix_ixi ,且模型能匹配正确的 (xi,ci)(x_i,c_i)(xi,ci) 对。

    • 判别式目标: 使用 InfoNCE 损失。对于每个被掩码的补丁,模型需要从所有被掩码的补丁中识别出正确的原补丁(将输出特征与正确的原始补丁进行匹配,同时将其他被掩码的补丁作为负样本)。注意:负样本是从同一频谱图中采样的,即模型需要从所有被遮蔽的补丁中为每个遮蔽位置选择正确的补丁。一方面,这增加了预训练任务的难度,防止模型学习诸如录音环境等无关特征进行预测;另一方面,也避免了建立来自不同频谱图的补丁记忆库,从而降低算法计算强度,减少对小批量大小的依赖。
      Ld=−1N∑i=1Nlog⁡exp⁡(ciTxi)∑j=1Nexp⁡(ciTxj) \mathcal{L}_{\mathrm{d}} = -\frac{1}{N}\sum^{N}_{i=1}\log \frac{\exp(c^T_ix_i)}{\sum^{N}_{j=1} \exp(c^T_ix_j)} Ld=N1i=1Nlogj=1Nexp(ciTxj)exp(ciTxi)

    • 生成式目标: 使用均方误差 (MSE) 损失。模型需要重建被掩码的补丁的原始特征。
      Lg=1N∑i=1N(ri−xi)2 \mathcal{L}_{\mathrm{g}} = \frac{1}{N}\sum^{N}_{i=1}(r_i - x_i)^2Lg=N1i=1N(rixi)2

    • 联合损失函数:总损失是判别式任务的 InfoNCE 损失和生成式任务 MSE 损失的加权和 (论文中实验设置λ=10\lambda=10λ=10
      L=Ld+λLg\mathcal{L}=\mathcal{L}_d+\lambda\mathcal{L}_gL=Ld+λLg

2.4.3 工作总结

通过大量实验,作者获得以下关键发现:

  • 首先,MSPM自监督预训练框架使AST在所有下游任务中平均提升60.9%性能。我们的SSAST模型可媲美甚至超越有监督预训练模型,并展现更优泛化能力,表明MSPM可替代需大量标注数据的有监督预训练
  • 其次,联合使用生成与判别目标的预训练效果优于单一目标,同理,联合音语数据的预训练效果优于单领域数据
  • 第三,MSPM在图像块形状上的灵活性让我们探索了基于帧的AST。发现从头训练时帧基AST始终优于块基AST,但块基预训练带来更大提升。经MSPM预训练后,块基AST在音频任务占优,帧基AST在语音任务领先。我们计划未来探究此差异原因。
  • 最后,MSPM支持AST模型扩展——预训练后更大模型表现更佳,而从头训练时扩大模型可能导致性能下降。受限于算力,当前SSAST采用小批量预训练,未来我们将进一步研究AST的缩放规律。

2.5 Mamba

Mamba 作为状态空间模型 (SSM:state space models ) 衍生的神经网络架构,适用于语言建模及其他序列建模任务。Mamba 架构凭借极速推理效能与计算效率(尤其长序列场景),成为自回归 LLM 领域首个可匹敌 Transformer 的替代架构。Mamba 模型或是首个在语言建模任务中(Transformer 成名领域)媲美 Transformer 效能的深度学习架构。最显著的是,在主流 LLM 基准测试中,Mamba 架构展现出与同等规模 Transformer 相当的性能,同时高效利用硬件感知算法实现近似并行SSM,延迟与内存需求往往显著降低。
Mamba成功解决了序列建模的基本权衡:如何在保持高效性的同时不牺牲表达能力。通过选择性机制,Mamba能够:

  • 像注意力机制那样进行内容感知推理

  • 保持RNN的线性计算效率

  • 在长序列任务中实现持续性能提升

2.6 ViM

Vim(Vision Mamba)是一种基于状态空间模型(State Space Model, SSM) 的视觉骨干网络,旨在将 Mamba 在自然语言处理中的高效序列建模能力迁移到视觉任务中。Vim 的核心创新在于解决了 SSM 在处理图像数据时的两个关键挑战:单向建模限制 和缺乏位置感知能力。

点击展开
2.6.1 Vim 的主要结构
1. 图像patch与Embedding(模仿ViT)
  • 将输入图像分割成不重叠的 patches,并将其展平为 1D 序列。
  • 使用线性投影将每个 patch 映射为嵌入向量,并添加位置编码以保留空间信息。
  • 引入 class token 用于分类任务。
2. Vim 编码器
  • 由多个 Vim Block 堆叠而成,并采用了强大高效的残差连接结构,有助于梯度流动和训练深层网络。
  • 每个 Vim Block 包含:
    • 归一化层
    • 线性投影生成两个分支:xz
    • 双向 SSM 处理
      • x 分别独立进行前向反向卷积+SSM处理
      • 每个方向使用 1D 卷积、线性投影生成 SSM 参数(B, C, Δ
      • 使用 SSM 递归计算得到两个方向的输出
    • 门控机制:使用 z 对两个方向的输出进行门控融合
    • 残差连接
      在这里插入图片描述
3. 分类头
  • 使用 middle class token 策略,将 class token 插入序列中间,充分利用 SSM 的递归特性。
  • 最终通过 MLP 头进行分类。
2.6.2 主要创新点
双向状态空间建模
  • 传统 Mamba 是单向的,不适合视听觉任务,因为图像和视频通常需要全局上下文信息。
  • Vim通过引入双向SSM来建模数据依赖的全局视觉上下文。这意味着图像序列可以从前向和后向两个方向进行处理,以捕获更全面的空间信息。
  • 实验表明,双向设计显著提升分类和密集预测任务性能。
位置感知的视觉建模
  • 在嵌入层中加入位置编码,使模型能够感知图像的空间结构。
  • 这对于目标检测、语义分割等密集预测任务至关重要。
纯 SSM 架构,无需注意力机制(Mamba)
  • Vim 是首个纯 SSM 架构的通用视觉骨干网络,不依赖自注意力机制。
  • 避免了 Transformer 的二次复杂度,实现线性计算和内存复杂度
硬件感知的高效设计(Mamba)
  • 借鉴 Mamba 的硬件优化策略:
    • IO 效率:通过 SRAM 缓存减少内存访问。
    • 内存效率:使用重计算策略减少中间激活存储。
    • 计算效率:SSM 复杂度为 (O(M)),而自注意力为 (O(M^2))。
支持高分辨率图像处理
  • 由于线性复杂度,Vim 在处理高分辨率图像(如 1248×1248)时:
    • 比 DeiT 快 2.8 倍
    • 节省 86.8% GPU 内存
多任务通用性
  • 在 ImageNet 分类、COCO 检测、ADE20K 分割等任务上均优于 DeiT。
  • 支持长序列微调,进一步提升模型性能。
实验效果
  • ImageNet:Vim-Ti/S/B 均优于同规模 DeiT。
  • 语义分割(ADE20K):Vim-Ti 比 DeiT-Ti 高 1.8 mIoU。
  • 目标检测与实例分割(COCO):Vim-Ti 在 AP 上全面超越 DeiT-Ti。

2.7 SSAMBA

SSAMBA(Self-Supervised Audio Mamba)是将Mamba架构应用于自监督预训练音频分类任务的模型,SSAMBA的核心思想是模仿SSAST的联合判别和生成式掩码谱图块建模(MSPM)方法,将其中的transformer部分改为使用具有高效序列建模能力的Mamba,以提升音频分类任务的性能并克服 Transformer 在处理长序列时存在的二次复杂度问题(计算和内存)。

点击展开
2.7.1 主要结构

SSAMBA模型旨在通过自监督学习,从大规模无标签音频数据中学习鲁棒的音频表示,同时解决Transformer模型在效率上的局限性。其核心原理可以概括为以下几个方面:

  1. Mamba Encoder作为核心架构(ViM)

    • 取代Transformer:SSAMBA是首个完全基于Mamba且无注意力机制的自监督音频表示学习模型,旨在替代Transformer在音频领域的应用。
    • 利用选择性状态空间:模型的核心是Mamba编码器,它利用Mamba模型本身的选择性状态空间机制。这意味着Mamba的参数(Δ,B,C\Delta, B, CΔ,B,C)是输入相关的,允许模型根据音频内容的特定特征动态调整信息传播和遗忘,从而有效捕捉复杂的音频模式,包括短程和长程依赖。
    • 双向Mamba (Bidirectional Mamba):SSAMBA特别采用了双向Mamba编码器。这意味着模型同时处理正向和反向的时间依赖关系。这对于全面理解音频上下文至关重要,因为音频事件的理解往往需要结合过去和未来的信息。通过在每个Mamba块中并行运行前向和后向SSM,并将它们的输出结合起来,模型能够获得更丰富的上下文表示。
  2. Spectrogram作为输入表示(AST、SSAST)

    • 预处理:原始音频波形首先被转换为对数Mel滤波器组特征(log Mel filterbank features),形成一个二维的语谱图(spectrogram)。
    • 分块与Embeddings:语谱图被分割成一系列不重叠的16x16大小的patches。每个patch被展平并通过线性投影层转换为高维度的Embedding。
    • 位置编码:为了保留patches在语谱图中的时序和空间信息,模型为每个patch Embedding添加可学习的位置编码。

    原文翻译:输入音频波形首先被转换为频谱图,呈现音频数据的时频域特征。该转换通过计算128维对数梅尔滤波器组特征实现,采用 25ms 汉宁窗的短时傅里叶变换(STFT),每 10ms 应用一次。生成的频谱图矩阵 S 维度为 128×100t ,其中 F=128 为频点数, T=100t 为 t 秒音频对应的时间帧数。随后将该频谱图分割为 16×16 个片段,例如10秒音频以16为步长分割时,可得到500个片段。 ————这个SSAST是完全一致的。

  3. 自监督学习框架(SSAST——MSPM)

    • 掩码语谱图分块建模(Masked Spectrogram Patch Modeling, MSPM):受SSAST的启发,SSAMBA采用MSPM作为预训练任务。在预训练阶段,随机掩码(mask)一部分语谱图patches。模型的任务是预测这些被掩码的patches的内容或类别,迫使模型学习音频数据的底层结构。
    • 多目标联合优化:预训练目标结合了判别式和生成式任务:
      • 判别式目标 (Discriminative Objective):使用一个分类头对每个被掩码的patch的输出向量进行预测。通过计算InfoNCE损失,模型需要区分真实的被掩码patch Embedding与其他批次内patches的Embedding,从而学习识别被掩码内容。
        Ld=−1N∑i=1Nlog⁡exp⁡(ciTxi)∑j=1Nexp⁡(ciTxj) \mathcal{L}_{\mathrm{d}} = -\frac{1}{N}\sum^{N}_{i=1}\log \frac{\exp(c^T_ix_i)}{\sum^{N}_{j=1} \exp(c^T_ix_j)} Ld=N1i=1Nlogj=1Nexp(ciTxj)exp(ciTxi)
      • 生成式目标 (Generative Objective):使用一个重建头尝试重建被掩码patches的原始内容。通过最小化均方误差(MSE)损失,模型被训练来生成与原始Embedding相似的重建版本。
        Lg=1N∑i=1N(ri−xi)2 \mathcal{L}_{\mathrm{g}} = \frac{1}{N}\sum^{N}_{i=1}(r_i - x_i)^2Lg=N1i=1N(rixi)2
      • 联合损失函数:总损失是判别式任务的 InfoNCE 损失和生成式任务 MSE 损失的加权和 :
        L=Ld+λLg\mathcal{L}=\mathcal{L}_d+\lambda\mathcal{L}_gL=Ld+λLg
  4. 大规模无标签数据预训练

    • 数据集混合:SSAMBA在混合了AudioSet-2M(涵盖广泛的声音类别)和LibriSpeech(侧重语音)的无标签音频数据上进行预训练,以学习泛化性更强的音频表示,同时增强对语音的表示能力。
    • 数据标准化:所有音频样本被标准化为10秒的时长,并下采样到16kHz,转换为单声道,以确保输入格式的一致性。
      在这里插入图片描述
2.7.2 SSAMBA的亮点
  1. 开创性首次提出了基于Mamba状态空间模型的自监督、无注意力机制的音频表示学习模型,为Transformer在音频领域的替代方案提供了新的视角和成功的实践。

  2. 效率显著提升

    • 线性复杂度:Mamba架构带来了计算和内存复杂度的线性扩展,避免了Transformer的二次方瓶颈。
    • 推理速度与内存优化:在批量推理速度和GPU内存使用方面,SSAMBA取得了显著优势。例如,对于输入token大小为22k的Tiny模型,SSAMBA比同等大小的SSAST(一个Transformer基线)快约92.7%的推理速度,并节省约95.4%的内存。这使得SSAMBA非常适合实时处理和资源受限设备上的部署。
  3. 性能卓越或相当

    • 超越基线:SSAMBA在大多数下游任务(如音频事件分类、关键词识别、说话人识别、情感识别等)中,尤其是较大模型配置下,性能优于或与Self-Supervised Audio Spectrogram Transformer (SSAST) 相当。这证明了Mamba在不牺牲性能的情况下,能够有效建模复杂的音频模式。
    • 跨任务的鲁棒性:SSAMBA在各种音频任务上表现出强大的泛化能力,尤其在AudioSet-20K和环境声音分类任务中显示出显著改进,这得益于其鲁棒的特征提取能力。
    • 预训练的重要性:论文强调了自监督预训练的巨大优势,特别是对于复杂的动态音频场景标注(DASL)任务,未预训练的模型难以泛化和收敛。
  4. 双向Mamba的设计优势:实验表明,双向Mamba编码器显著优于单向Mamba,证明了其在捕捉音频时序依赖关系方面的重要性。

  5. 模型规模灵活:SSAMBA提供了Tiny、Small和Base三种不同尺寸的预训练模型,方便根据实际应用需求选择合适的模型。

2.7.3 得到的效果

SSAMBA 在多项音频和语音分类任务上取得了令人印象深刻的效果,主要体现在以下几个方面:

  1. 性能超越或媲美 SSAST:

    • 在大多数下游任务中,尤其是较大模型配置(Base 模型),SSAMBA 的性能总体上优于 SSAST。
    • 具体任务表现(见 Table 2):
      • AudioSet-20K (AS, mAP): SSAMBA-base 达到 28.3,SAAST-base 为 26.9,SSAMBA 表现更优。
      • Keyword Spotting (KS1, KS2): SSAMBA-base 达到 96.9% 和 97.4%,略高于 SSAST-base 的 96.0% 和 97.9%(在 KS2 上略低)。
      • Speech Commands V1 (KS1): SSAMBA-base 96.9%,SSAST-base 96.0%。
      • Environmental Sound Classification (ESC, Acc.): SSAMBA-base 89.3%,SSAST-base 88.8%,SSAMBA 表现更优。
      • Speaker Identification (SID, Acc.): SSAMBA-base 70.1%,SSAST-base 68.8%,SSAMBA 表现更优。
      • Emotion Recognition (ER, Acc.): SSAMBA-base 61.5%,SSAST-base 59.6%,SSAMBA 表现更优。
      • Dynamic Audio Scene Labeling (DASL, mAP): SSAMBA-base 80.8%,SSAST-base 78.7%,SSAMBA 表现更优。
    • 这表明将 Transformer 替换为 Mamba 不仅带来了效率提升,还在多数情况下带来了性能的增强,尤其是在复杂音频模式的处理上。
  2. 显著的效率提升:

    • 推理速度: SSAMBA Tiny 模型在 22k 输入 token 下,推理速度比 SSAST Tiny 快约 92.7%
    • GPU 内存使用: SSAMBA Tiny 模型在 22k 输入 token 下,GPU 内存使用比 SSAST Tiny 节省约 95.4%
    • 这些数据(如图 2 所示)清楚地展示了 SSAMBA 在计算和内存方面的巨大优势,使其成为更适合实际部署的选择。
  3. 对预训练的依赖和从头开始训练的劣势:

    • 与 SSAST 类似,SSAMBA 也强烈依赖于自监督预训练。实验结果显示,未经预训练的 SSAMBA 模型在各项任务上表现非常差,尤其是在 DASL 等复杂任务上几乎无法收敛,凸显了自监督预训练的重要性。
  4. 与现有语音自监督模型的对比:

    • 在纯语音任务(KS1, SID, ER)上,SSAMBA-base 性能优于 APC 和 Wav2Vec 1.0。
    • 与更先进的 Wav2Vec 2.0 和 HuBERT 相比,SSAMBA-base 在某些任务(如 KS1)上可以媲美,但在 SID 和 ER 上,冻结(frozen setting)的 Wav2Vec 2.0 和 HuBERT 仍然表现更优。作者指出这可能与他们使用了更多的 GPU,从而能进行更大批次训练有关。
  5. 消融研究揭示:

    • 掩码补丁数量: 对于大多数任务,特别是通用音频任务(如 AS 和 ESC),使用 400 个掩码补丁表现最佳。对于语音任务(如 ER),减少掩码补丁数量也能获得较小性能收益。
    • 双向 Mamba 的重要性: 单向 Mamba 编码器的性能显著差于双向 Mamba,证明了捕捉双向依赖对于音频表示学习的重要性。
2.7.4 总结

SSAMBA 的核心在于用更高效的 Mamba 状态空间模型替代了 Transformer 架构,同时保留了 SSAST 中成功的自监督预训练策略。这一创新带来了 显著的效率提升(更快的推理速度和更低的内存消耗),并能保持 相似甚至更优的性能。这使得 SSAMBA 对于资源受限的设备和实时音频处理应用具有巨大的潜力,是音频自监督学习领域的一个重要进展。


参考文献

[1] Attention Is All You Need https://arxiv.org/abs/1706.03762
[2] An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale https://arxiv.org/abs/2010.11929
[3] Masked Autoencoders Are Scalable Vision Learners https://arxiv.org/abs/2111.06377
[4] AST: Self-Supervised Audio Spectrogram Transformer https://arxiv.org/abs/2104.01778
[5] SSAST: Self-Supervised Audio Spectrogram Transformer https://arxiv.org/abs/2110.09784
[6] Mamba: Linear-Time Sequence Modeling with Selective State Spaces https://arxiv.org/abs/2312.00752
[7] Vision Mamba:Efficient Visual Representation Learning with Bidirectional State Space Model https://arxiv.org/abs/2401.09417
ge Recognition at Scale https://arxiv.org/abs/2010.11929
[3] Masked Autoencoders Are Scalable Vision Learners https://arxiv.org/abs/2111.06377
[4] AST: Self-Supervised Audio Spectrogram Transformer https://arxiv.org/abs/2104.01778
[5] SSAST: Self-Supervised Audio Spectrogram Transformer https://arxiv.org/abs/2110.09784
[6] Mamba: Linear-Time Sequence Modeling with Selective State Spaces https://arxiv.org/abs/2312.00752
[7] Vision Mamba:Efficient Visual Representation Learning with Bidirectional State Space Model https://arxiv.org/abs/2401.09417
[8] SSAMBA: Self-Supervised Audio Representation Learning with Mamba State Space Model https://arxiv.org/abs/2405.11831

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐