当前位置: 首页 > news >正文

【长文阅读】MAMBA作者博士论文<MODELING SEQUENCES WITH STRUCTURED STATE SPACES>-Chapter1

Gu A. Modeling Sequences with Structured State Spaces[D]. Stanford University, 2023.

本文是MAMBA作者的博士毕业论文,为了理清楚MAMBA专门花时间拜读这篇长达330页的博士论文,由于知识水平有限,只能尽自己所能概述记录,并适当补充一些相关数学背景,欢迎探讨与批评指正。内容多,分章节更新以免凌乱,等更新完毕补充目录跳转链接。

Abstract

这篇文档的摘要介绍了在机器学习领域的显著进步,特别是在序列模型方面,这些模型对深度学习在各种科学应用中的成功至关重要。尽管目前的方法取得了成功,但它们在处理复杂的序列数据(如涉及长期依赖性的数据)时存在限制,例如需要大量的特定任务专业化、计算效率低下等问题。为了解决这些问题,论文介绍了一种使用状态空间模型的新方法。这些模型灵活、理论基础扎实、计算效率高,并且在多种数据类型和应用中表现出色。它们扩展了标准深度序列模型(如循环神经网络和卷积神经网络)的功能。论文还开发了适用于现代硬件的新型结构化状态空间,适合长序列处理和其他场景,如自回归推理。此外,它还提出了一种用于逐步建模连续信号的新数学框架,通过这种框架,可以为状态空间模型提供原理上的状态表示,并改善其处理长期依赖性的能力。这种新方法为机器学习提供了有效且多功能的工具,特别是在处理大规模的一般序列数据方面。

1.Introduction

1.1 Deep Sequence Models

首先定义了序列模型,一张图就把CNN 、RNN、Transformer以及本文的模型概括进去。

image-20240119120739211

在本文中,将序列模型定义为参数化序列到序列的转换,用作深度学习模型的组件。 (上)序列模型通常围绕简单的参数化转换构建。定义的状态空间序列模型是一维序列上的简单线性映射。 (右)深度序列模型是一种围绕核心序列变换(例如卷积、注意力或 S4)构建的神经网络架构,并包含附加的位置神经网络组件,例如归一化层、线性层和残差连接。盒装架构块通常被重复组成深度神经网络。输入通常具有额外的通道或特征维度,并且是批量处理的。

深度学习模型用于序列数据的处理被描述为基于简单机制(如递归、卷积或注意力机制)的序列到序列的转换。这些基本元素被整合进标准的深度神经网络架构,形成了主要的深度序列模型家族:循环神经网络(RNNs)、卷积神经网络(CNNs)和Transformers。这些模型通过标准深度学习技术(如梯度下降的反向传播)实现了强大的参数化转换。

每种模型家族都在机器学习领域取得了巨大成功,例如RNNs在机器翻译中的应用、CNNs成为首个神经音频生成模型,以及Transformers在自然语言处理领域的革命性影响。然而,这些模型也有其固有的权衡。例如,

  • RNNs是一种自然的、状态驱动的序列数据模型,它们在训练过程中较慢,并且存在优化困难(如“梯度消失问题”),限制了它们处理长序列的能力。
  • CNNs擅长处理本地上下文和编码属性(如平移等变性),训练速度快,但在序列推理上成本较高,且存在上下文长度的固有限制。
  • Transformers凭借处理长程依赖性和并行化的能力取得了巨大成功,但它们在序列长度上的处理呈二次方规模增长。
  • 神经微分方程(NDEs),这是一种原理性的数学模型,理论上可以处理连续时间问题和长期依赖关系,但效率非常低。

这些权衡指出了深度序列模型面临的三个广泛挑战:

  1. 通用性能力:深度学习的一个广泛目标是开发可以广泛应用于各种问题的通用构建模块。序列模型为解决许多问题提供了一个通用框架,减少了专门化的需求,因为它们可以应用于任何可以被视为序列的设置。
  2. 计算效率:实际应用深度序列模型需要计算它们定义的函数(即参数化的序列到序列的映射),这可能在训练和推理时面临挑战。
  3. 长程依赖性:实际世界的序列数据可能需要对成千上万的时间步进行推理。除了处理长输入所需的计算问题外,还需要能够模拟这种长程依赖性中的复杂交互。

尽管为长程依赖性设计的解决方案,但在像Long Range Arena这样的挑战性基准测试中,这些解决方案仍然表现不佳。

1.2 State Space Sequence Models

