A Comprehensive Review of Deep Learning Applications in Hydrology and Water Resources
深度学习在水文水资源中的应用综述
作者:Muhammed Sit, Bekir Z. Demiray, Zhongrun Xiang, Gregory J. Ewing, Yusuf Sermet, Ibrahim Demir
摘 要
在本文中,对文献进行了系统的回顾,以确定现有的研究,这些研究结合了水部门中有关水资源监测,管理,治理和交流的深度学习方法。该研究提供了对水行业中用于生成,预测,增强和分类任务的最新深度学习方法的全面回顾,并为如何利用可用的深度学习方法提供了指导未来的水资源挑战。讨论了这些技术在水领域应用中的关键问题和挑战,包括这些技术在水资源管理和治理中的决策伦理。最后,我们为深度学习模型在水文和水资源中的应用提供了建议和未来方向。
引 言
- 数据的不可访问、非结构化、非标准化和不兼容的性质使得优化的数据模型和更智能的分析方法成为必要
- 物理模型虽然是确定性的和可靠的,但由于其固有的局限性,并不总是能很好地执行和扩展
- 已采用统计模型来利用可用的水文,环境和地球物理数据的综合集合,它们在准确性和确定性方面显示出缺点,并且还需要过多的计算能力
人工智能和图形处理器单元(GPU)的最新发展为深度学习铺平了道路,深度学习是一种由多层人工神经网络推动的开创性方法。深度学习提供了一种黑盒方法,用于从复杂和高维数据中学习,以推断出稳健和可扩展的见解,同时最小化需要体力劳动的程度。将深度学习与其超集机器学习分开的一个特征是使用多层模型,其导致基础数据源的更高级表示。此外,深度学习能够在没有明确指示的情况下提取实质特征,并且因此对原始和有噪声的数据更加免疫。
审查方法
数据库:①Web of Science;②Scopus;③Springer Link;④Wiley Online Library;⑤The International Water Association Publishing Online
关键词:①深度神经网络"deep neural network";
②深度学习 "deep learning";
③长短期记忆网络 LSTM:"long short term memory";
④卷积神经网路CNN:“Convolutional Neural Network”;
⑤生成对抗网络 GAN:"Generative Adversarial Nets";
⑥循环神经网络 RNN:"Recurrent Neural Network";
⑦门控循环神经网GRU:"gated recurrent neural network";
- 体系结构-研究中采用的深度神经网络体系结构的类型。这可以是简单的人工神经网络(ANN,Artificial Neural Network)或更复杂的体系结构,例如生成对抗网络(GAN)或变分自编码器(VAE,Variational auto-encoder)。
- 子领域: 深度学习-本文涉及的机器学习任务的分类。该字段使用以下值之一: 回归,分类,序列预测,矩阵预测,无监督学习和强化学习。
- 子字段: 环境-在环境字段中执行的任务的分类。此字段使用以下值之一:洪水,地下水,土地使用和土壤,地表水,水质,水资源管理,天气等。
深度学习
深度学习是机器学习的一个子领域,其中使用众所周知的算法,人工神经网络 (ANN) 将特征映射到输出或一组输出中。由输入层,中间隐藏层和输出层形成,ann提供了一种学习输入和输出对之间的线性和非线性关系的有效方法。当由许多堆叠层形成神经网络时,可以通过使用由网络中的较早层形成的更简单的表示来表示后面层中的复杂特征 (Goodfellow等,2016)。ANN内的每一层至少包括神经元。ANN是这些神经元相互连接的网络,具有一些权重,这些神经元运行特定的功能,即激活功能,将其输入映射到输出。堆叠在一起,一系列功能在网络的输入上运行,将输入转换为输出层中的输出。通常,层中的每个神经元运行相同的激活功能,并且该层的类型由该激活功能确定。网络类型由所使用的层的组合以及层内和层之间神经元如何相互连接决定。人工神经网络的典型形式是多层感知器 (MLP)。MLP至少包含单个隐藏层,而网络中的每个神经元连接到下一层中的每个神经元。这种架构形成了一个完全连接的神经网络。
典型 MLP 中的激活函数将输入乘以权重并将其输出到下一个神经元。在现代神经网络中,常见的 (Goodfellow et al., 2016) 和推荐的 (Nair and Hinton, 2010) 激活函数是向网络引入非线性的线性整流函数 (ReLU) 。将 ReLU 应用于输入的隐藏层可以称为 ReLU 层或使用 ReLU 的激活层。 ANN 通常使用反向传播 (BP) 算法 (Rummelhart et al., 1986) 进行训练,以使用损失函数将网络拟合到一组输入-输出对。损失函数或成本函数用于确定模型完成映射的成功程度。一个简单且常用的损失函数是均方误差 (MSE),它计算每个输入-输出样本的 ANN 输出与地面实况之间的差异,对差异进行平方以避免负值并计算所有的平均误差样品。 BP 通过计算损失函数相对于神经元之间权重的梯度来使用损失函数训练 ANN,并更新权重以更好地拟合数据样本以最小化损失函数。
图1 一种紧密连接的人工神经网络体系结构
任务类型由网络的输出形式定义,不同的任务类型:
- 回归-预测连续值的机器学习任务。从一系列测量中预测下一个测量将是回归任务的一个例子。
- 分类-当模型的目标是预测输入集是否可以分类为某些类时,该任务就是分类任务。班级数量不受限制。预测第二天是干的还是湿的是一项分类任务。
- 序列预测-数值序列或向量的回归。预测流传感器的下一个24小时测量是一项序列预测任务。
- 矩阵预测-数值矩阵的回归。预测矩形区域的下一个降水测量值将是矩阵预测任务。预测矩阵中的每个值都是实际区域内子区域的降水值。
- 无监督学习-应用竞争学习而不是像以前的任务类型那样的纠错学习的学习任务。将高维水文输入数据的维度降低到低维可可视化数据将是一个例子。
- 强化学习-输出未指定的学习任务。在强化学习任务中,该算法尝试使用奖励/惩罚策略和尝试错误机制为任何给定输入找到最佳解决方案。强化学习任务的一个示例是AI模型,该模型学习何时从大坝中释放水。
体系结构
图2 一种用于图像分类的基本卷积神经网络结构
卷积神经网络
Convolutional Neural Networks (CNNs)
CNN (LeCun,1989) 或ConvNet包括至少一个卷积层,其在方法上期望3D张量作为输入。卷积层应用多个级联的卷积内核从输入中提取复杂的知识。例如,用于具有图像宽度x图像高度x 3的形状的RGB图像张量的CNN将具有卷积层,该卷积层将3个不同的卷积操作与3个单独的内核应用于每个颜色通道矩阵。使用卷积核矩阵,如此处理图像的卷积层可以从图像中提取2D位置信息,例如理解彼此接近的对象。
为了使具有卷积层的神经网络能够识别输入和输出之间的非线性相关性以及线性相关性,需要通过激活层将非线性引入网络。通常,这是通过使用线性整流函数 (relu) 作为卷积层之后的激活函数来完成的。CNN中使用的另一个公共层是池化层。池化层用于减小输入的大小,同时保持位置知识完整。CNN文献中经常使用的池化方法是最大池化 (Zhou和Chellappa,1988)。这种基于样本的离散化将学习到的最重要的特征移动到后续层,同时减小了大小。因此,cnn以图像或类似图像的对象作为输入,为深度学习任务提供了良好的体系结构。CNNs的这种能力为物体检测,超分辨率,图像分类和计算机视觉领域的各种突破提供了条件。
生成对抗网络
GAN
GANs (Goodfellow等人,2014) 由两个看似独立的cnn组成,它们一致工作,并在最小最大游戏中竞争。其中一个cnn,即生成器,旨在从数据集生成假示例,而另一个,鉴别器,旨在揭示其输入是否为假。由于他们试图互相击败,这使他们随着时间的推移在生成假输出和区分假与真方面变得更好。
GANs最初用作生成模型,如从数据集随机生成新样本,以在可视化时看起来好像它们来自原始数据集 (Gautam等,2020)。他们通过将随机噪声映射到给定数据集中的真实样本来实现这一目标,然后从新的随机噪声张量生成新的实例。尽管GANs在一代人中取得了成功,但它们也能够学习翻译任务,例如超分辨率 (Demiray等人,2020) 或图像到图像的翻译 (Isola等人,2017)。
图3 生成对抗网络概述
循环神经网络
Recurrent Neural Networks (RNNs)
Rnn (Pollack,1990) 是一种包括循环层的人工神经网络。循环层与规则的完全连接的隐藏层的区别在于,循环层内的神经元也可以相互连接。换句话说,神经元的输出既被传送到下一层内的神经元,又被传送到同一层内的下一个神经元。使用这种机制,rnn可以将神经元内学习的信息传递到同一层中的下一个神经元。
图4 循环层的连接
当要馈送到网络的数据是顺序性质的(例如时间序列数据或文本)时,此过程变得很方便。在像文本这样的数据样本上训练模型以提取含义时,大多数情况下,文本的开头可能会改变要从文本末尾提取的含义。 RNN 旨在将从数据样本的早期部分获得的信息保留在内存中,并将其移动到同一数据样本的后期部分,以确保更好的知识发现(Goodfellow et al., 2016)。一个简单的 RNN 实现在长序列(例如长段落)中缺乏实用性,因为在训练时经常遇到梯度消失问题(Bengio 等,1993)。由于梯度消失问题,损失函数的梯度在某些情况下会在训练过程中变得非常高,从而导致训练过程和训练的网络不足(Goodfellow 等人,2016 年)。更复杂的 RNN 实现,如长短期记忆 (LSTM) (Hochreiter 和 Schmidhuber, 1997) 网络或门控循环单元 (GRU) 网络 (Cho et al., 2014) 解决了这个问题,但计算复杂度更高。各种 RNN 结构可用于在某种程度上依赖于对数据集的顺序理解的任务,例如语言建模(Sundermeyer 等人,2012 年)、文本分类(Yin 等人,2017 年;Sit 等人,2019 年)和时间序列预测(Xiang 和 Demir,2020 年;Sit 和 Demir 2019 年)。
长短期记忆网络
Long Short-Term Memory (LSTM) Networks
LSTM (Hochreiter and Schmidhuber, 1997) 网络的开发是为了在输入上获得更长的短期记忆寿命,为对由序列样本组成的数据集进行更高效但资源密集型的训练铺平了道路。 LSTM 神经元不是产生一个输出并将输出传送到下一层和同一层中的直接神经元的激活函数,而是产生由一系列激活和操作产生的两个不同的值。虽然两个输出都保存在 LSTM 层中以跟踪在序列的过去部分中学到的东西,但其中一个输出被转移到下一层(图 5)。
图5 RNN、LSTM和GRU节点的计算比较
门控循环单位网络
Gated Recurrent Unit (GRU) Networks
尽管 LSTM 网络在大多数情况下解决了梯度消失问题,并帮助自然语言处理和时间序列预测领域取得了许多突破,但它们的时间复杂度却是一个缺点。 GRU (Cho et al., 2014) 网络降低了复杂性,同时保持功效不变。与简单的 RNN 神经元类似,GRU 神经元在经过一系列计算后仅产生一个输出,并使用相同的输出将学习到的重要特征传达给下一层和同一层内的下一个神经元。
图 6 具有两个输入和两个输出神经元的 Elman 网络架构
非线性自回归模型
Nonlinear Autoregressive (NAR) Models
NAR 模型不一定是神经网络模型,而是用于时间序列预测的模型,同时考虑时间序列中的当前和先前样本,以将输入序列映射到输出。 NAR 模型需要非线性函数(例如多项式函数或神经网络)来执行训练。如果使用神经网络,NAR 网络将根据它利用给定输入的顺序复杂性这一事实分类为 RNN。本研究中回顾的使用 NAR 的论文,因此在他们提出的模型中实现了神经网络作为函数。有许多 NAR 变体,由于本研究中使用它的论文的基数,值得一提的是非线性自回归外生模型 (NARX) (Lin et al., 1996)。 NARX 是一种利用外生输入的 RNN 实现,因此得名。
简单循环网络
Elman Network (ENN)
简单循环网络(simple recurrent networks,简称SRN)又称为Elman network
Elman网络 (Elman,1990) 是具有三层的又一RNN实现,只有一层是隐藏层。Elman网络的隐藏层连接到一组称为上下文单元的神经元。在网络上的第一次迭代之后的每次迭代中,隐藏层的状态被复制到上下文单元中。因此,用于数据流中的前一个样本的网络状态每次都保持在网络中,以便在下一次迭代中使用。由于这种机制像内存一样,因此Elman网络可以比常规ANN更好地对顺序数据集进行训练。
自动编码器
Autoencoders (AE)
自动编码器 (Rummelhart et al., 1985) 是用于降低数据集维数的神经网络。它们以无监督的方式实现,仅在其隐藏层神经元内生成数据集的表示,也称为潜在向量。为网络的输入和输出采用相同的一组值,AE 学习将数据集简化为表示状态,并另外学习如何从学习的表示中将数据样本重建为其原始形式。
图7 自动编码器网络的可视化
深度Q网络
Deep Q Networks (DQN)
DQN (Mnih等人,2013) 是一种强化学习算法,其中存在预定的奖励策略。DQN的工作方式类似于Q-Learning算法,该算法通过为代理和环境提供媒介来工作,并试图最大化代理通过其在环境中的操作获得的回报。DQN在推广方式上与传统的Q学习算法有所不同。换句话说,Q学习算法中的代理无法从以前没有看到的动作环境对中估计结果,而在DQN中,代理能够产生增强的动作。
受限玻尔兹曼机和深度信念网络
Restricted Boltzmann Machines (RBMs) and Deep Belief Networks (DBNs)
RBMs (Hinton,2002) 提出了两层随机生成模型,其形状为二部图。RBMs构成了深度信念网络 (DBN) (Hinton,2009) 的构建块,但它们也可以用作独立模型。RBMs最初用于无监督任务,它们还使用户能够通过在其他网络中实施分类和回归任务来解决它们。在本研究中回顾的采用RBMs的论文在RBMs之后跟随一组完全连接的层以执行分类任务的情况下使用它。与RBMs类似,由堆叠的RBMs形成的dbn也可以通过事先培训不受监督的方式来解决许多类型的任务。当RBMs彼此堆叠以形成DBN时,它们的二分连接会发生变化 (图8)。DBN的前两层仅具有双向连接,而其余层彼此具有单向连接。尽管RBMs可用于许多任务,但随着研究人员采用可以以相同方式使用的更新体系结构 (例如AE,DBNs和GANs),它们在机器学习领域的研究中的使用正在减少。
图8 RBM和DBN示例
极限学习机
Extreme Learning Machines (ELM)
极限学习机 (Huang et al., 2006) 是三层神经网络,其中从输入层连接到第二层的权重是随机的,连接到第三层的权重是经过训练的。 ELM 网络因非原创而受到批评(Wang 和 Wan,2008 年)。
文章总结
最常用的架构是 CNN 和 LSTM(图 9)。我们通过它们在矩阵预测和序列预测中的成功来解释这一方面,这些任务在水文建模中具有很高的重要性。一件令人困惑的事情是,尽管 LSTM 网络被大量使用,一种产生类似性能的架构,但 GRU 网络并没有在该领域找到重要用途。
图9 研究中描述的体系结构及其在评论论文中的应用
Keras是水领域中最常用的深度学习框架
图 13 审查论文中研究的机器学习任务类型的直方图
图 14 评论论文中研究的水域子域的直方图
图15 研究中描述的ML框架及其在评论论文中的使用
Paper | Network Type | Framework | Dataset | Open Source | Reproducible | DL Task | Water Field |
Moy de Vitry et al., 2019 | CNN | TensorFlow | Collected | Yes | Yes | Matrix Prediction | Flood |
Kratzert et al., 2019a | LSTM | PyTorch | Acquired | Yes | Yes | Sequence Prediction | Flood |
Kratzert et al., 2019b | LSTM | PyTorch | Existing | Yes | Yes | Regression | Flood |
Zuo et al., 2020 | LSTM | Matlab, TensorFlow | Acquired | Yes | Yes | Sequence Prediction | Flood |
Santos et al., 2020 | CNN | Keras | Existing | Yes | Yes | Matrix Prediction | Groundwater |
Mo et al., 2019a | CNN | PyTorch | Collected | Yes | Yes | Matrix Prediction | Groundwater |
Mo et al., 2019b | CNN | PyTorch | Collected | Yes | Yes | Matrix Prediction | Groundwater |
O'Neil et al., 2020 | CNN | TensorFlow | Acquired | Yes | Yes | Classification | Land Use and Soil |
Hamshaw et al., 2018 | RBM | MATLAB | Acquired | Yes | Yes | Classification | Water Quality |
Duo Zhang et al., 2018c | LSTM, NARX, ENN | Keras, TensorFlow | Collected | Yes | Yes | Regression | Water Resources Management |
Zhou et al., 2019 | ANN, CNN | PyTorch | Existing | Yes | Yes | Classification | Water Resources Management |
Jeppesen et al., 2019 | CNN | Keras, TensorFlow | Existing | Yes | Yes | Segmentation | Weather |
Weber et al., 2020 | CNN | TensorFlow | Acquired | Yes | Yes | Matrix Prediction | Weather |
水流和洪水
- 径流预测和洪水预测是降雨径流建模的主要任务。
- 由于降雨和径流都是时间序列数据,因此流量预测和洪水预测的常见网络是RNN,LSTM,NAR和ENN。
- 由于超参数优化是深度学习中的一个问题,一些研究集中在深度学习模型上应用额外的优化算法。
- 一些研究集中在数据预处理上,例如在深度学习模型之前分解降雨和径流。
- 其他研究集中在构建更复杂的深度学习体系结构上,例如自动编码器,编码器解码器和基于LSTM的定制层。
- 几项研究将物理模型与深度学习网络相结合。深度学习模型可用于提高物理模型的流量预测精度。深度学习模型可以用作物理模型或曲线的替代模型。
- 一些研究集中在洪水敏感性和洪水预测能力上。
- 借助CNNs,现在可以进行一些创新的洪水监测和预报项目。
地下和地下水
- 地下水研究的一种类型是地下水位或流量的估算。
- 更多的地下水研究采用时间序列的横截面并专注于二维地图。
- 在地下水研究中,其他深度学习应用之一是反演,例如识别地下水中的污染源。深度学习模型可以通过提高地下水动态预测和反演的计算效率来充当替代模型。
土地和土壤
- 一些研究人员还开发了基于目标的CNN,而不是传统的基于像素的CNN,以更好地识别土地利用和土地类型。
- 一些研究基于不同的研究目的专注于更具体的任务,例如识别农田,不透水的表面,湿地类型,水体类型和作物类型。
- 积雪是土地覆盖研究中的一项特殊研究,可以通过不同方法的深度学习模型来衡量。
- 其他与土地和土壤相关的研究包括地表温度、土壤盐度、随时间变化的植被动态,这些可以通过时间序列相关模型(如 LSTM)来完成。
地表水
- 水位预测对于水资源管理和保护自然环境至关重要。许多研究已经应用深度学习方法,例如LSTM和ANN,来预测一天到一年的水位。
- 除了水位或水流,水温的预测在学术界也受到了广泛关注。
水质
- 水质监测和预测是许多领域的重要操作,例如水资源管理和水处理。
水资源管理
- 城市供水系统对现代城市至关重要。水处理厂,废水处理厂和输送网络的有效运行需要对这些互连系统进行准确的建模。
- 除了预测废水水位或流量外,一些研究还旨在检测输送网络状况。
- 各种研究探索了深度学习动力建模在水和废水处理过程中的优势。
天气
- 降雨预报是气象学领域的重要任务之一
- 一些研究特别关注提高定量降水估计精度以及降水临近预报。由于降水的预测通常是一个时间序列问题,因此 LSTM 架构的使用在此任务中很常见。
- 深度学习方法可以用作统计降尺度方法,以提高任务的准确性。
- 在气象学和遥感中,云或云影检测在最近的文献中受到关注。
- 雷暴和台风是可能造成大规模破坏的极端自然灾害之一。一些研究侧重于预测那些危险的自然事件,以采取早期行动以最大程度地减少损害。
关键问题和挑战
- 深度学习使用数据集捕获非线性复杂表示,使其成为预测模型创建中可行且有效的选择。水领域的文献并没有广泛应用这一原则。我们将此归因于这样一个事实,即数据集在给定数据的数量方面不够广泛,也没有广泛的空间和/或时间覆盖。
- 水领域缺乏用于基准测试和方法开发的高质量,收集,整理,标记和发布的数据集。大多数研究都根据政府机构的需求从其获取数据集。
建议和结论
- 自动预测: 正如这篇综述所概述的那样,鉴于问题对机器学习的适用性,当前水文领域中的大多数深度学习应用都集中在众多参数 (例如水位,流量) 的预测上。将来,可以在机构和研究组织之间进行协调,以合作开发互补模型,从而产生可行和可靠的信息。这些模型可以通过实时数据流来维护和支持,从而构成决策系统和地理信息系统的未来。
- 已发布的数据集: 上一节强调了水领域缺乏深度学习就绪数据集。由于缺少许多数据集而引起的主要问题是,研究社区在构建更好的神经网络体系结构和将最新技术转移到下一次迭代方面没有建立在先前的工作之上。这一推论得到了以下事实的支持: 在本研究中回顾的与洪水有关的30篇论文中,只有少数使用先前策划的标记数据集。结果是发表了许多论文,这些论文以几乎相同的方法但使用不同的数据来完成相同的任务。这种缺失隐含地导致了该领域的冗余。我们相信,如果更多的研究专注于创建对研究人员开放的基准数据集,那么科学的累积性将得到满足,而水资源研究中的深度学习动力建模将在通用适用性方面走得更远。
- 人工智能即服务: 随着人工智能工具的普及和实用性的提高,计算机科学领域出现了一个新的研究领域。该领域的重点是开发通用和集中式web框架,这些框架可以轻松提供通过平台即服务 (PaaS) 系统开发定制AI解决方案的方法。这些系统在水文社区中具有巨大的潜力,因为它们使开发人员可以专注于设计和管理智能应用程序,而无需承担基础设施维护和计算资源调整的负担。它们可以提供直观的图形用户界面,通过将预定义模型和自定义模型与提供的数据集连接起来,从而允许开发水文深度学习应用程序。
- 边缘计算: 智能应用程序创建的主要推动力是一致且多样化的数据流量。但是,随着数据资源的频率和类型的扩展,简单地收集和分析数据的集中式方法对于多变量任务可能不可行。此外,与从分布式传感器传输大数据相关的成本并非微不足道,并且可能会阻止利益相关者增加传感器覆盖范围和数据报告间隔。作为一种解决方案,边缘计算为处理传感器上的数据提供了新的视角。关于通过边缘计算将深度学习用于物联网的广泛研究,这可以使水领域的利益相关者利用现有的或低成本的传感器网络创新新颖的应用程序。作为一个具体的例子,配备有摄像头的河流监测传感器可以采用深度学习来分析边缘上的图片,以检测河流上的任何异物 (例如树、人),并且仅将有用的信息传输到集中式系统。
- 智能助手:海量的环境和水文数据使得及时有效地提取所需知识变得具有挑战性。出于决策目的,通常需要手动分析综合原始数据。作为一种解决方案,智能助手充当支持语音的知识引擎,可以解释自然语言问题,应用类人推理,并从精选数据中提取所需的事实响应。这些助手可以集成到各种通信渠道中以便于访问,包括网络系统、消息应用程序(例如 Skype、Messenger、SMS)、个人助理(例如 Google Assistant、Apple Siri)、家庭自动化设备(例如 Google Home、Amazon Alexa)、增强和虚拟现实系统(例如 HoloLens、Magic Leap、Oculus Quest)和自动化工作流系统。语音通信和即时获取知识可以促进水文研究以及自然灾害的准备和响应(Sermet 和 Demir,2018a)。
- 虚拟和增强现实: 深度学习与虚拟和增强现实环境的结合提供了一个突出的研究领域,因为它的身临其境的性质,允许有效分析复杂的环境现象,这是不可行的在现实生活中协调。例如,深度学习可以在模仿人类行为的同时为现实的洪水模拟提供动力,以培训急救人员,帮助决策者并教育公众 (Sermet和Demir,2018b)。另一个用例可能是通过平视显示器和深度学习驱动的识别和决策支持应用程序 (Sermet和Demir,2020) 来指导可能需要专业知识 (诸如传感器维护、结构翻新和现场实验) 的现场人员。