【论文阅读】Mamba:选择状态空间模型的线性时间序列建模(二)

news2024/10/6 14:28:24

文章目录

    • 3.4 一个简化的SSM结构
    • 3.5 选择机制的性质
      • 3.5.1 和门控机制的联系
      • 3.5.2 选择机制的解释
    • 3.6 额外的模型细节
    • A 讨论:选择机制
    • C 选择SSM的机制

Mamba论文
第一部分 Mamba:选择状态空间模型的线性时间序列建模(一)

3.4 一个简化的SSM结构

如同结构SSM,选择SSM是单独序列变换可以灵活地整合进神经网络。H3结构式最知名SSM结构地基础,其通常包括受线性注意力启发的和MLP交替地块。我们通过结合这两个组件到一个来简化这个结构,均匀地堆叠。这受到了门控注意力单元的启发(GAU),和为注意力做的事情相似。

这个结构包括扩展模型维度 D D D通过一个可控的扩展因子 E E E。对于每个块,参数( 3 E D 3ED 3ED)的大部分都在线性映射( 2 E D 2 2ED^2 2ED2对于输入映射, E D 2 ED^2 ED2对于输出映射)而内部的SSM贡献很少。相比起来,SSM参数( Δ , B , C \Delta,\textbf B,\textbf C Δ,B,C和矩阵 A \textbf A A)的参数少很多。我们复制这个块,插入标准的归一化和残差连接,来建立Mamba结构。我们一般固定 E = 2 E = 2 E=2在我们的实验中使用两层块的堆叠,来匹配Transformer插入多头注意力和MLP块的参数量。我们使用SiLU/Swish激活函数,激活以使门控MLP变为流行的"SwiGLU"变体。最后,我们额外使用了一个可选归一化层(我们选择层归一化),受RetNet在相似位置归一化使用的启发。

在这里插入图片描述

我们的简化块设计结合了H3块,H3是大多数SSM结构的基础,有现代神经网络中无处不在的MLP块。我们简单重复这两个块而不是两个块交错。和H3相比,Mamba用激活函数替代了第一个乘法门。相比于MLP块,Mamba在主干添加了一个SSM。对于 σ \sigma σ我们使用SiLU/Swish激活。

3.5 选择机制的性质

选择机制是一个广泛的概念,可以以不同的方式应用,例如在更传统的RNN和CNN,在不同的参数(例如算法2中的 A \textbf A A),或者使用不同的变换 s ( x ) s(x) s(x)

3.5.1 和门控机制的联系

我们着重指出最重要的联系,RNN的经典门控机制是我们SSM选择机制的一个实例。我们注意到RNN门控和连续时间系统的离散化间的关系被很好的建立。事实上,Theorem 1是对ZOH离散化和输入相关门的推广的改进(证明见附录C)。更广泛的,SSM中的 Δ \Delta Δ可以被看作在RNN门控机制中扮演了一个普遍的角色。和之前工作保持一致,我们采取SSM的离散化是启发式门控机制的原则基础。

Theorem 1 N = 1 , A = − 1 , B = 1 , S Δ = L i n e a r ( x ) N = 1, \textbf A = -1, \textbf B = 1, S_\Delta = Linear(x) N=1,A=1,B=1,SΔ=Linear(x) τ Δ = s o f t p l u s \tau_\Delta = softplus τΔ=softplus

则选择SSM递归有这样的形式
g t = σ ( L i n e a r ( x t ) ) h t = ( 1 − g t ) h t − 1 + g t x t g_t = \sigma(Linear(x_t)) \\ h_t = (1-g_t)h_{t-1}+g_tx_t gt=σ(Linear(xt))ht=(1gt)ht1+gtxt
如在部分3.2提到的,我们特别选择这样的 S Δ , τ Δ S_\Delta,\tau_\Delta SΔ,τΔ就处于这个联系。特别是,注意如果一个给定输入 x t x_t xt应该被完全忽略(如在合成任务中需要),所有 D D D个通道应该忽略它,因此在用 Δ \Delta Δ重复/广播之前,我们把输入之前映射到1维。

3.5.2 选择机制的解释

我们详细阐述了选择的两种特殊机制效应。

可变间距 选择性允许过滤掉可能发生在感兴趣的输入间的不相关的噪声标记。在选择性复制任务中得到验证,但是普遍存在于常见数据模态中,特别是离散数据。例如语言中的填词"um"。这个属性提升因为模型可以机械地过滤掉任何特定的输入 x t x_t xt

