【AI学习】Mamba学习(十二):深入理解S4模型

#1024程序员节|征文#

HiPPO的学习暂告一段落,按照“HiPPO->S4->Mamba 演化历程”,接着学习S4。

S4对应的论文:《Efficiently Modeling Long Sequences with Structured State Spaces》
文章链接:https://ar5iv.labs.arxiv.org/html/2111.00396,https://arxiv.org/abs/2111.00396

上一篇文章初步了解了S4(Structured State Space sequence model)这个序列模型,接下来深入学习一下。

文章的第二章讲述了算法背景,接着学习。从第二章可以看出,发展到S4模型,作者才引入了SSM,而HiPPO那篇论文是没有提到SSM的。

2、S4背景:状态空间

在这里插入图片描述

图1中的四个属性描述了状态空间模型(SSM):经典的连续时间表示、用HiPPO框架解决长距离依赖问题、离散时间递归表示,以及可并行化的卷积表示。特别是2.4节介绍了SSM卷积核K,这是我们在第3节中理论贡献的重点。

2.1 状态空间模型:连续时间潜在状态模型

状态空间模型由简单的方程(1)定义。它将一维输入信号u(t)映射到N维潜在状态x(t),然后投影到一维输出信号y(t)。
在这里插入图片描述
SSM在许多科学学科中广泛使用,并且与潜在状态模型如隐马尔可夫模型(HMM)相关。我们的目标是简单地将SSM作为一个黑盒表示,用于深度序列模型,其中A、B、C、D是梯度下降学习的参数。在本文的其余部分,为了表述方便,我们将省略参数D(或者等价地,假设D = 0),因为项Du可以被视为一个跳跃连接,并且容易计算。

前面说过,Du项相当于残差连接,而整个模型中一般也有残差连接,可以合并到整个模型,而在SSM方程这里省略。

2.2 用HiPPO解决长距离依赖问题

先前的工作发现基本的SSM(1)在实践中实际上表现非常差。直观地,一个解释是线性一阶ODEs解决为指数函数,因此可能遭受梯度在序列长度上呈指数增长(即,梯度消失/爆炸问题[32])。为了解决这个问题,线性状态空间层(LSSL)利用了连续时间记忆的HiPPO理论[16]。HiPPO指定了一类特定的矩阵A∈RN×N,当它们被纳入(1)时,允许状态x(t)记忆输入u(t)的历史。这个类别中最重要的矩阵由方程(2)定义,我们将称之为HiPPO矩阵。例如,LSSL发现简单地将SSM从随机矩阵A修改为方程(2)将其在顺序MNIST基准测试上的性能从60%提高到98%。

在这里插入图片描述

2.3 离散时间SSM:递归表示

为了在离散输入序列(u0, u1, …)上应用而不是连续函数u(t),(1)必须通过一个步长∆来离散化,该步长表示输入的分辨率。从概念上讲,输入uk可以被视为对隐含的连续信号u(t)的采样,其中uk = u(k∆)。
为了离散化连续时间SSM,我们遵循先前的工作,使用双线性方法[43],将状态矩阵A转换为近似A。离散SSM是:
在这里插入图片描述

方程(3)现在是序列到序列的映射uk → yk,而不是函数到函数的映射。此外,状态方程现在是一个递归的xk,允许离散SSM像RNN一样计算。具体来说,xk ∈ RN可以被视为具有转换矩阵在这里插入图片描述的隐藏状态。

从符号上讲,本文中我们使用AB、…来表示由(3)定义的离散SSM矩阵。注意,这些矩阵是A和步长∆的函数;当它清晰时,我们为了符号方便而省略了这种依赖。

2.4 训练SSM:卷积表示

递归SSM(3)不适用于在现代硬件上进行训练,因为它是顺序的。相反,线性时不变(LTI)SSM(如(1))和连续卷积之间有一个众所周知的联系。相应地,(3)实际上可以写成一个离散卷积。
为了简单起见,让初始状态为x−1 = 0。然后展开(3)得到
在这里插入图片描述

这可以向量化为一个卷积(4),并为卷积核(5)提供一个明确公式。
在这里插入图片描述

