Echo State Networks 的直观解释是什么?

机器算法验证 神经网络
2022-01-20 10:50:19

我是循环神经网络(RNN)的新手,仍在学习这些概念。我在抽象层面上理解回声状态网络(ESN)能够(重新)产生一系列输入,即信号,即使在输入被删除之后也是如此。但是,我发现Scholarpedia 的文章太难以完全掌握和理解。

有人可以以最简单的形式解释学习如何在数学上进行。

2个回答

回声状态网络是更一般的Reservoir Computing概念的一个实例。ESN 背后的基本思想是获得 RNN 的好处(处理一系列相互依赖的输入,即像信号一样的时间依赖性),但没有训练传统 RNN 的问题,梯度消失问题

ESN 通过使用 sigmoidal 传递函数(相对于输入大小,例如 100-1000 个单位)拥有相对较大的稀疏连接神经元库来实现这一点。水库中的连接分配一次,完全随机;水库重量没有得到训练。输入神经元连接到储存器并将输入激活馈送到储存器 - 这些也被分配未经训练的随机权重。唯一被训练的权重是将水库连接到输出神经元的输出权重。

在训练中,输入将被馈送到水库,教师输出将应用于输出单元。随着时间的推移捕获并存储储层状态。一旦应用了所有训练输入,就可以在捕获的储层状态和目标输出之间使用线性回归的简单应用。然后可以将这些输出权重合并到现有网络中并用于新的输入。

这个想法是,水库中的稀疏随机连接允许先前的状态即使在它们通过之后也能“回显”,因此如果网络接收到与它训练过的东西相似的新输入,水库中的动态将开始遵循适合输入的激活轨迹,这样可以为其训练的内容提供匹配信号,如果训练有素,它将能够从它已经看到的内容中进行泛化,遵循有意义的激活轨迹给定驱动水库的输入信号。

这种方法的优势在于非常简单的训练过程,因为大多数权重只随机分配一次。然而,它们能够随着时间的推移捕捉复杂的动态,并能够对动态系统的特性进行建模。到目前为止,我在 ESN 上找到的最有用的论文是:

它们都有易于理解的解释,以及用于创建实现的形式主义和出色的建议,并提供选择适当参数值的指导。

更新: Goodfellow、Bengio 和 Courville的深度学习书对 Echo State Networks 进行了稍微详细但仍然不错的高级讨论。第 10.7 节讨论了梯度消失(和爆炸)问题以及学习长期依赖的困难。第 10.8 节是关于 Echo State Networks 的全部内容。它特别详细说明了为什么选择具有适当光谱半径值的水库权重至关重要 - 它与非线性激活单元一起工作以促进稳定性,同时仍然通过时间传播信息。

ESN 中的学习并不是主要被迫适应权重,而是输出层分别学习为网络的当前状态生成哪个输出。内部状态基于网络动态,称为动态储层状态。要了解储层状态是如何形成的,我们需要查看 ESN 的拓扑结构。

ESN拓扑

输入单元连接到内部单元(水库单元)中的神经元,权重是随机初始化的。存储单元是随机稀疏连接的,并且具有随机权重。输出单元还连接到所有储存器单元,因此接收储存器状态并产生相应的输出。

输入激活提高了网络动态。信号浮动t通过循环连接的水库单元的时间步长。你可以把它想象成一个重复出现的回声t网络中的时间(被扭曲)。唯一得到调整的权重是输出单元的权重。这意味着,输出层学习哪些输出必须属于给定的水库状态。这也意味着训练变成了线性回归任务。

在我们详细解释训练是如何工作的之前,我们必须解释和定义一些事情:

教师强制意味着将时间序列输入馈入网络以及相应的期望输出(时间延迟)。提供所需的输出Ttback 称为输出反馈。因此,我们需要一些随机初始化的权重存储在矩阵中Wfb. 在图 1 中,这些边缘用虚线箭头显示。

变量定义:

  • r= 水库单元的数量,
  • o= 输出单元数,
  • t=时间步数,
  • o= 输出单元的数量。
  • T= 矩阵(大小tXo) 其中包含每个时间步的所需输出。

最后,培训具体是如何进行的?

  • 记录水库状态t应用教师强迫时的时间步长。输出是:一个矩阵M的 (tXr) 水库状态。
  • 确定输出权重矩阵Wout其中包含最终的输出权重。它可以使用任何回归技术来计算,例如使用伪逆。这意味着,查看水库状态并找到一个函数将它们与输出权重相乘映射到输出。数学:近似MWout=T>Wout=MT1

因为学习速度非常快,我们可以尝试许多网络拓扑来获得一个合适的。

衡量ESN 的性能:

  • 在没有教师强制的情况下进一步运行 Echo 状态网络(自己的输出通过Wfb)。
  • 记录性能,例如平方误差||MWoutT||2

光谱半径和 ESN

Spec-tral一些聪明人已经证明,只有当水库权重矩阵的 Radius 小于或等于时,才能给出 ESN 的 Echo State Property 回声状态属性意味着系统会在有限的时间后忘记其输入。此属性对于 ESN 不会在活动中爆发并能够学习是必要的。1