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介绍

posted @ 2020-07-11 16:29  燕止于檐  阅读(1195)  评论(0编辑  收藏  举报