Mamaba3--RNN、状态方程、勒让德多项式

news2024/9/21 2:50:03

Mamaba3–RNN、状态方程、勒让德多项式

一、简单回顾

在Mamba1和Mamba2中分别介绍了RNN和状态方程。
下面从两个图和两个公式出发,对RNN和状态方程做简单的回顾:
R N N : s t = W s t − 1 + U x t ; O t = V s t RNN: s_t = Ws_{t-1}+Ux_t;O_t = Vs_t RNN:st=Wst1+UxtOt=Vst
状态方程: x t ^ = A x t − 1 + B u t ; y = C x t 状态方程:\hat{x_t}=Ax_{t-1}+Bu_t;y=Cx_t 状态方程:xt^=Axt1+Buty=Cxt
在这里插入图片描述
在这里插入图片描述
可以看到RNN的本质表达是一个状态方程。
再重复一遍状态变量、状态方程和输出方程的定义,加深理解:
状态变量:刻画系统状态的变量称为状态变量(比如机械系统中的速度、位置)。
状态方程:描述系统输入如何影响状态变量变化的方程。
输出方程:描述状态变量与输出变量关系的一组代数方程。

二、勒让德多项式

勒让德多项式可以被理解为一组多项式基函数,和傅里叶级数类似,允许将某个未知信号分解为不同多项式函数的组合。
在这里插入图片描述
在这里插入图片描述

三、记忆的本质

记忆是通过重新复盘过去发生的事情,且记忆的内容 f ^ ( t ) \hat{f}(t) f^(t) ≠ 事件本身 f ( t ) f(t) f(t) 。而是拟合逼近的关系.
在这里插入图片描述

对于一段序列信号,可以被一组基函数(S4中为勒让德多项式) e i ( t ) e_i(t) ei(t)进行线性组合来表示。即:
f ^ ( t ) = ∑ i = 1 ∞ c i e i ( t ) \hat{f}(t)=\sum_{i=1}^{\infty}c_ie_i(t) f^(t)=i=1ciei(t)
在这里插入图片描述
在真实场景中,信号是持续输入的,因此,拟合和逼近也是在持续进行。
在这里插入图片描述
其中 f < t f_{<t} f<t表示目标函数f在t时刻之前的逼近。即不同时刻对应着不同的拟合系数
t 1 时刻: f ^ < t 1 ( t ) = ∑ i = 1 N c t 1 , i e i ( t ) t 4 时刻: f ^ < t 4 ( t ) = ∑ i = 1 N c t 4 , i e i ( t ) t_1时刻:\hat{f}_{<t_1}(t)=\sum_{i=1}^Nc_{t_1,i}e_i(t) \\ t_4时刻:\hat{f}_{<t_4}(t)=\sum_{i=1}^Nc_{t_4,i}e_i(t) t1时刻:f^<t1(t)=i=1Nct1,iei(t)t4时刻:f^<t4(t)=i=1Nct4,iei(t)
在上式中,勒让德多项式 e i ( t ) e_i(t) ei(t)是固定的, c i c_i ci表示多项式基函数的系数,且随着输入 f ( t ) f(t) f(t)不断更新。 介绍到这里,脑子里有一个想法,前面介绍的状态变量也是随着输入不断的更新!
使用N阶勒让德多项式逼近序列信号,即意味着将信号映射至N维空间中,而 c ( t ) c(t) c(t)是刻画信号的状态变量。

接下来计算 c ( t ) c(t) c(t)
在这里插入图片描述
对上面的公式进行微分,并经过数学推理可以得到一个ODE:
在这里插入图片描述
对上式进行整理可得:
d d t c ( t ) = 1 t A c ( t ) + 1 t B f ( t ) − > c ˙ ( t ) = A c ( t ) + B f ( t ) \frac{d}{dt}c(t)=\frac{1}{t}Ac(t)+\frac{1}{t}Bf(t)->\dot{c}(t)=Ac(t)+Bf(t) dtdc(t)=t1Ac(t)+t1Bf(t)>c˙(t)=Ac(t)+Bf(t)
其中,矩阵A(Hippo矩阵)为:在这里插入图片描述

四、总结

本文说明了RNN、SSM与勒让德多项式之间的关系:

  • RNN本质上是一个SSM
  • S4将序列信号映射至勒让德基函数空间,状态向量即为多项式系数
  • S4中将RNN中权重矩阵W替换成Hippo矩阵

额外说明

