Research on water quality dissolved oxygen prediction method based on ESSA-LSTM for aquaculture ships
-
摘要:
为了准确预测水质参数中的溶氧量,采用长短时记忆网络 (Long Short-Term Memory, LSTM) 模型,提出一种增强型麻雀搜索算法 (Enhance Sparrow Search Algorithm, ESSA) 以改进预测率的精确性。该算法引入了Circle混沌映射进行种群初始化,并结合正弦余弦算法和Levy飞行策略分别对侦察者、跟踪者的位置进行更新,以促使麻雀个体能够快速跳出局部最优解。首先将ESSA与多种其他算法进行多形态基准函数对比测试,结果表明该算法在多个基准函数上展现出出色的性能和鲁棒性;随后将其应用于LSTM模型参数寻优,并与其他优化算法进行比较,结果显示基于ESSA-LSTM模型的预测率达到99.071%,相较于基本麻雀搜索算法 (Sparrow Search Algorithm, SSA)、灰狼优化算法 (Grey Wolf Optimizer, GWO)、海洋捕食算法 (Marine Predators Algorithm, MPA)、鲸鱼算法 (Whale Optimization Algorithm, WOA) 分别提升了2.142%、6.653%、6.682%、7.714%。研究表明,使用ESSA显著提高了溶解氧预测率,并有效减少了参数设置的盲目性和时间成本。
Abstract:In order to accurately predict the dissolved oxygen content in water quality parameters, we adopted a Long Short Term Memory (LSTM) model, and proposed an Enhanced Sparrow Search Algorithm (ESSA) to improve the accuracy of the prediction rate. Besides, to prompt individual sparrows to swiftly depart from the local optimal solution, the algorithm introduced Circle chaotic mapping for population initialization, and integrated sine-cosine algorithm and Levy flight strategy to update the positions of scouts and trackers, respectively. Firstly, we compared ESSA with various other algorithms for multi form benchmark function testing, and the results reveal that the algorithm exhibited excellent performance and robustness on multiple benchmark functions. Subsequently, we used ESSA to explore LSTM model parameters and compared it with other optimization strategies, and the results show that the prediction rate based on ESSA-LSTM model reached 99.071%, which was improved by 2.142%, 6.653%, 6.682% and 7.714% compared with basic Sparrow Search Algorithm (SSA), Gray Wolf Optimization Algorithm (GWO), Marine Predation Algorithm (MPA), and Whale Optimization Algorithm (WOA), respectively. The results show that the use of ESSA significantly improves the prediction rate of dissolved oxygen (DO) and effectively reduces the blindness and time cost of parameter settings.
-
随着水产养殖业的迅速发展和养殖规模的不断扩大,精准预测和监测水质参数对于保障养殖效益[1]和生物健康变得至关重要。然而,现今水产养殖业面临着许多挑战,维持良好的水质环境便是其中之一。在养殖系统中,溶解氧[2]是一个非常重要的水质参数,溶解氧不足可能导致鱼类窒息、生长受限甚至死亡。传统的溶解氧测量方法需要采集水样在实验室进行分析,这种方法耗时久、成本高,且无法提供实时监测数据。随着养殖方式向深远海[3]养殖工船发展,对养殖水质的要求日趋严格,溶解氧的精准预测变得越来越重要。近年来,大数据和机器学习技术[4]为溶解氧预测提供了新的解决方案,可以利用历史监测数据和水质参数建立预测模型,准确预测溶解氧浓度。这些模型可以基于气象、水质、养殖方式和其他相关因素进行训练,能及时响应环境变化和养殖条件调整,以维持良好的水质环境,从而促进鱼类健康生长。
精准预测溶解氧对水产养殖意义重大。近年来,国内外学者对水质预测进行了广泛研究,并对提高预测精度的方法作了改进。沈时宇和陈明[5]采用一种Prophet时序模型的方法来提高水质预测精度,但该方法存在模型训练欠拟合缺陷。Ren等[6]选择基于深度信念网络的溶解氧预测模型,成功实现了溶解氧含量预测。Cao等[7]提出了基于K均值聚类和GRU (Gate Recurrent Unit) 神经网络的池塘养殖溶解氧预测模型,该方法虽然提高了预测精度,但GRU神经网络仍无法完全解决梯度消失问题,且随着数据量和模型规模的增加,效果不理想。此外,研究者还探索了其他方法。宦娟等[8]提出了一种基于集合经验模态分解、游程检测法重构、适宜的单项预测算法建模和BP神经网络非线性叠加的组合预测模型,但在高频分量波动较大的情况下,该算法参数难以确定,预测效果不佳。林彬彬等[9]提出基于麻雀搜索算法 (Sparrow Search Algorithm, SSA)[10-11]和长短期记忆神经网络 (Long Short-Term Memory, LSTM) [12]的黄鳝 (Monopterus albus) 池塘溶解氧浓度预测模型,该模型具有良好的准确性和鲁棒性,但仍存在局部最优解问题,导致模型参数的准确性不高,进而降低了预测的准确性。
当考虑到模型参数的后期优化时,通常会使用算法代替人工参数设置。为解决这一问题,本研究采用了两种启发式算法—麻雀搜索算法和海洋捕食算法 (Marine Predators Algorithm, MPA)[13],以及两种群体智能算法—灰狼优化算法 (Grey Wolf Optimizer, GWO) [14]和鲸鱼算法 (Whale Optimization Algorithm, WOA)[15]。这些算法在全局搜索和多模态问题的处理上均表现出色,并且在不同领域有成功的应用。基于这些算法的特点及其在应用领域的成功案例[16-19],本文比较了这些算法在LSTM模型中进行参数优化的效果,并通过优化模型参数实现既定目标。
为了提高溶解氧参数预测的准确性,本文提出了一种增强型麻雀搜索算法 (Enhance Sparrow Search Algorithm, ESSA) 用于优化LSTM模型参数,更好地调整模型的结构和初始状态,以满足溶解氧参数的预测需求,从而提高预测结果的精确度。
1. 材料与方法
1.1 数据来源
本文用于验证模型的数据来源于某养殖工船,其相关信息为:全长249.9 m,型宽14 m,型深21.5 m,排水量130 000 t,航速10.6 kn,养殖水体90 000 m3,单舱水体6 000 m3,定员3人,年产量370 t,总投资4.5亿元。该工船在福建宁德海域养殖大黄鱼 (Larimichthys crocea),传感器布置于鱼舱内深度14 m处,采集数据开始时间为2023-04-11 00:05:00,结束时间为2023-04-24 00:00:00。采集数据的步长为5 min。一共有3 745组数据。选取MPS-400多参数传感器进行数据采集,该传感器具有自清洗、多参数测量、信号输出协议为Modbus特点,安装传感器的方式为投入式。采集pH、温度 (℃)、盐度 (‰)、溶解氧 (mg·L−1) 4类参数。本文中水质预测目标为溶氧,水质特征变量为pH、温度、盐度。表1为养殖水质参数溶解氧的原始数据,图1、图2分别为养殖工船场景和原始数据溶解氧的变化曲线。
表 1 养殖水质原始数据表Table 1. Raw data sheet for aquaculture water quality时间
TimepH 盐度
Salinity/‰温度
Temperature/℃溶解氧
DO/(mg·L−1)2023-04-11 00:05:00 7.86 36.099 998 20.114 88 9.119 555 2023-04-11 01:05:00 7.84 35.900 002 20.127 55 9.047 465 2023-04-11 02:05:00 7.84 36.200 001 20.123 21 8.998 263 ··· ··· ··· ··· ··· 2023-04-23 22:05:00 7.69 34.200 001 22.060 74 6.736 285 2023-04-23 23:05:00 7.67 34.200 001 22.063 86 6.419 692 2023-04-24 00:00:00 7.67 34.299 999 22.083 02 6.358 287 1.2 研究方法
1.2.1 数据处理
1) 数据预处理。采集的数据,可能会因数据传输异常等导致丢失,需要对数据作预处理,对缺失的数值需要通过线性插值进行填补,公式如下:
$$ {x}_{k}{\text{=}}{x}_{f}{\text{+}}({x}_{b}-{x}_{f})(k-f)/(b-k) $$ (1) 式中:
$ {x}_{k} $ 表示需要填补的值;$ {x}_{f} $ 表示前一个非缺失数据点的值;$ {x}_{b} $ 表示后一个非缺失数据点的值;f 和$ b $ 分别表示前后非缺失数据点的索引。数据归一化[20]是将不同特征的数据按照一定规则进行缩放,以消除特征之间的量纲差异,使得不同特征具有相同的尺度。本文使用Min-Max归一化的具体表达式如下:
$$ \begin{array}{c} {x}_{{\rm{nor}}}{\text{=}}\dfrac{{x}_{i}{\text{−}}{x}_{{\rm{min}}}}{{x}_{{\rm{max}}}{\text{−}}{x}_{{\rm{min}}}} \end{array} $$ (2) 式中:
$ {x}_{\mathrm{m}\mathrm{a}\mathrm{x}} $ 表示样本数据最大值;$ {x}_{\mathrm{m}\mathrm{i}\mathrm{n}} $ 表示样本数据最小值;$ {x}_{i} $ 表示样本数据中的第$ i $ 个数据;$ {x}_{\mathrm{n}\mathrm{o}\mathrm{r}} $ 表示归一化后的数据。在经过归一化的训练和测试后,为了得到真实的预测结果,需要对预测值进行反归一化,将其重新映射回原始数据的范围。2) 数据集的划分。首先将采集到的数据划分为训练集和测试集,本实验是将前12 d的数据作为训练集,最后1 d的数据作为测试集。使用训练集来训练模型,使用测试集评估模型在未见过的数据上的性能。
1.2.2 长短时记忆网络
为了有效捕捉具有长期依赖关系的序列数据,如连续时间上测得的溶解氧参数,传统的神经网络模型往往无法提供令人满意的结果。为解决该问题,长短时记忆网络被引入并广泛应用。LSTM是一种特殊的循环神经网络 (Recurrent Neural Network, RNN)[21],专门设计用于处理序列数据。LSTM与其他神经网络模型之间的区别在于独特的内部单元结构 (图3)。
图3中,f、
$ i $ 、$ {o} $ 分别表示遗忘门、输入门、输出门;$ \sigma $ 表示全连接层。$ {x}_{t} $ 是t时刻的输入,$ {c}_{t-1} $ 和$ {c}_{t} $ 分别表示上一时刻和这一时刻的输出,$ {\tilde{c}}_{t} $ 为t时刻候选记忆细胞的信息,$ {h}_{t-1}{\mathrm{、}h}_{t} $ 分别表示为上一时刻和这一时刻隐藏状态的信息,tanh为激活函数。3个门的更新计算公式为:
$$ f\left(x\right){\text{=}}\sigma (Wx+b) , \sigma \left(x\right){\text{=}}\frac{1}{1{\text{+}}{\mathrm{e}}^{{\text{−}}x}} $$ (3) 式中:
$ W$ 和 b 分别表示网络的权重矩阵和偏置向量;$ \sigma \left(x\right) $ 是Sigmoid激励函数,为平滑的阶梯函数。它可以将任何值转化为0~1,此函数的输出介于0~1,代表具体有多少信息能够流过Sigmoid层,0表示不能通过,1表示能全部通过。1.2.3 ESSA-LSTM预测模型
水质参数溶解氧受多种因素的影响,由于数据采集于养殖工船,其空间特征是一定的,因此本文仅考虑水质中的pH、温度、盐度对溶解氧的影响。为了更好地预测溶解氧,引入长短时记忆网络,并针对该网络模型中存在的参数问题引入增强型麻雀搜索算法进行改进。在基本的LSTM模型中,权重和偏置是通过矩阵乘法和加法来更新的,而在本文使用的LSTM模型中,参数的更新是通过训练过程中的反向传播和优化算法来实现。增强型麻雀搜索算法优化LSTM模型结构如图4所示,模型流程如图5所示。
在LSTM模型中,隐藏层神经元个数是影响模型性能关键性的超参数。本文在LSTM模型的训练模型中引入了Adam (Adaptive Moment Estimation) 梯度下降[22]算法,为此,该算法的初始化学习速率也成为影响模型性能的关键。通过采用增强型麻雀搜索算法,来确定隐藏层的神经元个数和初始化学习速率。具体步骤如下:
1) 初始化参数,将数据进行归一化处理,并且将数据分为训练集和测试集。
2) 确定LSTM模型的拓扑结构。
3) 通过增强型麻雀搜索算法对LSTM模型参数进行优化。
4) 利用优化后的参数建立LSTM模型和训练神经网络模型。
5) 将训练集和测试集数据来对建立好的模型进行实验和验证,并通过模型评价指标来评价模型的预测效果。
1.2.4 模型评价标准
通过平均绝对误差 (Mean Absolute Error, MAE)、平均绝对百分比误差 (Mean Absolute Percentage Error, MAPE)、均方根绝对误差 (Root Mean Square Error, RMSE)和决定系数 (Coefficient of Determination,又称R2值) 对各个模型的预测效果进行评判其表达式如式 (4)、 (5)、 (6) 和 (7) 所示:
$$ \mathrm{M}\mathrm{A}\mathrm{E}{\text{=}}\frac{\sum _{i{\text{=}}1}^{n}\left|{y}_{i}{\text{−}}{x}_{i}\right|}{n} $$ (4) $$ \mathrm{M}\mathrm{A}\mathrm{P}\mathrm{E}{\text{=}}\frac{1}{n}\sum _{i{\text{=}}1}^{n}\left|\frac{{y}_{i}{\text{−}}{x}_{i}}{{y}_{i}}\right| \times 100\mathrm{\%}$$ (5) $$ \mathrm{R}\mathrm{M}\mathrm{S}\mathrm{E}{\text{=}}\sqrt{\frac{\sum _{i{\text{=}}1}^{n}{\left({y}_{i}{\text{−}}{x}_{i}\right)}^{2}}{n}} $$ (6) $$ {R}^{2}{\text{=}}1-\frac{\sum _{i{\text{=}}1}^{n}{({y}_{i}{\text{−}}{x}_{i})}^{2}}{\sum _{i{\text{=}}1}^{n}{({y}_{i}{\text{−}}\overline{y})}^{2}} $$ (7) 式中:
$ {y}_{{i}} $ 表示实际值;$ {x}_{{i}} $ 表示预测值;$ \overline{y} $ 表示实际值的平均值;$ n $ 表示样本个数。当MAE、MAPE和RMSE越小时,所建模型的预测效果越好;$ {R}^{2} $ 值越接近1,表明模型对数据的拟合程度越高。1.2.5 基本麻雀搜索算法
在麻雀[23-26]捕食过程中,分为侦察者和跟踪者两个群体。侦察者负责在整个区域进行觅食和引导跟踪者觅食的方向,而跟踪者负责追随侦察者进行觅食。当危险来临时,麻雀种群会做出反捕食行为。
在每次迭代的过程中,侦察者的位置更新如下:
$$ {X}_{i,j}^{t+1}{\text{=}}\left\{\begin{array}{l}{\mathrm{X}}_{i,j}^{t}\cdot {\rm{exp}}\left(\frac{{\text{−}}i}{\alpha \cdot {{\rm{iter}}}_{{\rm{max}}}}\right)\quad {\rm{if}}\;\;{R}_{2} < {\rm{ST}}\\ {\mathrm{X}}_{i,j}^{t}{\text{+}}Q\cdot L\quad \quad \quad \quad {\rm{if}}\;\;{R}_{2}\geqslant {\rm{ST}}\end{array}\right. $$ (8) 式中:
$ t $ 表示迭代的次数;$ {\mathrm{X}}_{i,j}^{t} $ 表示迭代 t 次时第$ i $ 只麻雀的第$ j $ 维数的值;$ {\mathrm{X}}_{i,j}^{t+1} $ 表示迭代$ t+1 $ 次时第$ i $ 只麻雀的第$ j $ 维数的值;$ {{\rm{iter}}}_{\mathrm{m}\mathrm{a}\mathrm{x}} $ 表示迭代次数最多的一个常数;$ \alpha $ 为介于0~1的一个随机数;$ {R}_{2} $ 表示报警值,范围在$ 0 $ ~1;ST表示安全阈值,范围在0.5~1;Q是一个服从正态分布的随机数;L表示1$ \times d $ 的矩阵,其中,d矩阵的元素全为1。跟踪者的位置更新如下:
$$ {X}_{i,j}^{t+1}{\text{=}}\left\{\begin{array}{l}Q\cdot {\rm{exp}}\left(\frac{{X}_{{\rm{worst}}}^{t}{\text{−}}{X}_{i,j}^{t}}{{i}^{2}}\right)\qquad \quad \quad {\rm{if}}\;\;i > n/2\\ {X}_{P}^{t{\text{+}}1}{\text{+}}\mid {X}_{i,j}^{t}{\text{−}}{X}_{P}^{t{\text{+}}1}\mid {A}^{\text{+}}L\quad \quad {\rm{otherwise}}\end{array}\right. $$ (9) 式中:
$ Q $ 是一个服从正态分布的随机数;$ {X}_{p} $ 表示侦察者处于一个最佳的位置;$ {X}_{P}^{t+1} $ 是在迭代$ t+1 $ 时点上的全局最优解;而$ {X}_{{\rm{worst}}}^{t} $ 表示当前处于全局最差的位置;A是一个1$ \times d $ 的矩阵,里面的元素随机分配为1或−1,并且满足$ {A}^{+}{\text{=}}{A}^{T}(A{A}^{T}{)}^{-1} $ ;$ n $ 代表麻雀的数量,当$ i > n/2 $ 表示适应值比较差的第i个跟踪者觅食能力低,捕获的食物比较少;$ \mathrm{o}\mathrm{t}\mathrm{h}\mathrm{e}\mathrm{r}\mathrm{w}\mathrm{i}\mathrm{s}\mathrm{e} $ 代表其他情况。当危险来临时,麻雀会做出预警行为,其预警者位置更新如下:
$$ {X}_{i,j}^{t+1}{\text{=}}\left\{\begin{array}{l}{X}_{\mathrm{b}\mathrm{e}\mathrm{s}\mathrm{t}}^{t}{\text{+}}\beta \mid {X}_{i,j}^{t}{\text{−}}{X}_{\mathrm{b}\mathrm{e}\mathrm{s}\mathrm{t}}^{t}\mid \quad {\rm{if}}\;\; {f}_{i} > {f}_{g}\\ {X}_{i,j}^{t}{\text{+}}K\cdot \left(\dfrac{\left|{X}_{i,j}^{t}{\text{−}}{X}_{{\rm{wotst}}}^{t}\right|}{({f}_{i}{\text{−}}{f}_{w}){\text{+}}\epsilon }\right)\quad {\rm{if}}\;\;{f}_{i}\;{\text{=}}\;{f}_{g}\end{array}\right. $$ (10) 式中:
$ \beta $ 表示步长控制参数,是一个均值为0、方差为1的正态随机分布;$ K\mathrm{是}\mathrm{一}\mathrm{个} $ 随机数,其范围是 −1~1,表示麻雀移动方向的步长控制系数;$ {f}_{i} $ 表示当前麻雀的适应值;$ {f}_{g} $ 则是当前全局的最佳适应值;$ {f}_{w} $ 表示当前全局的最差适应值;$ \epsilon $ 是一个极小的常数,避免分母出现0的情况。1.2.6 增强型麻雀搜索算法
1.2.6.1 Circle混沌映射初始化种群
混沌映射[27]是指在非线性系统中产生混沌行为的一种数学映射,常见的混沌映射方法有Logistic混沌映射、Henon混沌映射、Tent混沌映射和Circle混沌映射,不同的混沌映射有其自身的特点,由于Circle混沌[23]算法易于实现,且具有周期性和可控性,其表达式如下:
$$ {x}_{i+1}{\text{=}}{\rm{mod}}\left[{x}_{i}{\text{+}}0.2{\text{−}}\frac{0.5}{2\pi }\mathrm{s}\mathrm{i}\mathrm{n}\left(2\pi {x}_{i}\right),1\right] $$ (11) 式中:
$ {\rm{mod}} $ 代表取余;$ {x}_{i} $ 表示当前迭代的值;$ {x}_{i+1} $ 表示下一个步骤迭代的值。基本的SSA算法是采用随机生成的方式来初始化种群,这就导致了分布不均匀的问题,为此,可以使用Circle混沌映射的方式来初始化种群。1.2.6.2 正弦余弦算法对侦察者位置优化
麻雀搜索算法中侦察者位置更新主要依赖于个体之间的位置调整和信息共享,这也就导致了侦察者无法探索整个搜索空间,难以跳出局部最优解。针对该问题,引入了正弦余弦算法[28]对麻雀搜索算法中的侦察者位置进行更新,在该算法中,加入了非线性正弦学习因子如公式 (12) 所示,优化后的侦察者位置如公式 (13) 所示:
$$ \omega {\text{=}}{\omega }_{\mathrm{m}\mathrm{i}\mathrm{n}}{\text{+}}({\omega }_{\mathrm{m}\mathrm{a}\mathrm{x}}{\text{−}}{\omega }_{\mathrm{m}\mathrm{i}\mathrm{n}})\cdot \mathrm{s}\mathrm{i}\mathrm{n}({t}\pi /{{\rm{iter}}}_{\mathrm{m}\mathrm{a}\mathrm{x}}) $$ (12) $$ \begin{array}{c} {X}_{i,j}^{t+1}{\text{=}}\\ \left\{\begin{array}{ll}(1{\text{−}}\omega )\cdot {X}_{i,j}^{t}{\text{+}}\omega \cdot \mathrm{s}\mathrm{i}\mathrm{n}\left({r}_{1}\right)\cdot \mid {r}_{2}\cdot {X}_{{\rm{best}}}{\text{−}}{X}_{i,j}^{t}\mid ,& {R}_{2} < {\rm{ST}}\\ (1{\text{−}}\omega )\cdot {X}_{i,j}^{t}{\text{+}}\omega \cdot \mathrm{c}\mathrm{o}\mathrm{s}\left({r}_{1}\right)\cdot \mid {r}_{2}\cdot {X}_{{\rm{best}}}{\text{−}}{X}_{i,j}^{t}\mid , & {R}_{2}\geqslant {\rm{ST}}\end{array} \right. \end{array}$$ (13) 式中:
$ {\omega }_{\mathrm{m}\mathrm{i}\mathrm{n}}$ 和${\omega }_{\mathrm{m}\mathrm{a}\mathrm{x}} $ 表示惯性权重的最小和最大值;$ \omega $ 表示适应权重值;$ {{\rm{iter}}}_{\mathrm{m}\mathrm{a}\mathrm{x}} $ 表示迭代次数最多的一个常数;$ {r}_{1} $ 为 0~2$ \pi $ 内的随机数;$ {r}_{2} $ 是 0~2 内的随机数;$ {X}_{\mathrm{b}\mathrm{e}\mathrm{s}\mathrm{t}}\mathrm{表}\mathrm{示}\mathrm{群}\mathrm{体}\mathrm{中}\mathrm{最}\mathrm{佳}\mathrm{的}\mathrm{位}\mathrm{置} $ ;$ {\mathrm{X}}_{i,j}^{t} $ 表示迭代 t 次时第 i 个麻雀的第 j 维数的值。1.2.6.3 Levy飞行策略对跟踪者位置优化
由于在麻雀搜索算法中,跟踪者的位置更新主要依赖于当前最佳位置和全局最佳位置,使得算法在搜索空间中的多样性不足,从而限制了算法的全局搜索能力。并且当全局最佳位置附近存在较多的最优解时,算法容易陷入局部最优解而无法跳出。为此,本文提出通过引入Levy策略[29-30]对跟踪者的位置进行更新,Levy[31]步长向量生成公式如下:
$$ S{\text{=}}\frac{u}{{\mid v\mid }^{\frac{1}{\beta }}} $$ (14) $$ \sigma {\text{=}}{\left\{\frac{\mathrm{\Gamma }(1{\text{+}}\beta )\mathrm{s}\mathrm{i}\mathrm{n}\left(\dfrac{\pi \beta }{2}\right)}{\beta \mathrm{\Gamma }\left(\dfrac{1{\text{+}}\beta }{2}\right){2}^{\frac{\beta {\text{−}}1}{2}}}\right\}}^{\frac{1}{\beta }} $$ (15) 式中:S为飞行路径;
$ \mathrm{\Gamma } $ 为 gamma函数;$ \beta $ 取值为1.5;$ \sigma $ 代表正态分布中的方差;u 和 v 是符合正态分布的随机数,$ u~N(0,{\sigma }^{2}) $ ,$ v~N\left(\mathrm{0,1}\right) $ ,则跟踪者位置更新公式如下:$$ {X}_{i,j}^{t{\text{+}}1}{\text{=}}\left\{\begin{array}{l}Q\cdot {\rm{exp}}\left(\dfrac{{X}_{{\rm{worst}}}^{t}-{X}_{i,j}^{t}}{{i}^{2}}\right)\qquad {\rm{if}}\;\;i > n/2\\ {X}_{P}^{t{\text{+}}1}{\text{+}}{X}_{P}^{t{\text{+}}1}\cdot (0.01\cdot S) \quad {\rm{otherwise}}\end{array}\right. $$ (16) 增强型麻雀搜索算法具体流程如下:
1) 设置参数:设置最大的迭代次数,麻雀的种群数量,每个维度上的变量最小值,每个维度上的变量最大值。
2) 初始化麻雀种群位置、优化全局最优个体和最优适应度,计算每个个体的适应度并且对其进行排序。
3) 在每次迭代的过程中,利用公式 (13) 更新侦察者的位置,实现对全局的搜索,并且进行边界检查。
4) 使用公式 (16) 更新跟踪者位置,使得跟踪者不断靠近侦察者位置。
5) 如果预警者发现危险,则通过公式远离危险位置。
6) 在麻雀搜索食物之后,对麻雀个体的最优适应度值进行排序。
7) 更新全局最优解和最佳适应度。
8) 进入循环迭代,转至步骤3)。
9) 判断是否符合中止条件,若符合,则输出全局最优解和最佳适应度。若不符合,回到步骤 3) 重新开始计算。
2. 实验与分析
2.1 基准函数优化性能测试
为了验证增强型麻雀搜索算法在求解优化过程中的可行性和优越性,将ESSA与SSA、GWO、MPA、WOA算法在5种基准函数上进行测试对比。
使用Matlab 2019b软件对5种不同的算法进行对比实验,为了避免实验出现的偶然性造成误差,并增加实验的准确性,选取5种基准测试函数分别独立运行30次,取平均值和标准差作为实验的评价标准。实验采用的基准测试函数如表2所示,F1和F2为高维单峰函数,F3和F4为高维多峰函数,F5为低维多峰函数。种群大小为40个,最大迭代次数为100次。实验结果如表3所示,优化测试函数收敛曲线对比如图6所示。
表 2 基准测试函数Table 2. Process of benchmarking基准测试函数
Benchmark function维度
Dimensionality搜索空间
Search space最优值
Optimal value$ {F}_{1}\left(x\right){\text{=}}{\sum }_{i{\text{=}}1}^{n}\mid {x}_{i}\mid {\text{+}}{\prod }_{i{\text{=}}1}^{n}\mid {x}_{i}\mid $ 30 $ [{\text{−}}\mathrm{10,\;10}] $ 0 $ {F}_{2}\left(x\right){\text{=}}{\sum }_{i{\text{=}}1}^{n}i{x}_{i}^{4}{\text{+}}\mathrm{r}\mathrm{a}\mathrm{n}\mathrm{d}\mathrm{o}\mathrm{m}\left[\mathrm{0,\;1}\right) $ 30 $ [{\text{−}}\mathrm{1.28,\;1.28}] $ 0 $ {F}_{3}\left(x\right){\text{=}}{\sum }_{i{\text{=}}1}^{n}{\text{−}}{x}_{i}\mathrm{s}\mathrm{i}\mathrm{n}\left(\sqrt{\mid {x}_{i}\mid }\right) $ 30 $ [{\text{−}}\mathrm{500,\;500}] $ $ {\text{−}}418.9829\times n $ ${F}_{4}\left(x\right){\text{=}}\dfrac{1}{4\;000}{\sum }_{i{\text{=}}1}^{n}{x}_{i}^{2}{\text{−}}{\prod }_{i{\text{=}}1}^{n}\mathrm{c}\mathrm{o}\mathrm{s}\dfrac{ {x}_{i} }{\sqrt{i} }{\text{+}}1$ 30 $ [{\text{−}}\mathrm{600,\;600}] $ 0 $ {F}_{5}\left(x\right){\text{=}}-\sum _{i{\text{=}}1}^{4}{c}_{i}\mathrm{e}\mathrm{x}\mathrm{p}\left[-\sum _{j{\text{=}}1}^{6}{a}_{ij}({x}_{i}-{p}_{ij}{)}^{2}\right] $ 30 $ \left[\mathrm{0,\;1}\right] $ $ -3.32 $ 表 3 基准函数优化结果对比Table 3. Comparison of benchmark function optimization results算法种类
Type of algorithm$ {F}_{1} $ $ {F}_{2} $ $ {F}_{3} $ $ {F}_{4} $ $ {F}_{5} $ ESSA 最优值 Ave $ 2.351\,3{\times 10}^{{\text{−}}16} $ $ 4.306\,9{\times 10}^{{\text{−}}4} $ $ {\text{−}}1.030\,1{\times 10}^{4} $ 0 −3.266 5 标准差 Std $ 1.242\,5{\times 10}^{{\text{−}}15} $ $ 5.081\,4{\times 10}^{{\text{−}}4} $ $ 1.842\,8{\times 10}^{3} $ 0 0.059 3 SSA 最优值 Ave 0.057 3 0.003 0 $ {\text{−}}3.682\,2{\times 10}^{3} $ $ 4.899\,3{\times 10}^{{\text{−}}5} $ −3.138 5 标准差 Std 0.063 1 0.002 7 359.466 6 $ 9.669\,2{\times 10}^{{\text{−}}5} $ 0.081 4 GWO 最优值 Ave 0.025 5 0.015 9 ${\text{−} }5.646\,0{\times 10}^{ 3}$ 0.082 2 −3.238 5 标准差 Std 0.013 1 0.007 8 879.281 3 0.059 1 −3.322 0 MPA 最优值 Ave 0.091 3 0.006 8 $ {\text{−}}7.235\,6{\times 10}^{3} $ 0.290 3 0.075 0 标准差 Std 0.031 1 0.003 8 685.562 5 0.128 3 1.750 6$ {\times 10}^{{\text{−}}4} $ WOA 最优值 Ave $ 7.826\,5{\times 10}^{{\text{−}}9} $ 0.019 4 $ {\text{−}}8.801\,8{\times 10}^{3} $ 0.086 9 −3.104 0 标准差 Std $ 1.722\,1{\times 10}^{{\text{−}}8} $ 0.017 9 $ 1.354\,2{\times 10}^{3} $ 0.262 4 0.340 7 根据表2中各种算法的最优值 (Ave) 和标准差 (Std) ,可以看出ESSA算法尽管在低维多峰函数上的性能差异和其他算法相差无几,但是在高维单峰、高维多峰函数上的性能均优于其他算法。由图6也可以明显看出,ESSA算法在收敛性和优化结果方面比其他4种算法的表现更佳。针对F1和F2高维单峰函数的收敛情况,不论迭代次数增加到何种程度,使用ESSA算法获得的最优值始终优于其他算法。此外,在经过100次迭代后,ESSA算法获得的最优值数量级明显高于其他算法。对于F3和F4高维多峰函数而言,ESSA算法的最优值优于WOA和MPA算法,且最优值几乎是后两种算法的2倍。这表明ESSA算法在处理高维多峰函数时优势明显。在F5低维多峰函数中,虽然ESSA算法的最优值相对于其他算法没有明显的优越性,但仍取得了显著的改进效果。
综上,可以得出ESSA算法在收敛结果和优化效果方面比其他算法表现出色,为进一步研究和应用ESSA算法提供了有力的支持。
2.2 预测准确率优化实验
2.2.1 实验设置
为了验证ESSA算法对LSTM模型参数改进的效果最佳,选取基本的SSA算法、GWO算法、MPA算法、WOA算法分别对LSTM模型改进进行对比。为了保证实验的准确性和算法对比结果的可信度,实验均采用Matlab 2019b软件进行,几种算法的实验参数一致,且每种算法的仿真实验独立运行10次然后取平均值。在实验过程中,每种算法中寻找最优解隐藏层的神经个数范围均设置为 0~100,初始速率范围设置为 0~0.2。
2.2.2 优化对比
表4是实验设置的主要参数,各算法独立运行10次优化后的平均预测率结果对比如表5所示。各算法实验得出的平均绝对误差 、均方根误差、平均绝对百分比误差和决定系数的评价指标如图7所示。根据实验所得的平均绝对百分比误差,得到ESSA、SSA、GWO、MPA和WOA算法优化的预测率收敛曲线如图8所示。
表 4 参数设置Table 4. Settings of parameters参数
Parameter取值
Value训练样本个数 Number of training samples 3 457 测试样本个数 Number of test samples 288 训练迭代次数 Number of training iterations 100 批处理大小个数 Number of batch sizes 32 种群大小 Population size 30 表 5 预测率结果对比Table 5. Comparison of predicted rate算法
Algorithm平均预测率 (10次)
Average rate of prediction (10 times)增强型麻雀搜索算法 ESSA 99.071% 麻雀搜索算法 SSA 96.929% 灰狼优化算法 GWO 92.418% 海洋捕食算法 MPA 92.389% 鲸鱼优化算法 WOA 91.357% 从表5可以直观的看出,在同样的实验环境和参数下,ESSA算法对于优化改进LSTM模型参数得出来的预测率具有明显的效果。ESSA算法优化改进效果略好于基本的SSA算法,但是由ESSA算法改进得出的预测率准确性远远大于GWO、MPA和WOA算法所改进的。
从图7可以清晰地看出,ESSA算法在MAE、RMSE和MAPE指标方面均表现出优于其他4种算法的结果。此外,虽然SSA拟合的效果所对应的
$ {R}^{2} $ 值也接近1,但是稍逊于ESSA,这进一步说明了ESSA算法在预测准确率方面表现出卓越的效果,即ESSA算法具有最佳的预测性能。由图8可以看出,ESSA算法在初始迭代阶段就避免了陷入局部最优解的问题,因为在初始迭代时预测准确率显著提高,且在大约10次迭代后便达到最优解。相比之下,SSA算法在初始迭代时的预测准确率虽然远高于MPA算法,但在第80次迭代时已经陷入了局部最优解。从GWO算法的结果可以看出,随着迭代次数的增加,预测准确率趋于稳定,约70次迭代后达到稳定效果。然而,与ESSA和SSA算法相比,GWO算法的最终结果并不理想。WOA算法在初始迭代阶段的预测效果较差,但随着迭代次数的增加也趋于稳定,明显可以观察到该算法的最终效果低于其他算法。
通过ESSA算法对LSTM模型参数寻优,可以得到隐藏层的神经个数为17,初始学习速率为0.008 6。多种算法优化曲线对比如图9-a和图9-b所示。
根据各种算法的仿真实验结果,可以看出ESSA算法具有收敛速度快、强大的跳出局部最优解的能力等特点。通过对比各种算法对LSTM模型优化后的曲线,可以发现ESSA算法优于其他算法,因此,将ESSA算法用于LSTM模型参数改进,不仅能很好地获得具体的参数值,而且能实现最佳的优化效果。这种方法避免了在模型中盲目设定参数而耗费大量时间和精力,并且当模型中特征向量的维度和数据量发生变化时,运用该算法对模型进行优化,可以迅速、准确地获取具体的模型参数,无需根据人工经验进行多次实验得出参数值再进行比较。将ESSA算法与LSTM模型相结合,可充分发挥两者的优势,实现更精确的预测。这种方法不仅能提高预测的准确率,还减少了参数调整的复杂性,使得模型的优化过程更加高效。对溶氧预测优化研究,不仅适用于养殖工船场景,也适用于如预测某水域某个水质参数的其他场景,可为其他领域的相关研究提供参考。
3. 结论
针对养殖工船水质参数溶解氧预测及其精确性,本文提出了一种利用ESSA算法对LSTM模型参数作优化改进的方法,以实现高效的预测效果。首先,该算法在基本的麻雀算法中加入了Circle混沌映射进行种群初始化,加入正弦余弦算法和Levy飞行策略分别对侦察者位置、跟踪者位置更新,提升了算法的全局探索和局部优化问题;然后,与其他改进算法对不同形态的基准函数进行优化求解,验证了ESSA算法在搜索能力、收敛性、稳定性等方面均具有明显的优势;最后,在相同的实验条件和参数下,将ESSA算法与其他算法进行对比实验。结果显示ESSA算法优化模型后的预测精度优于其他算法,能很快跳出局部最优,具有很好的稳定性。
采用ESSA算法对LSTM模型进行参数优化,明显缩减了参数设置的盲目性和时间成本,提高了优化效率和预测准确率。这种方法结合了现代优化算法与深度学习模型的优势,实现了对LSTM模型参数的寻优。在实验过程中,该算法在全局探索和局部优化方面均表现出色,达到了实验目的。不过,该算法在应用于特定类型数据方面的实验时存在一定的缺陷,后期需进一步考虑算法的通用性,以确保其在不同数据分布和特性下的鲁棒性;此外,还发现在获取实验结果过程中需要较长时间取得最优解,后续将持续优化算法,以提高计算效率,减少时间成本。
-
表 1 养殖水质原始数据表
Table 1 Raw data sheet for aquaculture water quality
时间
TimepH 盐度
Salinity/‰温度
Temperature/℃溶解氧
DO/(mg·L−1)2023-04-11 00:05:00 7.86 36.099 998 20.114 88 9.119 555 2023-04-11 01:05:00 7.84 35.900 002 20.127 55 9.047 465 2023-04-11 02:05:00 7.84 36.200 001 20.123 21 8.998 263 ··· ··· ··· ··· ··· 2023-04-23 22:05:00 7.69 34.200 001 22.060 74 6.736 285 2023-04-23 23:05:00 7.67 34.200 001 22.063 86 6.419 692 2023-04-24 00:00:00 7.67 34.299 999 22.083 02 6.358 287 表 2 基准测试函数
Table 2 Process of benchmarking
基准测试函数
Benchmark function维度
Dimensionality搜索空间
Search space最优值
Optimal value$ {F}_{1}\left(x\right){\text{=}}{\sum }_{i{\text{=}}1}^{n}\mid {x}_{i}\mid {\text{+}}{\prod }_{i{\text{=}}1}^{n}\mid {x}_{i}\mid $ 30 $ [{\text{−}}\mathrm{10,\;10}] $ 0 $ {F}_{2}\left(x\right){\text{=}}{\sum }_{i{\text{=}}1}^{n}i{x}_{i}^{4}{\text{+}}\mathrm{r}\mathrm{a}\mathrm{n}\mathrm{d}\mathrm{o}\mathrm{m}\left[\mathrm{0,\;1}\right) $ 30 $ [{\text{−}}\mathrm{1.28,\;1.28}] $ 0 $ {F}_{3}\left(x\right){\text{=}}{\sum }_{i{\text{=}}1}^{n}{\text{−}}{x}_{i}\mathrm{s}\mathrm{i}\mathrm{n}\left(\sqrt{\mid {x}_{i}\mid }\right) $ 30 $ [{\text{−}}\mathrm{500,\;500}] $ $ {\text{−}}418.9829\times n $ ${F}_{4}\left(x\right){\text{=}}\dfrac{1}{4\;000}{\sum }_{i{\text{=}}1}^{n}{x}_{i}^{2}{\text{−}}{\prod }_{i{\text{=}}1}^{n}\mathrm{c}\mathrm{o}\mathrm{s}\dfrac{ {x}_{i} }{\sqrt{i} }{\text{+}}1$ 30 $ [{\text{−}}\mathrm{600,\;600}] $ 0 $ {F}_{5}\left(x\right){\text{=}}-\sum _{i{\text{=}}1}^{4}{c}_{i}\mathrm{e}\mathrm{x}\mathrm{p}\left[-\sum _{j{\text{=}}1}^{6}{a}_{ij}({x}_{i}-{p}_{ij}{)}^{2}\right] $ 30 $ \left[\mathrm{0,\;1}\right] $ $ -3.32 $ 表 3 基准函数优化结果对比
Table 3 Comparison of benchmark function optimization results
算法种类
Type of algorithm$ {F}_{1} $ $ {F}_{2} $ $ {F}_{3} $ $ {F}_{4} $ $ {F}_{5} $ ESSA 最优值 Ave $ 2.351\,3{\times 10}^{{\text{−}}16} $ $ 4.306\,9{\times 10}^{{\text{−}}4} $ $ {\text{−}}1.030\,1{\times 10}^{4} $ 0 −3.266 5 标准差 Std $ 1.242\,5{\times 10}^{{\text{−}}15} $ $ 5.081\,4{\times 10}^{{\text{−}}4} $ $ 1.842\,8{\times 10}^{3} $ 0 0.059 3 SSA 最优值 Ave 0.057 3 0.003 0 $ {\text{−}}3.682\,2{\times 10}^{3} $ $ 4.899\,3{\times 10}^{{\text{−}}5} $ −3.138 5 标准差 Std 0.063 1 0.002 7 359.466 6 $ 9.669\,2{\times 10}^{{\text{−}}5} $ 0.081 4 GWO 最优值 Ave 0.025 5 0.015 9 ${\text{−} }5.646\,0{\times 10}^{ 3}$ 0.082 2 −3.238 5 标准差 Std 0.013 1 0.007 8 879.281 3 0.059 1 −3.322 0 MPA 最优值 Ave 0.091 3 0.006 8 $ {\text{−}}7.235\,6{\times 10}^{3} $ 0.290 3 0.075 0 标准差 Std 0.031 1 0.003 8 685.562 5 0.128 3 1.750 6$ {\times 10}^{{\text{−}}4} $ WOA 最优值 Ave $ 7.826\,5{\times 10}^{{\text{−}}9} $ 0.019 4 $ {\text{−}}8.801\,8{\times 10}^{3} $ 0.086 9 −3.104 0 标准差 Std $ 1.722\,1{\times 10}^{{\text{−}}8} $ 0.017 9 $ 1.354\,2{\times 10}^{3} $ 0.262 4 0.340 7 表 4 参数设置
Table 4 Settings of parameters
参数
Parameter取值
Value训练样本个数 Number of training samples 3 457 测试样本个数 Number of test samples 288 训练迭代次数 Number of training iterations 100 批处理大小个数 Number of batch sizes 32 种群大小 Population size 30 表 5 预测率结果对比
Table 5 Comparison of predicted rate
算法
Algorithm平均预测率 (10次)
Average rate of prediction (10 times)增强型麻雀搜索算法 ESSA 99.071% 麻雀搜索算法 SSA 96.929% 灰狼优化算法 GWO 92.418% 海洋捕食算法 MPA 92.389% 鲸鱼优化算法 WOA 91.357% -
[1] 胡金有, 王靖杰, 张小栓, 等. 水产养殖信息化关键技术研究现状与趋势 [J]. 农业机械学报, 2015, 46(7), 251-263. [2] 刘双印. 基于计算智能的水产养殖水质预测预警方法研究 [D]. 北京: 中国农业大学, 2014: 68-78. [3] 徐琰斐, 徐皓, 刘晃, 等. 中国深远海养殖发展方式研究 [J]. 渔业现代化, 2021, 48(1): 9-15. [4] 何清, 李宁, 罗文娟, 等. 大数据下的机器学习算法综述 [J]. 模式识别与人工智能, 2014, 27(4): 327-336. [5] 沈时宇, 陈明. Prophet时序模型在短期水质溶氧预测中的应用 [J]. 渔业现代化, 2020, 47(3): 29-35. [6] REN Q, WANG X, LI W, et al. Research of dissolved oxygen prediction in recirculating aquaculture systems based on deep belief network[J]. Aquac Eng, 2020, 90: 102085.
[7] CAO X, REN N, TIAN G, et al. A three-dimensional prediction method of dissolved oxygen in pond culture based on Attention-GRU-GBRT[J]. Comput Electron Agric, 2021, 181: 105955.
[8] 宦娟, 曹伟建, 秦益霖, 等. 基于游程检测法重构集合经验模态的养殖水质溶氧预测 [J]. 农业工程学报, 2018, 34(8): 220-226. [9] 林彬彬, 袁泉, 田志新, 等. 基于SSA-LSTM模型的黄鳝池溶氧预测研究 [J]. 渔业现代化, 2023, 50(1): 71-79. [10] HONG J, SHEN B, XUE J, et al. A vector-encirclement-model-based sparrow search algorithm for engineering optimization and numerical optimization problems[J]. Appl Soft Comput, 2022, 131: 109777.
[11] XUE J K, SHEN B. A novel swarm intelligence optimization approach: sparrow search algorithm[J]. Syst Sci Control Eng, 2020, 8(1): 22-34.
[12] HOCHREITE S, SCHMIDHUBER J. Long short-term memory[J]. Neural Comput, 1997, 9(8): 1735-1780.
[13] FARAMARZI A, HEIDARINEJAD M, MIRJALILI S, et al. Marine predators algorithm: a nature-inspired metaheuristic[J]. Expert Syst Appl, 2020, 152: 113377.
[14] 张晓凤, 王秀英. 灰狼优化算法研究综述 [J]. 计算机科学, 2019, 46(3): 30-38. [15] MIRJALILI S, LEWIS A. The whale optimization algorithm[J]. Adv Eng Softw, 2016, 95: 51-67.
[16] 李争, 罗晓瑞, 张杰, 等. 基于改进麻雀搜索算法的光伏功率短期预测 [J]. 太阳能学报, 2023, 44(6): 284-289. [17] 胡顺强, 崔东文. 基于海洋捕食者算法优化的长短期记忆神经网络径流预测 [J]. 中国农村水利水电, 2021(2): 78-82, 90. [18] 薛阳, 燕宇铖, 贾巍, 等. 基于改进灰狼算法优化长短期记忆网络的光伏功率预测 [J]. 太阳能学报, 2023, 44(7): 207-213. [19] 吴会咏, 靳舒春, 安雪洁. 基于改进鲸鱼算法优化神经网络的飞机空气循环系统建模及故障分析 [J]. 西北师范大学学报(自然科学版), 2023, 59(2): 27-36. [20] 杨寒雨, 赵晓永, 王磊. 数据归一化方法综述 [J]. 计算机工程与应用, 2023, 59(3): 13-22. [21] 秦文虎, 陈溪莹. 基于长短时记忆网络的水质预测模型研究 [J]. 安全与环境学报, 2020, 20(1): 328-334. [22] 王丹. 随机梯度下降算法研究 [D]. 西安: 西安建筑科技大学, 2020: 17-27. [23] 薛建凯. 一种新型的群智能优化技术的研究与应用 [D]. 上海: 东华大学, 2020: 21-28. [24] 王鑫, 张奇志. 改进麻雀搜索算法优化支持向量机的井漏预测 [J]. 科学技术与工程, 2022, 22(34): 15115-15122. [25] 王振东, 汪嘉宝, 李大海. 一种增强型麻雀搜索算法的无线传感器网络覆盖优化研究 [J]. 传感技术学报, 2021, 34(6): 818-828. [26] 张伟康, 刘升, 任春慧. 混合策略改进的麻雀搜索算法 [J]. 计算机工程与应用, 2021, 57(24): 74-82. [27] 周茜. 混沌理论及应用若干问题的研究 [D]. 天津: 南开大学, 2010: 3-13. [28] MIRJALILI S. SCA: a sine cosine algorithm for solving optimization problems[J]. Knowl Based Syst, 2016, 96: 120-133.
[29] RATHER S A, DAS S. Levy flight and chaos theory-based gravitational search algorithm for image segmentation[J]. Math, 2023, 11(18): 3913. doi: 10.3390/math11183913
[30] 张严, 秦亮曦. 基于Levy飞行策略的改进樽海鞘群算法 [J]. 计算机科学, 2020, 47(7): 154-160. [31] 毛清华, 张强, 毛承成, 等. 混合正弦余弦算法和Lévy飞行的麻雀算法 [J]. 山西大学学报(自然科学版), 2021, 44(6): 1086-1091. -
期刊类型引用(1)
1. 张思佳,于红. 大模型在水产养殖病害防治中的创新应用与展望. 大连海洋大学学报. 2024(03): 369-382 . 百度学术
其他类型引用(1)