本文介绍了一系列基于线性状态空间模型(SSM)的新的深度序列模型。将这个 SSM 定义为一个简单的序列模型,它通过隐式潜在状态 x ( t ) ∈ R N x(t) \in \mathbb{R}^{N} x(t)RN映射一维函数或序列 u ( t ) ∈ R ↦ y ( t ) ∈ R u(t) \in \mathbb{R} \mapsto y(t) \in \mathbb{R} u(t)Ry(t)R

x ′ ( t ) = A x ( t ) + B u ( t ) y ( t ) = C x ( t ) + D u ( t ) \begin{aligned} x^{\prime}(t) & =\boldsymbol{A} x(t)+\boldsymbol{B} u(t) \\ y(t) & =\boldsymbol{C} x(t)+\boldsymbol{D} u(t) \end{aligned} x(t)y(t)=Ax(t)+Bu(t)=Cx(t)+Du(t)

这些模型将一维函数或序列通过隐含的潜在状态映射到另一个序列,形成了一种简单的序列模型。SSMs在控制理论、计算神经科学、信号处理等领域都是基础性的科学模型,它们模拟了潜变量在状态空间中的演变,并且通常定义了这些动态的概率模型。

状态空间模型与如NDEs、RNNs和CNNs等其他模型家族有紧密关联,可以以多种形式表达,以获得通常需要专门模型的不同能力。SSMs具有以下特性:

  1. SSMs是连续的:它们本身是微分方程,可以模拟连续时间模型的独特应用,如模拟连续过程、处理缺失数据和适应不同的采样率。
  2. SSMs是递归的:它们可以被离散化成线性递归,用标准技术模拟推理时的状态驱动递归模型,每个时间步骤具有恒定的内存和计算量。
  3. SSMs是卷积的:它们是线性时不变系统,已知可以显式表示为连续卷积。此外,离散时间版本可以在训练期间使用离散卷积进行并行化,从而提高训练效率。

然而,SSMs的通用性也带来了一些权衡。简单的SSMs仍然面临其他挑战,如速度远慢于同等大小的RNNs和CNNs,以及难以记住长期依赖性,例如继承了RNNs的梯度消失问题。

为了解决这些挑战,引入了具有结构化状态空间(S4)的新算法和理论。这些算法通过在状态矩阵A上施加结构,以适应高效的算法。S4模型的第一个结构使用状态矩阵的对角线参数化,非常简单且足以表示几乎所有SSMs。然后,通过允许低秩修正项,可以表示一类特殊的SSMs。综合了多种技术思想,如生成函数、线性代数变换和结构化矩阵乘法的结果,开发了这些结构的算法,时间复杂度和空间复杂度均为O˜(N + L),这对于序列模型来说是非常紧凑的。

此外,SSMs在处理长期依赖性方面表现不佳,这是由于线性一阶常微分方程解决为指数函数,可能导致序列长度中梯度指数级缩放。为了解决这个问题,开发了一个称为HIPPO的数学框架,用于在线函数逼近(或记忆)。HIPPO产生的方法旨在通过维护其历史的压缩来增量记忆连续函数。这些方法实际上是SSMs的特定形式,尽管它们是完全独立地激发出来的。

相关文章:

【长文阅读】MAMBA作者博士论文<MODELING SEQUENCES WITH STRUCTURED STATE SPACES>-Chapter1

Gu A. Modeling Sequences with Structured State Spaces[D]. Stanford University, 2023. 本文是MAMBA作者的博士毕业论文,为了理清楚MAMBA专门花时间拜读这篇长达330页的博士论文,由于知识水平有限,只能尽自己所能概述记录,并适…...

Unity3D学习之UI系统——GUI

文章目录 1. 前言2. 工作原理和主要作用3. 基础控件3.1 重要参数及文本和按钮3.1.1 GUI 共同点3.1.2 文本控件3.1.3 按钮控件 3.2 多选框和单选框3.2.1 多选框3.2.2 单选框3.2.3 输入框3.2.4 拖动条 3.3 图片绘制和框3.3.1 图片3.3.2 框绘制 4 工具栏和选择网格4.1 工具栏4.2 选…...

用户ssh正确密码登陆均报错Permission denied, please try again.处理方法

我的一台虚拟机IP是:192.168.59.133任何服务器使用任何用户ssh均报错,甚至连自己都不能ssh自己。 不能使用任何工具连接上该服务器 使用ssh连接自己的127.0.0.1和localhost都权限拒绝错误 ssh报错如下 任何服务器ssh报错内容均一样:报错内…...

IO、NIO、IO多路复用