例如在门控RNN中当 g t → 0 g_t\rightarrow0 gt0

过滤内容 在很多序列模型中经常被观察到,更长的内容并没有提升。尽管有更多的内容应该让表现更好这一原理。一个解释是很多序列模型不能在必要时有效地忽略不相关的内容。一个直觉的例子是全局卷积(和其他通常的LTI模型)。另一方面,选择模型可以简单在任何时刻重置它们的状态来移除无关的历史,因此,它们的性能原则上随着上下文长度的增加而单调性提高

边界重设置 在多条不相关序列缝在一起的时候,Transformer可以保持它们分开通过实例化不同的注意力掩膜,而LTI模型将会混合这些序列之间的信息。选择性SSM可以在边界重置他们的状态(例如 Δ t → ∞ \Delta_t\rightarrow \infin Δt或者 g t → 1 g_t\rightarrow 1 gt1)这些情况将会人为的(打包文件以硬件利用率)或者自然地(强化学习中episode边界)发生。

Δ \Delta Δ的解释 通常, Δ \Delta Δ控制关注遗忘或者关注多少在当前的输入 x t x_t xt的平衡。它推广了RNN门(例如Theorem1中的 g t g_t gt),理论上,一个大的 Δ \Delta Δ重置状态 h h h并关注在当前的输入 x x x,而小的 Δ \Delta Δ保持状态并且忽略当前输入。SSM可以被解释为一个连续西永被时间步长 Δ \Delta Δ离散化,在这个背景下,一个直觉是大 Δ → ∞ \Delta\rightarrow\infin Δ表示了系统关注于当前输入更长时间(因此“选择”它并忘掉它的当前状态)当一个小 Δ → 0 \Delta\rightarrow 0 Δ0代表一个被遗忘的瞬态输入。

A A A的解释我们指出尽管参数 A A A也可以是选择性的,它根本上通过它和 Δ \Delta Δ的交互影响模型,通过 A ‾ = e x p ( Δ A ) \overline {\textbf A} = exp(\Delta \textbf A) A=exp(ΔA)。因此 Δ \Delta Δ的选择性对于确保 ( A ‾ , B ‾ ) (\overline{\textbf A},\overline{\textbf{B}}) (A,B)已经足够而且是提升的主要来源。我们假设使 A \textbf A A选择性替代 Δ \Delta Δ或者附加会有相似的效果,我们出于简便省略。

B B B C C C的解释 如在部分3.1讨论的一样,选择性最重要的属性是过滤掉我们不相关的信息以使一个序列模型的内容可以被压缩到哟个有效的状态。在一个SSM中,微调 B \textbf B B C \textbf C C成为选择性的允许细粒度控制什么时候一个输入 x t x_t xt到状态 h t h_t ht或者状态到输出 y t y_t yt。这可以被解释为允许模型分别基于内容(输入)和上下文(隐藏状态)来调节循环动态。

3.6 额外的模型细节

实数 vs 复数 很多前面的SSM在他们的状态 h h h中使用复数,对于很多任务中需要的高表现力来说是必要的。然而,在经验上观察到完全的实数SSM运作得也不错,可能更好在某些情形下。我们使用实数值作为默认,除了一个任务意外表现得很好,我们假设复数-实数权衡与数据模态中连续-离散谱有关,对于连续模态(如语音,视频)来说复数有用,对于离散(例如文本,DNA)则无用。

初始化 大多数前面的SSM也要求特别的初始化,特别是对于复数值情况,在一些情况如低数据状态有帮助。我们对于复数情况的默认初始化时S4D-Lin对于实数来说时S4D-Real,基于HIPPO理论。相应定义 A \textbf A A中第 n n n个元素为 − 1 / 2 + n i -1/2+ni 1/2+ni − ( n + 1 ) -(n+1) (n+1)。然而,我们认为很多初始化可以工作良好,特别是在大数据和实数SSM情况。

Δ \Delta Δ的参数化 我们定义 Δ \Delta Δ的选择调整为 s Δ = B r o a d c a s t D ( L i n e a r 1 ( x ) ) s_\Delta = Broadcast_D(Linear_1(x)) sΔ=BroadcastD(Linear1(x)),受3.5部分 Δ \Delta Δ的部分启发。我们观察到可以从维度1推广到更大的维度 R R R。我们将其设置为 D D D的小分数,与块中的主要线性投影相比,其使用可忽略数量的参数。我们还注意到,广播操作可以被视为另一个线性投影,初始化为特殊的模式’1’和‘0’。如果这个映射是可学习的,将导致一个替代的 s Δ ( x ) = L i n e a r D ( L i n e a r R ( x ) ) s_\Delta(x) = Linear_D(Linear_R(x)) sΔ(x)=LinearD(LinearR(x)),可以看作一个低秩映射。

