FPGA运行下一代储备池计算,控制混沌动力系统更精准

如何控制混沌动力系统(chaotic dynamical systems),长期以来一直是一个重要并具有挑战性的课题。《自然》杂志旗下的子刊《自然通讯》近期刊登了一篇文章[1],文章介绍了如何使用下一代储备池计算(next generation reservoir computing,简称NG-RC)来控制混沌动力系统的状态轨迹。

文章介绍了作者们采用下一代储备池计算(NG-RC)和混沌电子电路所进行的实验:首先收集所实验的混沌电子电路在各种状态下对各种扰动所做出的响应数据,然后利用这些数据训练下一代储备池计算(NG-RC)模型,使得训练后的NG-RC模型可以根据混沌电子电路的状态以及目标状态,计算出所需的扰动,并将扰动转换成为控制电流,从而控制混沌电子电路达到并稳定在目标状态和目标轨迹范围之内。

文章中介绍的基于NG-RC的控制方法与传统的线性控制等方法相比,具有控制误差小等优点。此外,由于NG-RC模型具有规模小、计算量小的特点,文章中介绍的NG-RC模型可以部署在FPGA上。

文章的作者们来自于美国俄亥俄州立大学和美国ResCon Technologies公司。

关于储备池计算

储备池计算较多用于动力系统(dynamical systems)相关的时间序列的计算,例如混沌动力系统的预测和控制。

经典的储备池计算(reservoir computing,简称RC)模型类似于循环神经网络(RNN),具有输入层、中间层(即"储备池"、reservoir;该层内的顶点之间相互连接)和输出层。储备池计算(RC)与循环神经网络(RNN)的主要区别是:

  • 储备池计算(RC)只训练中间层与输出层之间的连接的权重,而不训练其它权重,其它权重在随机初始化后保持不变;
  • 循环神经网络(RNN)一般训练的是全部权重。

由于储备池计算(RC)只对少量参数进行训练,因此储备池计算(RC)与其它很多机器学习以及神经网络模型相比,具有训练数据量要求少、训练和运行速度快、无需昂贵的计算资源等优点,与当今的一些复杂、耗能较高、响应相对较慢的大模型相比,储备池计算(RC)更适合于复杂度偏低的系统的计算。

下一代储备池计算(NG-RC)[2]将经典的储备池计算(RC)模型近似地表示成为非线性向量自回归,使得下一代储备池计算(NG-RC)无需随机初始化参数,所需的训练数据量更少,所需训练的参数更少,训练的成本更低。

实验的更多细节

文章中介绍的实验电路属于蔡氏电路(Chua's circuit)中的一种,实验电路由二极管、电容、电阻、电感等电子元器件搭建而成。实验时,首先由人工合成一些扰动数据,然后将人工合成的扰动数据转换成为电流并注入到电路中,电路响应的电压数据与人工合成的扰动数据共同形成训练数据。

接下来,将训练数据导出至笔记本电脑进行训练。训练得出的NG-RC模型被转移到FPGA上,用于控制上述的实验电路。

控制实验电路时的大致过程是:将实验电路的实时电压数据连同目标状态电压数据(已存储于实验电路中)输入至FPGA上的NG-RC模型,计算控制所需的扰动;计算得出的扰动值随后转换成为电流注入至实验电路中,从而控制电路向目标状态和轨迹进行转换。

有关实验的数据和代码均可以下载[3][4]。

参考资料

1\] [https://www.nature.com/articles/s41467-024-48133-3](https://www.nature.com/articles/s41467-024-48133-3 "https://www.nature.com/articles/s41467-024-48133-3") \[2\] [https://www.nature.com/articles/s41467-021-25801-2](https://www.nature.com/articles/s41467-021-25801-2 "https://www.nature.com/articles/s41467-021-25801-2") \[3\] [https://figshare.com/articles/dataset/Figure_Data/25534552](https://figshare.com/articles/dataset/Figure_Data/25534552 "https://figshare.com/articles/dataset/Figure_Data/25534552") \[4\] [https://figshare.com/articles/software/Python_and_FPGA_code/25534621](https://figshare.com/articles/software/Python_and_FPGA_code/25534621 "https://figshare.com/articles/software/Python_and_FPGA_code/25534621") 封面图:Harrison Broadbent、Unsplash

相关推荐
v维焓3 分钟前
C++(思维导图更新)
开发语言·c++·算法
arbboter14 分钟前
【AI插件开发】Notepad++ AI插件开发实践:从Dock窗口集成到功能菜单实现
人工智能·notepad++·动态菜单·notepad++插件开发·dock窗口集成·ai代码辅助工具·ai对话窗口
ylfhpy17 分钟前
Java面试黄金宝典22
java·开发语言·算法·面试·职场和发展
jndingxin22 分钟前
OpenCV 图形API(或称G-API)(1)
人工智能·opencv·计算机视觉
Phoebe鑫24 分钟前
数据结构每日一题day9(顺序表)★★★★★
数据结构·算法
烁3471 小时前
每日一题(小白)动态规划篇2
算法·动态规划
南玖yy1 小时前
数据结构C语言练习(栈)
c语言·数据结构·算法
神马行空1 小时前
一文解读DeepSeek大模型在政府工作中具体的场景应用
人工智能·大模型·数字化转型·deepseek·政务应用
合合技术团队2 小时前
实测对比|法国 AI 独角兽公司发布的“最强 OCR”,实测效果如何?
大数据·人工智能·图像识别
阿镇吃橙子2 小时前
一些手写及业务场景处理问题汇总
前端·算法·面试