应用光学, 2020, 41 (4): 761, 网络出版: 2020-08-20  

基于PCA和BP神经网络的硝酸盐氮浓度检测方法 下载: 594次

Nitrate nitrogen concentration detection method based on principal component analysis and BP neural network
作者单位
1 浙江工业大学 计算机科学与技术学院,浙江 杭州 310023
2 浙江工业大学 信息工程学院,浙江 杭州 310023
摘要
针对紫外分光光度法(UV法)检测混有干扰物质的硝酸盐氮溶液浓度精度不高的问题,提出一种基于主成分分析(principal component analysis,PCA)和BP神经网络的硝酸盐氮浓度检测方法。通过微型光谱仪物质成分检测系统测得硝酸盐氮试剂在196 nm~631 nm波段的吸光度数据,分为测试集和训练集。通过PCA计算训练集,得到主成分。根据BP算法搭建三层人工神经网络。将所得主成分除以8后输入网络展开训练。训练过程中采用留一法交叉验证。用该模型计算训练集和测试集,所得值与真实浓度的平均相对误差分别为2.411 5%和1.553%。实验结果表明,该方法能较好检测出混有干扰物质的硝酸盐氮溶液浓度。
Abstract
Aiming at the problem of inaccurate detection of the nitrate nitrogen solution concentration with interfering substances in ultraviolet spectrophotometry (UV method), a nitrate nitrogen concentration detection method based on principal component analysis (PCA) and BP neural network was proposed. First, the absorbance of the nitrate nitrogen reagent at 196 nm~631 nm was measured by the material composition detection system of the micro-spectrometer, which was divided into test set and training set. Then, the PCA was used to calculate the training set to obtain the principal components. Finally, a three-layer artificial neural network was built based on the BP algorithm. The obtained principal components were divided by 8 and input into the network for training. During the training, the leaving-one method was adopted for cross-validation. This model was used to calculate the training set and test set, the mean relative error between the obtained results and the true concentration is 2.411 5% and 1.553% respectively. The experimental results show that the method can better detect the concentration of the nitrate nitrogen reagent with interfering substances.

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神经网络的硝酸盐氮浓度检测方法流程如图1所示,主要由采集吸光度数据、PCA降维、BP神经网络建模[8]、数据保存4部分组成。首先,由微型光谱仪物质成分检测系统测量混有干扰物质的不同浓度硝酸盐氮试剂的吸光度数据;然后,将吸光度数据经PCA计算后得到数据的主成分;接着,在TensorFlow深度学习框架上搭建神经网络模型,建模过程采用留一法交叉验证;最后,保存训练结果,检验模型精度。

图 1. 检测方法流程图

Fig. 1. Flow chart of detection method

下载图片 查看所有图片

2 基于PCA对光谱数据降维设计

PCA作为多元统计中的数据压缩技术,广泛应用于化学实验数据的统计分析。PCA在尽可能保留原始信息的基础上,将高维空间的样本映射到低维主成分空间[9]。在分析不同浓度硝酸盐氮试剂的光谱数据时,如果将所有光谱数据同时输入BP神经网络,过多的迭代和计算可能会导致所建立的模型过拟合,从而导致精度下降。同时原始数据中也可能存在噪声干扰和冗余信息,所以将数据输入神经网络之前需要对其进行主成分分析处理[10]

设研究对象总共有n个样本,每个样本有p个数据。故样本原始数据可表示为

进一步计算均值,得:

样本原始数据均值化处理:

均值化后的数据矩阵为 ${{Y}} = \left[ {{{{Y}}_1},{{{Y}}_2} \cdots {{{Y}}_n}} \right]$

根据协方差公式:

建立协方差矩阵C

依据特征分解法确定C的特征值 ${e_1},{e_2} \cdots {e_p}$和特征向量 $\left[ {{u_1},{u_2} \cdots {u_p}} \right]$,其中 $ {u_i} = {\left[ {{u_{i1}},{u_{i2}} \cdots {u_{ip}}} \right]^{\rm{T}}} $

根据公式(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)作为损失函数,公式如下:

