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

相关推荐
cskywit1 天前
VMamba环境本地适配配置
人工智能·深度学习·mamba
victory04311 天前
minimind SFT失败原因排查和解决办法
人工智能·python·深度学习
逐梦苍穹1 天前
世界模型通俗讲解:AI大脑里的“物理模拟器“
人工智能·世界模型
囊中之锥.1 天前
机器学习算法详解:DBSCAN 聚类原理、实现流程与优缺点分析
算法·机器学习·聚类
发哥来了1 天前
主流AI视频生成工具商用化能力评测:五大关键维度对比分析
大数据·人工智能·音视频
跳跳糖炒酸奶1 天前
基于深度学习的单目深度估计综述阅读(1)
人工智能·深度学习·数码相机·单目深度估计
AlenTech1 天前
152. 乘积最大子数组 - 力扣(LeetCode)
算法·leetcode·职场和发展
yangpipi-1 天前
第一章 语言模型基础
人工智能·语言模型·自然语言处理
Piar1231sdafa1 天前
基于yolo13-C3k2-RVB的洗手步骤识别与检测系统实现_1
人工智能·算法·目标跟踪
做科研的周师兄1 天前
【MATLAB 实战】|多波段栅格数据提取部分波段均值——批量处理(NoData 修正 + 地理信息保真)_后附完整代码
前端·算法·机器学习·matlab·均值算法·分类·数据挖掘