首页 > 其他分享 >【AI学习】Mamba学习(四):从SSM开始

【AI学习】Mamba学习(四):从SSM开始

时间:2024-10-08 23:20:36浏览次数:10  
标签:RNN 训练 AI SSM 卷积 Mamba 状态方程

Mamba的发展,是从SSM->HiPPO->S4->Mamba 演化过来。所以,了解Mamba,得从SSM开始。

SSM,状态空间模型

SSM,就是状态空间模型。
为什么需要SSM?查看三十年前的教科书,控制论的发展,让人们对控制系统不再只满足于研究输出量的变化,对于系统内部的状态变量同时感到兴趣,以便设计和控制这些参数达到最佳控制目的。所以 ,需要状态变量分析。

然后有大段的篇幅进行状态分析的名词定义和状态方程的公式推导,暂且放下,略去将来再看。
SSM的方程如下。
在这里插入图片描述
状态方程就是:状态的导数是关于状态和输入的函数。这里的定义是线性函数。
对应的结构图如下:
在这里插入图片描述
为什么状态的导数的可以表示为这种反馈的结构?不是很懂,教科书中还有很多课需要补,教科书里既然这么写,先放一下,就先接受这个结论。
由于矩阵D类似于跳跃连接,因此在没有跳跃连接的情况下,SSM可以只关注矩阵A、B、C:
在这里插入图片描述
上一篇《Mamba学习(三):离散化SSM的矩阵计算》提到,除了连续的输入之外,还会通常碰到离散的输入(如文本序列)。所以SSM需要离散化形式。
另外,为了加速训练过程,还需要卷积结构表示。
于是,整个SSM就是下面几个主要公式,分别是连续状态方程、离散状态方程和卷积结构表示:
在这里插入图片描述

连续状态方程如下:
在这里插入图片描述
连续和离散状态方程如下:
在这里插入图片描述

卷积结构表示

那上面的公式(4)如何得来?按照时间步骤展开就可以得到:
在这里插入图片描述
见《一文通透想颠覆Transformer的Mamba:从SSM、HiPPO、S4到Mamba》的例子,具体展开可以看到,和上面的公式(4)是一样的。
在这里插入图片描述
这样,SSM在训练的时候,就可以类似图形处理的CNN网络中的卷积核:
在这里插入图片描述
不过文本而不是图像,因此转换为一维结构:
在这里插入图片描述
根据上面的公式,其中的卷积核是:
在这里插入图片描述

与RNN的关系

RNN可以表示成如下,分别是循环和展开的表示:
在这里插入图片描述
SSM的表示对应如下:
在这里插入图片描述

可以看到,RNN和SSM在结构上非常相似。
前面文章《Mamba学习(一):总体架构》提到,Mamba可以简化为一个带门控的 RNN。

总结

SSM在推理时,可以类似RNN的循环结构,获得比较快的推理速度;而在训练的时候,可以通过采用卷积核实现并行化,获得较快的训练速读。

  • Transformer:训练快,推理慢
  • RNN:训练慢,推理快
  • Mamba:并行化训练,循环结构推理,一举两得

RNN为啥没法写成卷积形式?因为RNN多了一个非线性的激活函数。
RNN一般表示为ht=f(Wht-1 + Uxt),其中f是非线性的激活函数,比如tanh。

RNN的并行化

作为备注,需要继续前面的话题,那么,RNN就真的不能并行化处理吗?不然!

如果有兴趣,请继续观看苏神的两篇大作:
Google新作试图“复活”RNN:RNN能否再次辉煌?
文章链接:https://mp.weixin.qq.com/s/sTlUBXB-PVKI2l0HqRStSA
脑洞大开:非线性RNN居然也可以并行计算?
文章链接:https://mp.weixin.qq.com/s/Yj8XFpIgBxTASUeifeb6XQ

另有一篇《将注意力视为RNN!Bengio等人新作媲美Transformer,但超级省内存》也可以看看。

标签:RNN,训练,AI,SSM,卷积,Mamba,状态方程
From: https://blog.csdn.net/bylander/article/details/142747639

