【博士每天一篇论文-技术综述】Machine Learning With Echo State Networks 一篇系统讲解ESN知识的五星文章

news2025/1/12 9:54:11

阅读时间:2023-11-21

1 介绍

年份:2020
作者:徐元超,曼尼托巴大学
期刊: 无
引用量:无

这篇文章是一篇技术报告,从递归神经网络(RNNs)引入到回声状态网络(ESNs)。说明了RNNs的局限性,并引入了储层计算和ESN的概念。非常系统详细的介绍了ESN的数学模型、属性(echo state property)、意义、训练方法、深度ESN的以、ESN的应用和局限性、以及未来的研究方向。

2 创新点

这篇论文主要是对回声状态网络(ESNs)进行详细的技术综述,包括其结构、工作原理以及应用。论文还讨论了其他类型的循环神经网络,如长短时记忆(LSTM)和门控循环单元,并介绍了ESNs的构建细节、应用和局限性。论文还回顾了一篇关于ESNs的新模型的论文,并介绍了ESNs作为计算原理再次引起关注的现状。此外,论文还提供了关于动态系统中的Fisher memory的附录。总体而言,这篇论文主要是对ESNs及其在机器学习中的应用的详细技术综述。

3 相关研究

引入回声状态网络(ESNs)来解决梯度消失和爆炸问题。ESN在存储库中有稀疏的随机连接,允许以前的状态“回声”,并提供与网络训练的匹配信号。ESNs只需要训练读出层的权值,避免了训练过程中梯度消失和爆炸的问题。在引入ESNs之前,由于学习算法在训练和收敛方面的困难,RNN在实践中很少使用。ESNs为训练rnn提供了一种成功的方法,但随着深度学习技术的发展,其独特的优势逐渐丧失。
储备层计算(Reservoir Computing,RC)是一种利用可激发系统(储备层)的高维瞬态动力学执行分类或回归任务的机器学习技术。它主要用于处理时间信息。这些技术受到高效仿生方法在处理时间相关数据方面的启发。原则上,任何具有丰富动态的动力系统都可以用来构建储备层。为了满足对越来越复杂的实时信号处理方法的需求,涌现出了储备层计算的各个子领域。相比传统的递归神经网络模型,储备层计算提供更快的训练优势。
储备层计算的技术主要分为三种方法:液态状态机(Liquid State Machine)、回声状态网络(Echo State Network)和反向传播-去相关学习规则(Backpropagation-Decorrelation learning rule)。每种方法都旨在通过人工递归神经网络为数学和工程领域中的复杂动态系统建模提供一种新的方法。每种方法都包括一个带有固定权重的递归网络,当输入数据集输入时,输出一系列激活状态。然后使用这些中间值来训练系统的第二部分的输出连接,该部分将输出从数据中获得的原始模型动态的描述。系统的第一部分,即储备层,是一个带有固定权重的递归神经网络,其充当复杂动态系统的“黑盒”模型。第二部分称为读取层,通常是一个简单的线性层,通过一组权重与储备层连接。所有这些技术的一个基本特性是具有某种内部存储效应,由于储备层中的递归连接,在储备层计算输出中耗尽第k个输入效应所需的时间步长取决于储备层的大小。

3.1 LSM

液态计算机(Liquid State Machine)数学模型,适用于模拟皮层微电路中的计算。液态计算机是一种实时处理连续数据流的计算模型,其输入和输出都是连续时间的数据流。LSM模型中的关键部分是储备层,它通过将输入时间序列转化为液态状态,将先前各个时间点的输入影响进行整合。LSM模型中的神经元采用了LIF(Leaky Integrate and Fire)模型作为激活函数的生物突触模型。具体来说,LSM模型使用了类似于LIF模型的具有生物启发的激活函数,如液态计算机和回传相关学习规则中的S型神经元。
LSM方法的主要特点是它基于具有基于神经元激活函数的生物突触模型的储层模型,该模型是通过观察大脑微电路中发现的自然模式而理论化的。