IO是什么? IO分为两类,它们之间是有区别的,而且有很大的区别;1. 文件系统的IO 也叫本地io,就是和磁盘或者外围存储设备进行读写操作,外围设备有USB、移动硬盘等等;2. 网络的IO 将数据发送给对方…...

探索FTP:原理、实践与安全优化

引言 在正式开始讲解之前,首先来了解一下文件存储的类型有哪些。 DAS、SAN和NAS是三种不同的存储架构,分别用于解决不同场景下的数据存储需求。 DAS (Direct Attached Storage 直接附加存储):DAS 是指将存储设备(如硬盘&#x…...

git中的语法和术语含义

目录 第一章、git常用术语1.1)文件状态1.2)git常用术语的含义 第二章、git文件状态解析2.1)从git init开始:Untracked(未跟踪)2.2)git add fileName后:Staged(已暂存&…...

java SECS管理系统 将逐步推出 SECS 客户端(Passive) 管理系统 SECS快速开发平台 springboot secs开发平台

SECS管理系统 这是一套SECS客户端(Passive),可以直接连接PLC设备,支持Modbus、三菱MC、欧姆龙Fine、OPC-UA、西门子S7设备等通信。 企业已经有了EAP软件,但是设备没有SECS通信功能,这时候可以使用这套框架,直接连接设备&#xff…...

使 a === 1 a === 2 a === 3 为 true 的几种“下毒“方法

前言 这算得上是近些年的前端网红题了,曾经对这种网红题非常抵触,认为非常没有意义。 看到了不少人有做分享,有各种各样的方案,有涉及到 JS 非常基础的知识点,也不得不感叹解题者的脑洞之大。 但是,拿来…...

Canny边缘检测 双阈值检测理解

问题引入 我们用一个实际例子来引入问题 import cv2 import numpy as npimgcv2.imread("test.png",cv2.IMREAD_GRAYSCALE) # 修改图像大小 show cv2.resize(img,(500,500))v1cv2.Canny(show,120,250) v2cv2.Canny(show,50,100)# 连接图像 res np.hstack((v1,v2)…...

自动化测试:5分钟了解Selenium以及如何提升自动化测试的效果

在快节奏的技术世界里,自动化测试已经成为确保 Web 应用程序质量和性能的重要手段。自动化测试不仅加快了测试过程,还提高了测试的重复性和准确性。Selenium,作为领先的自动化测试工具之一,为测试人员提供了强大的功能来模拟用户在…...

【MySQL】——关系数据库标准语言SQL(大纲)

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…...

力扣hot100 最长有效括号 动态规划

Problem: 32. 最长有效括号 文章目录 思路Code 思路 👨‍🏫 参考题解 Code ⏰ 时间复杂度: O ( n ) O(n) O(n) 🌎 空间复杂度: O ( n ) O(n) O(n) class Solution {public int longestValidParentheses(String s){int n s.length();…...

@RequestBody注解基础

RequestBody RequestBody注解一般与post方法使用。 一个请求中只能存在一个RequestBody注解。 RequestBody 用于接收前端传递给后端的json字符串中的数据。(处理json格式的数据) 语法格式: ​(RequestBody Map map) (RequestBody Object obje…...

前端基础面试题大全

一、Vue 文章目录 一、Vue1、vue 修改数据页面不重新渲染**数组/对象的响应式 ,vue 里面是怎么处理的?** 2、生命周期Vue 生命周期都有哪些?父子组件生命周期执行顺序 3、watch 和 computed 的区别4、组件通信(组件间传值&#xf…...

第一讲_HarmonyOS应用开发环境准备

HarmonyOS应用开发环境准备 1. 知识储备2. 环境搭建2.1 安装node.js2.2 配置node.js2.3 安装命令行工具2.4 安装DevEco Studio2.5 配置DevEco Studio 1. 知识储备 HarmonyOS提供了一套UI开发框架,即方舟开发框架(ArkUI框架)。方舟开发框架可…...

一、可行性研究报告模板(软件工程)

一、可行性研究报告 1.引言 1.1编写目的 1.2项目背景 1.3定义 1.4参考资料 2.可行性研究的前提 2.1要求 2.2目标 2.3条件、假定和限制 2.4可行性研究方法 2.5决定可行性的主要因素 3.对现有系统的分析 3.1处理流程…...

DBA技术栈MongoDB:简介

1.1 什么是MongoDB? MongoDB是一个可扩展、开源、表结构自由、用C语言编写且面向文档的数据库,旨在为Web应用程序提供高性能、高可用性且易扩展的数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当…...

贪心算法 ——硬币兑换、区间调度、

硬币兑换: from book:挑战程序设计竞赛 思路:优先使用大面额兑换即可 package mainimport "fmt"func main() {results : []int{}//记录每一种数额的张数A : 620B : A//备份cnts : 0 //记录至少需要多少张nums : []int{1, 5, 10, 5…...

【已解决】namespace “Ui“没有成员 xxx

先说笔者遇到的问题,我创建一个QWidget ui文件,然后编辑的七七八八后,想要用.h与.cpp调用其,编译通过,结果报了这个错误,本方法不是普适性,但是确实解决了这个鸟问题。 问题来源 搭建ui后&…...

Spring Bean 生命周期的执行流程?

一、问题解析 Spring 生命周期全过程大致分为五个阶段:创建前准备阶段、创建实例阶段、依赖注入阶段、容器缓存阶段和销毁实例阶段。 这张是 Spring Bean 生命周期完整流程图,其中对每个阶段的具体操作做了详细介绍: (把这张图按…...

Android-三方框架的源码

ARouter Arouter的整体思路是moduelA通过中间人ARouter把路由信息的存到仓库WareHouse;moduleB发起路由时,再通过中间人ARouter从仓库WareHouse取出路由信息,这要就实现了没有依赖的两者之间的跳转与通信。其中涉及Activity的跳转、服务prov…...

AI嵌入式K210项目(15)-安全散列算法加速器

文章目录 前言一、什么是SHA256?实验原理 二、K210的安全散列算法加速器三、实验过程总结 前言 K210内置了丰富的加速器,包括神经网络处理器 (KPU),AES(高级加密加速器),APU 麦克风阵列语音数据加速计算处理器,现场可…...

Docker Consul详解与部署示例

目录 Consul构成 Docker Consul 概述 Raft算法 服务注册与发现 健康检查 Key/Value存储 多数据中心 部署模式 consul-template守护进程 registrator容器 consul服务部署(192.168.41.31) 环境准备 搭建Consul服务 查看集群信息 registrato…...

内网安全管理系统(保密管理系统)

在当今信息化的时代,企业的内网已经成为其核心资产的重要组成部分。 随着企业的快速发展和信息化程度的提升,内网安全问题日益凸显,如何保障内网的安全和机密信息的保密性,已经成为企业亟待解决的问题。 内网安全管理系统(保密管…...

.NetCore Flurl.Http 4.0.0 以上管理客户端

参考原文地址:Managing Clients - Flurl 管理客户端 Flurl.Http 构建在堆栈之上System.Net.Http。如果您熟悉HttpClient,那么您可能听说过这个建议:不要为每个请求创建一个新客户端;重复使用它们,否则将面临后…...

openssl3.2 - 官方demo学习 - smime - smenc.c

文章目录 openssl3.2 - 官方demo学习 - smime - smenc.c概述笔记END openssl3.2 - 官方demo学习 - smime - smenc.c 概述 读取X509证书, 用PKCS7加密明文(证书 明文 3DES_CBC), 保存为MIME格式的密文 openssl API的命名含义 BIO_new_file “new” a “file”, return a “…...

【EI会议征稿通知】第四届工业制造与结构材料国际学术会议(IMSM 2024)

第四届工业制造与结构材料国际学术会议(IMSM 2024) 2024 4th International Conference on Industrial Manufacturing and Structural Materials(IMSM 2024) 第四届工业制造与结构材料国际学术会议(IMSM 2024&#x…...

mysql中建立一个用户,只能看到某个指定的数据库

MySQL用户管理及权限控制 在MySQL数据库中,用户管理和权限控制是非常重要的功能。通过正确地设置用户和权限,可以保护数据库的安全性,防止未授权的访问和数据泄露。本文将介绍如何在MySQL中创建一个用户,并限制该用户只能访问特定…...

第2章 线程管理

2.1 线程的基本操作 每个程序至少有一个执行main()函数的线程, 其他线程与主线程同时运行。 如main()函数执行完成退出一样, 线程执行完函数也会退出。 为线程创建std::thread() 对象后, 需要等待该线程结束。 那么, 先启动线程。…...

机器学习第二十六周周报 ARIMA Clustering model

文章目录 week26 ARIMA & Clustering model摘要Abstract一、龙格库塔方法二、文献阅读1. 题目2. abstract3. 网络架构3.1 ARIMA模型3.2 K-means聚类3.3 评估标准 4. 文献解读4.1 Introduction4.2 创新点4.3 实验过程4.3.1 数据来源4.3.2 使用ARIMA模型预测4.3.3 K-means聚类…...