我是循环神经网络(RNN)的新手,仍在学习这些概念。我在抽象层面上理解回声状态网络(ESN)能够(重新)产生一系列输入,即信号,即使在输入被删除之后也是如此。但是,我发现Scholarpedia 的文章太难以完全掌握和理解。
有人可以以最简单的形式解释学习如何在数学上进行。
我是循环神经网络(RNN)的新手,仍在学习这些概念。我在抽象层面上理解回声状态网络(ESN)能够(重新)产生一系列输入,即信号,即使在输入被删除之后也是如此。但是,我发现Scholarpedia 的文章太难以完全掌握和理解。
有人可以以最简单的形式解释学习如何在数学上进行。
回声状态网络是更一般的Reservoir Computing概念的一个实例。ESN 背后的基本思想是获得 RNN 的好处(处理一系列相互依赖的输入,即像信号一样的时间依赖性),但没有训练传统 RNN 的问题,如梯度消失问题。
ESN 通过使用 sigmoidal 传递函数(相对于输入大小,例如 100-1000 个单位)拥有相对较大的稀疏连接神经元库来实现这一点。水库中的连接分配一次,完全随机;水库重量没有得到训练。输入神经元连接到储存器并将输入激活馈送到储存器 - 这些也被分配未经训练的随机权重。唯一被训练的权重是将水库连接到输出神经元的输出权重。
在训练中,输入将被馈送到水库,教师输出将应用于输出单元。随着时间的推移捕获并存储储层状态。一旦应用了所有训练输入,就可以在捕获的储层状态和目标输出之间使用线性回归的简单应用。然后可以将这些输出权重合并到现有网络中并用于新的输入。
这个想法是,水库中的稀疏随机连接允许先前的状态即使在它们通过之后也能“回显”,因此如果网络接收到与它训练过的东西相似的新输入,水库中的动态将开始遵循适合输入的激活轨迹,这样可以为其训练的内容提供匹配信号,如果训练有素,它将能够从它已经看到的内容中进行泛化,遵循有意义的激活轨迹给定驱动水库的输入信号。
这种方法的优势在于非常简单的训练过程,因为大多数权重只随机分配一次。然而,它们能够随着时间的推移捕捉复杂的动态,并能够对动态系统的特性进行建模。到目前为止,我在 ESN 上找到的最有用的论文是:
Herbert Jaeger 的RNN 训练教程(ESN 上 Scholarpedia 页面的策展人)
Mantas Lukoševičius应用回声状态网络的实用指南
它们都有易于理解的解释,以及用于创建实现的形式主义和出色的建议,并提供选择适当参数值的指导。
更新: Goodfellow、Bengio 和 Courville的深度学习书对 Echo State Networks 进行了稍微详细但仍然不错的高级讨论。第 10.7 节讨论了梯度消失(和爆炸)问题以及学习长期依赖的困难。第 10.8 节是关于 Echo State Networks 的全部内容。它特别详细说明了为什么选择具有适当光谱半径值的水库权重至关重要 - 它与非线性激活单元一起工作以促进稳定性,同时仍然通过时间传播信息。
ESN 中的学习并不是主要被迫适应权重,而是输出层分别学习为网络的当前状态生成哪个输出。内部状态基于网络动态,称为动态储层状态。要了解储层状态是如何形成的,我们需要查看 ESN 的拓扑结构。
输入单元连接到内部单元(水库单元)中的神经元,权重是随机初始化的。存储单元是随机稀疏连接的,并且具有随机权重。输出单元还连接到所有储存器单元,因此接收储存器状态并产生相应的输出。
输入激活提高了网络动态。信号浮动通过循环连接的水库单元的时间步长。你可以把它想象成一个重复出现的回声网络中的时间(被扭曲)。唯一得到调整的权重是输出单元的权重。这意味着,输出层学习哪些输出必须属于给定的水库状态。这也意味着训练变成了线性回归任务。
在我们详细解释训练是如何工作的之前,我们必须解释和定义一些事情:
教师强制意味着将时间序列输入馈入网络以及相应的期望输出(时间延迟)。提供所需的输出在back 称为输出反馈。因此,我们需要一些随机初始化的权重存储在矩阵中. 在图 1 中,这些边缘用虚线箭头显示。
变量定义:
最后,培训具体是如何进行的?
因为学习速度非常快,我们可以尝试许多网络拓扑来获得一个合适的。
要衡量ESN 的性能:
光谱半径和 ESN
Spec-tral
一些聪明人已经证明,只有当水库权重矩阵的 Radius 小于或等于时,才能给出 ESN 的 Echo State Property 。回声状态属性意味着系统会在有限的时间后忘记其输入。此属性对于 ESN 不会在活动中爆发并能够学习是必要的。