3.2 Backpropagation Decorrelation learning rule

BPDC是一种用于在线调整循环网络的学习规则,结合了反向传播(backpropagation)、虚拟教师强制(virtual teacher forcing)和去相关性(decorrelation)方法。它只应用于输出权重,具有O(N)复杂度和良好的性能。该学习规则结合了三个重要原则:一步反向传播误差、基于去相关性的网络动态时间记忆和非自适应内部神经元减少复杂度。BPDC规则的示意图如图所示。
Schematic-of-a-system-implementing-BPDC-rule.jpg

3.3 ESN

(1)对经典ESN进行改进
内在可塑性[36]、[38]
改进训练算法[27]
使用Neuroscale进行训练[42]
带有泄露积分器储备单元的网络[24]
支持向量机[35]
使用自组织映射(SOM)
尺度不变映射(SIM)设置储备层权重[1]
带有延迟和求和读出的滤波神经元[20]
修剪储备层中的连接[10]。
(2)改进ESN中拓扑结构
分层储备层[23]:
小世界储备层[9]:
解耦的子储备层[43]:

4 算法

4.1 ESN数学模型

网络的输入是一个形状为(V, T)的矩阵,其中T为时间步数,V为特征数。该网络还有其他参数,如储层的大小(N)、连接的稀疏度(密度)、是否对泄漏进行建模,以及降维后的组件数量。
维数(N × V)的输入权(wwin)通过从二项分布中采样来初始化。从一个具有指定密度值的随机均匀分布中抽样得到维数为(N × N)的储层权值W,它决定了稀疏度的高低。高维状态表示(x)是将一个非线性函数(通常是tanh)应用于前一个状态(x k-1)乘以储层权重矩阵(W)和当前时间步长的输入(s k)乘以输入权重(W Win)的总和的结果。
a k = W x k − 1 + W i n s k x k = ϕ ( a k ) a_k = Wx_{k-1}+W_{in}s_k\\ x_k = \phi(a_k) ak=Wxk1+Winskxk=ϕ(ak)

储备层生成输入的表示形式,可以是包含所有计算状态、所有状态的平均值或仅包含最终状态值(x k)的矩阵形式。然后使用神经网络或其他类型的预测器将输入的嵌入连接到期望的输出,这些预测器在特定的感兴趣的任务上进行训练。输出(y k)是使用权重矩阵(Wout)和状态表示(x k)计算的。
y k = W o u t x k y_k = W_{out}x_k yk=Woutxk

ESN是一种处理连续数据的方法,通过捕获储层的动态输入,并将该信息用于预测或其他任务。

4.2 ESN训练过程

训练过程分为几个步骤:
(1)首先随机生成内部权重矩阵,并通过归一化和缩放操作使其满足要求
(2)然后初始化网络状态,并按照指定的更新方程进行训练动态的更新
(3)接着收集网络状态和教师输出的数据,用于计算输出权重的伪逆矩阵
(4)最后,训练完成后的ESN可以用来处理新的输入序列,并通过输出权重计算输出结果。
整个训练过程的目标是在训练数据上获得一个好的逼近结果,并在未知系统的独立测试数据上展现出良好的泛化性能。

4.3 DeepESN

深度回声状态网络(Deep Echo State Networks, DeepESNs)是一种由多层叠加循环层组成的神经网络结构。它们已经被研究以理解分层RNN架构的特性,并为时间数据设计高效的深度神经网络。与浅层神经网络类似,深层神经网络具有捕获输入历史的储层组件和用于输出计算的前馈读出部分。DeepESN中堆叠的储层形成一个层次结构,每一层的输出馈送到下一层。DeepESN的计算可以理解为一个输入驱动的非线性动态系统。深度深度神经网络在各种任务和领域中显示出优势,例如语音处理和音乐处理。DeepESN模型的公开实现也可以在Python、MATLAB和Octave中使用。

