基于PCA和BP神经网络的硝酸盐氮浓度检测方法 下载: 594次
1 引言
随着工农业的快速发展,水污染问题越发严重。长期饮用硝酸盐含量过高的水体容易引发人体各种疾病。作为含氮有机物的最终产物,世界卫生组织规定饮用水中硝酸盐氮浓度不能超过10 mg/L[1]。传统UV法[2]检测硝酸盐氮的原理是利用硝酸根离子、水中有机物在220 nm波长处有吸收,而硝酸根离子在275 nm处没有吸收,水中有机物有吸收的特点,建立A220-2A270校正标定模型。但UV法在检测硝酸盐氮溶液实际应用中,如果待测试剂浓度过高,存在颗粒物质、荧光或磷光等干扰,吸光度与物质浓度之间不再遵守线性关系,导致UV法失效[3]。
为了能够精确测量水体中硝酸盐氮的浓度,目前国内外已经有多项研究。杨鹏程[4]等人将偏最小二乘(partial least squares,PLS)应用于海水中硝酸盐氮的紫外光谱分析,可以有效分离重叠光谱,降低干扰物质影响,但是作为线性建模方法,PLS具有局限性。刘思乡等人[5]提出机器学习在UV法测定硝酸盐氮浓度中的应用,利用局部加权线程归回(locally weighted linear regression,LWLR)结合PCA建立数学模型,但LWLR存在模型复杂度低和模型表达能力不强的问题。俞禄等人[6]针对光谱水质分析的软测量问题,提出了在紫外光谱条件下的主成分回归(principal components regression,PCR)和最小二乘支持向量机(least square support vector machine,LSSVM)建模方法。Jean Causse等人[7]提出了一种基于UV法测量原始硝酸盐氮溶液的方法,该方法将双光程耦合用于光谱采集,同时对信号二阶求导,但其不适合检测有色度、浊度干扰的溶液。
综上所述,本文针对传统光谱分析方法检测带有干扰物质的硝酸盐氮浓度精度不高的问题,提出了基于PCA和BP神经网络的硝酸盐氮浓度检测方法。
1 检测方法总体设计
本文提出的基于PCA-BP神经网络的硝酸盐氮浓度检测方法流程如
2 基于PCA对光谱数据降维设计
PCA作为多元统计中的数据压缩技术,广泛应用于化学实验数据的统计分析。PCA在尽可能保留原始信息的基础上,将高维空间的样本映射到低维主成分空间[9]。在分析不同浓度硝酸盐氮试剂的光谱数据时,如果将所有光谱数据同时输入BP神经网络,过多的迭代和计算可能会导致所建立的模型过拟合,从而导致精度下降。同时原始数据中也可能存在噪声干扰和冗余信息,所以将数据输入神经网络之前需要对其进行主成分分析处理[10]。
设研究对象总共有n个样本,每个样本有p个数据。故样本原始数据可表示为
进一步计算均值,得:
样本原始数据均值化处理:
均值化后的数据矩阵为
根据协方差公式:
建立协方差矩阵
依据特征分解法确定
根据公式(6)确定每个主成分的累计贡献率:
对主成分累计贡献率从大到小进行排序,依此选择主成分,求第k个主成分Fk:
3 基于BP神经网络搭建物质浓度标定模型
3.1 BP神经网络介绍
BP神经网络是采用误差反向传播算法并具有非线性连续转移函数的多层前馈网络,由输入层、若干隐藏层和输出层组成[11]。多层前馈网络利用全连接的方式连接前后相邻两层之间的神经元,其中每一层有多个神经元,但各神经元之间没有连接,隐藏层和输出层中的神经元可以从前一层接收多个输入,但只输出一个结果作为下一层神经元的输入。
3.2 BP神经网络训练过程
本实验BP神经网络训练过程如下。
1) 初始化BP神经网络参数。初始化内容包括设置学习速率、激活函数、损失函数、初始化权值和偏置、最大迭代步数。
①设置BP神经网络学习速率为0.05。
②针对输入层和隐藏层选择Sigmoid激活函数,公式如下:
为避免relu激活函数引起的梯度消失问题,输出层使用leak relu激活函数,公式如下:
式中:z为神经元的输入。
③以均方根误差(RMSE)作为损失函数,公式如下:
式中:
④本文中初始权值由计算机从满足正态分布的数值中随机抽取,初始偏置全部设为0。
⑤设置初始最大迭代步数为1 800。
2) 建模过程采用留一法交叉验证,每隔k次输出平均误差e,如公式(11)所示,判断e是否符合要求或者是否达到预先设定的学习次数。如果是,则结束本轮训练。
3) 判断n个样本中每个样本是否都已被作为验证使用,如果是,则训练过程结束;否则继续步骤2)。
4 实验分析与结果
4.1 实验仪器和试剂配制
本文选用美国Pyxis SQ-3000型紫外波段微型光谱仪,该款微型光谱仪可检测的波长范围为196 nm~631 nm,波长分辨率为1.5 nm,光源选用Pyxis XE-10W型氙灯光源。如
硝酸盐氮试剂的配置:取1 000 mg/L标准硝酸盐氮溶液,有色溶液(Fe3+,1 000 mg/L),浊液F(硫酸肼和六次甲基四胺,1 000 NTU),按照
表 1. 样品配置方案
Table 1. Sample configuration scheme
mg·L−1
|
由
4.2 数据采集
根据
式中:A(n)为样品吸光度。
由
4.3 建立物质成分回归模型
对训练集的吸光度数据通过PCA计算。首先将吸光度数据按照公式(1)表示为矩阵;然后,根据公式(2)计算每个样本的平均值;其次,根据公式(3)对每维数据均值化处理;接着,根据公式(4)、(5)建立协方差矩阵
表 2. PCA中间计算结果
Table 2. PCA intermediate calculation results
|
根据公式(6)计算输出的主成分贡献率和累积贡献率如
由
表 3. 主成分贡献率分布表
Table 3. Distribution of principal component contribution rate
|
由
本实验建模过程采用留一法交叉验证,即在训练样本中抽取59个样本用于学习,余下的1个样本用于验证。这一步骤持续到每个样本都被当作一次验证资料为止,得到关于RMSE收敛曲线。如
表 4. 模型不同输入下测试集的平均误差
Table 4. Mean error of test set under different inputs of model
|
表 5. 神经网络的输入
Table 5. Neural network input
|
最终训练所得模型结果如公式(13)所示。
式中:W(1)、W(2)和W(3)分别表示第1个隐藏层、第2个隐藏层和输出层的连接权值;b(1)、b(2)和b(3)分别表示输入层,第1隐藏层,第2隐藏层的偏置;
表 6. 模型部分参数
Table 6. Model partial parameters
|
4.4 实验结果
检测系统获取8个测试样本的吸光度数据后,分别与主成分系数P运算得到测试样本的主成分。
式中:P为前述训练样本8个主成分对应的特征向量。
将测试样本的主成分
表 7. 测试集硝酸盐氮浓度预测结果
Table 7. Prediction results of test set nitrate nitrogen concentration
|
为了验证PCA-BP神经网络的优越性,引入平均相对误差对
经
由于本文测试样本较少,仅通过测试样本评价4种模型性能好坏可能存在偶然性,即因个别测试样本所得预测值的精度可能很高,而使得平均相对误差很小,因此还需考察模型对训练集样本的误差情况。现将所有训练集样本分别输入训练好的硝酸盐氮物质标定模型中,计算结果如
表 8. 不同建模方法测量结果对比
Table 8. Comparison of measurement results with different modelling methods
|
综上所述,本文设计的PCA-BP神经网络在4种模型中性能表现最好,能有效排除冗余信息影响和噪声干扰,具有较好的非线性映射能力、泛化能力和容错能力[15],可以精确预测混有干扰物质的硝酸盐氮溶度的浓度。
5 结论
本文提出的基于PCA和BP神经网络的硝酸盐氮溶液浓度检测方法在检测混有干扰物质的硝酸盐氮溶液时效果较好,针对测试集的平均相对误差相较于PCR、PLS和LSSVM算法减小了56.64%、27.94%和84.90%。训练集的平均相对误差相较于PCR、PLS和LSSVM算法减小了44.42%、36.97%和43.94%,证明了该方法的准确性、可行性,同时该方法也适用于对水体中其它物质成分的建模分析,在工程实践中具有重要的指导意义。
[1] 张亚丽, ZHANG Yali, ZHANG Yizhang, 张依章, 张远, ZHANG Yuan. Characteristics of nitrate in surface water and groundwater in the Hun River Basin[J]. China Environmental Science, 2014, 34(1): 170-177.
[2] 国家环境保护总局. SL841994 水质硝酸盐氮的测定紫外分光光度法[S]. 北京: 中国标准出版, 2007.State Environment Protection Administration.SL841994 Water qualitydetermination of nitratenitrogenultraviolet spectrophotometry[S]. Beijing: Chinese Stard Publishing, 2007.
[4] 杨鹏程. 紫外吸收光谱结合偏最小二乘法海水硝酸盐测量技术研究[D]. 天津: 国家海洋技术中心, 2013.YANG Pengcheng. Research on determination of nitrate in seawater based on ultraviolet spectra combined with PLS method[D]. Tianjin: National Ocean Technology Center, 2013.
[6] 俞禄, 王雪洁, 明倩, 等. 几种建模方法在光谱水质分析中的应用和比较[C]. 烟台: 中国自动化学会控制理论专业委员会B卷, 2011: 52275230.YU Lu. WANG Xuejie, MING Qian, et al. Application comparison of several modeling methods in spectral based water quality analysis[C]. Yantai: Technical Committee on Control They, Chinese Association of Automation, 2011: 52275230.
[7] CAUSSE Jean, THOMAS Olivier, JUNG Audevalérie. Direct DOC and nitrate determination in water using dual pathlength and second derivative UV spectrophotometry[J]. Water Research, 2017, 108: 312-319.
[9] JIANG Chuan, ZHANG Xiaohong, ZOU Xiaolong. Identification of salmonella and listeria monocytogenes by near-infrared spectroscopy and PCA[J]. Meteorological and Environmental Research, 2019, 10(4): 77-80.
[11] WANG Zhuqing, CHEN Yashao, QI Bin. Prediction of daytime variations of HO 2 radical concentrations in the marine boundary layer using BP network[J]. Science China(Chemistry), 2010, 53(12): 2612-2621.
[12] 张景阳, ZHANG Jingyang, 潘光友, PAN Guangyou. Comparison and application of multiple regression and BP neural network prediction model[J]. Journal of Kunming University of Science and Science and Technology:Natural Science Edition, 2013, 38(6): 61-67.
[15] 周凌翱. 改进BP神经网络在模式识别中的应用及研究[D]. 南京: 南京理工大学, 2010.ZHOU Lingao. Application of improved BP neural wk in pattern recognition[D]. Nanjing: Nanjing University of Science Technology, 2010.
Article Outline
陈朋, 严宪泽, 韩洋洋, 吴晨阳, 昝昊. 基于PCA和BP神经网络的硝酸盐氮浓度检测方法[J]. 应用光学, 2020, 41(4): 761. Peng CHEN, Xianze YAN, Yangyang HAN, Chenyang WU, Hao ZAN. Nitrate nitrogen concentration detection method based on principal component analysis and BP neural network[J]. Journal of Applied Optics, 2020, 41(4): 761.