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

阅读时间: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网络的原理、数学模型、局限性、未来研究方向及应用等各种角度的深度调研报告。可以纳入教材的一部分了。非常系统的一篇文章。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于DRIVE数据集的视网膜UNet分割

1 数据集介绍 这是一个非常小的数据集,非常适合用于视觉分割任务练手。数据集的文件夹如图所示: 图1-1文件夹结构 test中存放的是测试图片,training中存放的是20张用于训练的图片。imges文件夹中存放的是20张原始图片,mask中存放…

Leetcode的AC指南 —— 栈与队列:232.用栈实现队列

摘要: **Leetcode的AC指南 —— 栈与队列:232.用栈实现队列 **。题目介绍:请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类:…

解决 pnpm : 无法加载文件 C:\Program Files\nodejs\pnpm.ps1,因为在此系统上禁止运行脚本。

执行下面命令进行安装pnpm安装后 npm install -g pnpm 然后执行pnpm 报错 解决办法: 以管理员身份运行 Windows PowerShell , 在命令行输入以下命令后按回车, set-ExecutionPolicy RemoteSigned 再输入Y 回车即可。 再回到控制台输入p…

工作小记 cv-cuda使用

最近要实现RGB相关cuda算子的功能,最终通过自己手写核函数实现。这里记录一下对cv-cuda的调研和使用,因为项目要求gcc-5,而cv-cuda要求gcc11而放弃使用,但是相关的记录,以及使用方法都要记录下来,以便下次项…

在MD编辑器里插入20次方问题

前言 看了很多文章里面没写怎么插入20次方,最后在官网的一篇文章上看到了很详细的数学公式的插入。 问题 大家肯定以为这样就可以了 效果 明显是不行的 解决 使用{}把数字括起来就可以了。 1 20 1^{20} 120 小知识 在行内显示(就是与文字在一起) $ $另起…

《A++ 敏捷开发》- 5 量化管理从个人开始

我:你们管理层和客户都比较关心项目的进度,项目是否能按时完成?请问你们过去的项目如何? 开发:我们现在就是走敏捷开发,两周一个迭代。每次迭代前,我们聚一起开会,把所有用户故事按优…

互联网加竞赛 基于机器视觉的手势检测和识别算法

0 前言 🔥 优质竞赛项目系列,今天要分享的是 基于深度学习的手势检测与识别算法 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng…

(超详细)9-YOLOV5改进-添加EffectiveSEModule注意力机制

1、在yolov5/models下面新建一个EffectiveSEModule.py文件,在里面放入下面的代码 代码如下: import torch from torch import nn as nn from timm.models.layers.create_act import create_act_layerclass EffectiveSEModule(nn.Module):def __init__…

【Leetcode】277.搜寻名人

一、题目 1、题目描述 假设你是一个专业的狗仔,参加了一个 n 人派对,其中每个人被从 0 到 n - 1 标号。在这个派对人群当中可能存在一位 “名人”。所谓 “名人” 的定义是:其他所有 n - 1 个人都认识他/她,而他/她并不认识其他任何人。 现在你想要确认这个 “名人” 是…

【Linux】基本指令收尾

文章目录 日期查找打包压缩系统信息Linux和Windows互传文件 日期 这篇是基本指令的收尾了,还有几个基本指令我们需要说一下 首先是Date,它是用来显示时间和日期 直接输入date的话显示是有点不好看的,所以我们可以根据自己的喜欢加上分隔符&…

java垃圾回收GC过程

GC(Gabage Collection) 用于回收堆中的垃圾数据 清理方法 1.标记-清理 对数据标记,然后清理 缺点:容易产生内存碎片 2.标记-整理 对标记后的数据清理,剩下数据前移 缺点:每次清理后数据都要迁移&#xff0…

二叉树(一)

📑前言 本文主要是【数据结构】——二叉树使用的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄每日一句&am…

第13节-简历中的开放性问题

(点击即可收听) 不少公司的开放式题目每年不会有太大的变化,所以在答题前可先去相关求职论坛看看这些公司往年的问题,分析和思考自己应当怎么回答 开放式问题回答技巧 开放式问题主要考察的是求职者的求职动机、解决问题的能力、创造力等软实力&#xff…

已解决java.lang.ClassNotFoundException——java连接mysql8/mysql5

1.准备工作 1.mysql8下载安装 这里大家没必要去mysql官网安装,可以直接安装phpStudy_pro,毕竟小皮面板的宣言是让天下没有难配的服务器环境,如下是小皮面板的界面(同样的,此次用到的所有资料文末公众号可免费领取)&a…

MSPM0L1306例程学习-UART部分(3)

MSPM0L1306例程学习系列 1.背景介绍 写在前边的话: 这个系列比较简单,主要是围绕TI官网给出的SDK例程进行讲解和注释。并没有针对模块的具体使用方法进行描述。所有的例程均来自MSPM0 SDK的安装包,具体可到官网下载并安装: https://www.ti…

快速傅立叶变换FFT学习笔记

什么是FFT? FFT(Fast Fourier Transformation) 是离散傅氏变换(DFT)的快速算法,即快速傅氏变换。FFT使计算机计算离散傅里叶变换所需要的乘法次数大为减少,特别是被变换的抽样点数N越多&#x…

使用STM32的UART实现蓝牙通信

✅作者简介:热爱科研的嵌入式开发者,修心和技术同步精进 代码获取、问题探讨及文章转载可私信。 ☁ 愿你的生命中有够多的云翳,来造就一个美丽的黄昏。 🍎获取更多嵌入式资料可点击链接进群领取,谢谢支持!&#x1f447…

算法优化:LeetCode第122场双周赛解题策略与技巧

接下来会以刷常规题为主 &#xff0c;周赛的难题想要独立做出来还是有一定难度的&#xff0c;需要消耗大量时间 比赛地址 3011. 判断一个数组是否可以变为有序 public class Solution {public int minimumCost(int[] nums) {if (nums.length < 3) {// 数组长度小于3时&a…

Python实现单因素方差分析

Python实现单因素方差分析 1.背景 正念越来越受到人们关注&#xff0c;正念是一种有意的、不加评判的对当下的注意觉察。可以通过可以通过观呼吸、身体扫描、正念饮食等多种方式培养。 为了验证正念对记忆力的影响&#xff0c;选取三组被试分别进行正念训练&#xff0c;运动训…

基于springboot+vue仓库管理系统

摘要 本文介绍了一种基于Spring Boot和Vue的现代化仓库管理系统的设计与实现。仓库管理是企业运营中至关重要的一环&#xff0c;它涉及到货物的进出、库存的管理以及订单的处理等方面。为了提高仓库管理的效率和精确度&#xff0c;我们设计了这个集成了前后端技术的系统。在系统…