image.png

  • DeepESN Python Library (DeepESNpy)

https://github.com/lucapedrelli/DeepESN

  • Deep Echo State Network (DeepESN) MATLAB Toolbox

https://it.mathworks.com/matlabcentral/fileexchange/69402-deepesn

  • Deep Echo State Network (DeepESN) Octave library
  • https://github.com/gallicch/DeepESN_octave

4.4 回声状态性质

为了使ESN原则生效,储层必须具有回声状态性质(Echo State Property,ESP)。对于满足ESP的网络而言,储层的激活状态x(n)是输入历史[u(n),u(n−1),…]的函数,即存在一个函数E使得:
x ( n ) = E ( u ( n ) , u ( n − 1 ) , … ) x(n) = E(u(n),u(n−1),…) x(n)=E(u(n),u(n1),)
状态x(n)可以被视为输入历史的“回声”。
(1)ESP (Echo State Property)是回声状态网络(Echo State Network)有效工作的必要条件。这意味着储存库的当前状态是唯一由输入历史决定的。
(2)ESP被定义为具有输入、储层和输出单元的神经网络。给出了网络的状态更新方程,并根据输入、内部和前一个输出激活向量计算输出。
(3)ESP表示,如果网络已经运行了很长时间,那么当前状态是唯一由输入和输出历史决定的。
(4)ESP等同于状态收缩、状态遗忘和输入遗忘。
(5)储备层权值矩阵的谱半径小于1并不一定足以满足ESP,提出了新的ESP的充分条件。
(6)ESP可以看作是储层本身的一个属性,也可以看作是储层-输入对的一个属性。找到一个很好的近似回波函数来近似未知的系统函数。
如果没有回波状态,就很难理解网络输出与原始系统输出之间的关系,训练算法也不能有效地工作。

4.5 ESN的普遍函数逼近性质

并概述了ESN的普遍函数逼近性质证明。证明中指出,ESN是具有衰减记忆特性的储备滤波器的近似器,并且可以用于任何具有衰减记忆特性的储备系统的简单近似储备滤波器的寻找。结论是,对于任何给定的精度和权重序列,可以找到与给定滤波器函数接近的ESN。

4.6 ESN的应用和限制

ESN非常适合时间分类、回归和预测任务,提供高性能和快速的速度。ESNs的成功应用包括动态模式分类、正弦生成、非线性函数计算、目标跟踪、运动预测、事件检测、电机控制、语音识别、噪声建模和混沌时间序列预测。
以及其他领域包括理解网络动力学、读出和储层动力学的正则化、分层和结构化拓扑的影响、储层计算的贝叶斯推理以及储层自适应。
虽然ESNs最初具有快速训练和易于实现等优势,但深度学习的出现解决了递归神经网络梯度下降训练面临的许多问题,如果没有大型存储库,ESNs可能难以达到相同的复杂性水平。尤其,为特定任务建造具有理想性能的储层仍然是一个挑战,研究重点是减少随机性和制定预测储层性能的措施。

4.7 未来研究方向

近年来,人们对ESNs(Echo State Networks)的兴趣不断增加。ESNs和其他储层计算方法在训练成本低、速度快、适应性强的情况下可以作为一种很好的选择,尤其适用于模拟系统不太复杂的情况。ESNs在信号处理等领域有许多应用,例如生物信号处理、远程感知或机器人电机控制。
在过去的十年中,ESNs作为一种计算原理已经显示出与非数字计算基板很好地结合的潜力。ESN和储层计算机的专用硬件实现可以实现速度增益和功耗节省。以下是一些使用ESNs和储层计算机的新研究领域:

  • 光学微芯片:使用光学硅储层作为通用计算平台的方法,可以用于各种数字和模拟任务。
  • 机械纳米振子:一种基于质点网络的设备,通过线性弹簧连接并通过非线性弹簧连接到基板上。该设备以储层计算原理高效地解决了计算位流的奇偶性和分类口语词的基准问题。
  • 基于忆阻性神经形态学微芯片:研究表明,将一组相互连接的忆阻网络按层级组成一个更大的储层,其在波形生成任务等任务上的性能要显著优于单片忆阻网络。
  • 碳纳米管/聚合物混合物:将储层模型应用于由单壁碳纳米管和聚合物混合物组成的物理基板上,以从中提取可利用信息。
  • 人工软肢体:软机器的动力学表现出多种特性,例如非线性、记忆和潜在的无限多自由度利用这些动力学进行实时计算以模拟非线性动态系统。

