用Reservoir Computing预测混沌系统

zidingxiangyu 2019-03-12

“如果一只蝴蝶扇动翅膀”这个短语的变体描述了蝴蝶效应,这个词是由美国数学家爱德华·诺顿·洛伦茨创造的,他最初是这样说的:

“里约热内卢的一只蝴蝶翅膀在大气流中肆虐,两周后可能在德克萨斯州引发龙卷风” - 爱德华·诺顿·洛伦茨

但这与机器学习有什么关系呢?在物理学中存在许多现象,其中起始位置的轻微扰动可导致结果的巨大变化,因此这种现象将是混乱的。这种现象很难建模和预测,因此数学和机器学习领域的研究自然会将注意力集中在开发系统来建模它们。最近,使用最先进的方案来预测混沌系统,例如(Pathak,Lu,Hunt,Girvan,&Ott,2017)(https://doi.org/10.1063/1.5010300),已经出现了一些令人鼓舞和令人兴奋的结果。

通常使用循环神经网络来实现时间依赖系统的学习和预测。然而,训练RNN用于高维系统本身就是一个挑战,因此使用了RNN的一种变体,称为Reservoir Computing。在这篇文章中,我将概述回声状态网络(echo state network)以及如何训练和调整它们。然后我将展示如何设置它们来预测混沌系统,如Lorenz 63模型,Rössler吸引子和Kuramoto-Sivashinsky方程。

Reservoir Computing

尽管近年来一些人工神经网络结构,如多层感知器和卷积神经网络,在模式识别应用中取得了成功,但这些网络结构适用于时不变问题。然而,现实世界中的许多系统都是随着时间而变化的,比如天气预报、金融资产和其他动态系统。要对这样的数据建模,需要使用不同的体系结构;也就是说,在前馈神经网络的节点上添加一个recurrent connection,得到一个更强大的类型网络结构,称为循环神经网络,简称RNN。由于RNN具有建模复杂时变系统的潜力,因此受到了机器学习领域的广泛关注。然而,这是有代价的,因为训练计算量大、速度慢。此外,简单的RNN会使其误差梯度消失,从而使训练更加复杂。

Jaeger提出了这种问题的一种可能解决方案,即回声状态网络 (Jaeger&Haas,2004)(https://pdfs.semanticscholar.org/8922/17bb82c11e6e2263178ed20ac23db6279c7a.pdf)。碰巧Maass独立地提出了他的解决方案,称为liquid state machine (Maass,Natschläger,&Markram,2002)(https://doi.org/10.1162/089976602760407955)。两者都可以看作是reservoir computing的实例。其基本思想是构造一个具有随机稀疏循环连接的RNN,即不是所有状态都相互连接。网络的输出本质上是RNN状态的组合。从理论上讲,对整个过程确定一个RNN,这样的RNN称为reservoirs。然后我们只剩下需要训练的输出层的权重,这大大减少了训练整个网络所需的工作量和时间。此外,人们可以使用一次性训练。然后将RNN作为输入输入一个m维时间序列,状态依赖于输入的时间序列及其在前一时刻的值,因此得到“echo”。记住输入信号的能力允许网络预测接下来会发生什么。

用Reservoir Computing预测混沌系统

reservoir computing的示意图

数学描述

由于网络的状态取决于时间,因此reservoir本质上是一个复杂的动力系统。此外,reservoir的状态r不仅取决于前一时间步的状态,还取决于外部输入。在数学上,状态,r ,r是一个n维向量,每个元素rᵗʰ 是iᵗʰ reservoir节点的状态。

由M维向量表示的外部输入u通过N × M矩阵W i 耦合到reservoir,其不必是时间相关的。离散时间动力系统由描述

外部输入u代表一个M维向量,耦合到N×M矩阵Wᵢ reservoir,它不需要依赖时间的。离散时间动力系统描述如下

用Reservoir Computing预测混沌系统

矩阵A是邻接矩阵,它描述了reservoir状态之间的联系。矩阵A是方形N × N对称矩阵。

m维向量v是输出向量,矩阵Wo是一个M×N矩阵,它映射了N维的reservoir状态并将它们映射到输出。换句话说,每个输出元素都是reservoir状态的组合。

标量α是leaking rate,其范围在(0,1)之间,其作用是控制reservoir状态更新的速度。

乍一看,它看起来这个架构只有一个可调参数α,但事实上还有其他参数。非直接参数是:reservoir N的大小,A的spectral radius及其稀疏度。参数的作用和选择它们的一般策略将在本文的参数调整部分中描述。

训练

与典型的RNN不同,训练reservoir非常直接。本质上,训练是一个最小化问题,我们指定一个成本函数来量化网络输出与预期目标之间的距离。例如,如果误差函数被选择为

用Reservoir Computing预测混沌系统

然后,如果我们的网络产生输出v,我们需要知道我们需要改变多少来最小化J(v)。这个量由J(v)的梯度给出,表示为∇J ,反过来,这是一个向量,其元素的偏导数J相对于的各个元素v,即∇ Ĵ =(∂ Ĵ/∂v1,⋯)。首先,我们所说的梯度是指采取特定方向时误差的变化率。你可以从爬山的角度来考虑它,坡度值越高,路径越陡,越难攀爬,越低越容易攀爬。然后,如果我们评估v*= v- ∇J,那么我们可以保证该 J(v) > J(v*)。

对于RNN,使用反向传播进行训练,反向传播通过神经网络从输出到输入以计算误差函数的偏导数。需要部分导数来调整RNN的权重以产生期望的输入 - 输出对。RNN的反向传播问题是许多问题的表现,例如消失的渐变。在我们以前的小例子,这意味着v *≈ v和改善率会很慢。

另一方面,RNN可能具有非常大的梯度,这取决于误差函数,可能导致梯度更新步错过局部最小值,从而使训练效率非常低。

这些问题促使了reservoir computing的引入,因为它可以完全避免反向传播,这要归功于输入层和hidden-to-hidden连接的权重是随机选择和固定的。因此,我们将reservoir的权重留给输出层,结果,训练变成了回归问题,可以通过分析解决,从而实现一次性训练。

对于这种结构,训练是监督学习问题,在这里我们试图使输出v(t),使得它接近实际观察到的数据v ₒ(t)(输入信号u (t))。训练是通过reservoir输入一个输入信号,并利用动态系统计算reservoir状态值来完成的。从那里,输出v是使用reservoir-to-output映射计算Wr。然后,任务是找到矩阵的元素Wₒ ,使得误差

用Reservoir Computing预测混沌系统

最小化。项β ‖ W¯¯ ₒ‖²被添加到误差函数以正规化回归问题,这种正则化被称为Tikhonov正则化。常数β > 0任务是防止过度拟合。此外,该项可以防止W ₒ具有较大的值,这将导致轻微的扰动在reservoir状态中的值被放大。在输入信号u是反馈信号的情况下,这是有问题的,它将前一步骤的输出作为输入。

回归问题可以用矩阵形式写成

用Reservoir Computing预测混沌系统

其中Tr是跟踪算子,X是(1 + M + N)×NT矩阵,vₒ是尺寸为M×NT的观测数据矩阵。为了找到产生J的局部最小值的Wₒ,我们使用微积分中的关键事实,当梯度消失时函数处于局部极值。 因此,我们采用J的导数相对于Wₒ并将其设置为等于零, 我们得到一个Wₒ的表达式

用Reservoir Computing预测混沌系统

在这里我们可以清楚地看到参数β所起的作用。在它缺席的情况下,我们所要做的就是反转XXᵀ,然而,并不总是确保它是可逆的,或者如果是这样,它可能容易受到数值不稳定性的影响。 因此,β在这里起到使XXᵀ更好转换的作用。

调整参数

在本节中,我们将讨论reservoir参数对其行为的作用。 如前所述,reservoir的参数是:reservoir的大小,邻接矩阵A的稀疏度,A的spectral radius,用ρ表示,leaking rate和Wᵢ的scaling。

reservoir的大小对影响reservoir computing的性能起着重要作用。由于与其他架构相比其计算简单,因此可以选择reservoir尺寸非常大。使用reservoir大尺寸的一个优点是它减少了找到近似于所需信号的reservoir输出组合的难度。在找到完美尺寸方面没有确切的方法,但是,必须选择至少大于需要保留在存储器中的输入的长度(时间步长)的尺寸。另一个策略是调整小型reservoir网络,然后增加其大小。

可以调整的另一个参数是矩阵A和W的稀疏性。稀疏矩阵具有非常小的非零元素百分比与元素总数。这个特定的参数确实会影响网络的性能,因为它使信息保留在reservoir的一个部分而不会传播到其他部分。由于它很稀疏,因此在分配非零元素方面有很多选择。

影响参数的最佳性能之一是邻接矩阵A的spectral radius(ρ )。spectral radius是矩阵A的最大特征值的绝对值。该参数是具有所谓的回声状态特性的reservoir的指示器。此属性指示系统的渐近状态是否将回显输入。结果表明,在某些情况下,spectral radius小于1,可保证echo state property。但是,这种限制不是充分条件。一个非常好的策略是从spectral radius设置为1开始然后调整它。此外,问题的性质决定了spectral radius的值,建议使用ρ > 1来解决需要输入记忆的问题,反之亦然。

最后的参数是leaking rate(α),它是reservoir节点更新的速率。它可以被视为两个连续时间步之间的时间。或者就输入和输出信号而言,它是采样率。

混沌系统

现在让我们看看reservoir computing如何用于混沌系统的短时预测。reservoir computing在混沌系统预测中的应用在(Jaeger & Haas, 2004)(https://pdfs.semanticscholar.org/8922/17bb82c11e6e2263178ed20ac23db6279c7a.pdf)中引入,并在(Pathak, Lu, Hunt, Girvan, & Ott, 2017)(https://doi.org/10.1063/1.5010300)和(Pathak et al., 2018)(https://doi.org/10.1063/1.5028373)等论文中进行了扩展,包括时空混沌系统,如Kuramoto-Sivashinsky方程。

首先,我将讨论混沌系统背后的想法以及混沌的含义。考虑一个简单的摆(这是一个渐近稳定的系统),如果我们从任何位置释放bob,它将最终返回到静止位置。

用Reservoir Computing预测混沌系统

从靠近第一个的位置开始将导致与前一个非常相似的运动轨迹。现在,如果我们将另一个摆锤放在第一个摆锤上,我们就会得到一个双摆。重复相同的实验,这次钟摆将采取两个不同的轨迹!

用Reservoir Computing预测混沌系统

混沌系统是这样一个系统,它的解,我将它们称为轨迹,对初始位置的扰动很敏感。如果我们从两个非常接近的初始位置演化出一个动力系统,随着时间的推移,它们的轨迹会有很大的不同。然而,对初始条件的敏感性并不是混沌、拓扑混合和稠密周期轨道等其它条件的唯一判据。

我们提到双摆是一个混沌系统,还有其他混沌系统,其中最著名的是:Lorenz 63吸引子,Rössler吸引子和Kuramoto-Sivashinsky方程。后者是最有趣的之一,因为它是展示混沌的无限维系统(由偏微分方程控制)的一个例子。

Lorenz 63 Attractor

最著名的混沌系统是Lorenz 63系统,其轨迹在绘制时呈现出蝴蝶的形状(Lorenz,1963)(https://journals.ametsoc.org/doi/pdf/10.1175/1520-0469%281963%29020%3C0130%3ADNF%3E2.0.CO%3B2)。

用Reservoir Computing预测混沌系统

Lorenz 63系统的轨迹,是著名的洛伦兹奇异吸引子

Edward N. Lorenz是一位美国数学家,他的工作主要集中在天气模拟和预测方面。在他的一生中,他为数学做出了巨大的贡献,他帮助制定了混沌理论。他的一件着名作品是Lorenz 63模型,该模型模拟了无限维天气模型的前三种模式。

在天气模拟中,用于对流的模型之一是Navier-Stokes方程,它模拟流体,根据Boussinesq近似耦合热,将温度变化视为Navier-Stokes方程的一个小强迫项 。当流体从下方加热并在顶层冷却时,流体开始以周期性方式运动,产生Rayleigh-Bénard对流,这是一种不稳定性,导致流体循环,如下面的动画所示。

用Reservoir Computing预测混沌系统

流体通过Rayleigh-Bénard对流的速度(左)和温度(右)的振幅

Edward Lorenz在研究Boussinesq近似的解时偶然注意到,当初始条件受到扰动时,周期解会发生剧烈的变化。通过用傅里叶系数来描述Navier-Stokes的解,Lorenz从Boussinesq方程推导出一个更简单的模型。如果这是您第一次遇到傅立叶系数项,请不要担心。一种看待它的方法是在应用傅里叶变换时,系统的解以频率表示。傅立叶系数对应于那些频率的幅度。近似的结果是著名的洛伦茨模型,由以下微分方程系统描述

用Reservoir Computing预测混沌系统

with a= 10,b = 28,和Ç = 8/3。x对应于对流强度,y对应于水平面上的温差,z是垂直平面中的温差。

现在,我们将向量u =(x,y,z)视为reservoir的输入信号。目前,我们生成一个Lorenz信号,T = 20 ,dt = 0.005。我们将u从-40到0视为训练信号。reservoir的参数选择,Nᵣ= 500,,学习率α = 1.0,spectral radius ρ = 0.6,隐藏层隐藏权重的初始条件为Erdős-Rényi矩阵,度D = 6。

在T=0时,我们不给reservoir输入信号u,而是使用它的输出作为反馈。设置u = v

用Reservoir Computing预测混沌系统

这样,reservoir r(t)输出预测。我们让reservoir一直运行到T= 20。利用reservoir的输出和u[3000: 5000],我们比较了两种信号。

用Reservoir Computing预测混沌系统

reservoir的输出(蓝色)与Lorenz 63系统的实际解(橙色)相比较

用Reservoir Computing预测混沌系统

洛伦茨奇异吸引子是通过reservoir computing产生的

Rössler吸引子

另一个著名的混沌系统是Rössler系统(Rossler system, 1979)(https://doi.org/https://doi.org/10.1016/0375-9601%2879%2990150-6),它是在寻找一个比Lorenz系统更简单的模型的过程中产生的。如前所述,Lorenz模型来自真实世界的物理,然而Rössler系统没有物理意义。从Lorenz系统的图中,蝴蝶图可以看作是两个螺旋,罗斯勒想要找到一个只有一个螺旋的系统。

用Reservoir Computing预测混沌系统

Rössler吸引力展出一个螺旋

系统的时间演化的数学描述由下式给出

用Reservoir Computing预测混沌系统

with a = 0.2,b = 0.2,c ^ = 5.7。对于Rössler系统执行相同的程序,与Lorenz系统一样,建立reservoir系统。除了 spectral radius ρ = 1.05 之外,该reservoir的参数与前一示例中用于Lorenz吸引子的参数相同。令人惊讶的是,预测结果比Lorenz系统准确得多。

用Reservoir Computing预测混沌系统

reservoir的输出(蓝色)与Rössler系统的实际解(橙色)相比较

用Reservoir Computing预测混沌系统

蓝色圆圈中reservoir输出的另一个图,以简化与实际数据的比较。

用Reservoir Computing预测混沌系统

reservoir输出与Rössler系统实际输出之间的误差

Kuramoto-Sivashinsky方程

到目前为止,我们已经提到了二维和三维混沌系统,实际上存在一个无限维系统(Sivashinsky,1977)(https://doi.org/10.1016/0094-5765%2877%2990096-0)和(Kuramoto,1978)(https://doi.org/10.1143/PTPS.64.346)。首先,我需要澄清有限和无限维系统的含义。对于有限维系统,该解被描述为有限数量的基函数的组合。例如,按照每个轴的数量来描述写为u =(x,y,z)的Lorenz系统的解。无限维解是根据基函数的无穷和来描述的解。

在前面的例子中,微分方程的解都是通过时间t参数化,演化方程是常微分方程。然而,许多现实世界的物理学,动力学不仅取决于相对于t的变化率,而且还取决于相对于其他独立量(例如空间)的变化率。这种系统由偏微分方程控制。混沌无限维系统的一个例子是Kuramoto-Sivashinsky方程:

用Reservoir Computing预测混沌系统

如果你想知道方程是怎么回事,你可以在空间中做傅里叶变换看看modes会发生什么。我将把这个方程用通俗易懂的语言翻译出来。右边的第一项为系统提供能量,这反过来又使系统变得不稳定。右边的第二项作为低modes的阻尼器。最后,左边的第二项描述了从低modes到高modes的能量转移。

用Reservoir Computing预测混沌系统

Kuramoto-Sivashinsky方程的样本解

这个系统最有趣的特征之一是当t→∞时,解,从任何初始条件出发,被吸引到一个称为惯性流形的空间。惯性流形的有趣之处在于它是有限维的,这告诉我们k在t→∞时的解等价于有限维系统的解。

与其他混沌系统一样,Kuramoto-Sivashinsky方程可以使用reservoir computing进行预测,如(Pathak,Lu,Hunt,Girvan,&Ott,2017)(https://doi.org/10.1063/1.5010300)和(Pathak等,2018)(https://doi.org/10.1063/1.5028373)所述。首先,为了能够将其馈入reservoir,人们需要在空间中对方程进行离散化,因为解现在是ℝᴺ中的向量。在某种程度上,空间中的离散化将无限维系统逼近具有N维的有限维。

用Reservoir Computing预测混沌系统

使用reservoir computing的Kuramoto-Sivashinsky方程的样本预测

最后

现在,希望你对reservoir computing和基础数学有了基本的了解,你可以进行实验,并将它们应用到其他机器学习问题中。尽管reservoir computing框架在调优方面需要圣人般的耐心,但这并不意味着它们就差,事实上,与其他体系结构相比,它们提供了简单训练的好处。虽然这个预测并不完美,但Rössler吸引子的例子表明它是多么的有希望。可以想象,使用深度Rössler框架可以提高预测的质量。

相关推荐