【AI学习】Mamba学习(十一):S4,《Efficiently Modeling Long Sequences with Structured State Spaces》

#1024程序员节|征文#

HiPPO的学习暂告一段落,按照“HiPPO->S4->Mamba 演化历程”,接着学习S4。

《Efficiently Modeling Long Sequences with Structured State Spaces》
文章链接:https://ar5iv.labs.arxiv.org/html/2111.00396
https://arxiv.org/abs/2111.00396

摘要

文章提出了一种名为S4(Structured State Space sequence model)的序列模型,旨在有效处理长距离依赖(LRDs)。尽管现有的模型如RNN、CNN和Transformer等有专门变体来捕获长距离依赖,但它们在处理超过10000步的非常长序列时仍然存在困难。最近一种基于状态空间模型(SSM)的方法展示了通过适当选择状态矩阵A,可以在数学和实证上处理长距离依赖。然而,这种方法在计算和内存需求上成本过高,使其不适用于一般序列建模解决方案。S4模型通过新的参数化方法对SSM进行了改进,使得它在保持理论优势的同时,计算效率大大提高。该技术涉及对A进行低秩修正,使其可以稳定地对角化,并简化SSM为一个著名的Cauchy核的计算。S4在多个基准测试中取得了强大的实证结果,包括在无需数据增强或辅助损失的顺序CIFAR-10上的准确率达到91%,与更大的2-D ResNet相当,在图像和语言建模任务上与Transformer的差距显著缩小,同时生成速度快60倍,在Long Range Arena基准测试的每个任务上都达到了SoTA,包括解决了所有先前工作都失败的具有挑战性的Path-X任务,长度为16k,同时与所有竞争对手一样高效。

解决的主要问题

  • 序列建模中长距离依赖(LRDs)的有效处理。
  • 现有模型在处理非常长序列时的局限性。
  • 先前基于SSM的方法在计算和内存需求上的高成本问题。

方法

  • 提出了S4模型,它基于SSM的新参数化,通过将状态矩阵A分解为低秩和正常项的和,使得A可以被稳定地对角化。
  • 利用Woodbury identity和Cauchy核的计算,将SSM的计算复杂度从O(N^2L)降低到O(N+L),其中N是状态维度,L是序列长度。
  • 在多个任务和数据集上验证了S4模型的性能,包括顺序CIFAR-10、WikiText-103语言建模、图像分类和时间序列预测等。

介绍

序列建模的一个核心问题是有效地处理包含长距离依赖(LRDs)的数据。现实世界中的时间序列数据通常需要在数万步时间步长上进行推理,而很少有序列模型能够处理甚至成千上万步的数据。例如,长距离范围竞技场(LRA)基准测试的结果[40]凸显了当今序列模型在LRD任务上的表现不佳,包括一个(Path-X)没有任何模型的表现优于随机猜测的情况。

由于LRDs可能是序列模型面临的最大挑战,所有标准模型族,如连续时间模型(CTMs)、RNNs、CNNs和Transformers,都包括许多旨在解决它们的专门变体。现代的例子包括正交和Lipschitz RNNs[1, 13]来对抗梯度消失问题,扩张卷积来增加上下文大小[3, 28],以及日益庞大的高效Transformer家族,它们减少了对序列长度的二次依赖[8, 22]。尽管这些解决方案针对LRDs设计,但在LRA[40]或原始音频分类[18]等具有挑战性的基准测试上,它们的表现仍然不佳。

最近基于状态空间模型(SSM)的一种替代方法被提出来解决LRDs问题(图1)。SSM是在控制理论、计算神经科学等领域中使用的基础科学模型,但由于具体理论原因,它们并未适用于深度学习。特别是,Gu等人[18]表明,深度SSMs即使在简单任务上也表现不佳,但如果配备了最近推导出的特殊状态矩阵A来解决连续时间记忆问题[16, 45],则可以表现出色。他们的线性状态空间层(LSSL)在概念上统一了CTM、RNN和CNN模型的优势,并提供了一个概念验证,即深度SSMs在原则上可以解决LRDs问题。