换句话说,方程(4)是一个单一的(非循环)卷积,并且可以使用FFTs高效计算,前提是K是已知的。然而,计算(5)中的K并非易事,这是我们在第3节中技术贡献的重点。我们称K为SSM卷积核或滤波器。

个人说明

前面介绍部分就提到“SSM由于具体的理论原因,它尚未适用于深度学习。深度 SSM 实际上即使在简单的任务上也很困难,但当配备最近为解决连续时间记忆(就是HiPPO)问题而导出的特殊状态矩阵 A 时,可以表现得非常好”。第二章部分进一步阐释,“基本的 SSM在实践中表现非常差。直观地说,一种解释是线性一阶常微分方程解为指数函数,因此可能会受到序列长度中梯度指数缩放的影响(即消失/爆炸梯度问题)。”其实,熟悉RNN的训练就会知道,RNN的训练就面临梯度爆炸或消失的问题。

S4 这里选取的矩阵 A 为 HiPPO-LegS的矩阵形式, 但是LegS 所满足的 ODE 是矩阵A、B下面要除以t的。就是下面的形式:
在这里插入图片描述

不知道为啥HiPPO-LegS的矩阵形式直接用到SSM方程效果就可以很好。
这里面有点奇怪,回头需要再看看相关论文:《Legendre memory units: Continuous-time representation in recurrent neural networks. In Advances in Neural Information Processing Systems, pages 15544–15553, 2019.》
苏神在文章《重温状态空间模型SSM:HiPPO的高效计算(S4)》也进行了分析,这种修改之后,导致时间度量无法对整个历史平均的取权重,而是历史信息呈现指数衰减的效应,就是更看重时间较近的信息。

离散时间 SSM这里的离散化还是使用了双线性的近似方式,没有采用解析解。要在后面Mamba模型才使用离散化的解析解。

在前面介绍部分,就提到,深层 SSM 原则上可以解决 LRD 问题,但是由于状态表示引起的计算和内存要求过高,LSSL 在实践中不可行。以及,“尽管提出了 LSSL 的 理论上有效的算法,但这些算法在数值上是不稳定的。特别是,特殊 A 矩阵在线性代数意义上是高度非正规的,这阻碍了传统算法技术的应用。因此,尽管 LSSL 表明 SSM 具有很强的性能,但它们目前作为通用序列建模解决方案在计算上是不切实际的。”这就引出了下一章,具体的S4方法。

注:正规矩阵的一个重要性质是它可以经过一个‌酉变换变为对角矩阵。厄米矩阵(Hermitian matrices)和酉矩阵(unitary matrices)都是正规矩阵的典型例子。

3、Method: Structured State Spaces (S4)

具体方法,咱们直接跳到最终方法部分:
在这里插入图片描述
这个方法,就是把HiPPO 矩阵A分解为正规矩阵和低秩矩阵的和。这个分解的目的,就是为了方便的实现矩阵A的对角化。
为什么要对角化?为了计算简便。前面的公式5的卷积形式,矩阵A的L次幂,如果是对角矩阵,计算就可以大大简化。

文章3.1节,给出了这种对角化动机的目的。
在这里插入图片描述
但是文章接着说,不幸的是,由于数值问题,对角化的简单应用在实践中不可行。尽管有其他方法,数值上也不稳定。

那怎么办,3.2节给出方法:将HiPPO 矩阵A分解为正态矩阵和低秩矩阵的和。这样处理后获得了一个反对称矩阵,“重点来了,反对称矩阵不单单一定可以对角化,它一定可以被正交矩阵(复数域叫做酉矩阵)对角化!酉矩阵一般数值稳定性都非常好”。
在这里插入图片描述
这里的生成函数如何理解?其实也简单,熟悉卷积运算的就知道,卷积运算计算量大,可以先做FFT,在频域变成乘法,然后IFFT。这是利用FFT的简化卷积运算经常使用的方法。只不过,这里傅立叶变换所需要的实际是“截断生成函数”,将无限长度截断为L。
在这里插入图片描述
最后,再总结一下S4的架构细节。
在这里插入图片描述
具体第三章涉及的公式推导,可以参见苏神在文章《重温状态空间模型SSM:HiPPO的高效计算(S4)》中的详细推导。

