回声状态网络(ESN)原理详解(附源码实现)

本文详细介绍了回声状态网络(ESN)的基本原理,包括其核心结构、状态更新方程、储备池参数及训练过程。通过一个简单的Python实现案例,帮助读者深入理解ESN如何应用于时间序列建模。
摘要由CSDN通过智能技术生成

最近在看回声状态网络(Echo State Network)的内容,因为很少搜到关于Echo State  Network的快速入门讲解,所以打算写一下ESN的基本原理。

1、概念

回声状态网络作为一种新型的递归神经网络(如上图),也由输入层、隐藏层(即储备池)、输出层组成。其将隐藏层设计成一个具有很多神经元组成的稀疏网络,通过调整网络内部权值的特性达到记忆数据的功能,其内部的动态储备池(DR)包含了大量稀疏连接的神经元,蕴含系统的运行状态,并具有短期训记忆功能。ESN训练的过程,就是训练隐藏层到输出层的连接权值(Wout)的过程。总结如下三个特点:

(1)核心结构是一个随机生成且保持不变的储备池(Reservoir)

(2)其输出权值是唯一需要调整的部分

(3)简单的线性回归就可完成网络的训练

 

2、ESN的各个参数与公式。

2.1 节点与状态

图中t时刻的输入u(t),一共有K个节点,储备池状态为x(t),N个节点,输出为y(t),L个节点。

        t 时刻的状态为:

  

2.2 连接矩阵与状态方程

图中的储备池就是常规神经网络的隐藏层,输入层到储备池的连接为Win(N*K阶),储备池到下一个时刻储备池状态的连接为W(N*N阶),储备池到输出层的连接为Wout(L*(K+N+L)阶)。另外还有一个前一时刻的输出层到下一时刻的储备池的连接Wback(N*L阶),这个连接不是必须的(图中虚线表示)。

每一时刻输入u(t),储备池都要更新状态,它的状态更新方程为:

式中,Win和Wback都是在最初建立网络的时候随机初始化的,并且固定不变。u(t+1)是这个时刻的输入,x(t+1)是这个时刻的储备池状态,x(t)是

上一个时刻的储备池状态,在t=0时刻可以用0初始化。f是DR内部神经元激活函数,通常使用双曲正切函数(tanh)。

注:在建模的时候,和一般的神经网络一样,会在连接矩阵上加上一个偏置量,所以输入u的是一个长度为1+K的向量,Win是一个[1+K, N]的矩阵,

x是一个长度为N的向量。

ESN的输出

  • 37
    点赞
  • 239
    收藏
    觉得还不错? 一键收藏
  • 56
    评论
评论 56
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值