1. 引言
在当前水文系统的复杂动态中,气候变迁与人类活动的双重作用下,河川径流展现出高度非线性、非平稳及偏态性等特征,构成了时间序列分析的重大挑战,进而限制了径流预测精度的提升。因此,中长期径流预测作为水文预报领域的核心难题,持续吸引着研究者的关注。鉴于传统预测模型在环境适应性上的局限,探索新型预测模型成为了当务之急。
水文预报领域的方法论演进显著,从传统向现代智能技术转型,这一过程体现了对复杂水文现象理解的深化及技术手段的革新。过程驱动模型,根植于物理机制,虽理论严谨但需庞大数据支撑与精细参数调校,其普及应用面临诸多挑战[1]。相比之下,数据驱动模型在资料有限情境下展现出了独特优势,尤其随着计算机科学与人工智能技术的飞跃,数据驱动的智能预报方法已成为水文研究的新宠[2]-[4]。
回顾传统,上下游相关法与水文模型法曾是水文预报的两大支柱[5]。前者依赖经验关系预测,后者则构建物理模型深入剖析降雨与径流间的内在联系。然而,在信息技术浪潮的推动下,基于人工神经网络特别是lstm等深度学习模型的预报方法崭露头角[6]。lstm,作为rnn的先进变体,凭借其处理长序列数据的非凡能力,在降雨径流预测领域取得了显著成就[7]-[9],展现了强大的学习与预测潜力。然而,当前研究多聚焦于lstm模型的应用效果验证,对输入数据质量如何影响预报精度的深入探讨尚显不足,同时,超参数的优化配置也是影响模型性能的关键因素之一[10]-[12]。鉴于此,本文创新性地提出将麻雀搜索算法(ssa)引入lstm模型的超参数调优过程,旨在通过智能优化策略进一步提升模型预测的准确性与泛化能力。这一尝试不仅丰富了水文预报模型优化的技术手段,也为解决复杂水文系统预测问题提供了新的视角与思路。
2. 实验设计
2.1. 多层感知机(mlp)
2.1.1. mlp概念
多层感知机(mlp),作为一种经典的人工神经网络模型,其核心架构由层次分明、功能各异的层级组成,主要包括输入层、一个或多个隐藏层以及最终的输出层。如图1,这些层级之间通过密集的连接模式相互关联,确保了信息的全面流通与交互。在mlp网络中,每一层的节点(或称为神经元)都扮演着特定的角色。每个节点接收来自前一层节点的加权输入,并结合自身的偏置项,通过非线性激活函数的作用,输出处理后的信号至下一层。这一过程从输入层开始,逐层递进,直至输出层产生最终的预测或决策结果。
figure 1. multilayer perceptron neural network diagram
图1. 多层感知机神经网络图
2.1.2. mlp步骤
假设有m个样本n个特征则输入层
,假设多层感知机只有一个隐藏层,且设隐藏层有h个神经元,则隐藏层的权重及偏差可表示为
、
。输出的标签值有q个则输出层的权重及偏差参数分别为
、
。则隐藏层的输出和输出层的输出可以通过以下公式计算:
(1)
(2)
从公式中可以看出,后一层的输入就是前一层的输出,上式仅仅是对数据进行了线性变换,为了能使其达到分类的效果还要引入激活函数对每一层(输入层除外)进行非线性变换,常见的激活函数有:relu函数、sigmoid函数以及tanh函数,计算公式如下所示,
relu函数:
(3)
sigmoid函数:
(4)
将输出结果映射到0~1之间。
tanh函数:
(5)
将输出结果映射到−1和1之间。
设第l层(
)经过激活函数之前的输出为
,经过激活后的表示为
。
表示激活函数,则上一层激活后的输出为该层的输入,且该层激活之前的输出为:
(6)
(7)
基于mlp神经网络的回归问题的算法流程可以分为mlp神经网络构建、mlp神经网络训练和mlp神经网络预测3步,具体如图2所示。
figure 2. mlp algorithm steps
图2. mlp算法步骤
2.2. 长短期记忆网络方法(lstm)
2.2.1. lstm的提出
循环神经网络(rnn)作为一类强大的机器学习方法,专长于处理和分析时间序列数据。其核心特性在于其独特的网络结构,该结构包含一个具有自反馈连接的隐藏层,如图3,使得网络能够捕获并利用数据中的时序依赖关系,特别适用于解决那些涉及长期记忆依赖的任务。
figure 3. recurrent neural network architecture diagram
图3. 循环神经网络构架图
然而,尽管rnn在处理较短时间序列时表现良好,面对长序列数据时,往往会遇到训练上的挑战,即梯度消失(gradients vanish)和梯度爆炸(gradients explode)问题。这两个现象限制了rnn在捕获长距离依赖关系上的能力,影响了模型的学习效率和性能。为了克服这一局限性,长短期记忆网络(lstm)应运而生,作为rnn的一种高级变体,lstm在保留rnn基本架构的基础上,对隐藏层进行了重大改进。lstm通过引入更为复杂的内部单元结构——包括遗忘门、输入门和输出门——来有效管理信息流,实现了对长时间序列信息的更好保留和遗忘控制。这种设计显著提升了模型在处理长序列数据时的能力,减少了梯度问题的发生,使得lstm成为处理复杂时间序列任务的首选模型之一。
2.2.2. lstm的概念
lstm由遗忘门、输入门和输出门三部分组成。通过巧妙的结构设计,很好地解决了rnn对于较长的时间序列状态无法传递的问题。长短期记忆网络构架图如图4所示:
figure 4. architecture diagram of long short-term memory network
图4. 长短期记忆网络构架图
遗忘门:遗忘门的功能是判断应舍弃哪些信息。
(8)
输入门:输入门的功能是决定输入哪些信息。
(9)
(10)
输出门:输出门确定当前状态的输出
(11)
(12)
式中:σ为sigmoid函数,tanh为tanh函数,
、
、
、
均为权重矩阵,
、
、
、
均为偏置矩阵,
是当前状态的输出结果,
是当前状态的输入,
是当前的隐藏状态。
2.3. 麻雀搜索算法
2.3.1. ssa的概念
在深入探讨麻雀搜索算法(ssa)的模拟机制时,我们可将其核心思想精炼为对麻雀群体觅食行为的智能化模拟。该算法巧妙地将麻雀种群划分为三个功能性群体:引领者(即生产者)、追随者以及警戒者。引领者,作为觅食的先锋,负责探测并引领整个种群向食物资源丰富的区域移动,其角色类似于优化过程中的探索者,不断开拓新的解空间。追随者,则紧密跟随引领者的步伐,在觅食过程中保持对引领者的高度关注。一旦发现引领者发现了更优质的食物来源,追随者会迅速调整策略,放弃当前可能次优的食物,转而向引领者所在的方向靠拢,这种机制有效促进了种群内的信息共享与协同进化,类似于优化算法中的局部搜索与加速收敛过程。而警戒者,则扮演着种群安全守护者的角色。在环境相对平静时,它们可能在种群中自由移动,但一旦感知到潜在的危险信号,警戒者会立即启动应急响应,引导种群向安全区域转移,这一设计增强了算法的全局稳定性与鲁棒性,防止了优化过程因陷入局部困境或遭遇外部干扰而中断。在算法迭代过程中,这三类麻雀根据各自的行为规则不断更新其位置信息,通过不断的试错与调整,逐步逼近全局最优解。这一动态平衡与相互作用的机制,正是麻雀搜索算法能够在复杂优化问题中展现出强大性能的关键所在。生产者:
(13)
式中:
代表第t次迭代中第i只麻雀的第j维参数。
为最大迭代次数。α是属于(0, 1)的一个随机数,st、al分别表示安全阈值和报警值。q是一个服从正态分布的随机数。d为麻雀参数的最大维度,l为一个元素全为1的1 × d维矩阵。当al < st,表示周围没有捕食者,生产者进入广泛搜索模式。如果al ≥ st,表示一些麻雀已经发现了捕食者,所有麻雀都需要迅速转移到其他安全区域。
跟随者:
(14)
式中:n为当前麻雀种群的总数,
是当前种群占据最好位置麻雀的位置。
是当前种群占据最差位置麻雀的位置。a是一个满足
的1 × d矩阵,a中的元素随机取1或者−1。如果i大于n/2,则表示当前的麻雀位置不好,可能会挨饿,因此需要飞往更远的地方去觅食。如果i小于或等于n/2,说明当前麻雀位置尚可,只需向位置最好的麻雀靠近即可。
警戒者:
(15)
式中:
表示当前种群的中心位置,在其周围是安全的;β是补偿控制参数,服从标准正态分布。k是在[−1, 1]之间的随机数。ε是无穷小,防止分母为0。
是当前麻雀的适应度,
是种群处于最佳位置麻雀的适应度。
是种群处于最差位置麻雀的适应度。当
时,代表当前麻雀处于种群的边缘,极易受到攻击。当
时,表示处于种群中心的麻雀意识到危险,开始向其他麻雀移动,减少被捕食的风险。
2.3.2. ssa的特点
在深入探讨麻雀搜索算法(ssa)的优化性能与潜力时,我们不难发现该算法在复杂环境中的全局搜索优势尤为突出。通过精妙设计的参数调节机制与迭代优化流程,ssa有效规避了传统群智能优化算法易陷入局部最优的局限性。此外,其算法架构的简洁性与参数更新策略的独特性,共同促成了ssa在计算效率上的显著提升,使其在局部搜索区域内展现出非凡的精细探索能力。
鉴于此,本文旨在填补这一研究空白,创新性地将麻雀搜索算法引入至lstm (长短期记忆网络)模型的参数调优过程中。通过ssa的全局搜索与精细调整能力,期望能够进一步提升lstm模型在处理金融时间序列数据时的预测精度与泛化能力,从而为金融决策提供更加可靠的数据支持与分析工具。这一尝试不仅拓展了ssa的应用边界,也为金融时间序列分析领域带来了新的方法论启示。
2.4. ssa-lstm径流预测模型的建立
figure 5. ssa-lstm model framework
图5. ssa-lstm算法模型框架
ssa-lstm模型建立过程如图5所示,在构建针对径流数据预测的ssa-lstm模型时,我们聚焦于优化lstm网络中的关键超参数——隐藏层神经元数量与dropout层比率,以期通过麻雀搜索算法(ssa)提升模型的预测准确度。以下是优化与建模过程的精简与重述:
第一步:ssa优化lstm超参数
1. 初始化ssa参数
设定基本参数:明确麻雀总数、生产者、跟随者、警戒者的比例分配,以及迭代次数、初始位置参数和安全阈值(st),这些参数共同构成了ssa的搜索空间与搜索策略。
定义适应度函数:将模型的预测准确度作为适应度(fit)指标,其值域设定在[0, 1]之间,高值代表高预测精度。
2. 执行ssa迭代优化
角色分配:基于当前麻雀的适应度值,将麻雀群体划分为生产者、跟随者和警戒者三类,分别执行不同的搜索策略。
迭代更新:应用ssa的更新规则,使麻雀在解空间中移动,探索更优的lstm超参数组合。
终止条件:检查是否达到预设的迭代次数或满足其他停止准则,若满足,则输出最优的lstm超参数配置及其对应的适应度值。
第二步:构建与训练lstm模型
模型搭建:利用ssa优化得到的隐藏层神经元数量和dropout层比率,配置lstm网络结构。
模型训练:将准备好的径流数据划分为训练集和验证集,用于训练lstm模型并调整模型参数,直至达到满意的训练效果。
第三步:模型评估与预测
模型评估:采用平方绝对百分比误差(mape)、根均方误差(rmse)、平均绝对误差(mae)以及准确度作为评估指标,全面衡量模型在测试集上的预测性能。
预测应用:将训练好的lstm模型应用于实际径流数据的预测,验证其在实际场景中的有效性和可靠性。
通过上述步骤,我们成功地将ssa与lstm相结合,构建了一个针对径流数据预测的高效模型,实现了对lstm关键超参数的智能优化,进而提升了模型的预测准确度。
1) mape,即平均绝对百分比误差,作为一种广泛应用的预测性能评估指标,其核心优势在于其相对性的本质。该指标通过将平均绝对误差(mad)转化为百分比形式,有效消除了原始变量单位对误差评估的影响,使得不同规模或量纲的数据集之间能够直接进行预测准确性的比较。
(16)
2) 衡量观测值与真实值之间的偏差。常用来作为机器学习模型预测结果衡量的标准。值越小,预测结果越准确。
(17)
3) 平均绝对误差(mae)是衡量预测精度的一种关键指标,它计算的是每个观测值与样本均值之间偏差的绝对值的平均。这一计算方式的关键在于绝对值的应用,它确保了所有偏差(无论正负)都被同等对待,从而避免了正负偏差相互抵消的问题。
(18)
4) 准确度(r2)在线性模型和方差分析中的常用精度度量之一,代表了模型中因变量可由自变量解释的方差百分比。值越大,预测结果越准确。
(19)
式中:
为真实值,
为预测值,
为真实值的平均值。
3. 结果与分析
3.1. 数据处理
对径流数据进行预测,需要先将数据划分为训练集和预测集。用2016年1月1日到2021年6月30日的数据作为训练集,2021年7月1日到2022年11月30日的数据作为测试集。划分后的四个站点观测到的特拉华河在霍巴特的西分支、纽约霍巴特东南的小镇小溪、特拉华河西分支从德里上游和德里附近的小特拉华河数据如图6~9所示:
figure 6. daily runoff of the western branch of the delaware river in hobart
图6. 特拉华河在霍巴特的西分支日径流量
figure 7. daily runoff from a small town creek southeast of hobart, new york
图7. 纽约霍巴特东南的小镇小溪日径流量
figure 8. daily runoff of the west branch of the delaware river from upstream delhi
图8. 特拉华河西分支从德里上游日径流量
figure 9. daily runoff of the little delaware river near delhi
图9. 德里附近的小特拉华河日径流量
3.2. 模型预测结果
分别使用mlp模型、lstm模型、ssa-lstm模型对特拉华河在霍巴特的西分支、纽约霍巴特东南的小镇小溪、特拉华河西分支从德里上游和德里附近的小特拉华河的2021年7月1日到2022年11月30日的数据进行预测并对预测结果进行分析。
3.2.1. 特拉华河在霍巴特的西分支预测结果分析
由图10可以看出,三种模型的预测结果都比较好,但是具体哪种模型预测结果更好,还需要根据模型评价指标进行判断。模型评价指标的结果如表1所示。
figure 10. prediction results of daily runoff on the western branch of the delaware river in hobart
图10. 特拉华河在霍巴特的西分支日径流量预测结果
table 1. evaluation index of the prediction model of the western branch of the delaware river in hobart
表1. 特拉华河在霍巴特的西分支预测模型评价指标
模型 |
mlp |
lstm |
ssa-lstm |
平方绝对百分比误差(mape) |
0.042381 |
0.010797 |
0.001507 |
根均方误差(rmse) |
1.151425 |
0.447503 |
0.088885 |
平均绝对误差(mae) |
0.449397 |
0.156001 |
0.035638 |
准确度(r2) |
0.999037 |
0.999855 |
0.999994 |
由表1可以看出,对于特拉华河在霍巴特的西分支的径流量的预测,利用麻雀搜索算法优化后的lstm模型的预测性能和精度优于未被优化的lstm模型和mlp模型。具体来说,ssa-lstm模型的mape比mlp模型下降了96.444%,ssa-lstm模型的mape比lstm模型下降了86.044%;ssa-lstm模型的rmse比mlp模型下降了92.28%,ssa-lstm模型的mape比lstm模型下降了80.138%;ssa-lstm模型的mae比mlp模型下降了92.07%,ssa-lstm模型的mape比lstm模型下降了77.155%;ssa-lstm模型的r2比mlp模型上升了0.096%,ssa-lstm模型的mape比lstm模型上升了0.014%。
3.2.2. 纽约霍巴特东南的小镇小溪日径流量预测结果分析
由图11可以看出,三种模型的预测结果都比较好,但是具体哪种模型预测结果更好,还需要根据模型评价指标进行判断。模型评价指标的结果如表2所示:
table 2. evaluation index of the prediction model of small town creek in southeast hobart, new york
表2. 纽约霍巴特东南的小镇小溪预测模型评价指标
模型 |
mlp |
lstm |
ssa-lstm |
平方绝对百分比误差(mape) |
0.054105 |
0.032862 |
0.008037 |
根均方误差(rmse) |
0.555034 |
0.320865 |
0.194789 |
续表
平均绝对误差(mae) |
0.395558 |
0.172417 |
0.086913 |
准确度(r2) |
0.999813 |
0.999938 |
0.999977 |
figure 11. prediction results for daily runoff in a small town southeast of hobart, new york
图11. 纽约霍巴特东南的小镇小溪日径流量预测结果
由表2可以看出,对于纽约霍巴特东南的小镇小溪的径流量的预测,利用麻雀搜索算法优化后的lstm模型的预测性能和精度优于未被优化的lstm模型和mlp模型。具体来说,ssa-lstm模型的mape比mlp模型下降了85.146%,ssa-lstm模型的mape比lstm模型下降了75.544%;ssa-lstm模型的rmse比mlp模型下降了64.905%,ssa-lstm模型的mape比lstm模型下降了39.293%;ssa-lstm模型的mae比mlp模型下降了78.028%,ssa-lstm模型的mape比lstm模型下降了49.591%;ssa-lstm模型的r2比mlp模型上升了0.016%,ssa-lstm模型的mape比lstm模型上升了0.004%。
3.2.3. 特拉华河西分支从德里上游日径流量预测结果分析
由图12可以看出,三种模型的预测结果都比较好,但是具体哪种模型预测结果更好,还需要根据模型评价指标进行判断。模型评价指标的结果如表3所示:
table 3. west delaware branch prediction model evaluation index from upper delhi
表3. 特拉华河西分支从德里上游预测模型评价指标
模型 |
mlp |
lstm |
ssa-lstm |
平方绝对百分比误差(mape) |
0.004056 |
0.012831 |
0.006423 |
根均方误差(rmse) |
21.71447 |
3.947763 |
1.062179 |
平均绝对误差(mae) |
1.964047 |
1.164691 |
0.403194 |
准确度(r2) |
0.996421 |
0.999882 |
0.999991 |
由表3可以看出,对于特拉华河西分支从德里上游的径流量的预测,利用麻雀搜索算法优化后的lstm模型的预测性能和精度优于未被优化的lstm模型和mlp模型。具体来说,ssa-lstm模型的mape比mlp模型上升了58.376%,ssa-lstm模型的mape比lstm模型下降了49.941%;ssa-lstm模型的rmse比mlp模型下降了95.108%,ssa-lstm模型的mape比lstm模型下降了73.094%;ssa-lstm模型的mae比mlp模型下降了79.471%,ssa-lstm模型的mape比lstm模型下降了65.382%;ssa-lstm模型的r2比mlp模型上升了0.358%,ssa-lstm模型的mape比lstm模型上升了0.011%,虽然ssa-lstm模型的mape大于mlp模型的mape,但是ssa-lstm模型的rmse、mape、r2指标都优于mlp模型的指标。
figure 12. prediction results of daily runoff from the west branch of the delaware river from upstream delhi
图12. 特拉华河西分支从德里上游日径流量预测结果
3.2.4. 德里附近的小特拉华河日径流量预测结果分析
figure 13. prediction results of the daily runoff of the little delaware river near delhi
图13. 德里附近的小特拉华河日径流量预测结果
由图13可以看出,三种模型的预测结果都比较好,但是具体哪种模型预测结果更好,还需要根据模型评价指标进行判断。模型评价指标的结果如表4所示:
table 4. evaluation index of the prediction model of the little delaware river near delhi
表4. 德里附近的小特拉华河预测模型评价指标
模型 |
mlp |
lstm |
ssa-lstm |
平方绝对百分比误差(mape) |
0.047030 |
0.011646 |
0.003068 |
根均方误差(rmse) |
7.275444 |
1.047513 |
0.195837 |
平均绝对误差(mae) |
1.697268 |
0.386523 |
0.154581 |
准确度(r2) |
0.996018 |
0.999917 |
0.999997 |
由表4可以看出,对于德里附近的小特拉华河的径流量的预测,利用麻雀搜索算法优化后的lstm模型的预测性能和精度优于未被优化的lstm模型和mlp模型。具体来说,ssa-lstm模型的mape比mlp模型下降了93.477%,ssa-lstm模型的mape比lstm模型下降了73.657%;ssa-lstm模型的rmse比mlp模型下降了97.308%,ssa-lstm模型的mape比lstm模型下降了81.305%;ssa-lstm模型的mae比mlp模型下降了90.892%,ssa-lstm模型的mape比lstm模型下降了60.007%;ssa-lstm模型的r2比mlp模型上升了0.399%,ssa-lstm模型的mape比lstm模型上升了0.008%。
4. 结论
本文提出一种基于麻雀搜索算法–长短期记忆神经网络的组合模型(ssa-lstm)的日径流时间序列预测方法。利用麻雀搜索算法对lstm隐藏层中神经元的个数、dropout层的丢弃率超参数进行迭代寻优,克服了人工选取超参数的随机性和不确定性对模型的影响。对于特拉华河在霍巴特的西分支、纽约霍巴特东南的小镇小溪、特拉华河西分支从德里上游和德里附近的小特拉华河的日径流,基于ssa-lstm模型的预测准确率分别为99.9994%、99.9977%、99.9991%、99.9997%,相较于lstm模型,分别提升了0.014%、0.004%、0.011%、0.008%。该模型其他指标平方绝对百分比误差(mape)、根均方误差(rmse)、平均绝对误差(mae)相较于对照模型也有明显下降。研究表明,利用ssa-lstm模型预测日径流量具有良好的准确性,可以为日径流量的预测提供依据。
notes
*通讯作者。