不幸的是,由于状态表示引起的计算和内存需求过高,LSSL在实践中不可行。对于状态维度N和序列长度L,计算潜在状态需要O(N^2L)的操作和O(NL)的空间——与两者的Ω(L + N)的较低界限相比。因此,对于合理尺寸的模型(例如,Gu等人[18]中的N = 256),LSSL使用的内存比同样大小的RNN或CNN多几个数量级。尽管为LSSL提出了理论上高效的算法,但我们展示这些算法在数值上是不稳定的。特别是,特殊的A矩阵在线性代数意义上是非正常的,这阻止了传统算法技术的应用。因此,尽管LSSL展示了SSMs的强大性能,但它们作为一般序列建模解决方案在计算上目前是不切实际的。

在这项工作中,我们提出了基于SSM的结构化状态空间(S4)序列模型,它解决了之前工作中的关键计算瓶颈。技术上,S4重新参数化了Gu等人[16]和Voelker等人[45]中出现的结构化状态矩阵A,通过将它们分解为低秩和正常项的和。此外,我们不是在系数空间中展开标准SSM,而是计算其在频率空间中的截断生成函数,这可以简化为类似多极子的评估。结合这两个想法,我们展示了低秩项可以通过Woodbury恒等式进行校正,而正常项可以稳定地对角化,最终简化为一个得到了很好研究并且理论上稳定的Cauchy核[29, 30]。这导致计算和内存使用都是˜O(N + L),这对于序列模型来说是基本的。与LSSL相比,S4在速度上快了30倍,内存使用减少了400倍,同时在实证上超过了LSSL的性能。

在这里插入图片描述

迈向通用序列模型
除了LRD,机器学习的一个广泛目标是开发一个可以用于各种问题的单一模型。如今的模型通常专门用于解决特定领域(如图像、音频、文本、时间序列)的问题,并实现了一系列能力(如高效训练、快速生成、处理不规则采样数据)。这种专业化通常通过特定领域的预处理、归纳偏差和架构来表达。序列模型提供了一个通用的框架,可以通过减少专业化来解决许多这些问题,例如用于2D信息较少的图像分类的Vision Transformers[12]。然而,大多数模型(如Transformers)通常仍需要对每项任务进行大量专业化,以实现高性能。

深度SSM尤其具有概念优势,表明它们可能是一种有前景的通用序列建模解决方案。这些优势包括处理LRD的原则性方法,以及在连续时间、卷积和循环模型表示之间移动的能力,每种表示都有不同的能力(图1)。我们的技术贡献使SSM能够以最小的修改成功应用于各种基准:

大规模生成建模。在CIFAR-10密度估计中,S4与最佳的自回归模型(2.85
bits/dim)具有竞争力。在WikiText-103语言建模上,S4基本上缩小了与Transformers的差距(在0.8困惑度以内),将SoTA设置为无注意力模型。
快速自回归生成。与RNN一样,S4可以利用其潜在状态在CIFAR-10和WikiText-103上执行比标准自回归模型快60倍的像素/令牌生成。
采样分辨率变化。与专用CTM一样,S4可以适应时间序列采样频率的变化,而无需重新训练,例如在语音分类中以0.5倍的频率。
学习时带有较弱的归纳偏见。在没有架构变化的情况下,S4在语音分类方面超越了语音CNN,在时间序列预测问题上超越了专门的Informer模型,并在顺序CIFAR上与2-D ResNet匹配,准确率超过90%。

文章翻译

下面是翻译工具对这篇文章的大概翻译,作为参考,放到这里。很多地方翻译的不到位,凑合看吧。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

