一文看懂Mamba,Transformer最强竞争者

2024-08-19 14:33:00
刘大牛
转自文章
231

Mamba 虽好,但发展尚早。



深度学习架构有很多,但近些年最成功的莫过于 Transformer,其已经在多个应用领域确立了自己的主导地位。


如此成功的一大关键推动力是注意力机制,这能让基于 Transformer 的模型关注与输入序列相关的部分,实现更好的上下文理解。但是,注意力机制的缺点是计算开销大,会随输入规模而二次增长,也因此就难以处理非常长的文本。


好在前段时间诞生了一种颇具潜力的新架构:结构化的状态空间序列模型(SSM)。该架构能高效地捕获序列数据中的复杂依赖关系,并由此成为 Transformer 的一大强劲对手。


这类模型的设计灵感来自经典的状态空间模型 —— 我们可以将其看作是循环神经网络和卷积神经网络的融合模型。它们可使用循环或卷积运算进行高效地计算,从而让计算开销随序列长度而线性或近线性地变化,由此大幅降低计算成本。


更具体而言,SSM 最成功的变体之一 Mamba 的建模能力已经可以比肩 Transformer,同时还能维持随序列长度的线性可扩展性。


Mamba 首先引入了一个简单却有效选择机制,其可根据输入对 SSM 进行重新参数化,从而可让模型在滤除不相关信息的同时无限期地保留必要和相关的数据。然后,Mamba 还包含一种硬件感知型算法,可使用扫描(scan)而非卷积来循环地计算模型,这在 A100 GPU 上能让计算速度提升 3 倍。


如图 1 所示,凭借强大的建模复杂长序列数据的能力和近乎线性的可扩展性,Mamba 已经崛起成为一种基础模型,并有望变革计算机视觉、自然语言处理和医疗等多个研究和应用领域。

图片

因此,研究和应用 Mamba 的文献迅速增长,让人目不暇接,一篇全面的综述报告必定大有裨益。近日,香港理工大学的一个研究团队在 arXiv 上发布了他们的贡献。

图片

  • 论文标题:A Survey of Mamba
  • 论文地址:https://arxiv.org/pdf/2408.01129


这份综述报告从多个角度对 Mamba 进行了总结,既能帮助初学者学习 Mamba 的基础工作机制,也能助力经验丰富的实践者了解最新进展。


Mamba 是一个热门研究方向,也因此有多个团队都在尝试编写综述报告,除了本文介绍的这一篇,还有另一些关注状态空间模型或视觉 Mamba 的综述,详情请参阅相应论文:
  • Mamba-360: Survey of state space models as transformer alternative for long sequence modelling: Methods, applications, and challenges. arXiv:2404.16112

  • State space model for new-generation network alternative to transformers: A survey. arXiv:2404.09516

  • Vision Mamba: A Comprehensive Survey and Taxonomy. arXiv:2405.04404

  • A survey on vision mamba: Models, applications and challenges. arXiv:2404.18861

  • A survey on visual mamba. arXiv:2404.15956

预备知识


Mamba 集中了循环神经网络(RNN)的循环框架、Transformer 的并行计算和注意力机制、状态空间模型(SSM)的线性特性。因此,为了透彻地理解 Mamba,就必需先理解这三种架构。


循环神经网络


循环神经网络(RNN)具有保留内部记忆的能力,因此很擅长处理序列数据。


具体来说,在每个离散时间步骤 k,标准 RNN 在处理一个向量时会连同前一时间步骤的隐藏状态一起处理,之后输出另一个向量并更新隐藏状态。这个隐藏状态就可作为 RNN 的记忆,其能保留过去已见过的输入的信息。这种动态记忆让 RNN 可处理不同长度的序列。


也就是说,RNN 是一种非线性的循环模型,可通过使用存储在隐藏状态中历史知识来有效地捕获时间模式。


Transformer


Transformer 的自注意力机制有助于捕获输入之中的全局依赖。其实现方式是基于每个位置相对于其它位置的重要程度为它们分配权重。更具体而言,首先对原始输入进行线性变换,将输入向量的序列 x 转换成三类向量:查询 Q、键 K 和值 V。


然后计算归一化的注意力分数 S 并计算注意力权重。


除了可以执行单个注意力函数,我们还可以执行多头注意力。这让模型可以捕获不同类型的关系,并从多个视角理解输入序列。多头注意力会使用多组自注意力模块并行地处理输入序列。其中每个头都独立运作,执行的计算与标准自注意力机制一样。


之后,将每个头的注意力权重汇聚组合,得到值向量的加权和。这个聚合步骤可让模型使用来自多个头的信息并捕获输入序列中的多种不同模式和关系。


状态空间


状态空间模型(SSM)是一种传统的数学框架,可用于描述系统随时间变化的动态行为。近些年来,人们已将 SSM 广泛应用于控制论、机器人学和经济学等多个不同领域。


究其核心,SSM 是通过一组名为「状态」的隐藏变量来体现系统的行为,使其能有效捕获时间数据的依赖关系。不同于 RNN,SSM 是一种具有关联(associative)属性的线性模型。具体来说,经典的状态空间模型会构建两个关键方程(状态方程和观察方程),以通过一个 N 维的隐藏状态 h (t) 建模当前时间 t 时输入 x 与输出 y 之间的关系。


  • 离散化


为了满足机器学习的需求,SSM 必需经历一个离散化过程 —— 将连续参数转变成离散参数。通常来说,离散化方法的目标是将连续时间划分为具有尽可能相等积分面积的 K 个离散区间。为了实现这一目标,SSM 采用的最具代表性的解决方案之一是 Zero-Order Hold(ZOH),其假设区间 Δ = [
发表评论
评论通过审核后显示。
文章分类
联系我们
联系人: 透明七彩巨人
Email: weok168@gmail.com
© 2013- 2024 透明七彩巨人-tmqcjr.com   
SQL查询: 26
内存占用: 8.25MB
PHP 执行时间: 0.31