ESN简介

Posted oneflyleader

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ESN简介相关的知识,希望对你有一定的参考价值。

0. 前言

通常神经网络的问题:

  • 参数如何选择
  • 何时停止训练
  • 局部最优解

1. 回声网络ESN

具有以下特点:

  • 大且稀疏生物连接,RNN被当做一个动态水库
  • 动态水库可以由输入或/和输出的反馈激活
  • 水库的连接权值不会被训练改变?
  • 只有水库的输出单元的权值随训练改变,因此训练是一个线性回归任务

技术图片

假设有ESN是一个可调谐的sin波生成器:

  • 黑色箭头是指固定的输入和反馈连接
  • 红色箭头指可训练的输出连接
  • 灰色表示循环内连接的动态水库

典型RNN存在的问题:

  • 没有明确的终止条件
  • 通常这些算法收敛速度慢和/或导致次优解
  • ESN使用大循环水库(50-1000),而RNN通常只用到5-30个神经元

为什么需要循环神经网络:

  • 如果人们想要模拟、预测、过滤、分类或控制非线性动力系统,就需要一个可执行的系统模型
  • 通常获得分析模型是不可行的,因此必须使用黑箱建模技术
  • 对于线性系统,可以使用有效的黑箱建模方法
  • RNNs可用于非线性动力系统的建模

为什么使用ESN:

  • 统计信号处理的典型方法是建立在三个基本假设:线性、稳定和高斯分布。为了便于数学计算而引入的假设。

  • 大多数的实际物理信号是由动态过程产生,这些过程是非线性的、非稳定的和非高斯的

  • ESNs和一般RNNs在非线性领域推广了简单的自适应线性滤波器,可用于任何非线性动力系统的建模

技术图片

输入到水库是全连接,水库到输出是全连接,水库内部不是全连接

ESN描述:

  • 水库有N个内部网络单元
  • 在时刻(n geq 1),输入是(u(n)),输出是(y(n))
  • 内部单元的激活是一个(N*1)向量:(x(n)=(x_1(n), ...,x_N(n)))
  • 水库内部连接表示为一个(N*N)的矩阵(W),表示内部的拓扑结构以及连接的权值
  • 输入权值表示为(N*1)的向量(w^{in})
  • 输出权值表示为((N+1)*1)的向量(w^{out})
    • 因为有水库输出权值连接(N),以及输入到输出的连接(1),所以为((N+1))长度的向量

非线性系统描述:

  • (x(n+1)=f(Wx(n)+w^{in}u(n+1)+v(n+1)))

    • 每个神经元都和输入、部分神经元连接,
  • (y(n+1)=f^{out}(w^{out}(u(n+1),x(n+1))))

内部状态(x(n))指的是什么?

在确定条件下网络状态逐渐独立于初始状态,并只依赖于输入历史,体现网络的记忆能力:

  • (W)有谱半径(|lambda_{max}|>1),谱半径是矩阵的最大特征值,此时就会丢失回声特性,需要对其做归一化处理,(W_{new}=W/|lambda_{max}|)

    • 为了保证系统稳定能够收敛,需要将(Wx=y)的输出(y)小于输入(x)(W_{new}=W/|lambda_{max}|)
    • 特征值的概念就是方阵在特征向量上的投影,特征向量相当于是空间中的一组基,所以特征值相当于是方阵在一组基上的半径。谱半径是这种半径的最大值,也就是最大特征值。除以(lambda_{max})相当于归一化。
  • (W)最好是稀疏矩阵

  • 通常(W)是由([-1,1])的均匀分布随机生成,然后使用(|lambda_{max}|)做归一化处理使谱半径(alpha)小于1,(alpha)是ESN成功的重要参数,小的(alpha)对应快的信号,大的(alpha)对应慢信号和更长的短时记忆。

在训练时我们计算输出权值,误差描述为:

(e_{train}(n) = (f^{out})^{-1}y_{teach}(n)-w^{out}(u_{teach}(n),x(n)))

离线训练算法过程:

  • 初始化(W),保证其谱半径(alpha<1),用输入的教师信号运行ESN
  • 从初始瞬态中消除数据,并将剩余的输入和网络状态((u_{teach}(n);x_{teach}(n)))按行收集到矩阵(M)
  • 收集训练信号((f^{out})^{-1}y_{teach}(n))到向量(r)
  • (w^{out}=(M^{-1}r)^T)
    • 实质上是求解(y(n+1)=f^{out}(w^{out}(u(n+1),x(n+1))))
    • 假设(y(n)=w^{out}(u(n), x(n))),并且(U(t) = (u(t), x(t))),则有(w^{out}=y(n)U^T(t)(U(t)U^T(t)-lambda I)^{-1})

由此,就得到了输出权值

ESN将非线性问题转换为线性回归问题,只需要训练输出系数(w^{out})

4个决定性能的参数:

  • 池谱半径,(lambda_{max}<1)是网络稳定的必要条件
  • 池规模(节点数),池规模越大对动态系统的描述越接近,但是会带来过拟合
  • 池输入单元尺度(w_{in}),需要处理的对象的非线性越强该值越大
  • 池稀疏程度,表示池中神经元之间的连接情况,池中不是所有的神经元都存在连接。稀疏程度指的是池中相互连接的神经元占总的神经元的百分比,其值越大非线性能力越强

参考资料:
[1] ESN介绍


以上是关于ESN简介的主要内容,如果未能解决你的问题,请参考以下文章

ESN

MLPs+ESN利用多层感知机MLPs对经典ESN(回声状态网络)的输出权值计算进行优化的MATLAB仿真

回声状态网络(ESN)基础教程

ESN、min、imsi和A

如何通过代码编程获取设备的 IMEI/ESN 号码但在 android > 6

JAX-RS的简介