### 回答1: TB6612电机驱动芯片是一款高效的双路直流电机驱动器,可同时控制两个直流电机或一个步进电机。其原理图如下: 电源部分:TB6612电机驱动器需要外接电源,一般用7V-12V的电源作为驱动器的电源。 控制部分:驱动器接收来自控制器的脉冲信号,控制电机的速度和方向。控制信号来源可以是单片机或其他数字设备控制器,其输出的控制信号经过作为输入的接口进行传输。 电机部分:驱动器的两个通道可以控制两个电机,通常使用直流电机,每个通道都有两个引脚,可直接与电机的两个端子连接。引脚AILE和BIRE表示电机的正反转,而PWMA和PWMB表示电机的速度控制 驱动部分:驱动器内部的功率放大器通过调整引脚输出的电压来控制电机。因此,当控制器发送控制信号时,驱动器将通过调整电机的电压和功率来实现电机的转速和方向。控制信号与电机形成闭环控制,驱动电机实现电机启动、停止、正反转和速度调整等功能。 总的来说,TB6612电机驱动原理图包含了电源、控制、电机和驱动四个部分,并通过内部功率放大器将输入的控制信号转化为电机实际控制的电压和功率,以控制电机的运动。 ### 回答2: TB6612是一种集成了双向DC电机驱动器的器件。它可以控制两个直流电机,或者一个双极性步进电机。这篇文章将介绍TB6612的电机驱动原理图。 TB6612驱动电路由以下几部分组成: 1. 电源部分:TB6612需要一个适当的电源来工作。电源应该提供TB6612所需的电压范围,通常为4.5V至13.5V。电源还需要为电机提供所需的电源电压。 2. PWM信号部分:TB6612的速度控制由PWM信号控制。PWM信号可以是微控制器或其他控制器输出的信号。PWM信号可以控制电机的速度和方向。 3. 控制逻辑:TB6612包括了两个电机驱动器。每个驱动器都有一个使能输入、一个方向输入和一个PWM输入。当使能输入为高电平时,电机处于禁用状态。当使能输入为低电平时,电机可以被控制。方向输入控制电机的旋转方向。 4. 保护部分:TB6612还具有一些保护特性,如过热保护和过电流保护。这些保护特性有助于防止电机受到损坏。 因此,TB6612驱动电路主要由电源、PWM信号、控制逻辑和保护四个部分组成。当PWM信号给出足够的电压和频率时,TB6612会将电流传递给电机,以控制电机的旋转方向和速度。TB6612的保护功能也可以防止电机受到损坏。这些都使TB6612成为驱动直流电机的理想设备。 ### 回答3: TB6612是一款可用于双向直流电机的驱动器芯片,它提供高达1.2A的输出电流和输入电压范围广泛的功能。TB6612内部集成了保护电路,使得它非常适合于小型移动机器人、智能家居以及其他类似应用。 TB6612驱动电机的原理图如图所示,电机的两端分别连接到OUT1和OUT2引脚上,控制信号由IN1和IN2引脚提供。驱动器的电源连接到VMOT和GND引脚上,逻辑电源则由VCC和GND引脚提供。在驱动器芯片中,两个马达接口引脚IN1、IN2、INA2、INA1、INB2、INB1都是分别被使用的。 驱动器芯片的工作原理如下:当输入信号为“11”时,马达接口将输出最大速度;输入信号为“10”或“01”时,马达接口输出的是中间速度;输入信号为“00”时,马达接口输出的是最小速度。此时,IN1、INA1、INA2、IN2、INB1、INB2都是输入脚,可以通过单片机或其他控制器进行控制。 当输入信号为“1”时,输出引脚OUT1或OUT2就会输出高电平,相反情况下,输出引脚输出低电平。因此,为了电机正常工作,需要将电机的两个引脚分别连接到OUT1和OUT2上,并且将电机的正极连接到一个输入引脚,负极则连接到另一个输入引脚上。当输入信号发生变化时,电机会根据输出引脚的信号状态进行加速或减速操作。 总之,TB6612电机驱动原理图非常简单,只需要连接两个马达接口引脚就可以实现双向直流电机驱动。同时,该芯片具有高效、可靠、安全的特点,可以广泛应用于各种机器人、车辆和家庭自动化设备中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bylander

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值