在我们的实验中,参照之前SSM的工作 Δ \Delta Δ参数(可以被看作一个偏差项)初始化为 τ Δ − 1 ( U n i f o r m [ 0.001 , 0.1 ] ) \tau_\Delta^{-1}(Uniform[0.001,0.1]) τΔ1(Uniform[0.001,0.1])

A 讨论:选择机制

我们的选择机制受到门控、超网络和数据依赖等概念的启发,并与之相关。它也可以被视为与“快速权重”有关,后者将经典RNN与线性注意力机制联系起来。然而,我们认为,这是一个值得澄清的独特概念。

门控 门控起源于参考RNN例如LSTM和GRU的门控机制,或者Theorem 1的门控等式。这可以被解释为控制是否让一个输入进入一个RNN隐藏状态的特别机制。特别是,这会影响信号沿着时间的传输和输入沿着序列长度方向交互。

然而,此后门控的概念在流行使用中被放款,简单地表示任何乘法相互作用(通常带有激活函数)。例如,神经网络结构中元素间的乘法部分现在通常被称为门控结构,尽管与原始RNN有非常不同的意义。因此我们认为RNN门控的原始概念相比流行的乘法门控实际上有很大的语义不同

超网络 超网络用来指那些自身参数由更小网络产生的神经网络。原始的想法是狭义的用法定义一个大的RNN,其参数由一个小的 R N N RNN RNN生成。

数据依赖 和超网络相似,数据依赖可以指任何概念-一些模型参数依赖于数据

例子:GLU 激活 为了解释这些概念,考虑一个简单的对角线性层 y = D x y = Dx y=Dx,其中 D D D是一个对角权重参数。现在设定 D D D是由自身通过一个 x x x的线性变换而来,由一个可选的非线性: D = σ ( W x ) D = \sigma(Wx) D=σ(Wx),因为它是对角的,乘法变成元素积: y = σ ( W x ) ∘ x y = \sigma(Wx)\circ x y=σ(Wx)x这是一个相当琐碎的转换,但它在技术上满足了门控的常见含义(因为它有“乘法”分支),超网络(因为参数 D D D是由另一个层产生的),和数据依赖(因为 D D D取决于数据 x x x)然而,这实际上简单定义了一个GLU函数,简单到通常仅仅被看作一个激活函数而不是一个有意义的层。

选择 因此,虽然选择机制可以被视为架构门控、超网络或数据依赖性等思想的特例,但大量其他结构也可以——基本上是任何具有乘法运算的结构,也包括标准注意力机制,但我们认为这样没有信息量。

相反,我们认为它与传统RNN的门控机制最为密切相关,这是一种特殊情况,也有通过变量(依赖输入)离散化参数 Δ \Delta Δ与SSM连接的。我们还避开了“选通”一词,而倾向于选择,以澄清前者的过度使用。更狭义地说,我们使用选择来指代模型的机制作用,以选择或忽略输入,并促进沿序列长度的数据交互。除了选择性SSM和门控RNN之外,其他例子可能包括依赖于输入的卷积,甚至注意力

C 选择SSM的机制

Theorem 1的证明,考虑一个 N = 1 , A = − 1 , B = 1 , s Δ = L i n e a r ( x ) , τ Δ = s o f t p l u s N = 1, A = -1, B = 1, s_\Delta = Linear(x), \tau_\Delta = softplus N=1,A=1,B=1,sΔ=Linear(x),τΔ=softplus的选择SSM

相应的连续时间SSM是
h ( t ) = − h ( t ) + x ( t ) h(t) = -h(t) +x(t) h(t)=h(t)+x(t)
也被称为一个漏积分器。离散步长是
Δ t = τ Δ ( P a r a m e t e r + s Δ ( x t ) ) = s o f t p l u s ( P a r a m e t e r + L i n e a r ( x t ) ) = s o f t p l u s ( L i n e a r ( x t ) ) \Delta_t = \tau_\Delta(Parameter + s_\Delta(x_t)) \\=softplus(Parameter+Linear(x_t)) \\=softplus(Linear(x_t)) Δt=τΔ(Parameter+sΔ(xt))=softplus(Parameter+Linear(xt))=softplus(Linear(xt))
我们观察到这个参数也可以被看作一个可学习的偏差变成一个线性映射。