这些新颖的计算材料和由它们制成的微器件通常缺乏数值精度,而且如何模拟经典逻辑开关电路还不清楚。但是,可以通过适当连接这些元素的集合来获得非线性动力学,从而为使用ESN方法构建和训练物理储层提供了新的途径。

5 思考

刚开始我以为就是一篇简单的论文,深入仔细看后,发现这是一篇非常好,非常系统讲解ESN网络的原理、数学模型、局限性、未来研究方向及应用等各种角度的深度调研报告。可以纳入教材的一部分了。非常系统的一篇文章。

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

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

相关文章

JavaScript基础之JavaScript简介(什么是JavaScript?)

JavaScript简介 JavaScript,通常被缩写为JS,是一种轻量级、跨平台、单线程、解释编译的编程语言。它也被称为网页脚本语言。它以网页开发而闻名,许多非浏览器环境也使用它。 JavaScript是一种弱类型语言。JavaScript可用于客户端开发以及服…

shell编程学习

shell编程学习 变量的高级用法变量替换字符串处理获取字符索引获取子串长度抽取字符串中的子串 案例测试 变量的高级用法 变量替换 ##变量替换(贪婪,从前往后匹配,匹配到进行删除) test1I love you,you love me echo $test1 han…

Java研学-spring框架(一)

