【AI学习】Mamba学习(七):HiPPO通用框架介绍

news2024/10/17 5:06:54

HiPPO这篇论文《HiPPO: Recurrent Memory with Optimal Polynomial Projections》,提出了一个通用框架。
我们再重新看一下论文的摘要:
从连续数据中学习的一个核心问题是,随着更多数据的处理,以增量方式表示累积历史。我们介绍了一个通用框架(HiPPO),用于通过投影到多项式基上对连续信号和离散时间序列进行在线压缩。给定一个指定过去每个时间步长重要性的度量,HiPPO会产生一个自然在线函数近似问题的最优解。作为特例,我们的框架从第一性原理中对最近的勒让德记忆单元(LMU)进行了简短的推导,并推广了循环神经网络(如GRU)的普遍门控机制。这种形式化框架产生了一种新的内存更新机制(HiPPO LegS),该机制可随时间扩展以记住所有历史,避免在时间尺度上出现先验。HiPPO LegS具有时间尺度鲁棒性、快速更新和有界梯度的理论优势。通过将记忆动态结合到循环神经网络中,HiPPO-RNN可以经验性地捕捉复杂的时间依赖性。在打乱顺序的基准MNIST数据集上,HiPPO LegS设定了98.3%的最新精度。最后,在一项新的轨迹分类任务中,测试了对分布外时间尺度和缺失数据的鲁棒性,HiPPO-LegS的准确率比RNN和神经ODE基线高出25-40%。

一、方案介绍

摘要过于浓缩,看完后肯定理解不深入,继续看介绍部分。

作者在介绍的第一段,首先提出一个基本问题。

“从序列数据中建模和学习是现代机器学习中的一个基本问题,其基础任务包括语言建模、语音识别、视频处理和强化学习。对长期和复杂的时间依赖关系进行建模的一个核心方面是内存,即存储和合并来自先前时间步骤的信息。挑战在于使用有界存储来学习整个累积历史的表示,随着收到更多数据,必须在线更新。

从这段描述,我联想到,是否人类的记忆也是面临同样的问题。脑容量(对应上面所述的内存)有限,而每天都有接收大量的信息输入,包括音视频、文字、其他感官等多种模态的输入,而人类的记忆也是不停的在线更新。所以,我认为,作者提出的这个基本问题,是一个非常本质的问题,是一个可能涉及有关人类的记忆这种智能机制的问题。

接下来,作者提到了已有的方法和存在的问题:

“一种既定的方法是对一个随着时间的推移而演变的状态进行建模,因为它包含了更多的信息。这种方法的深度学习实例是递归神经网络(RNN),众所周知,它存在有限的记忆范围[34,38,56](例如,“消失梯度”问题)。尽管已经提出了各种启发式方法来克服这一点,例如成功的LSTM和GRU[34,16]中的门,或最近的傅里叶循环单元[79]和勒让德存储单元(LMU)[71]中的高阶频率,但对记忆的统一理解仍然是一个挑战。此外,现有的方法通常需要序列长度或时间尺度上的先验,在这个范围之外是无效的[66,71];这在具有分布偏移的环境中可能是有问题的(例如,由于医学数据中的不同仪器采样率[62,63])。最后,它们大多缺乏对如何捕捉长期依赖性的理论保证,比如梯度界限。为了设计更好的记忆表示,我们理想的情况是(i)对这些现有方法有一个统一的看法,(ii)能够解决任何长度的依赖关系,而不需要时间尺度上的先验,以及(iii)对它们的记忆机制有严格的理论理解。”

针对问题,作者提出了解决方法,即通过将函数投影到正交多项式(OP)的方法实现在线近似,并形成了新的框架:HiPPO框架(high-order polynomial projection operators):

“我们的见解是将短语记忆视为在线函数近似的技术问题,其中函数f(t):ℝ+→ℝ
通过将其最优系数存储在一些基函数中来概括。根据指定过去每个时间重要性的度量来评估这种近似值。给定此函数近似公式,正交多项式(OP)作为自然基出现,因为它们的最优系数可以用封闭形式表示[14]。凭借其丰富而深入研究的历史[65],以及在近似理论[68]和信号处理[57]中的广泛应用,OP为这个记忆表示问题带来了一系列技术。我们形式化了一个框架HiPPO(高阶多项式投影算子),它产生了将任意函数投影到给定度量的正交多项式空间上的算子。这个通用框架允许我们分析几个度量家族,其中该算子作为闭式常微分方程或线性递归,允许在输入函数随时间变化时快速增量更新最优多项式近似值。