现在应用零阶保持离散形式:
A ‾ t = e x p ( Δ A ) = 1 1 + e x p ( L i n e a r ( x t ) ) = σ ( − L i n e a r ( x t ) ) = 1 − σ ( L i n e a r ( x t ) ) \overline{A}_t = exp(\Delta A) = \frac{1}{1+exp(Linear(x_t))} = \sigma(-Linear(x_t))\\ =1-\sigma(Linear(x_t)) At=exp(ΔA)=1+exp(Linear(xt))1=σ(Linear(xt))=1σ(Linear(xt))

B ‾ t = ( Δ A ) − 1 ( e x p ( Δ A ) − I ) ⋅ Δ B = − ( e x p ( Δ A ) − I ) = I − A ‾ = σ ( L i n e a r ( x t ) ) \overline{B}_t = (\Delta A)^{-1}(exp(\Delta A) - I)\cdot\Delta B=-(exp(\Delta A) - I) = I - \overline A \\=\sigma(Linear(x_t)) Bt=(ΔA)1(exp(ΔA)I)ΔB=(exp(ΔA)I)=IA=σ(Linear(xt))

因此最后的离散递归是
g t = σ ( L i n e a r ( x t ) ) h t ( a − g t ) h t − 1 + g t x t g_t = \sigma(Linear(x_t)) \\ h_t(a-g_t)h_{t-1}+g_tx_t gt=σ(Linear(xt))ht(agt)ht1+gtxt

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

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

相关文章

【MybatisPlus】BaseMapper详解,举例说明

一、BaseMapper 简介 MyBatis-Plus 的核心类 BaseMapper 主要是用于提供基本的 CRUD(创建、读取、更新、删除)操作的接口定义。它是 MyBatis-Plus 框架中的一个重要组成部分,可以大大简化基于 MyBatis 的数据访问层代码的编写。 BaseMapper…

0基础跨考408|一战上岸复盘及经验分享

基础阶段‼️ 王道的四本书的选择题部分要都做完、订正完。 王道的四门视频课要一轮刷完(或者题主在B站看了其他的老师,这其实也是算一轮的,只要题主是认真学习了的,题主说自己不知道看什么课,王道就好了)…

成功的SOHO在接待方面值得我们思考的地方

有个客户离春节放假之前的一个月就说要来访工厂,后面直到放假的最后一天也没等到他,中间商说他去了另外一个省,忙别的生意去了。 刚接触他的时候,是一位中国代理商联系我们工厂,做了不少设计和项目,期间修…

GEE入门篇|图像处理(三):阈值处理、掩膜和重新映射图像

