序言
在序列建模的广阔领域中,循环和递归网络扮演着至关重要的角色,它们通过捕捉数据中的时序依赖关系,为处理动态变化的数据提供了强大的工具。其中,回声状态网络( Echo State Networks, ESN \text{Echo State Networks, ESN} Echo State Networks, ESN)作为一种特殊的循环神经网络模型,因其独特的训练机制和高效的建模能力而备受关注。 ESN \text{ESN} ESN通过预定义随机权重和简单的线性输出层训练,摒弃了传统 RNN \text{RNN} RNN中的反向传播算法,极大地简化了训练过程,同时提高了模型的稳定性和泛化能力。
回声状态网路
- 从 h ( t − 1 ) \boldsymbol{h}^{(t-1)} h(t−1) 到 h ( t ) \boldsymbol{h}^{(t)} h(t) 的循环权重映射以及从 x ( t ) \boldsymbol{x}^{(t)} x(t) 到 h ( t ) \boldsymbol{h}^{(t)} h(t) 的输入权重映射是循环网络中最难学习的参数。
- 研究者 ( Jaeger, 2003; Maass et al., 2002; Jaeger and Haas,2004 \text{Jaeger, 2003; Maass et al., 2002; Jaeger and Haas,2004} Jaeger, 2003; Maass et al., 2002; Jaeger and Haas,2004) 提出避免这种困难的方法是设定循环隐藏单元,使其能很好地捕捉过去输入历史,并且只学习输出权重。
- 回声状态网络 ( echo state network \text{echo state network} echo state network) 或 ESN \text{ESN} ESN( Jaeger and Haas, 2004; Jaeger, 2007b \text{Jaeger and Haas, 2004; Jaeger, 2007b} Jaeger and Haas, 2004; Jaeger, 2007b),以及流体状态机 ( liquid state machine \text{liquid state machine} liquid state machine)( Maass et al.,2002 \text{Maass et al.,2002} Maass et al.,2002) 分别独立地提出了这种想法。
- 后者是类似的,只不过它使用脉冲神经元(二值输出)而不是 ESN \text{ESN} ESN中的连续隐藏单元。
- ESN \text{ESN} ESN和流体状态机都被称为储层计算 ( reservoir computing \text{reservoir computing} reservoir computing)( Luko s ˇ evi c ˇ ius and Jaeger, 2009 \text{Lukoševičius and Jaeger, 2009} Lukosˇevicˇius and Jaeger, 2009),因为隐藏单元形成了可能捕获输入历史不同方面的临时特征池。
- 储层计算循环网络类似于核机器,这是思考它们的一种方式:它们将任意长度的序列(到时刻 t t t 的输入历史)映射为一个长度固定的向量(循环状态 h ( t ) \boldsymbol{h}^{(t)} h(t)),之后可以施加一个线性预测算子(通常是一个线性回归)以解决感兴趣的问题。训练准则就可以很容易地设计为输出权重的凸函数。例如,如果输出是从隐藏单元到输出目标的线性回归,训练准则就是均方误差,由于是凸的就可以用简单的学习算法可靠地解决 ( Jaeger, 2003 \text{Jaeger, 2003} Jaeger, 2003)。
- 因此,重要的问题是:我们如何设置输入和循环权重才能让一组丰富的历史可以在循环神经网络的状态中表示? 储层计算研究给出的答案是将循环网络视为动态系统,并设定让动态系统接近稳定边缘的输入和循环权重。
- 最初的想法是使状态到状态转换函数的
Jacobian
\text{Jacobian}
Jacobian的特征值接近
1
1
1。
- 如在
神经网络优化中的挑战篇 - 长期依赖
中解释,循环网络的一个重要特征就是 Jacobian \text{Jacobian} Jacobian的特征值谱 J ( t ) = ∂ s ( t ) ∂ s ( t − 1 ) \boldsymbol{J}^{(t)}=\displaystyle\frac{\partial s^{(t)}}{\partial s^{(t-1)}} J(t)=∂s(t−1)∂s(t)。 - 特别重要的是 J ( t ) \boldsymbol{J}^{(t)} J(t)的谱半径 ( spectral radius \text{spectral radius} spectral radius),定义为特征值的最大绝对值。
- 如在
- 为了解谱半径的影响,可以考虑反向传播中
Jacobian
\text{Jacobian}
Jacobian矩阵
J
\boldsymbol{J}
J 不随
t
t
t 改变的简单情况。
- 例如当网络是纯线性时,会发生这种情况。
- 假设 J \boldsymbol{J} J 特征值 λ \lambda λ 对应的特征向量为 v \boldsymbol{v} v。
- 考虑当我们通过时间向后传播梯度向量时会发生什么。
- 如果刚开始的梯度向量为 g \boldsymbol{g} g,然后经过反向传播的一个步骤后,我们将得到 J g \boldsymbol{Jg} Jg, n n n 步之后我们会得到 J n g \boldsymbol{J}^n\boldsymbol{g} Jng。
- 现在考虑如果我们向后传播扰动版本的 g \boldsymbol{g} g 会发生什么。
- 如果我们刚开始是 g + δ v \boldsymbol{g}+\delta\boldsymbol{v} g+δv,一步之后,我们会得到 J ( g + δ v ) \boldsymbol{J}(\boldsymbol{g}+\delta\boldsymbol{v}) J(g+δv)。
- n n n 步之后,我们将得到 J n ( g + δ v ) \boldsymbol{J}^n(\boldsymbol{g}+\delta\boldsymbol{v}) Jn(g+δv)。
- 由此我们可以看出,由 g \boldsymbol{g} g 开始的反向传播和由 g + δ v \boldsymbol{g}+\delta\boldsymbol{v} g+δv 开始的反向传播, n n n 步之后偏离 δ J n v \delta\boldsymbol{J}^n\boldsymbol{v} δJnv。
- 如果 v \boldsymbol{v} v 选择为 J \boldsymbol{J} J 特征值 λ \lambda λ 对应的一个单位特征向量,那么在每一步乘 Jacobian \text{Jacobian} Jacobian只是简单地缩放。
- 反向传播的两次执行分离的距离为 δ ∣ λ ∣ n \delta|\lambda|^n δ∣λ∣n。
- 当 v \boldsymbol{v} v 对应于最大特征值 ∣ λ ∣ |\lambda| ∣λ∣,初始扰动为 δ \delta δ 时这个扰动达到可能的最宽分离。
- 当 ∣ λ ∣ > 1 |\lambda|>1 ∣λ∣>1,偏差 δ ∣ λ ∣ n \delta|\lambda|^n δ∣λ∣n 就会指数增长。当 ∣ λ ∣ < 1 |\lambda|<1 ∣λ∣<1,偏差就会变得指数小。
- 当然,这个例子假定 Jacobian \text{Jacobian} Jacobian在每个时间步是相同的,即对应于没有非线性循环网络。当非线性存在时,非线性的导数将在许多时间步后接近零,并有助于防止因过大的谱半径而导致的爆炸。事实上,关于回声状态网络的最近工作提倡使用远大于 1 1 1 的谱半径( Yildiz et al., 2012; Jaeger, 2012 \text{Yildiz et al., 2012; Jaeger, 2012} Yildiz et al., 2012; Jaeger, 2012)。
- 我们已经说过多次,通过反复矩阵乘法的反向传播同样适用于没有非线性的正向传播的网络,其状态为:
h ( t + 1 ) = h ( t ) ⊤ W \boldsymbol{h}^{(t+1)}=\boldsymbol{h}^{(t)^\top}\boldsymbol{W} h(t+1)=h(t)⊤W。 - 如果线性映射
W
⊤
\boldsymbol{W}^\top
W⊤ 在
L
2
L^2
L2 范数的测度下总是缩小
h
\boldsymbol{h}
h,那么我们说这个映射是收缩 (
contractive
\text{contractive}
contractive) 的。
- 当谱半径小于一,则从 h ( t ) \boldsymbol{h}^{(t)} h(t) 到 h ( t + 1 ) \boldsymbol{h}^{(t+1)} h(t+1) 的映射是收缩的,因此小变化在每个时间步后变得更小。
- 当我们使用有限精度(如 32 32 32 位整数)来存储状态向量时,必然会使得网络忘掉过去的信息。
-
Jacobian
\text{Jacobian}
Jacobian矩阵告诉我们
h
(
t
)
\boldsymbol{h}^{(t)}
h(t) 一个微小的变化如何向前传播,或等价的,
h
(
t
+
1
)
\boldsymbol{h}^{(t+1)}
h(t+1) 的梯度如何向后传播。
- 需要注意的是, W \boldsymbol{W} W 和 J \boldsymbol{J} J 都不需要是对称的(尽管它们是实方阵),因此它们可能有复的特征值和特征向量,其中虚数分量对应于潜在的振荡行为(如果迭代地应用同一 Jacobian \text{Jacobian} Jacobian)。
- 即使 h ( t ) \boldsymbol{h}^{(t)} h(t) 或 h ( t ) \boldsymbol{h}^{(t)} h(t) 中有趣的小变化在反向传播中是实值的,它们仍可以用这样的复数基表示。
- 重要的是,当向量乘以矩阵时,这些复数基的系数幅值(复数的绝对值)会发生什么变化。
- 幅值大于 1 1 1 的特征值对应于放大(如果反复应用则指数增长)或收缩(如果反复应用则指数减小)。
- 非线性映射情况时,
Jacobian
\text{Jacobian}
Jacobian会在每一步任意变化。
- 因此,动态量变得更加复杂。
- 然而,一个小的初始变化多步之后仍然会变成一个大的变化。
- 纯线性和非线性情况的一个不同之处在于使用压缩非线性(如 tanh \text{tanh} tanh)可以使循环动态量有界。
- 注意,即使前向传播动态量有界, 反向传播的动态量仍然可能无界,例如,当 tanh \text{tanh} tanh 序列都在它们状态中间的线性部分,并且由谱半径大于 1 1 1 的权重矩阵连接。
- 然而,所有 tanh \text{tanh} tanh 单元同时位于它们的线性激活点是非常罕见的。
- 回声状态网络的策略是简单地固定权重使其具有一定的谱半径如 3 3 3,其中信息通过时间前向传播,但会由于饱和非线性单元(如 tanh \text{tanh} tanh)的稳定作用而不会爆炸。
- 最近,已经有研究表明,用于设置
ESN
\text{ESN}
ESN权重的技术可以用来初始化完全可训练的循环网络的权重(通过时间反向传播来训练隐藏到隐藏的循环权重),帮助学习长期依赖(
Sutskever, 2012; Sutskever et al., 2013
\text{Sutskever, 2012; Sutskever et al., 2013}
Sutskever, 2012; Sutskever et al., 2013)。在这种设定下,结合
参数初始化策略篇
中稀疏初始化的方案,设置 1.2 1.2 1.2 的初始谱半径表现不错。
总结
回声状态网络以其独特的固定随机权重隐藏层和可训练的线性输出层,在处理非线性、非平稳时间序列数据方面展现出卓越的能力。其训练过程的高效性和对复杂动态系统的建模能力,使得 ESN \text{ESN} ESN在电力负荷预测、股票价格预测、气象预报等多个领域得到了广泛应用。然而, ESN \text{ESN} ESN也面临着参数选择敏感和可解释性较差等挑战。尽管如此, ESN \text{ESN} ESN作为序列建模中循环和递归网络的一个重要分支,其创新性的设计和卓越的性能,为我们解决复杂动态系统的建模与预测问题提供了新的思路和方向。