欧阳文宇,叶磊,王梦云,孟子文,张弛
(大连理工大学水利工程学院,辽宁 大连 116024)
水文预报是水文学者寻求水文现象时空变化特征及规律、揭示水文现象形成机理的重要手段,也是水旱灾害防御、水资源综合利用等经济社会发展所必需的重要技术[1]。自20世纪中叶以来,随着电子计算机的发明和快速发展,通过计算机模拟水文现象形成和变化的“仿真范式”成为水文领域常用科学研究范式,人们在流域以及更大尺度上利用水文模型开展水文预报成为可能[2-3]。然而,任何水文模型只是流域水文形成机理的近似,水文过程受气象、流域下垫面、人类活动等多重因素的综合作用,是最复杂的自然现象之一,流域水文模型无法完全反映水文过程形成机理和变化规律。因此,完全依赖基于现有物理定律和数学方程的水文模型,难以准确认识和预报复杂的水文现象[4]。
近数十年来,随着卫星、航空遥感、雷达等观测手段的不断进步,包括水文在内的地球系统科学领域积累了大量数据[5]。这些密集观测数据本质上是自然现象形成机理和时空变化规律的微分方程在一定初始条件和边界条件约束下的解[6],其中必然隐藏着自然现象形成机理和时空变化规律。因此,对于复杂的水文现象,若从观测数据入手,采用逆向思维方式由果及因地分析水文问题,构建基于密集观测数据的“数据水文学”研究范式[2],则可望突破目前流域水文模型仅凭少量观测数据和固有模式进行预报的制约,从而揭示更全面的水文过程形成机理和时空变化规律,成为推动水文学发展的重要驱动力。
深度学习正是这样一类研究如何从大量数据中发现规律、提取知识的领域。深度学习核心是让计算机自动学习各类算法,对大量样本数据进行分析并寻求规律,从而对未知数据进行预测。这一过程与水文预报通过分析历史水文数据获取规律,并在其基础上概化模型预测水文过程高度一致,因此深度学习在水文领域获得广泛关注[7]。本文主标题命名为“深度学习水文预报研究进展综述”,旨在表明深度学习与水文预报的有机结合,而不仅局限于深度学习在水文预报中的简单应用。本文主要面向水文领域研究人员,系统地介绍深度学习水文预报中常见深度学习模型的原理与结构,深度学习水文预报模型一般构建方法以及深度学习与水文物理机制的整合方式。
深度学习专指深度神经网络,是一类将简单的非线性运算模块通过多层次网络结构联结以学习复杂关系的表征学习方法,属于机器学习子领域[8]。其多层次网络一般指“深层”网络结构,但关于“深层”网络并没有明确的定义,通常是指依赖大量数据,有多层、多神经元的神经网络。“深层”网络各层次模块能将其输入转化为更高抽象层次的特征,放大输入中对输出变化重要的因素,并抑制不相关的变化,实现特征的自动提取,而“浅层”网络和一般机器学习算法则需要专家经验和工程技巧设计特征提取器,这也是近年来深度学习模型相比于浅层网络等算法应用更广泛的原因之一。深度学习范式多样、模型种类众多,背后涉及的数学和计算理论对水文学科研究者来说极富挑战[9],因此,本节简要介绍水文预报中常用的深度学习模型结构,为水文研究者了解和掌握适合于水文预报的深度学习模型提供帮助。
最基础的深度神经网络结构是深度前馈网络,即前馈神经网络或多层感知机(multilayer perceptron,MLP)[10],它包括输入层、隐含层和输出层,每一层神经元和其前后层所有神经元都有连接(即全连接),通过权值表达各神经元的连接强度。前馈的含义是指,信号在神经网络是单向流动,信号从前一层流向后一层没有反馈。对每个非输入层的神经元,计算其上一层所有神经元的带偏置的线性加权总和,并通过非线性激活函数得到激活值,作为该神经元输出。常用激活函数包括Sigmoid函数、双曲正切函数(tanh)、线性整流函数(rectified linear unit,ReLU)等。
为完成目标变量的预测任务,需要使用样本数据训练MLP。首先将样本数据输入MLP完成前馈计算得到模型输出,然后通过损失函数衡量其与目标输出之间的距离,即损失值,再由MLP调整其网络权值来减小损失值。模型学习或者训练就是优化权值使所有样本总体损失最小。最基础的模型训练算法是梯度下降法,梯度下降法首先计算损失值相对于各权值的梯度,然后从当前权值出发沿负梯度方向变化更新权值。由于权值的梯度计算及更新均由输出层反向逐层传至输入层,该算法也称反向传播算法。前馈计算和反向传播算法是包括MLP在内的各类神经网络的基本运算模式。
MLP很早就应用于水文领域,在降雨、蒸散发、水位、径流等各类水文变量预测方面都有广泛应用[11-12]。但MLP的输入是一系列互相之间没有连接的神经元在面临复杂高维输入时必须将数据展开到低维,破坏了高维输入结构关系,导致MLP模型难以学习复杂数据模式。因此,目前大多数深度学习并不直接使用MLP作为建模工具,而是将其以基础模块的形式嵌入到其他深度学习网络结构中。
卷积神经网络(convolutional neural network,CNN)是一类使用卷积运算代替全连接矩阵乘法的神经网络[13],是深度学习的代表模型之一。CNN由输入层、卷积层、池化层、全连接层及输出层构成,模型结构见图1。在卷积层中,输入数据与卷积核执行卷积运算并通过非线性激活函数得到输出特征图。特征图的每个单元都通过卷积核和上一层输入的局部单元块建立连接,不同的卷积核生成不同的特征图。特征图一般会进一步通过称为池化的降采样运算,以合并卷积层检测的相似局部特征,降低数据量。经过若干层的卷积、池化后,将得到的特征图依次展开连接成向量,输入全连接网络,最终构成完整卷积网络。
图1 卷积神经网络结构Fig.1 The structure diagram of convolutional neural network
通过这种结构设计,CNN克服了MLP难以处理高维复杂时空模式数据的缺点。一方面,CNN待训练参数是卷积核的各元素值,其数量通常远小于输入数据,相比于MLP的全连接矩阵权值,CNN需训练参数减少,降低了网络模型复杂度,使得模型更容易训练。另一方面,每个卷积核单次运算针对的是输入数据的局部元素,通过多卷积核的卷积运算以及层层抽象,CNN能获取到一系列输入数据时空维度局部特征,最后再经过全连接层汇总,从而有效地挖掘高维数据的时空模式[14]。
在水文预报研究中,CNN常应用于涉及图像等多维数据的复杂建模问题[15-16]。典型地,遥感图像中水文信息的提取可以使用卷积神经网络来实现,比如识别极端气象模式[17];图像超分辨率处理则可以用于水文网格数据降尺度分析,比如提升降雨数据空间分辨率[18];在水文变量预测中,如果将水文网格数据视为图像,能利用卷积神经网络实现预报影响要素空间特征的捕捉提取[19]。CNN还可用于时间序列建模问题,比如降雨径流建模中,将时间作为降雨等输入数据维度之一,可以利用CNN提取时间序列特征用于构建降雨径流相关关系[20]。
循环神经网络(recurrent neural network,RNN)是一类通过隐含层循环连接实现网络动态记忆能力,从而表达时间等序列变化的神经网络[21],也是深度学习的代表模型之一。RNN同样包含输入层、隐含层、输出层。RNN每时段完成一次前向计算,其中t时段隐含层输出h t不仅取决于t时段隐含层输入x t,也和t-1时段的隐含层输出ht-1有关(图2),而ht-1的计算又需要ht-2,以此类推,RNN中某一时段的状态对过去的所有状态都存在依赖,所以可以将RNN看作所有时段共享权值的神经网络。RNN能够构建序列数据之间的映射,但是输出序列的长度并不要求与输入序列一致,根据不同需求,可以有一对多、多对一、多对多等多种对应关系[22]。
RNN能用于建模动态系统,但反向传播计算中梯度的连乘效应会导致梯度消失和爆炸问题,使得其无法处理很长的输入序列[23],例如当激活函数是Sigmoid函数时,其导数小于1,多个小于1的导数连乘就会导致梯度消失。为解决这一问题,Hochreiter等[24]引入了长短期记忆(long short-term memory,LSTM)神经网络模型。LSTM建立了称为“门”的内部处理单元作为记忆模块来实现序列信息的有效存储和更新。每个门通过单个Sigmoid激活函数非线性网络层来实现信息的选择性通过,门输出表示信息通过的权重,其输出范围为0到1区间,其中,0表示遗忘所有信息,1表示记忆所有信息。LSTM有单元状态和隐含状态两个传输状态,单元状态随时间缓慢改变,而不同时刻的隐含输出可能会很不同[25]。如图2所示,LSTM借助遗忘门f t、输入门it和输出门o t实现对上一时段单元状态c t-1、隐含层输出ht-1和本时段输入x t的记忆和遗忘,其中,f t实现了对c t-1的控制,it确定了获取多少来自ht-1和xt的输入信息,两者的输出结合决定了如何更新单元状态得到ct,最后经ot得到输出。
图2 循环神经网络隐含层结构与长短记忆神经网络循环单元Fig.2 The illustration of hidden layer in recurrent neural network and the unit of long short-term memory neural network
水文预报是典型的时间序列预测问题,且一些变量之间存在较长时期的依赖关系,比如流域退水过程、积雪对径流的影响等,而LSTM能处理序列内单元之间彼此有复杂关联的任务,因此在水文领域受到了广泛关注[26-27]。常见的应用包括降水预报、径流预报、洪水预报、土壤含水量时空分布预测、地下水位及流量模拟、水库水位出流预测、水质分析预测等多方面[28]。此外,将多时刻的水文网格数据连接在一起可构成视频信息,结合CNN和LSTM能构建提取复杂时空特征的深度神经网络用于水文预报[29]。
通过对大量有标签的样本进行学习的方式属于监督学习范式,而无资料地区往往没有标签数据,因此在监督学习范式下难以直接使用上述深度学习模型。如何利用少量标签或无标签样本数据建立可靠模型,对目标变量进行预测正是迁移学习研究关注的问题。迁移学习是运用已存有的知识(源领域)对不同但相关领域(目标领域)问题进行求解的一种机器学习方式[30],将深度学习模型用于迁移学习又被称作深度迁移学习。最简单的深度迁移学习方法是深度网络的预训练——微调[31],即将已训练深度学习模型的参数直接迁移至目标领域,再根据目标领域样本微调神经网络参数,从而优化模型学习效率避免从零学习。类似地,在水文预报中,区域化方法也能将有资料流域的水文模型参数移植至无资料流域[32]。区域化常见的做法是在有资料流域率定水文模型参数,然后拟合流域属性与水文模型参数间的关系从而用于无资料流域[33]。将深度迁移学习用于区域化方法研究,基于大数据样本能构建更准确表达水文共性特征的源领域模型,再通过微调等迁移学习方式使模型更有效学习目标领域任务,有望获得更好的无资料流域预报性能[34]。
与监督学习以及迁移学习不同,非监督学习没有待预测的目标变量,它通过提取无标签数据特征挖掘数据背后潜在模式,以寻找可描述数据的模型和规律[10]。尽管不直接针对待预测目标变量建模,但利用非监督学习进行数据降维和特征提取能消除变量中的不重要因素,保留其中关键信息,在此基础上再与监督学习模型结合能更有效实现预报目标。传统机器学习算法常与主成分分析结合用于水文预报,通过主成分分析进行数据降维和特征提取从而提高预报精度[35]。深度网络结构有更强的自学习能力,更适合于处理含高维复杂时空输入数据的预报任务。堆叠自编码器(stacked auto-encoder,SAE)是一类常见的非监督学习深度神经网络。SAE基于自编码器,利用相同神经元个数的输入层和输出层以及更少神经元的隐含层的特殊结构来迫使神经网络在减少特征的前提下在输出中复现输入,从而实现信息压缩[36]。比如在洪水淹没预测中,编码提取淹没图特征后,再以该特征为输出,以降雨等驱动因子为输入,构建循环神经网络用于预报特征,再对特征解码可得到预报淹没图[37]。
数据驱动模式研究思路下,研究人员首先收集整理数据,然后建立模型和训练,在此基础上测试评估模型,并运用解释方法从中提取符合数据规律和易于理解的假说,再基于合理假说进一步收集数据建立模型评估,重复此过程直到模型精度达到预期[38]。因此,深度学习模型构建通常包括数据收集处理、模型构建和训练、模型测试与解释等环节。近些年,水文气象数据监测的高速发展使得降雨径流建模方面的研究成果比较突出,因此本节以该问题为例,讨论深度学习用于水文预报的一般建模方法。
模型构建的第一步是针对目标系统的输入输出收集整理数据。在降雨径流预报研究中,大样本水文研究(large-sample hydrology)[39]为深度学习奠定了较好的数据基础。大样本水文研究涉及的流域众多且包含了广泛的水文条件,因此能够提供可靠的结论避免偶然结果。大样本水文数据集正在快速发展,比如美国“大样本研究的流域属性和气象数据集(catchment attributes and meteorology for largesample studies,CAMELS)”已经成为众多水文研究的基 础 数 据[7,40],衍 生 的CAMELS-智 利、CAMELS-巴西、CAMELS-英国、CAMELS-澳大利亚等也在扩充这一集合[41-44]。这些数据集包括降雨、径流、地表气温等重要水文气象时间序列,多年平均降雨量、流域土地利用类型及所占面积比例等水文气候和地理环境属性。在降雨径流建模中,通常以径流作为模型输出、其他变量作为模型输入。
模型训练前通常需要对数据进行前处理。为了评估模型在现有样本外数据上的预测性能,即泛化能力,需要将数据分为训练集和测试集,依托训练集完成模型训练,并在测试集上测试模型性能作为对模型泛化能力的估计。模型除了可训练参数外,通常还具有一系列需要人工设定的参数,即超参数,比如神经网络层数、每层神经元个数等。因此,还需从训练集中划分出一部分作为验证集评价模型训练效果,从而进行超参数比选,防止直接使用测试集选择超参数而造成信息泄露,影响对模型泛化能力的估计。针对输入输出数据,一般还需进行归一化处理使训练过程中梯度下降算法能更好地收敛[10]。
数据收集处理后,根据水文过程记忆性特点,可选择能挖掘序列中数据间关系特点的神经网络建模,常用的如CNN或LSTM等。水文预报对精度和预见期都有要求,因此通常需要建立多时段输出模型以延长预见期,比如多对多模式的LSTM[45]。当输入输出变量时段长度不一致时,比如输入中含有历史观测径流,输出目标为多时段未来径流,还可应用编码解码结构类的模型[46],将输入序列编码到上下文向量后再传递给解码器以转换为时序输出以灵活处理不同时段长度的输入输出。
建模后即可开始训练模型,深度学习模型训练样本较多,通常不会直接对所有样本一次性执行梯度下降运算,而是将样本分成一系列小批次(minibatch),并使用随机梯度下降算法或进一步改进的Adam、Adelta等算法[47-48]完成各小批次的梯度下降计算。一次遍历所有小批次的训练过程称为代(epoch),训练通常会执行多代。小批次数和代数等也是神经网络训练中的超参数,最简单的超参数优化方式是网格搜索法,即手动设置多组可行的超参数组合,并从中选择验证集损失最小的,其他自动优化方法包括随机搜索、贝叶斯优化等[49]。
训练中,通常会使用正则化(regularization)方法防止模型过拟合[50]。模型过拟合是指训练中不区别对待数据中的噪声和正常数据,导致模型过度拟合训练集数据输入输出关系。此时虽然模型能在训练数据上获得低偏差性能,但同时会有高方差缺点,即性能不稳定、泛化能力弱。常见正则化方法包括范数正则化、Dropout等。范数正则化在模型损失函数中增加包含模型参数权值范数的惩罚项,比如L2范数正则化对应权值平方项,梯度下降更新权值时会减去带系数的权值项,即权值衰减。Goodfellow等[10]指出经过权值衰减,学习算法能收缩增加预测方差特征的权重,从而减小模型预测方差,有效防止过拟合。Dropout会在训练时直接将部分神经元的激活值或者连接权值设置为0,神经元置0的概率称为Dropout率。使用Dropout方法时,由于输入中每项都可能在训练期消失,因此最终输出不能只依赖一两个输入,而须分散其权重并关注所有输入,从而使神经网络对输入变化不过分敏感来获取更好的泛化能力。除了模型训练过程外,Gal等[51]还指出,在训练后的神经网络中应用Dropout预测时,可将丢弃不同神经元的网络视为来自所有可用模型空间的蒙特卡罗样本,这一过程被称为蒙特卡罗Dropout,能为水文预报中的不确定性量化等研究提供有力工具[52]。
神经网络训练多采用集成(ensemble)学习的方式。神经网络模型训练后可能陷入局部最优,所以不同的初始化权重会得到不同性能模型,如果仅训练一组权重,预测时可能得到不良结果。集成学习能结合来自多个神经网络模型的预测,以减少预测方差,提升模型性能[53]。目前最简单常用的集成训练方式之一是在同一数据集上训练具有相同网络结构和不同初始随机权重的网络集合,然后使用每个模型进行预测,最后取预测的平均值作为实际预测结果。
模型训练完毕后就可用于推断,即在新样本数据输入条件下进行预测。训练后的模型不再执行梯度下降运算,因此深度学习能很快完成预测,有极高的预测效率。衡量模型泛化能力就是评价模型在测试集上的预测结果。通常用拟合度和误差等统计指标进行评价,常用指标包括平均绝对误差、均方根误差、相对偏差、Nash-Sutcliffe效率系数、Kling-Gupta效率系数、峰值径流相对偏差及低流量相对偏差等[54-55],通常综合使用它们以判断模型性能。
除了模型测试外,对于模型内部工作机制的理解也是评价模型的关键,此过程能帮助进一步了解水文规律,增强模型使用者对于深度神经网络的信任。深度学习模型解释方法有很多且有不同的分类体系[56],目前在水文预报相关研究中结果反推类的方法使用较多,比如层次相关传播(layer-wise relevance propagation,LRP)、SHapley Additive exPlanation(SHAP)、置换特征重要性(permutation feature importance,PFI)等[57-59];通过构建简洁模型来帮助理解复杂深度学习模型也是一种常见方法,比如local interpretable model-agnostic explanations(LIME)[60]。此外,可视化网络神经元激活值或联结权值等也是理解深度学习内部运行规律的有效手段,比如对CNN卷积核及生成特征图的可视化分析[61]。
深度学习已经被广泛应用于各学科,尤其在水文这类过程仍未被完全理解的领域,它展示了从数据挖掘角度认识物理过程规律的潜力,但仍面临一系列挑战:深度学习需要在大量数据条件下学习训练,在水文领域,大量流域属于无资料或者缺资料地区;随着气候变化和人类活动等影响,水文规律非平稳性也使得现有数据条件下的数据驱动模型不能具备良好的外延性,即泛化能力;良好的预报不仅包括性能上的优越,模型能否符合一般物理规律,能否具备良好的可解释性,以及能否有助于科学知识发现等都是水文研究者关心的问题。基于物理机制的模型通常具有较好的解释性和物理一致性,对数据的依赖程度相对较低,能起到与深度学习模型互补的效果,因此,近年来物理机制与数据驱动模型融合的新范式受到了广泛的重视,并显示出了推动科学问题研究的潜力[62],在水文预报中也有望通过整合现存大量基于物理机制的水文模型与深度学习模型来推动相关研究进展。本节将物理机制与深度学习模型整合的方法分为物理机制模型中融入深度学习和物理机制指导的深度学习两大类展开介绍。
3.1.1 替代物理机制模型中间过程
复杂水文过程的物理机制建模中,部分子模块采用基于人为经验或简化的概念性公式,制约了模型精度。因此,可以考虑分解物理过程,针对性能较差的子模块,构建深度学习模型并予以替代,作为原模型的一部分,由此来结合深度学习直接从数据挖掘变量关系与物理机制模型物理一致性强的优点。替代的神经网络模型可在训练后耦合到物理机制模型中(离线模式),也可先与物理机制模型耦合再整体训练(在线模式)。离线模式下神经网络模型已训练后,运行时只需实现神经网络的前馈计算;在线模式下则需在深度学习框架下重写物理机制模型以实现自动微分,从而顺利完成深度神经网络和物理机制整合后模型的参数训练。值得注意的是,自动微分是一类用于自动计算函数导数的计算机程序技术[63]。在自动微分实现之前,需手动推导目标函数对自变量的导数计算公式,然后再编程实现,这给复杂的神经网络具体实现带来了很大困难;而自动微分将函数计算处理为导数表达式已知的基本运算组成的运算轨迹,然后依据链式法则即可完成梯度计算。
除了使用神经网络替代物理过程子模块外,利用神经网络学习模型参数也是一种耦合方式,称为参数学习[64]。在该方式下,首先构建神经网络模型挖掘输入数据和物理机制模型参数的关系,再利用学习到的模型参数进行计算,从而构建参数率定和模型计算一体的物理机制模型。参数学习必须以在线模式实现,因此必须在深度学习框架下重写物理机制模型。相比于传统的参数率定方式,借助深度学习梯度下降算法的并行实现,参数学习易扩展为并行计算,计算效率更优。另一方面,参数学习合并了输入与模型参数间映射关系构建和参数率定过程,能直接作为一种区域化方法。相比于传统参数区域化方法,基于大量流域和深度学习构建的模型参数空间可能具备更好的普适性,结合迁移学习更有潜力应用于无资料流域的水文预报。
3.1.2 学习物理机制模型预报误差
使用深度学习模型学习物理机制模型预报误差规律来改善预报能力,是物理机制与深度学习整合中较早出现的方式。流域水文模型发展多年,处于现有理论技术条件下的相对成熟阶段,误差校正是提高现有水文模型精度的有效方式[65]。目前误差校正方法大多基于误差自身统计规律进行修正,然而由于模型预报误差源自模型输入、结构、参数等多方面,规律十分复杂,企图通过误差数据自身分析找到规律,并进行校正的想法难以实现,需要探究误差产生的背后机制,通过有效考虑误差产生因素的时空动态信息,才能达到较好的误差校正效果。深度学习能有效考虑各类相关信息以帮助识别、理解误差模式及其产生的背后机制,从而帮助模型校正,并指导模型乃至理论的改进[19]。深度学习误差校正通常以物理机制模型预报误差作为模型训练目标,以影响误差的各类时空动态信息为输入构建神经网络模型,在学习误差规律后可在预测阶段用于对预报结果的校正。
3.2.1 指导深度学习模型损失函数设计
水文预报涉及多维时空变量及其相互间复杂关系,在数据受限的情况下直接利用标准深度学习模型可能无法找到通用规律[62]。损失函数是神经网络梯度下降算法的优化目标,通过将物理机制纳入损失函数,能够约束模型得到符合物理规律的输出,起到模型正则化作用。这种正则化有效缩小了参数搜索空间,为少样本下的深度学习提供可能,同时保障了遵循物理规律的深度学习模型有更好外延性[66]。常见的物理机制指导的损失函数构建方式包括基于物理方程的等式约束和利用变量单调性等的不等式约束:等式约束构建和损失计算一致,在违反等式条件时给予惩罚;不等式约束可以使用Re-LU等函数转换为具体损失值[67]。
3.2.2 指导深度学习模型参数初始化
深度学习模型训练前需要初始化,典型的做法是随机生成,但是不良的初始化对神经网络的训练不利,若加入物理机制指导模型初始化,能加速神经网络训练,提高样本利用效率[62,66]。典型的做法:利用输入数据驱动未率定的物理机制模型生成一系列样本,然后预训练深度学习模型,在此基础上利用真实输入输出数据进行训练[68];或先利用观测数据率定物理机制模型,再利用随机生成器等生成一系列随机数据输入物理机制模型获取模拟样本来预训练深度学习模型[69]。这类通过初始化帮助模型训练的方法和迁移学习相似。在迁移学习中,用有限训练数据进行微调以适应目标任务之前,先在一个拥有大样本数据的相关任务上预训练模型,再将该模型权值作为已包含相关信息的初始状态,从而获取比随机初始化更接近所需任务的理想参数[70]。因此,使用基于物理机制的模型模拟数据来预训练深度学习模型,能减少数据匮乏的影响,起到数据增强的效果。
3.2.3 指导深度学习模型结构设计
根据物理机制设计深度学习模型,将规则直接编码入神经网络是一类更直接的整合方式,能得到更具物理规则一致性结果,增强模型可解释性。构建这类新的深度学习模型结构,需要结合水文领域实际问题特点[62,66],比如水文模型中物理方程常以时序形式给出,可以直接根据模型表达式写出神经网络前向计算公式并嵌入到循环神经网络结构中作为模型循环基本单元[71]。因为标准深度学习模型只能利用高度复杂的连接结构提取抽象隐含变量,所以其可解释性有限,而这种在深度学习架构中添加物理方程,能得到有物理意义的变量,从而使模型具备可解释性。此外,水文学中典型的如系统整体质量守恒对应的水量平衡、能量守恒对应的热平衡等,如果能显式或隐式地将这些规律写入神经网络,那么深度学习模型会具有更好的外延性[72]。
近年来深度学习开启了新一轮水文数据驱动模型的研究热潮,本文概念性地介绍了水文预报中常用的卷积神经网络、长短记忆神经网络等深度学习模型,给出了模型相应的典型应用场景,并讨论了深度学习用于水文预报建模时的基本构建方法。由于水文预报研究人员不仅仅从技术层面关心模型预报性能,还关注深度学习模型结果的可解释性、外延性及物理一致性等,因此整合深度学习与基于物理机制模型的研究受到了越来越多的关注,本文按照物理机制模型中融入深度学习和物理机制指导的深度学习两种方式讨论了其基本方法,并指出了这类方法潜在的优点。本文初步归纳总结基于深度学习的水文预报涉及的基本概念与方法,可为了解近期深度学习水文预报研究进展提供充分背景知识。