第428行: |
第428行: |
| 前向动力学是最小化预测误差<math>\left\|\phi_q^{\dagger}(Y(t+1))-X_{t+1}\right\| </math>,保证动力学的确定性,但是由于EI不仅与确定性有关,还与简并性有关,我们需要一个与动力学简并性相关的指标。因此,学者在NIS的框架基础之上,加入了反向动力学,用以反向预测,即输入<math>y_{t+1}</math>,通过动力学学习器<math>g</math>之后,得到宏观量的反向预测值<math>\hat{y}_{t}</math>,使<math>y_{t+1}</math>和<math>\hat{y}_{t}</math>之间的损失值减少。通过训练反向动力学学习器<math>g</math>,影响编码器,进而影响EI值,使得此框架可以学到一个简并性低的动力学。 | | 前向动力学是最小化预测误差<math>\left\|\phi_q^{\dagger}(Y(t+1))-X_{t+1}\right\| </math>,保证动力学的确定性,但是由于EI不仅与确定性有关,还与简并性有关,我们需要一个与动力学简并性相关的指标。因此,学者在NIS的框架基础之上,加入了反向动力学,用以反向预测,即输入<math>y_{t+1}</math>,通过动力学学习器<math>g</math>之后,得到宏观量的反向预测值<math>\hat{y}_{t}</math>,使<math>y_{t+1}</math>和<math>\hat{y}_{t}</math>之间的损失值减少。通过训练反向动力学学习器<math>g</math>,影响编码器,进而影响EI值,使得此框架可以学到一个简并性低的动力学。 |
| === 分阶段训练 === | | === 分阶段训练 === |
− | 在实践中,NIS+的训练过程分为两个阶段。
| + | 在实践中,为了减轻机器学习的压力,可以先让模型学到比较靠谱的编码策略,然后通过反向动力学将编码策略调整至最优解。NIS+的训练过程分为两个阶段。 |
| | | |
− | 第一阶段:只训练前向神经网络,最小化预测误差<math>\left\|\phi_q^{\dagger}(Y(t+1))-X_{t+1}\right\| </math>。 | + | 第一阶段:只训练前向神经网络,最小化预测误差<math>w(\boldsymbol{x}_t)\parallel\boldsymbol{y}_t-g(\boldsymbol{y}_{t+1})\parallel </math>。 |
| | | |
− | 第二阶段,只训练反向神经网络,本质上是用于训练<math>
| + | 第二阶段,只训练反向神经网络,最小化预测误差<math>\parallel\hat{x}_{t+1}-\boldsymbol{x}_{t+1}\parallel </math>,本质上是用于训练<math> |
| \phi_{ω} | | \phi_{ω} |
| </math>。 | | </math>。 |
| + | |
| + | 在整个模型的训练过程中,总的目标(式{{EquationNote|3}})是最小化第一阶段的误差和第二阶段误差的拉格朗日函数,在不同的实验中,<math>λ </math>取不同的值。 |
| | | |
| === 面对大规模复杂系统的拓展 === | | === 面对大规模复杂系统的拓展 === |
| 在实际应用中,如果系统不是小规模系统,而是类似[[元胞自动机 Cellular Automata|元胞自动机]]的大规模的复杂系统,我们需要对此框架进行拓展,将编码器(解码器)进行组合,从而减轻模型训练的压力和难度。 | | 在实际应用中,如果系统不是小规模系统,而是类似[[元胞自动机 Cellular Automata|元胞自动机]]的大规模的复杂系统,我们需要对此框架进行拓展,将编码器(解码器)进行组合,从而减轻模型训练的压力和难度。 |
| [[文件:StackParallel.png|右|无框|600x600px|1|替代=]] | | [[文件:StackParallel.png|右|无框|600x600px|1|替代=]] |
− | 首先,在处理高维复杂系统时,一次丢弃多个维度会给训练神经网络带来很大的挑战。我们可以将一系列基本编码器堆叠(串联)在一起并逐渐丢弃维度,降低训练难度。
| + | 首先,在处理高维复杂系统时,一次丢弃多个维度会给训练神经网络带来很大的挑战。我们可以将一系列基本编码器堆叠(串联)在一起并逐渐丢弃维度,降低训练难度。如右图a所示。 |
| | | |
− | 此外,一些大规模复杂系统具有先验知识,我们可以根据先验知识对微观维度进行分组,分组之后,对每一组都用编码器进行编码,相当于把编码器进行了并联。并行编码器之间共享参数,故神经网络依然可以高效、准确地获得粗粒化规则。最后,将从所有编码器获得的宏观变量连接成一个向量,以导出总体的宏观变量。这种并行结构也可以与卷积神经网络等架构结合起来。
| + | 此外,一些大规模复杂系统具有先验知识,我们可以根据先验知识对微观维度进行分组,分组之后,对每一组都用编码器进行编码,相当于把编码器进行了并联。并行编码器之间共享参数,故神经网络依然可以高效、准确地获得粗粒化规则。最后,将从所有编码器获得的宏观变量连接成一个向量,以导出总体的宏观变量。这种并行结构也可以与卷积神经网络等架构结合起来。如右图b所示。 |
| | | |
− | 为了提高搜索最优尺度的效率,我们可以利用堆叠编码器获得隐藏空间的多个尺度,同时训练多个不同尺度的动力学学习器(相当于搜索不同q的宏观动力学),从而避免重新训练编码器,提高模型效率。
| + | 为了提高搜索最优尺度的效率,我们可以利用堆叠编码器获得隐藏空间的多个尺度,同时训练多个不同尺度的动力学学习器(相当于搜索不同q的宏观动力学),从而避免重新训练编码器,提高模型效率。如右图c所示。 |
| | | |
| 将NIS+的编码器替换为堆叠编码器与并行编码器的任意组合时,式{{EquationNote|3}}的最优化函数依然适用(引理5、引理6)。 | | 将NIS+的编码器替换为堆叠编码器与并行编码器的任意组合时,式{{EquationNote|3}}的最优化函数依然适用(引理5、引理6)。 |