式中: ${y_i}$为第i个样本的期望值; $y_i^{'}$为神经网络得出的预测值。

④本文中初始权值由计算机从满足正态分布的数值中随机抽取,初始偏置全部设为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型氙灯光源。如图2所示,整套检测系统主要由电源、氙灯光源、石英光纤、支架系统(含比色皿)、微型光谱仪和PC机组成,其中微型光谱仪通过串口实现对PC机和氙灯光源的控制。

图 2. 微型光谱仪测量系统

Fig. 2. Micro-spectrometer measurement system

下载图片 查看所有图片

硝酸盐氮试剂的配置:取1 000 mg/L标准硝酸盐氮溶液,有色溶液(Fe3+,1 000 mg/L),浊液F(硫酸肼和六次甲基四胺,1 000 NTU),按照表1所示配置68份样品试剂。

表 1. 样品配置方案

Table 1. Sample configuration scheme mg·L−1

编号硝酸盐氮有色溶液Fe3+浊液F
12345678123456789
120.511.522.53452.557.5101520304050
250.511.522.53452.557.5101520304050
3100.511.522.53452.557.5101520304050
4200.511.522.53452.557.5101520304050

查看所有表

表1中选取S(1,6_Fe3+)(试剂中硝酸盐氮浓度为2 mg/L,有色溶液浓度为3 mg/L,以下同理)、S(1,7_F)、S(2,1_Fe3+)、S(2,2_F)、S(3,2_Fe3+)、S(3,6_F)、S(4,5_Fe3+)和S(4,4_F)的共8组样品作为测试样本(测试集),剩余的60份样品作为训练样本(训练集)。

4.2 数据采集

根据图2连接设备,首先测量微型光谱仪空载时的光谱数据Bn),然后将蒸馏水放入比色皿,测量其光谱数据Fn),接着以同样的方式测量样品的光谱数据Sn),最后根据公式(12)测得样品吸光度。每个样品分别测试3次,取其平均值并保存,部分吸光度曲线如图3所示。

式中:An)为样品吸光度。

图3分析可知:样品中硝酸盐氮浓度,色度和浊度都是影响吸光度的重要因素,本文的重点就是寻找在色度和浊度的干扰下硝酸盐氮浓度与吸光度之间的关系。

图 3. 硝酸盐氮试剂的吸光度曲线

Fig. 3. Absorbance curve of nitrate nitrogen

下载图片 查看所有图片

4.3 建立物质成分回归模型

对训练集的吸光度数据通过PCA计算。首先将吸光度数据按照公式(1)表示为矩阵;然后,根据公式(2)计算每个样本的平均值;其次,根据公式(3)对每维数据均值化处理;接着,根据公式(4)、(5)建立协方差矩阵C,计算特征值和特征向量,部分数据如表2所示。

表 2. PCA中间计算结果

Table 2. PCA intermediate calculation results

维度123456789
平均值R0.061 80.103 10.077 00.246 70.192 80.223 90.160 40.049 80.053 2
中间值Y1j0.315 60.356 20.406 50.390 30.404 90.443 80.489 70.551 50.590 9
协方差C1j0.009 20.011 20.012 70.012 40.012 70.014 10.016 10.018 10.019 9
特征值E2.783 70.257 70.089 90.006 50.001 16.284 6e−041.227 5e−044.776 3e−052.042 4e−05
特征向量U1j−0.037 1−0.006 4−0.062 80.042 10.009 6−0.002 7−0.042 7−0.044 50.072 2

查看所有表

表2中列举了前9个样本的平均值RY1j由第一个训练样本减去平均值后得到;表中C1j为协方差矩阵第一行第j列元素;特征值E,表中列举了前9维数据;特征向量U1j表示第一行第j列元素,j表示维度。

根据公式(6)计算输出的主成分贡献率和累积贡献率如表3所示。

表3可知,在输出数据的第一个维度上,即第一个主成分的贡献率占所有维度上贡献率之和的89.253%,前9个主成分的累积贡献率之和占全体的99.989 9%。为了寻找模型输入主成分数量的最优值,按照1~9的顺序选取数量不等的主成分输入模型,最后,测试集得到平均误差如表4所示。

表 3. 主成分贡献率分布表

Table 3. Distribution of principal component contribution rate

主成分主成分贡献率/%累积贡献率/%
189.25389.253
27.60896.861
32.78499.645
40.23899.883
50.050 9599.934
60.029 83799.963 8
70.013 62199.977 4
80.008 753 799.986 2
90.003 751 499.989 9

查看所有表

