宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

0. 前言

通常神经网络的问题:

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

1. 回声网络ESN

具有以下特点:

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

ESN简介-冯金伟博客园

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

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

典型RNN存在的问题:

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

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

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

为什么使用ESN:

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

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

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

ESN简介-冯金伟博客园

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

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