阈值处理、掩膜和重新映射图像 本章前一节讨论了如何使用波段运算来操作图像, 这些方法通过组合图像内的波段来创建新的连续值。 本期内容使用逻辑运算符对波段或索引值进行分类,以创建分类图像。 1.实现阈值 实现阈值使用数字(阈值&#xf…

Java实现读取转码写入ES构建检索PDF等文档全栈流程

背景 之前已简单使用ES及Kibana和在线转Base64工具实现了检索文档的demo,并已实现WebHook的搭建和触发流程接口。 实现读取本地文件入库ES 总体思路:基于前面已经搭建的WebHook触发流程,接收到push更新消息之后,使用本地的git工…

【QT】布局介绍

布局 水平布局垂直布局网格布局 widget的应用 将对应的按钮,label放入到widget中 水平弹簧和垂直弹簧 使用弹簧来对他们布局 设置弹簧属性: 最后结果——页面中的内容和随页面的缩小和方法自适应。 水平布局和垂直布局只能针对一行一列 将用户密码放入…

第七篇 - 人工智能与机器学习技术VS量测(Measurement)- 我为什么要翻译介绍美国人工智能科技巨头IAB公司 - 它是如何赋能数字化营销生态的?

IAB平台,使命和功能 IAB成立于1996年,总部位于纽约市。 作为美国的人工智能科技巨头社会媒体和营销专业平台公司,互动广告局(IAB- the Interactive Advertising Bureau)自1996年成立以来,先后为700多家媒…

2024年字节跳动+京东+美团面试总结,程序员经验分享

现在的IT行业竞争压力越来越大,尤其是Android开发行业。而很多Android程序员却每天都在重复CRUD,原地徘徊! 今年年初,你就想改变现状,于是在网上刷了大量面试题,强行记下之后,开始参加面试!但是…

AI日报:这种病毒从生成式AI工具中窃取您的数据

文章目录 人工智能计算机病毒蠕虫像细菌一样传播病毒测试 人工智能计算机病毒 一组研究人员创造了一种能够利用生成人工智能系统的计算机病毒,包括Gemini Pro和GPT-4驱动的ChatGPT版本。 Morris II是一种蠕虫,它操纵生成的人工智能模型来执行恶意任务&…

AndroidStudio连不上adb报错ADB Connection Error

之前笔者一直通过AndroidStudio来看日志,也一直用的一套自己的SDK,用了好几年了。 但是突然有一天,AndroidStudio启动后就弹出警告窗:ADB Connection Error,如下: 在Event Log面板还持续性的输出&#x…

前端工具网站合集(持续更新)

综合类网站 那些免费的砖 统计推荐免费工具网站 那些免费的砖 - 优雅地白嫖各种免费资源 (thosefree.com)https://www.thosefree.com/ CSS样式网站 毒蘑菇-配色 CSS 配色,阴影网站 一个好用的配色网站! 毒蘑菇 - 配色 (dumogu.top)https://color.dumogu.top/ …

工艺美术设计VR仿真教学软件为教师提供更丰富的教学资源

随着科技的飞速发展,我们的生活正在经历着前所未有的变革。其中,虚拟现实(VR)技术的出现,不仅改变了我们的娱乐方式,更在教育领域中开辟出一片新的天地。今天,我们就来探讨一下VR美术绘画教学平台带来的价值。 首先&am…

day14_用户前台项目环境搭建(首页接口开发,分类接口开发,网关服务搭建,Redis缓存,Spring Cache)

文章目录 1 尚品甄选H5介绍1.1 业务功能介绍1.2 系统架构1.3 前端H5开发说明 2 搭建项目环境2.1 项目结构说明2.2 模块依赖说明2.3 环境说明2.4 项目模块创建2.4.1 spzx-parent2.4.2 spzx-service2.4.43 service-product 2.5 导入接口文档 3 首页接口开发3.1 需求分析3.3 接口开…

[最佳实践] Windows上构建一个和Linux类似的Terminal

感谢大佬批评指正,现已更新 preview Target:致力打造最赏心悦目Window下的终端,同时能够很接近Linux的使用习惯 key word:windows终端美化 windows terminal windows powershell 类似Linux下的Window终端 Window也能用ll windows…

让Excel 365 Excel 2021快速转化为生产力,创造价值!

文章目录 每日一句正能量前言关键点内容简介作者简介读者赞誉后记购买链接赠书活动 每日一句正能量 人的一生,好不好只有自己知道,乐不乐只有自己明白。快乐是一种心情,一种自然、积极向上的心态。在平凡之中寻求快乐,在磨难之中寻…

AI智能伪原创工具:原创文章自动生成的革新

随着人工智能技术的迅猛发展,AI智能伪原创工具正逐渐改变着我们的日常生活和工作方式。其中,原创文章自动生成技术的出现,为内容创作者、企业和学术界带来了全新的可能性和便利。这项技术的引入不仅提高了内容创作的效率,还为用户…

【查找算法】插值查找

一:插值查找 代码公式:int mid left (right - left) * (findVal - arr[left]) / (arr[right] - arr[left]); 1.1 基本概念 插值查找,有序表的一种查找方式。插值查找是根据查找关键字与查找表中最大最小记录关键字比较后的查找方法。插值…

什么样的跨网数据交换产品 能实现数据摆渡和数据同步?

首先,为什么会产生跨网数据摆渡的需求和场景呢?那是因为做了网络隔离,企业进行网络隔离的原因主要包括以下几点: 1、提高安全性:网络隔离是防止未授权访问和网络攻击的有效手段。通过将网络划分为多个独立的子网&…

Docker 快速入门实操教程(完结)

Docker 快速入门实操教程(完结) Docker,启动! 如果安装好Docker不知道怎么使用,不理解各个名词的概念,不太了解各个功能的用途,这篇文章应该会对你有帮助。 前置条件:已经安装Doc…

flutter 使用webview

背景: 一般都有使用webview加载网页的需求,比如加载隐私协议、用户协议等。 如何做: 当然,我们自己不用封装轮子,在pub.dev上有成熟的轮子:webview_flutter 首先,将依赖导入,在pub…