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

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,但超级省内存》也可以看看。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

重学SpringBoot3-集成Redis(五)之布隆过滤器

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(五)之布隆过滤器 1. 什么是布隆过滤器?基本概念适用场景 2. 使用 Redis 实现布隆过滤器项目依赖Redis 配置…

netdata保姆级面板介绍

netdata保姆级面板介绍 基本介绍部署流程下载安装指令选择设置KSM为什么要启用 KSM?如何启用 KSM?验证 KSM 是否启用注意事项 检查端口启动状态 netdata和grafana的区别NetdataGrafananetdata各指标介绍总览system overview栏仪表盘1. CPU2. Load3. Disk…

NUKE 15有哪些新的改进功能?影视后期特效合成NUKE 15 安装包分享 【Mac/win】

Nuke 15是一款由英国The Foundry公司开发的专业的合成软件,被广泛用于电影、电视和广告制作中的后期合成和特效制作。 Nuke 15拥有强大的功能和灵活性,可以帮助用户处理各种复杂的合成任务,包括图像修复、色彩校正以及粒子特效等。它具备高效…

Spring Validation —— 参数校验框架

案例说明——后端校验注册表单字段 在编写注册功能时,需要考虑字段校验的情况,这时候可以采用 Spring提供的一套参数校验框架工具——Spring Validation。一下是使用的步骤: 1. 导入validation坐标 2. 在参数上添加 Pattern注解&#xff0c…

尚硅谷javaSpring

尚硅谷课件: 分类:尚硅谷Spring6教程 - Lixx Blog - 李晓旭的博客 简介 Java Spring 是一个开源的、全面的企业级应用开发框架,旨在简化企业级应用的开发。Spring 框架最初由 Rod Johnson 在 2002 年发布,并随着时间的推移,它已…

【源码+文档】基于Java的新能源停车场管理系统的设计与实现

🚩如何选题? 如何选题、让题目的难度在可控范围,以及如何在选题过程以及整个毕设过程中如何与老师沟通,这些问题是需要大家在选题前需要考虑的,具体的方法我会在文末详细为你解答。 🚭如何快速熟悉一个项…

低质量数据的多模态融合方法

目录 多模态融合 低质量多模态融合的核心挑战 噪声多模态数据学习 缺失模态插补 平衡多模态融合 动态多模态融合 启发式动态融合 基于注意力的动态融合 不确定性感知动态融合 论文 多模态融合 多模态融合侧重于整合多种模态的信息,以实现更准确的预测,在自动驾驶、…

【小沐学GIS】blender导入OpenTopography地形数据(BlenderGIS、OSM、Python)

文章目录 1、简介1.1 blender1.2 OpenStreetMap地图 2、BlenderGIS2.1 下载BlenderGIS2.2 安装BlenderGIS2.3 申请opentopography的key2.4 抓取卫星地图2.5 生成高度图2.6 获取OSM数据 结语 1、简介 1.1 blender https://www.blender.org/ Blender 是一款免费的开源 3D 创作套…

【c++】初步了解类和对象2

1、类的作用域 类定义了一个新的作用域,类的所有成员都在类的作用域中。在类体外定义成员时,需要使用 :: 作用域操作符指明成员属于哪个类域。 如图,此时在类内声明了函数firstUniqChar(),在类外进行了函数体的具体定义。 但是却…

使用 classification_report 评估 scikit-learn 中的分类模型

介绍 在机器学习领域,评估分类模型的性能至关重要。scikit-learn 是一个功能强大的 Python 机器学习工具,提供了多种模型评估工具。其中最有用的函数之一是 classification_report,它可以全面概述分类模型的关键指标。在这篇文章中&#xff…

国庆作业

day1 1.开发环境 Linux系统GCCFDBmakefilesqlite3 2.功能描述 项目功能: 服务器:处理客户端的请求,并将数据存入数据库中,客户端请求的数据从数据库进行获取,服务器转发给客户端。 用户客户端:实现账号的注册、登…

加密软件有哪些?2024年十大好用的企业文件加密软件大盘点

随着数字化转型的加速,企业面临的数据安全威胁日益增加。为防止敏感数据泄露,企业文件加密已成为保护公司机密信息的必要手段。以下是2024年十大好用的企业文件加密软件大盘点,帮助企业在复杂的数字环境中确保数据安全。 1.安秉加密软件 安秉…

Navicat下载安装

官网地址:Navicat | Download Navicat Premium 14-day trial versions for Windows, macOS and Linux 1、进入官网下载地址,根据需求进行下载 2、双击安装程序,点击【下一步】 3、选择【我同意】,点击下一步 4、自定义安装路径&a…

基于Dify的工作流简单测试

文章目录 工作流定义工作流构建新建工作流任务分解任务分类任务执行日常聊天任务执行计算字符串长度的三次幂任务执行获取ip地址任务执行其他任务不执行 变量汇集结果返回效果展示 工作流定义 下面是工作流官方文档中给出的工作流定义,其实工作流与Agent调用的对象…

java:pdfbox 3.0 去除扫描版PDF中文本水印

官网下载 https://pdfbox.apache.org/download.html下载 pdfbox-app-3.0.3.jar cd D:\pdfbox 运行 java -jar pdfbox-app-3.0.3.jar java -jar pdfbox-app-3.0.3.jar Usage: pdfbox [COMMAND] [OPTIONS] Commands:debug Analyzes and inspects the internal structu…

《Windows PE》4.3 延迟加载导入表

延迟加载导入表(Delayed Import Table)是PE文件中的一个数据结构,用于实现延迟加载(Lazy Loading)外部函数的机制。 延迟加载是指在程序运行时,只有当需要使用某个外部函数时才进行加载和绑定,…

Llama系列上新多模态!3.2版本开源超闭源,还和Arm联手搞了手机优化版,Meta首款多模态Llama 3.2开源!1B羊驼宝宝,跑在手机上了

Llama系列上新多模态!3.2版本开源超闭源,还和Arm联手搞了手机优化版,Meta首款多模态Llama 3.2开源!1B羊驼宝宝,跑在手机上了! 在多模态领域,开源模型也超闭源了! 就在刚刚结束的Met…

VSCode运行QT界面

VSCode用久了,感觉Qt Creator的写起代码来还是不如VSCode得心应手,虽然目前还是存在一些问题,先把目前实现的状况做个记录,后续有机会再进一步优化。 当前方式 通过QtCreator创建一个CMake项目,然后使用CMake的方式在VSCode中进行编译。 claude给出的建议 左上角的名字会…

C++ 算法学习——1.6 前缀和与二维前缀和算法

前缀和算法(Prefix Sum Algorithm): 概念:前缀和算法通过在遍历数组时计算前缀和(从数组的第一个元素开始累加到当前元素的和),可以在O(1)时间内得到任意区间的子数组和,而不需要重复…

详解 PDF 转 JPG:简单操作,高效转换

如今,众多软件都已具备将PDF转换为JPG的功能,所以pdf怎么转换成jpg图片已经不难解决了吧。接下来,我想分享几款依然保存在我电脑中,且非常实用的PDF转JPG工具给大家。 1.福昕PDF转换大师 链接一下>>https://www.pdf365.cn…