一 概述 1 介绍 Spring框架是一个开源的Java EE应用程序框架,旨在简化Java企业级应用的开发难度和开发周期,主要通过控制反转(IoC)和面向切面编程(AOP)等技术实现。   容器(Container&#x…

【CVE-2022-22733漏洞复现】

Apache ShardingSphere ElasticJob-UI漏洞 漏洞编号:CVE-2022-22733 文档说明 本文作者:SwBack 创作时间:2024/1/21 19:19:19 知乎:https://www.zhihu.com/people/back-88-87 CSDN:https://blog.csdn.net/qq_30817059 百度搜索: SwBack漏洞描述 Apache ShardingSphere Elast…

Python基础第二篇(Python基础语法)

文章目录 一、字面量二、注释三、变量四、数据类型五、数据类型转换六、标识符七、运算符八、字符串扩展内容(1)字符串定义(2)字符串拼接、(3)字符串格式化(4)字符串格式化的精度控制…

上位机图像处理和嵌入式模块部署(开篇)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 图像处理是现实生活当中很实用的一门技术。工业上一般采用的是机器视觉,以传统算法和光源控制为主,部分采用了深度学习技术…

MySQL的下载、安装、配置、登录,配置(图+文)(超级详细)

一、 软件的下载 1. 下载地址 官网: https://www.mysql.com 2. 打开官网,点击 DOWNLOADS 然后,点击 MySQL Community(GPL) Downloads 3. 点击 MySQL Community Server 4. 在 General Availability(GA) Releases 中选择适合的版本 …

【C语言基础篇】结构控制(下)转向语句break、continue、goto、return

文章目录 一、break语句 1. break在 while 循环中 2. break在 for 循环中 3. break在 do…while 循环中 4. break在 switch 语句中 5. break 总结 二、continue语句 1. continue在 while 循环中 2. continue在 for 循环中 3. continue在 do...while 循环中 4. con…

Kubernetes网络模型概述

Kubernetes网络模型设计的一个基础原则是:每个Pod都拥有一个独立的IP地址,并假定所有Pod都在一个可以直接连通的、扁平的网络空间中。所以不管这些Pod是否运行在同一个Node中,都要求它们可以直接通过对方的IP进行访问。由于Kubernetes的网络模…

C++泛型编程-类模板的项目实战实现基础的Vector的编写

请设计一个数组模板类&#xff08; Vector &#xff09;&#xff0c;完成对 int 、 char 、 float 、 double 以 及任意的自定义类等类型元素进行管理。 需求 a. 实现构造函数 b. 实现拷贝构造函数 c. 实现 cout << 操作 d. 实现下标访问符 [] 的重载操作 …

中仕教育:应届生可以考军队文职吗?有什么要求?

军队文职&#xff0c;涵盖了各个领域&#xff0c;包括行政、管理、人力资源、后勤等工作岗位&#xff0c;作为国家公务员的一种类型&#xff0c;军队文职同样享有稳定的工作和待遇。 虽然军队文职对所有符合条件的人开放&#xff0c;但对于应届生来说&#xff0c;还需满足以下…

企业Oracle1 数据库管理

Oracle的安装 一、基础表的创建 1.1 切换到scott用户 用sys 账户 登录 解锁scott账户 alter user scott account unlock;conn scott/tiger;发现并不存在scott账户&#xff0c;自己创建一个&#xff1f; 查找资料后发现&#xff0c;scott用户的脚本需要自己执行一下 C:\ap…

Spring:StopWatch

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 一、输出总耗时 二、输出所有任务的耗时和占比 总结 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、输出总耗时 public void stopWatc…

【web 编程技术】基于 B/S 架构的电商平台(java web)

基于 B/S 架构的电商平台&#xff08;java web&#xff09; 课程设计实验目的课程设计实验环境课程设计功能概述课程设计需求分析三层架构图功能列表系统用例图系统活动图-用户端需求分析 课程设计详细设计实现过程数据库BaseServlet 的实现商品显示模块-分页显示所有商品、查看…

【网站项目】基于SSM的274办公自动化管理系统

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

安全防御-基础认知

目录 安全风险能见度不足&#xff1a; 常见的网络安全术语 &#xff1a; 常见安全风险 网络的基本攻击模式&#xff1a; 病毒分类&#xff1a; 病毒的特征&#xff1a; 常见病毒&#xff1a; 信息安全的五要素&#xff1a; 信息安全的五要素案例 网络空间&#xff1a…

flutter项目怎么判断是不是web平台?Unsupported operation: Platform._operatingSystem

如果你使用Platform 这个工具来判断的时候&#xff0c;很有可能会报错&#xff1a; Exception caught by widgets library The following UnsupportedError was thrown building MyApp(dirty): Unsupported operation: Platform._operatingSystem The relevant error-causin…

关于索引的最常见的十道面试题

面试题一&#xff1a;索引底层如何实现的&#xff1f; MySQL索引的底层实现是取决于存储引擎的&#xff0c;但是是大部分存储引擎底层都是通过B树实现的&#xff0c;以默认的存储InnoDB为例&#xff0c;底层就是通过B树实现的&#xff0c;如下图所示&#xff1a; B树是一种自平…

为什么C++17要引入std::string_view?

目录 1.引言 2.原理分析 2.1.结构 2.2.构造函数 2.3.成员函数 2.4.std::string_view字面量 3.实例 3.1.std::string_view和std::string的运算符操作 3.2.查找函数使用 3.3.std::string_view和临时字符串 4.总结 1.引言 在C/C日常编程中&#xff0c;我们常进行数据的…

elastic search入门

参考1&#xff1a;Elastic Search 入门 - 知乎 参考2&#xff1a;Ubuntu上安装ElasticSearch_ubuntu elasticsearch-CSDN博客 1、ElasticSearch安装 1.1安装JDK&#xff0c;省略&#xff0c;之前已安装过 1.2创建ES用户 创建用户&#xff1a;sudo useradd esuser 设置密码&…