表4可知,当模型输入8个主成分时预测性能最好,预测值的平均误差为1.553%,因此实验最终选择8个主成分作为神经网络的输入。同时为了满足激活函数的输入在0~1范围内的要求,需将公式(7)所求主成分除以8,部分输入如表5所示。

表5中每个训练样本经PCA后降为8维,对应的标签是以40为底浓度的对数。

本实验建模过程采用留一法交叉验证,即在训练样本中抽取59个样本用于学习,余下的1个样本用于验证。这一步骤持续到每个样本都被当作一次验证资料为止,得到关于RMSE收敛曲线。如图4所示,依据收敛曲线在后续的训练过程中可将前述最大迭代步数改为100。

表 4. 模型不同输入下测试集的平均误差

Table 4. Mean error of test set under different inputs of model

模型输入主成分数量123456789
平均误差/%89.7239.0554.0564.0384.0544.0972.6741.5531.652

查看所有表

表 5. 神经网络的输入

Table 5. Neural network input

序号训练数据标签/mg·L−1
样本11.545 5e−03−3.772 4e−04−2.676 4e−03−1.480 5e−023.521 9e−02−0.150 63.001 1e−02−0.450 60.187 9
样本22.582 2e−03−1.026 4e−031.375 5e−03−8.703 3e−03−2.523 8e−02−9.614 6e−02−6.800 7e−02−0.528 00.436 3
样本30.528 3e−032.248 4e−03−1.033 2e−02−1.144 9e−02−3.446 8e−02−1.005 6e−02−0.146 4−0.578 30.624 2
样本41.124 2e−03−1.038 6e−044.109 1e−03−1.160 3e−022.101 0e−020.133 2−0.151 5−0.671 90.812 1

查看所有表

图 4. RMSE收敛曲线

Fig. 4. RMSE convergence curve

下载图片 查看所有图片

最终训练所得模型结果如公式(13)所示。

式中:W(1)W(2)W(3)分别表示第1个隐藏层、第2个隐藏层和输出层的连接权值;b(1)b(2)b(3)分别表示输入层,第1隐藏层,第2隐藏层的偏置;X为模型输入(测试样本的主成分除以8);y表示硝酸盐氮的预测浓度,部分参数如表6所示。

表 6. 模型部分参数

Table 6. Model partial parameters

维度12345678
权值W1j(1)7.992 026 37.980 6476.703 853 18.044 995 3−7.389 650 88.452 9927.845 0276.633 517 3
权值W1j(2)−3.336 365 9−0.233 4320.191 100 3−2.469 691 3−2.978 089 3−2.251 955−1.279 54−3.285 006 0
权值W(3)−0.538 127 3−1.048 9940.191 781 9−1.011 383 3−1.525 026 1−1.060 538−2.099 07−0.967 715
偏置bj(1)−2.809 857 4−3.030 030−3.057 474−2.074 893 7−0.707 169 10.082 838−2.467 16−3.537 668
偏置bj(2)−2.952 146 1−0.106 216−0.903 022−1.182 433 4−2.085 746 8−1.792 576−0.927 11−2.404 344
偏置b(3)0.801 382 4\\\\\\\

查看所有表

表6W1j(1)表示矩阵第1行,第j列权值(W1j(2)同理),W(3)为输出层权值,共8个成员。由于本模型的目的是为实现预测,因此输出层只有一个神经元,故b(3)是一维变量。

4.4 实验结果

检测系统获取8个测试样本的吸光度数据后,分别与主成分系数P运算得到测试样本的主成分。

式中:P为前述训练样本8个主成分对应的特征向量。

将测试样本的主成分 ${{P{C_i}}/ 8}$作为公式(13)的输入,求得预测值。同时引入PCR[12]、PLS[13]和LSSVM[14]算法作对比实验,然后分别用相同的训练集建立标定模型,最后分别对8个测试样本进行预测,得到如表7所示预测结果。

表 7. 测试集硝酸盐氮浓度预测结果

Table 7. Prediction results of test set nitrate nitrogen concentration