作者进一步指出HiPPO框架和已有方法的关系、HiPPO框架的优势:

“通过在循环序列模型下提出一个形式化的优化问题,HiPPO框架(第2节)概括并解释了以前的方法,解锁了适用于不同时间尺度的序列数据的新方法,并提供了几个理论保证。(i) 例如,通过简短的推导,我们可以精确地恢复LMU[71](第2.3节)的特殊情况,它提出了一种更新规则,可以随着时间的推移投影到固定长度的滑动窗口上。HiPPO还为LSTM和GRU的门控机制等经典技术提供了新的见解,这些技术在一个极端中仅使用近似中的低阶度(第2.5节)。(ii)通过选择更合适的度量,HiPPO产生了一种新的机制(Scaled Legendre或LegS),该机制始终考虑函数的完整历史,而不是滑动窗口。这种灵活性消除了对序列长度的超参数或先验的需求,使LegS能够推广到不同的输入时间尺度。(iii)与动力系统和近似理论的联系使我们能够展示HiPPO LegS的几个理论优势:对输入时间尺度的不变性、渐近更有效的更新以及梯度流和近似误差的界限(第3节)。”

最后,说明一下方法的验证效果:

“我们将HiPPO记忆机制整合到RNN中,并实证表明,它们在用于评估长期依赖性的标准任务上优于基线。在置换的MNIST数据集上,我们的无超参数HiPPO-LegS方法实现了98.3%的最新精度,比之前的RNN SoTA高出1个百分点以上,甚至优于具有全局上下文的模型,如transformer(第4.1节)。接下来,我们在一项新的轨迹分类任务上证明了HiPPO LegS的时间尺度鲁棒性,它能够泛化到看不见的时间尺度并处理缺失的数据,而RNN和神经ODE基线则失败了(第4.2节)。最后,我们验证了HiPPO的理论,包括计算效率和可扩展性,允许在数百万个时间步长内快速准确地进行在线函数重建(第4.3节)。复制我们实验的代码可在https://github.com/HazyResearch/hippo-code.”

一点说明

作者提到,LSTM和GRU的门控机制是使用近似的低阶度,这个没看到后面的方法不好理解。做一个解释,作者给出的通用的方法,是通过将函数投影到正交多项式,而LSTM和GRU也是这种OP投影方法的特例,只不过投影的阶数比较低,而HiPPO,使用了高阶多项式投影,也就是high-order polynomial projection operators。

二、具体案例

阅读了方案介绍,我们停下来,看一个案例。
苏神在《重温被Mamba带火的SSM:线性系统和HiPPO矩阵》一文中,以傅里叶级数为例,给出了一个精彩的案例,因为傅里叶级数大家都比较熟悉,所以根据容易理解。
按照论文作者指出:框架HiPPO(高阶多项式投影算子),是将任意函数投影到给定度量的正交多项式空间上的算子。理论上,这个正交多项式可以有很多选择,所以才是才能叫做框架!那么,当然,傅里叶级数也是可以的。作者没有选傅里叶技术,只是因为采用勒让德(Legendre)多项式有后续的高效计算方法,所以采用了勒让德(Legendre)多项式作为正交基。

那我们先跟随苏神看看傅里叶级数的情况,通过熟悉的东西先理解框架方法。
HiPPO 的目标是:用一个有限维的向量来储存(或者说压缩)函数的信息
我们使用在平方可积条件下的正交函数基展开,比如傅里叶(Fourier)级数,它的系数计算公式为:
在这里插入图片描述
这时候取一个足够大的整数N ,只保留n的绝对值小于等于N 的系数,那么就将函数u(t)压缩为一个2N+1 维的向量了。