最后

再重温一下上篇《Mamba学习(十一):S4》提到的问题和S4的方法:

解决的主要问题
  • 序列建模中长距离依赖(LRDs)的有效处理。
  • 现有模型在处理非常长序列时的局限性。
  • 先前基于SSM的方法在计算和内存需求上的高成本问题。
方法
  • 提出了S4模型,它基于SSM的新参数化,通过将状态矩阵A分解为低秩和正规项的和,使得A可以被稳定地对角化。
  • 利用Woodbury identity和Cauchy核的计算,将SSM的计算复杂度从O(N^2L)降低到O(N+L),其中N是状态维度,L是序列长度。
  • 在多个任务和数据集上验证了S4模型的性能,包括顺序CIFAR-10、WikiText-103语言建模、图像分类和时间序列预测等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/57838.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【论文笔记】X-Former: Unifying Contrastive and Reconstruction Learning for MLLMs

🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 基本信息 标题: X-Former: Unifying Contr…

《在1688的数字海洋中,如何用API网罗一家店铺的所有商品?》

想象一下,你是一位船长,航行在1688这个电商的数字海洋上。你的任务是探索一家神秘的店铺岛屿,并且用你的API魔法网,网罗岛上所有的商品宝藏。不用担心,即使你不是海贼王,有了代码的力量,你也能成…

uniapp:sqlite最详细教程,小白可直接粘贴复制

新建uniapp项目,需要4个页面, loading 启动页:打开数据库,判断数据表是否存在,表内是否有数据,创建数据表的逻辑。 register 注册页:数据表已存在,但是没有数据,需要进入该页面注册第一条数据 index 首页:展示数据列表内的数据,可修改默认,添加新数据 edit 编辑:编…

vuetify学习笔记(v-app和v-responsive)

我最近在学习vuetify3,我以前是用element plus和taiwind css。vuetify的一个好处是,它不仅是一个向element plus一样提供好用的组件库,而且还提供了向taiwind css一样的原子类,可以通过类名方便的定义组建的样式。以前element plu…

ReactOS系统中搜索给定长度的空间地址区间中的二叉树

搜索给定长度的空间地址区间 //搜索给定长度的空间地址区间 MmFindGap MmFindGapTopDown PVOID NTAPI MmFindGap(PMADDRESS_SPACE AddressSpace,ULONG_PTR Length,ULONG_PTR Granularity,BOOLEAN TopDown );PMADDRESS_SPACE AddressSpace,//该进程用户空间 ULONG_PTR Length,…

数据结构:堆的应用

堆排序 假定有一组数据极多的数,让我们进行排序,那我们很容易想到一种经典的排序方法,冒泡排序,我们对冒泡排序的时间复杂度进行分析: 显然,冒泡排序的时间复杂度是O(n^2),当数据量…

Trimble三维激光扫描开启工业元宇宙的安全“智造”之路-沪敖3D

以下文章来源于天宝Trimble Field Systems ,作者小甜宝 工业制造是一个固有危险性的行业,人身伤害、物理损坏和长时间的维修都可能导致项目停滞。因此,确保安全不仅仅对工作人员重要,更是保证项目顺利进行关键。 在自动化程度提…

Kafka Tool(Offset Explorer)在windows下配置访问kerberos认证Kafka

Author : Spinach | GHB Link : http://blog.csdn.net/bocai8058文章目录 前言准备配置文件配置软件参数及启动 前言 Offset Explorer(以前称为Kafka Tool)是一个用于管理和使用Apache Kafka集群的图形用户界面(GUI)应用程序。…

ubuntu查看系统版本命令

查看系统版本指令 在 Ubuntu 操作系统中,您可以使用多个命令来查看系统版本。以下是一些常用的命令: lsb_release -a 这个命令会显示详细的 Ubuntu 版本信息,包括发行版名称、版本号、代号等。lsb_release -acat /etc/os-release 这个命令会显…

海外盲盒系统搭建:海外市场带来的全新机遇