(PS:Mamba所采用的基本框架仍是S4, Mamba则在S4的基础上引入了若干关键改进,主要可以总结为以下几点:
选择性扫描算法(Selective Scan Algorithm):Mamba采用了一种硬件感知的并行化算法,称为选择性扫描算法,它能够在加速训练和推理速度的同时,保持对历史上下文的有效利用。与S4相比,Mamba不仅存储整个历史上下文,而且选择性地将部分历史上下文总结为固定上下文,这样既保留了详细的历史信息,又提高了处理效率。
参数化矩阵与Attention效果:Mamba模型通过参数化矩阵对输入信息进行有选择性的处理,类似于注意力机制(Attention),不同输入拥有不同的状态表示,增强了模型对不同token信息的处理能力。
简化的SSM模型:Mamba还可能包含了对SSM(Sparse State Machines或Structured State Machines)的简化,进一步提升了模型的效率和可解释性。)

五、参考文章

[1]一文通透想颠覆Transformer的Mamba:从SSM、HiPPO、S4到Mamba
[2]现代控制理论——状态、状态空间、状态空间描述
[3]Mamba:4 魔幻矩阵A
[4]Mamba:3 记忆殿堂

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

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

相关文章

前字节员工自爆:我原腾讯一哥们,跳槽去小公司做小领导,就签了竞业,又从小公司离职去了对手公司,结果被发现了,小公司要他赔80万

“世界那么大&#xff0c;我想去看看”&#xff0c;这句曾经火遍网络的辞职宣言&#xff0c;说出了多少职场人心中的渴望。然而&#xff0c;当我们真的迈出跳槽那一步时&#xff0c;才发现&#xff0c;现实远比想象中残酷得多。 最近&#xff0c;一起前字节跳动员工爆料的事件…

22种常用设计模式示例代码

文章目录 创建型模式结构型模式行为模式 仓库地址https://github.com/Xiamu-ssr/DesignPatternsPractice 参考教程 refactoringguru设计模式-目录 创建型模式 软件包复杂度流行度工厂方法factorymethod❄️⭐️⭐️⭐️抽象工厂abstractfactory❄️❄️⭐️⭐️⭐️生成器bui…

自学网络安全 or Web安全,一般人我还是劝你算了吧

由于我之前写了不少网络安全技术相关的文章&#xff0c;不少读者朋友知道我是从事网络安全相关的工作&#xff0c;于是经常有人私信问我&#xff1a; 我刚入门网络安全&#xff0c;该怎么学&#xff1f; 要学哪些东西&#xff1f; 有哪些方向&#xff1f; 怎么选&#xff1f;…

福昕PDF编辑器快速去除PDF水印方法

在福昕PDF编辑器软件中打开一个带有水印的PDF文件&#xff0c;点击如图下所示的页面管理->水印&#xff0c;点击全部移除 点击 是 水印消除&#xff08;注&#xff1a;部分类型的水印可以消除&#xff0c;但是有些类型的水印无法通过此方法消除&#xff09;

Day28:回溯法 491.递增子序列 46.全排列 47.全排列 II 332.重新安排行程 51. N皇后 37. 解数独 蓝桥杯 与或异或

491. 非递减子序列 给你一个整数数组 nums &#xff0c;找出并返回所有该数组中不同的递增子序列&#xff0c;递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组中可能含有重复元素&#xff0c;如出现两个整数相等&#xff0c;也可以视作递增序列的一种特殊情…

Flask新手入门(一)

前言 Flask是一个用Python编写的轻量级Web应用框架。它最初由Armin Ronacher作为Werkzeug的一个子项目在2010年开发出来。Werkzeug是一个综合工具包&#xff0c;提供了各种用于Web应用开发的工具和函数。自发布以来&#xff0c;Flask因其简洁和灵活性而迅速受到开发者的欢迎。…

昇思大模型学习·第一天

mindspore快速入门回顾 导入mindspore包 处理数据集 下载mnist数据集进行数据集预处理 MnistDataset()方法train_dataset.get_col_names() 打印列名信息使用create_tuple_iterator 或create_dict_iterator对数据集进行迭代访问 网络构建 mindspore.nn: 构建所有网络的基类用…

Docker(四)-Docker镜像

1.概念 镜像是一种轻量级的、可执行的独立软件包&#xff0c;它包含运行某个软件所需的所有内容&#xff0c;我们把应用程序和配置依赖 打包好形成一个可交付的运行环境(包括代码&#xff0c;运行时需要的库&#xff0c;环境变量和配置文件等)&#xff0c;这个打包好的运行环境…

docker pull xxx拉取超时time out

文章目录 前言总结 前言 换了镜像源&#xff0c;改配置的都不行&#xff0c;弄了一个下午&#xff0c;最后运行一下最高指令就可以了 sudo docker_OPTS"--dns 8.8.8.8"总结 作者&#xff1a;加辣椒了吗&#xff1f; 简介&#xff1a;憨批大学生一枚&#xff0c;喜欢…