在这里插入图片描述
接下来, 就是一个新的问题,如何实现时间的映射?下面是一些方法:
在这里插入图片描述
这些不同的方法,就是HiPPO论文作者所说的“过去每个时间重要性的度量”。那对时间重要性的度量的不同方法,导致最后的公式形式也有所不同。
苏神先选择了其中滑窗的度量方法:
在这里插入图片描述
在这里插入图片描述
把上面的公式(9)对比一下SSM方程:
在这里插入图片描述
就得到了如式(1)所示的线性 ODE 系统。即当我们试图用傅里叶级数去记忆一个实时函数的最邻近窗口内的状态时,结果自然而言地导致了一个线性 ODE 系统。

注:ODE方程‌是‌常微分方程(Ordinary Differential Equation)的简称。

看过这个傅里叶级数展开的案例,再来重温作者的这段话:“框架HiPPO(高阶多项式投影算子),它产生了将任意函数投影到给定度量的正交多项式空间上的算子。这个通用框架允许我们分析几个度量家族,其中该算子作为闭式常微分方程或线性递归,允许在输入函数随时间变化时快速增量更新最优多项式近似值。

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

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

相关文章

【记录】Windows|Windows 修改字体大全(Windows 桌面、VSCode、浏览器)

【记录】Windows|Windows 修改字体大全(Windows 桌面、VSCode、浏览器) 前言 最近从学长那里发现了一款非常美观的衡水体字体——Maple Mono SC NF。您可以通过以下链接下载该字体:https://github.com/subframe7536/maple-font/…

【C语言刷力扣】1832.判断句子是否为全字母句

题目&#xff1a; 法一 bool checkIfPangram(char* sentence) {int str[256];memset(str, 0, sizeof(int));for (int i 0; i < strlen(sentence); i) {str[ sentence[i] ];}for (int j a; j < z; j) {if (!str[j]) return false;}return true; } 法二 动态分配 typ…

C++ operator new和operator delete的深入讲解

个人主页&#xff1a;Jason_from_China-CSDN博客 所属栏目&#xff1a;C系统性学习_Jason_from_China的博客-CSDN博客 所属栏目&#xff1a;C知识点的补充_Jason_from_China的博客-CSDN博客 前言 关于operator new和operator delete我们需要明确一个概念&#xff0c;这两个都是…

2024全新UI网址发布页源码带黑夜模式

源码简介 2024全新UI网址发布页源码带黑夜模式&#xff0c;带网站延迟测速&#xff0c;该源码是html源码&#xff0c;可以做个引导页面。 安装教程 纯HTML&#xff0c;直接将压缩包上传网站目录解压即可(或在本地直接打开) 首页截图 源码下载 2024全新UI网址发布页源码带黑…

​​Vision Pro/空间计算小白体系化练手案例:从入门到精通的实战项目指南

引言 随着苹果Vision Pro的发布,空间计算技术正迎来前所未有的发展机遇。对于希望进入这一领域的开发者来说,掌握visionOS及相关工具链是至关重要的第一步。本文将介绍一系列由浅入深的实战项目,旨在帮助初学者系统地学习并实践visionOS开发。这些项目不仅适合个人学习,也…

踩坑日记:线上接口超时问题排查

1.背景: 上线后,功能测试. 进入小程序页面发现很慢,耗时超过5秒,打开skywalking发现大量接口耗时都很高. 2.top命令 服务器top命令查看cpu资源发现占用并不高 3.mysql查看sql运行情况 # 当前运行的所有事务 select * from information_schema.innodb_trx; 1 | …

国内液压一体式潜孔钻机市场相对分散

根据研究团队调研统计&#xff0c;2023年全球液压一体式潜孔钻机市场销售额达到了52亿元&#xff0c;预计2030年将达到90亿元&#xff0c;年复合增长率&#xff08;CAGR&#xff09;为7.1%&#xff08;2024-2030&#xff09;。中国市场在过去几年变化较快&#xff0c;2023年市场…

计算机网络基础(1)

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 计算机网络基础 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 1. 计算机网…

100. UE5 GAS RPG 显示范围魔法的攻击范围

在这一篇里&#xff0c;我们将制作一个范围魔法&#xff0c;释放魔法时&#xff0c;我们将在鼠标拾取位置绘制一个魔法光圈&#xff0c;用于显示技能释放时攻击的范围&#xff0c;然后再次点击可以释放技能。 创建贴花类 魔法范围标识的光圈&#xff0c;我们采用贴花实现&…