我国盲盒在海外迅速火爆,今年以来销量一直呈现高增长态势,各类盲盒在海外受到消费者疯抢,供不应求,海外盲盒市场发展前景巨大! 在开拓海外市场中,我国盲盒先后在泰国、越南等国家取得了显著的成绩&#xf…

小米15、SU7 Ultra、新平板,粮厂「科技春晚」定了

继高通发布骁龙 8 至尊版两天后,给一众网友脖子盼僵的小米 15,终于是迎来了官宣定档! 就在昨天,小米官方宣布「小米 15 系列暨小米澎湃 OS 2 新品发布会」将于 10 月 29 日举行。 而这场发布会不光会有年度新机小米 15 系、全新澎…

量子纠错--shor‘s 码

定理1 (量子纠错的条件) C是一组量子编码,P是映射到C上的投影算子。假设是一个算子元素描述的量子操作,那么基于量子编码C,存在一个能对抗描述的噪声的纠错操作R的充要条件是 对某个复元素厄米矩阵成立。 将算子元素称为导致的错误。如果这样…

【C++】类和对象(附题)

目录 一、类的定义 1.1.类定义格式 1.2.访问限定符 1.3.类域 二、实例化 2.1.实例化概念 2.2.对象大小 三、this指针 附加题:(增进对this指针的理解) 1.下面程序编译运行结果是() 2.下面程序编译运行结果是&…

昆虫种类识别数据集昆虫物种分类数据集YOLO格式VOC格式 目标检测 机器视觉数据集

一、数据集概述 数据集名称:10类昆虫图像数据集 数据集包含了多种农作物中常见的昆虫种类,包括军虫、豆蓟象、红蜘蛛、水稻瘿蚊、水稻卷叶蛾、水稻叶蝉、水稻水蚤、小麦薄翅薄翅蔗蝇、白背飞虱和黄稻螟。 1.1可能应用的领域 农业害虫监测与防控&#x…

基于 Python 的机器学习模型部署到 Flask Web 应用:从训练到部署的完整指南

目录 引言 技术栈 步骤一:数据预处理 步骤二:训练机器学习模型 步骤三:创建 Flask Web 应用 步骤四:测试 Web 应用 步骤五:模型的保存与加载 保存模型 加载模型并在 Flask 中使用 步骤六:Web 应用…

超越OpenAI GPT-4o,Yi-Lightning指南:中国AI大模型新巅峰

Yi-Lightning 是零一万物公司最新发布的旗舰模型,它在国际权威盲测榜单 LMSYS 上超越了硅谷知名 OpenAI GPT-4o-2024-05-13、Anthropic Claude 3.5 Sonnet,排名世界第六,中国第一,这标志着中国大模型首次实现超越 OpenAI GPT-4o 的…

node.js下载安装以及环境配置超详细教程【Windows版本】

node安装以及环境变量配置 Step1:选择版本进行安装Step2:安装Node.jsStep3:环境配置Step4:检查node.js是否成功安装Step5:npm修改下载镜像 Step1:选择版本进行安装 Node.js 安装包及源码下载地址为 Node.…

从0到1搭建大数据平台v1.0

文章目录 一、 文看懂大数据的技术生态1 大数据2 大数据核心技术2.1 HDFS分布式文件系统2.2 MapReduce计算引擎2.3 Hive数据仓库2.4 快一点吧 Spark/Flink2.5 Oozie / Azkaban任务调度2.6 yarn资源管理器2.7 数据采集 Sqoop / Flume / DataX/Kafka 3 从0到1搭建大数据平台 二、…

【Qt6聊天室项目】 主界面功能实现

1. 获取当前用户的个人信息 1.1 前后端逻辑分析(主界面功能) 主界面上所有的前后端交互逻辑相同,分析到加载会话列表后其余功能仅实现。 核心逻辑总结 异步请求-响应模型 客户端发起请求,向服务器发送包含会话ID的请求服务端处…

Map(一)

HashMap 和 Hashtable 的区别 线程是否安全: HashMap 是非线程安全的,Hashtable 是线程安全的,因为 Hashtable 内部的方法基本都经过synchronized 修饰。(如果你要保证线程安全的话就使用 ConcurrentHashMap 吧!)&…