建模方法测试样本S(1,6_Fe3+)S(1,7_F)S(2,1_Fe3+)S(2,2_F)S(3,2_Fe3+)S(3,6_F)S(4,5_Fe3+)S(4,4_F)
NO3-N浓度/mg·L−1225510102020
PCR预测值/mg·L−12.1301.8345.1014.99210.46710.23119.42920.366
PLS预测值/mg·L−11.9722.0475.1105.03310.19710.67119.61120.000
LSSVM预测值/mg·L−12.0902.6575.0534.92810.70613.29019.84319.674
PCA-BP预测值/mg·L−11.9721.9955.0115.07210.46210.17219.87520.429

查看所有表

为了验证PCA-BP神经网络的优越性,引入平均相对误差对表7作进一步分析,分析结果如表8所示。

表8分析得出,利用PCA-BP神经网络建立的硝酸盐氮物质标定模型,相对于PCR、PLS和LSSVM平均相对误差分别减小了56.64%、27.94%和84.90%,由此可知基于PCA-BP神经网络的标定模型预测性能最好。

由于本文测试样本较少,仅通过测试样本评价4种模型性能好坏可能存在偶然性,即因个别测试样本所得预测值的精度可能很高,而使得平均相对误差很小,因此还需考察模型对训练集样本的误差情况。现将所有训练集样本分别输入训练好的硝酸盐氮物质标定模型中,计算结果如图5所示。

表 8. 不同建模方法测量结果对比

Table 8. Comparison of measurement results with different modelling methods

算法PCRPLSLSSVMPCA-BP神经网络
平均相对误差/%3.5812.15410.2781.553

查看所有表

图 5. 训练样本结果对比

Fig. 5. Comparison of training sample results

下载图片 查看所有图片

图5中(a)为PCA-BP神经网络模型的测试结果;(b)为PCR模型的测试结果;(c)为PLS模型的训练结果;(d)为LSSVM模型的测试结果。针对训练集数据,4种模型计算结果的平均相对误差分别为2.4115%、4.339%、3.826%和4.302%,由此可知基于PCA-BP神经网络的标定模型对训练集样本计算能力同样最优。

综上所述,本文设计的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.

[3] 宋哥, SONG Ge, SUN Bo, 孙波, 教剑英, JIAO Jianying. Comparison between ultraviolet spectrophotometry and other methods in determination of soil Nitrate-N[J]. Acta Pedologica Sinica, 2007, 44(2): 288-293.

[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.

[5] 刘思乡, LIU Sixiang, 范卫华, FAN Weihua, GUO Hui, 郭慧. Application of machine learning in determination of nitrate nitrogen based on ultraviolet spectrophotometry[J]. Spectroscopy and Spectral Analysis, 2017, 37(4): 1179-1182.

[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.

[8] 王雷, WANG Lei, 乔晓艳, QIAO Xiaoyan, 张姝, ZHANG Shu. Pesticide redidue detection by fluorescence spectral analysis based on BP neural network[J]. Journal of Applied Optics, 2010, 31(3): 442-446.

[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.

[10] 李婵, LI Chan, WAN Xiaoxia, 万晓霞, 谢伟, XIE Wei. Color filter design method for multi-channel spectral acquisition system[J]. Journal of Applied Optics, 2016, 37(5): 639-643.

[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.

[13] RIBEIRO C L, DENZIN T G H, REIS M F. Artificial neural network and partial least square regressions for rapid estimation of cellulose pulp dryness based on near infrared spectroscopic data[J]. Carbohydrate polymers, 2019, 224: 115186.

[14] BAGHBAN A, SASANIPOUR J, HABIBZADEH S. Estimating solubility of supercritical H_2S in ionic liquids through a hybrid LSSVM chemical structure model[J]. Chinese Journal of Chemical Engineering, 2019, 27(3): 620-627.

[15] 周凌翱. 改进BP神经网络在模式识别中的应用及研究[D]. 南京: 南京理工大学, 2010.ZHOU Lingao. Application of improved BP neural wk in pattern recognition[D]. Nanjing: Nanjing University of Science Technology, 2010.

陈朋, 严宪泽, 韩洋洋, 吴晨阳, 昝昊. 基于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.

引用该论文: TXT   |   EndNote

相关论文

加载中...

关于本站 Cookie 的使用提示

中国光学期刊网使用基于 cookie 的技术来更好地为您提供各项服务,点击此处了解我们的隐私策略。 如您需继续使用本网站,请您授权我们使用本地 cookie 来保存部分信息。
全站搜索
您最值得信赖的光电行业旗舰网络服务平台!