STM32自己从零开始实操06:无线电路原理图

一、WIFI 模块电路设计 1.1指路 延续使用 ESP-12S 芯片&#xff0c;封装 SMD 16x24mm。 实物图 原理图与PCB图 2.2电路图 电路较为简单&#xff0c;如下图&#xff1a; 2.2.1引脚说明 序号引脚名称描述1RST复位复位引脚&#xff0c;低电平有效3EN使能芯片使能端&#xff0c…

【深度学习】sdwebui A1111 加速方案对比,xformers vs Flash Attention 2

文章目录 资料支撑资料结论sdwebui A1111 速度对比测试sdxlxformers 用contorlnet sdxlsdpa&#xff08;--opt-sdp-no-mem-attention&#xff09; 用contorlnet sdxlsdpa(--opt-sdp-attention) 用contorlnet sdxl不用xformers或者sdpa ,用contorlnet sdxl不用xformers或者sdpa …

Windows安装配置jdk和maven(仅做记录)

他妈的远程连接不上公司电脑&#xff0c;只能在家重新配置一遍&#xff0c;在此记录一下后端环境全部配置 Windows安装配置JDK 1.8一、下载 JDK 1.8二、配置环境变量三、验证安装 Windows安装配置Maven 3.8.8一、下载安装 Maven并配置环境变量二、设置仓库镜像及本地仓库三、测…

BUU CODE REVIEW 11 代码审计之反序列化知识

打开靶场&#xff0c;得到的是一段代码。 通过分析上面代码可以构造下面代码&#xff0c;获取到序列化之后的obj。 <?php class BUU {public $correct "";public $input "";public function __destruct() {try {$this->correct base64_encode(u…

如何解决input输入时存在浏览器缓存问题?

浏览器有时会在你输入表单过后缓存你的输入&#xff0c;有时候能提供方便。 但是在某些新建或新页面情况下出现历史的输入信息&#xff0c;用户体验很差。 解决方案 设置 autocomplete关闭 &#xff1a;<input type"text" autocomplete"off">增加…

[AIGC] MyBatis-Plus中如何使用XML进行CRUD操作?

在MyBatis-Plus中&#xff0c;我们可以非常方便地使用XML进行CRUD&#xff08;创建、读取、更新、删除&#xff09;操作。以下是一些基本步骤和示例&#xff0c;希望能帮助到还在初学阶段的您。 文章目录 1. 创建Mapper接口2. 创建Mapper XML 文件3. 调用Mapper方法 1. 创建Ma…

【golang学习之旅】Go程序快速开始 Go程序开发的基本注意事项

系列文章 【golang学习之旅】使用VScode安装配置Go开发环境 【golang学习之旅】报错&#xff1a;a declared but not used 【golang学习之旅】Go 的基本数据类型 【golang学习之旅】深入理解字符串string数据类型 【golang学习之旅】go mod tidy 【golang学习之旅】记录一次 p…

【云原生|K8S系列】如何创建Kubernetes job和Cronjobs 入门指南

本kubernetes教程解释了如何创建kubernetes作业和cronjobs&#xff0c;以及它的基础知识、用例和一些提示和技巧。 什么是Kubernetes Job? Kubernetes job和cronjob是Kubernetes对象&#xff0c;主要用于短期和批处理工作负载。 kubernetes作业对象基本上部署了一个pod&…

鸣人的影分身(DP)

在火影忍者的世界里&#xff0c;令敌人捉摸不透是非常关键的。 我们的主角漩涡鸣人所拥有的一个招数——多重影分身之术——就是一个很好的例子。 影分身是由鸣人身体的查克拉能量制造的&#xff0c;使用的查克拉越多&#xff0c;制造出的影分身越强。 针对不同的作战情况&a…

构建多模态模型,生成主机观测指标,欢迎来战丨2024天池云原生编程挑战赛

在当前云计算和微服务架构日益普及的背景下&#xff0c;企业和开发者对云资源的依赖日益加深。Elastic Compute Service&#xff08;ECS&#xff09;作为提供计算能力的核心服务&#xff0c;承担着众多的业务。随着微服务架构的广泛应用&#xff0c;任务的部署和执行变得更为灵…

测试范围不足漏测问题 4大解决技巧

日常开发测试过程中&#xff0c;经常出现&#xff1a;开发人员改动产品测试人员不知道&#xff0c;或测试范围不足&#xff0c;导致产品漏测的情况。这往往导致产品发布后出现未发现的缺陷&#xff0c;产品体验效果不佳&#xff0c;影响客户满意度。而严重的缺陷需要紧急修复&a…