AI 代码工具大揭秘:提高编程效率的必备神器!

近年来&#xff0c;人工智能得到了迅猛的发展&#xff0c;并在各行各业都得到了广泛应用。尤其是近两年来&#xff0c;AI开发工具逐渐成为开发者们的新宠&#xff0c;其中GitHub Copilot更是引发了无限可能性的探索。在本文中&#xff0c;我将向大家介绍一些实用性较高的智能开…

徒步1 -经典贪心

# 问题描述 小明想从A徒步到B&#xff0c;总路程需要M天&#xff0c;路程中为了确保安全&#xff0c;小明每天需要消耗1份食物。 在起点及路程当中&#xff0c;零星分布着N个补给站&#xff0c;可以补充食物&#xff0c;不同补给站的食物价格可能不同。 请问小明若要安全完…

求双十一宠物空气净化器推荐!希喂、范罗士、有哈哪款好用?

不知道大家有没有觉得&#xff0c;今年的双十一比以往要冷清些。还是朋友提醒我才知道&#xff0c;预售已经开始几天了&#xff0c;真切的体会到了消费降级带来的变化。不过自己的东西可买可不买&#xff0c;猫主子的口粮和生活用品还是要保证的。 把小猫接回来已经一年了&…

HTTP服务

一.http协议的介绍 http应用层协议 超文本传输协议&#xff08;比如网站上面的超链接&#xff09; 作用&#xff1a;构建网站服务器&#xff0c;可以在客户端与网站服务器之间传输文本数据。 浏览器会将文本数据解析成对应的图片&#xff0c;视频进行展示。 1.网站类型 静…

字符串(4)_字符串相乘_高精度乘法

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 字符串(4)_字符串相乘_高精度乘法 收录于专栏【经典算法练习】 本专栏旨在分享学习算法的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目…

AD9361 的 TX 输出中添加前置放大器,并在 RX 输入中添加 LNA。

AD9361 的 TX 输出中添加前置放大器&#xff0c;并在 RX 输入中添加 LNA。 https://www.analog.com/en/resources/evaluation-hardware-and-software/evaluation-boards-kits/AD-TRXBOOST1-EBZ.html https://wiki.analog.com/resources/eval/user-guides/ad-trxboost1-ebz/in…

区块链技术与农产品溯源:实现透明供应链的关键

引言 随着食品安全问题和消费者对产品质量要求的提升&#xff0c;农产品溯源变得越来越重要。消费者希望知道他们购买的农产品从何而来&#xff0c;经历了哪些过程以及是否符合安全标准。区块链技术因其去中心化、不可篡改和透明的特点&#xff0c;成为实现农产品溯源的理想选…

程序员如何使用AI工具进行设计开发?

一、需求分析阶段 自然语言处理辅助理解需求&#xff1a; 使用自然语言处理工具&#xff0c;如 ChatGPT 等&#xff0c;将复杂的业务需求描述转化为更清晰的技术要求。例如&#xff0c;向 AI 解释项目的背景和目标&#xff0c;让它帮助梳理关键需求点和可能的技术挑战。通过与…

集合框架10:泛型接口、泛型方法

视频链接&#xff1a;13.20 泛型方法_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1zD4y1Q7Fw?spm_id_from333.788.videopod.episodes&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5&p20 1. 泛型接口 创建一个泛型接口&#xff1a; package com.yundait.Demo…

【C语言】数据输出格式控制

数据的输出格式修饰 常用两种&#xff1a; 整型中&#xff0c;输出数据左对齐、右对齐、占m位、不足m位前补0。浮点型中&#xff0c;默认通过四舍五入保留小数点后6位&#xff0c;通过参数设置保留小数点后n位。 #include <stdio.h> #define PI 3.14159 /* 功能&#x…

sim卡文件系统

### 5.2 初始通信建立程序 初始通信建立程序应遵循3GPP TS 31.101 [55]的规定&#xff0c;但有以下限制&#xff1a; - 对于3V及以下的SIM卡&#xff0c;最大时钟频率为4MHz&#xff0c;因此必须遵守3GPP TS 31.101 [55]中规定的相应功耗限制。 - ATR内容&#xff1a;如果SIM在…