Page 47 - 2023年第54卷第3期
P. 47
n
∑ ( ^y - y) 2
i
i
i =1
NSE = 1 - (11)
n
∑ ( ^y - 珋 2
y)
i
i
i =1
式中: ^y 、y分别为神经网络输出值和期望值,即鱼类死亡率的预测值和实测值; 珋 期望值的平均
y为
i i i
值,即鱼类死亡率实测值的平均值;i为样本数据组数;n为全部样本数据个数。
( 2)BP神经网络结构。建立 BP神经网络的关键是拓扑网络的构造,包括网络层和结点数量的选
定。本文使用的 BP神经网络训练算法为 Bayes正则化算法,学习率为 0.01。网络结构包含输入层、
隐含层和输出层 3层,输入层与隐含层间选用双曲线正切函数 Tansig作为传递函数,隐含层与输出层
间的选取线性函数 Purelin作为传递函数。BP神经网络隐含层的神经元个数取值依据式(12)初步确定
为 9~13个,通过由小到大改变神经元个数训练并检验其精度,计算表明当隐含层神经元个数为 12时
精度最高,最终确定神经元数为:输入层 6个、隐含层 12个、输出层 1个。
p = m + n + A (12)
槡
式中:p为隐含层神经元数量;m为输入参数数量;n为输出参数数量;A为[1,10]之间的常数。
(3)IPSO算法参数。粒子群方法中的粒子种群规模对系统的收敛速度、准确性和稳定性都有影
响。增加种群规模可以提高算法的搜索精度,但会减慢算法的收敛时间。王维博等 [25] 根据实验法推荐
将粒子群的种群规模设置为 20~50。利用粒子群算法优化 BP神经网络时,其最大迭代次数通常为 100~
300次 [23,26] 。本文选取 IPSO算法参数为:粒子种群规模 30、迭代次数 100次。
3.2 IPSO- BP神经网络训练结果 对于实验得出的 439条测量数据,使用 419条对 IPSO - BP神经网
络进行训练和验证,其中随机选取的训练集占 80%,验证集占 20% [27] 。使用 20条数据作为测试数据
(测试集不用于神经网络训练),测试数据集的变量值基本覆盖了实验测量的范围,具有较强的代表
性。部分训练样本数据的预测和实测死亡率如图 6所示,在不同实验鱼种类和含沙量时,实测值和预
测值均较为接近且变化趋势一致。在图 7中,训练样本死亡率的数据点均集中分布于 y = x辅助线附
近,相关系数 R = 0.995,满足训练要求。通过对预测误差的分布进行统计可知,训练样本的预测误差
基本处于±5%以内,仅有 1组数据的误差大于 10%。基于以上分析,认为建立的 IPSO - BP神经网络在
预测高含沙水体中花斑裸鲤和鲤鱼的死亡率时拥有较高的准确率。
3.3 IPSO - BO神经网络预测结果 IPSO - BP神经网络训练完成后,为了消除 BP神经网络的随机性对预测
结果的影响,参照文献[26]的数据处理方法,对 20组测试数据重复计算 10次取平均值进行分析,实验测量
数据和预测结果如表 4所示。由表可知,死亡率的预测和实测值基本保持一致,平均误差为 1.81%,最
大误差为 5.48%。在预测数据中鲤鱼死亡率的误差比花斑裸鲤相对较大,因为鲤鱼水槽实验的测量数据
较少,训练样本数据少于花斑裸鲤,可通过增加训练样本、结合野外观测数据等方法提高预测准确率。
图 6 用于训练的部分样本数据和预测结果对比
— 2 9 7 —