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) 将特征映射到输出或一组输出中。由输入层,中间隐藏层和输出层形成,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 一种紧密连接的人工神经网络体系结构
任务类型由网络的输出形式定义,不同的任务类型:
图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 自动编码器网络的可视化
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 |