相关文章

  • 窗体MainWindow的属性设置2
    文章目录1.控件名称2.菜单栏A.一级菜单B.子菜单①子菜单添加快捷键②子菜单添加图标3.工具栏A.将子菜单移除工具栏B.移除工具栏4.状态栏A.移除状态栏B.状态栏显示信息状态栏一直显示信息  本章将主要介绍窗体MainWindow控件的属性设置,例如控件名称、菜单栏、......
  • LeetCode 1371. Find the Longest Substring Containing Vowels in Even Counts
    原题链接在这里:https://leetcode.com/problems/find-the-longest-substring-containing-vowels-in-even-counts/description/题目:Giventhestring s,returnthesizeofthelongestsubstringcontainingeachvowelanevennumberoftimes.Thatis,'a','e&......
  • 课上测试:位运算(AI)
    2.使用位运算编写并调用下面函数,把当前时间(使用C库函数获得)设置到TIME中,给出代码,使用git记录过程。为了使用位运算将当前时间设置到一个自定义的TIME结构体或变量中(尽管通常我们不会直接用位运算来处理时间,因为时间通常是由多个独立的字段如小时、分钟、秒等组成的),我们可......
  • Leon-我们的医学 ai 训练
     大家好,我是一名刚刚进入CSDN的一名Middleschoolstudent。 (纯爱好)今天我们来讲的是训练一个可以检查足部X光片异常的AI但是!先让我们需要先了解AI的实际用途是什么,是便民,而不是代替人,我们一切的AI开发都需要基于这一条原则。首先,我们需要收集大量正常足部X光片数......
  • 推荐!专业Substance 3D Painter v10.解锁版下载及安装 (3D绘画软件)
    AdobeSubstance3DPainter简称Pt,是一款由adobe公司新研发的3D绘画软件。Substance3DPainter具有前所未有的功能和工作流程改进,使为3D资产创建纹理变得比以往更容易。具体安装方式如下:下载地址:Substance3DPainterv10.解锁版下载1、解压后点击如下图运行2、选择安装......
  • 对UVM添加超时前的打印信息+AXI低功耗接口+process的await语句+对象当成参数+sv的单例
    对UVM添加超时前的打印信息首先获取到UVM的超时值,然后手动设定\$time的比较和while延时循环,当超出时间后,打印特殊的debug信息。$time<set_time,则进行循环。uvm_cmdline_processorclp;clp=uvm_cmdline_processor::get_inst();stringtimeout_settings[$];stringtimeout......
  • 学生管理系统开发mainpage(python语言)
    主界面与其他界面切换的代码#开发者:a_blue_fat#日期:2023/11/22#时间:8:48importtkinterastk#fromviewimport*importviewclassMainPage:def__init__(self,master):self.root=masterself.root.geometry("800x400")se......
  • 01_nodejs_phantomjs_nodemailer
    代码块nodejs-phantomjs-nodemailer功能每天定时截图,并把截到的图片自动通过邮件发送。说明代码注释已经非常详细,就不多做说明,需要的朋友自己查看代码即可,主文件Mail.js,截图文件capturePart1.js,capturePart2.js,capturePart3.js,这里只展示了capturePart1.js其他两个类似。值得......
  • YOLOv11改进 | 注意力篇 | YOLOv11引入24年最新Mamba注意力机制MLLAttention
    1. MLLAttention介绍1.1 摘要:Mamba是一种有效的状态空间模型,具有线性计算复杂度。最近,它在处理各种视觉任务的高分辨率输入方面表现出了令人印象深刻的效率。在本文中,我们揭示了强大的Mamba模型与线性注意力Transformer具有惊人的相似之处,而线性注意力Transforme......
  • 硬件检测工具 AIDA64 Extreme 序列号
    AIDA64Extreme功能强悍,既可以快速并详细的查找你的设备信息,还可以对你的设备稳定性,内存及磁盘驱动器进行系统性的评估,并且兼容32及64位的windows操作系统。该版本已内置序列号,可以使用全部功能。使用说明:1、将压缩文件解压到某固定位置,不要随意移动。2、解压后,双击start_......