论文阅读[121]使用CAE+XGBoost从荧光光谱中检测和识别饮用水中的有机污染物

news2024/11/25 11:33:20

【论文基本信息】 标题:Detection and Identification of Organic Pollutants in
Drinking Water from Fluorescence Spectra Based on Deep Learning Using
Convolutional Autoencoder 标题译名:基于使用卷积自动编码器的深度学习,从荧光光谱中检测和识别饮用水中的有机污染物
期刊与年份:Water 2021(JCR - Q2)
作者机构:浙江大学控制科学与工程学院
原文:https://www.mdpi.com/2073-4441/13/19/2633

一、介绍

  • 荧光光谱由于其多重优势,越来越多地被用于检测水处理系统中的污染物。
  • 荧光光谱实验的结果以EEM的形式提供。然而,EEM很难直接分析,因为它是高维的。
  • 多路方法是典型的EEM降维方法,包括主成分分析(PCA)和平行因子分析(PARAFAC)。
  • 尽管它们被广泛使用,但它们有一些局限性。例如,它们提取的特征是线性的,这种线性可能会带来特征信息的损失,从而降低检测精度。
  • 近年来,许多学者提出了其他荧光分析方法来弥补这一不足。此外,深度学习在图像识别中的日益成熟,也为实现光谱特征提取提供了新的思路。
  • 然而,这些方法几乎没有提到模型在水质背景变化下的适应性
  • 本文介绍一种基于EEM的饮用水中有机污染物检测新方法,该方法适用于在水质背景波动的情况下,低浓度分析物的光谱信号较弱的情况。
  • 该方法设计了深度卷积自动编码器(CAE),用于降低EEM的维数并从中提取多层特征。它保证了有机污染物光谱在背景变化下的特征不变性,以及有机污染物光谱非线性特征的泛化自动学习;接着使用XGBoost分类器(一种梯度增强方法)来识别有机污染物。对3种有机污染物进行了测试,以验证上述方法。

二、方法

2.1 模型架构

图1:识别和测量水样中有机污染物的流程图。

在这里插入图片描述

2.2 数据预处理

采用三次插值法减少瑞利散射,消除拉曼散射。

2.3 卷积自动编码器

自动编码器是一种典型的自监督学习算法,它分为两部分:编码器和解码器。

在这里插入图片描述
编码器将高维输入数据x转换成低维编码表示h;解码器将低维编码h恢复为高维原始输入x。

f:非线性激活函数;W, W’:权重;b, b’:偏置

传统的自动编码器忽略了图像的邻域特征,并且输入层和隐藏层完全连接,引入了太多冗余参数。CAE直接处理二维图像,提取重叠块上的特征,并保留图像的邻域特征。多层CAE叠加形成了一个深层CAE,可用于提取深层光谱特征

假设卷积层具有H个特征图,第k个特征图的权重矩阵为Wk,偏移量为bk,激活函数为f。使用EEM作为输入x来训练卷积层神经元,以获得第k−th(k=1,2,··,H)特征图:在这里插入图片描述

*:二维卷积

然后由解码器获得特征图的重建:在这里插入图片描述

Wk:第k个特征图的权重矩阵Wk的转置;c:偏移量。

卷积自动编码器的目的是最小化重构误差函数E(W,b)的值:在这里插入图片描述

卷积自动编码器的工作过程如下图所示。
在这里插入图片描述
输入:原始光谱。
编码器层:由卷积层、ReLU激活函数(公式9,见下)和最大池化层组成。
每个编码器层都有相应的解码器层。
每个编码器中的最大采样层(即最大池化层)存储特征图上最大值的索引。
解码器中的上采样层使用由相应编码器存储的位置对特征图进行采样,并通过解码器中的卷积层来重建输入的光谱

本文使用的编码器和解码器网络由3个层组成,每个层的卷积核心大小分别为16、8和6通道。通过卷积层和Sigmoid激活函数(公式10,见下)重建解码器的最终输出。使用随机梯度下降方法一次更新一次单个训练图像的参数。

在这里插入图片描述

2.4 XGBoost分类器

XGBoost是2016年提出的一种可扩展的Boost树机器学习方法,基于Gradient boosting。Gradient boosting是一种基于迭代累积的决策树算法,它构建一组弱决策树,并将多个决策树的结果累积为最终预测输出。

XGBoost的目标函数:J(Θ)=L(Θ)+Ω(Θ) (11)

Θ:模型训练参数。L:损失函数(均方误差或交叉熵)Ω:正则化术语(term),用于在模型复杂性和准确性之间取得平衡。

由于基础分类器是决策树,因此模型输出为K个回归树fk的集合F的投票或平均值:在这里插入图片描述
假设有n个训练样本,在第t次迭代后,目标函数转化为:在这里插入图片描述

三、结果与讨论

3.1 荧光与样本描述

使用日立F-4600荧光分光光度计进行所有荧光测量。

使用饮用水中经常检测到的3种有机污染物作为测试化合物:苯酚、罗丹明B和水杨酸。

图3:4个样品在预处理后的光谱(饮用水、罗丹明B、水杨酸、苯酚,溶液浓度为20µg/L)。从图中可以读出,罗丹明B的特征峰为545–555/570–580nm,水杨酸的特征峰为290–300/400–410nm。苯酚的特征峰为270–280/305–315,在饮用水的一个特征峰(260–290/280–320)之内
在这里插入图片描述

3.2 基于CAE的光谱特征提取结果

输入100×100的光谱,提取特征,得到特征光谱。它是一个6通道特征图,每个通道的尺寸为13×13。

图4:(a)同图3(b),浓度为20µg/L的罗丹明B的光谱。(b)–(g)是6个通道的特征图,(h)是(b)–(g)的叠加结果。结合(a)和图(b)–(h),可以看出CAE在EEM中同时寻找高贡献(点)和纹理特征。
在这里插入图片描述

3.3 基于XGBoost的定性识别结果

将浓度高于10µg/L的分析物样品定义为高浓度样品,浓度等于或低于10µg/L的定义为低浓度样品

3.3.1 饮用水中高浓度有机污染物的检测

表1:高浓度有机污染物检测结果对比,其中RhB代表罗丹明B,SA代表水杨酸。召回率均为100%,说明3种方法都可以正确识别饮用水中高浓度的3种有机物。
在这里插入图片描述
图5:使用多路分解方法得到的主要特征向量。从(c)(d)可以看出,一些饮用水样本可能会被误判为含有水杨酸,从而导致假阳性。

有机物\方法PARAFACPCA
罗丹明B(a)(b)
水杨酸©(d)
苯酚(e)(f)

在这里插入图片描述

3.3.2 饮用水中低浓度有机污染物的检测

表2:低浓度有机污染物检测结果对比。

在这里插入图片描述

图7:使用多种分解方法鉴定低浓度测试样品。对于水杨酸和苯酚,存在假阳性。

有机物\方法PARAFACPCA
罗丹明B(a)(b)
水杨酸©(d)
苯酚(e)(f)

在这里插入图片描述
如下图所示,从上下两行的对比可以看出,训练样本的分类边界与测试样本有着显著差异。造成这种结果的主要原因是:多路方法只提取光谱的线性特征,对背景水质的变化不敏感

在这里插入图片描述
图9:通道4(浓度为4µg/L)的特征光谱。其中a为测试样本,b为饮用水,c为训练样本。a与c的相似度非常高,说明了CAE的有效性。
在这里插入图片描述

3.3.3 饮用水背景波动的影响

  • 由于受到水处理厂的活动和运输过程中物质的变化的影响,饮用水的质量经常出现波动。
  • 在3个月的时间内,以均匀的时间间隔对饮用水进行采样,记录荧光光谱。

图10:其中4个样品的荧光光谱。水质在样品1和2之间以及样品3和4之间仅略有波动,但是在样品2和样品3之间的水质变化剧烈。
在这里插入图片描述
接下来,将3个月内采集的200个饮用水样本添加到先前的测试样本中,进行分析。

表3:将饮用水视为污染物的误报率。CAE的误报率均为0。
在这里插入图片描述
表4:将污染物视为正常水样的误报率。CAE对苯酚的误报率最低。
在这里插入图片描述
通过查看三种方法在训练和设置样本中提取的特征,进一步研究了原因,如下图所示。
上排:将饮用水误报为苯酚,PARAFAC的误报率达到2%,而PCA的误报率达到14%。
下排:训练集和测试集中饮用水的特征谱。
在这里插入图片描述

四、结论

针对饮用水中有机污染物的特征进行分类的问题,本文提出了CAE+XGBoost的新方法,该方法优于传统方法。传统方法在污染物浓度较低时的识别性能较差,且更容易受到干扰。由于CAE可以获取多层卷积特征的并减少信息损失,因此它能够从光谱中收集高贡献(点)和纹理特征,从而获得更好的污染物识别性能。

随着在线光谱仪的快速发展和在线监测站点的快速增加,本文的新方法可以在在线监测和饮用水污染预警系统中得到应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1193578.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java算法:快速排序

一、快速排序 快速排序算法是对冒泡排序算法的一种改进算法,在当前所有内部排序算法中,快速排序算法被认为是最好的排序算法之一。 基本思想:通过一趟排序将待排记录分隔成独立的左右两部分,左边的子序列中所有数据都比右边子序列…

合并文档的 7 个免费 PDF 合并平台

如果没有合适的软件,将文档合并成 PDF 可能会很棘手。因此,这里有六个最好的 PDF 合并平台可以帮助您。 如果您每天处理多组 PDF 文件或其他文档,将它们组合成一个更大的文档可以轻松处理。PDF 合并应用程序可以帮助您使用工具加快此过程&am…

ESP32 下蓝牙播放音乐

之前发过一贴: esp32 下蓝牙播放音乐歌词的获得_esp32 蓝牙音频-CSDN博客 说的是esp32 蓝牙接收音频流同步获得歌词的方案,但是有个很核心的内容由于硬件原因没有谈及,就是播放音乐。 这几天被抖音上各种水桶卡顿刺激了,经过一…

模拟实现qsort()

𝙉𝙞𝙘𝙚!!👏🏻‧✧̣̥̇‧✦👏🏻‧✧̣̥̇‧✦ 👏🏻‧✧̣̥̇:Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - :来于“云”的“羽球人”。…

24年PMP考试如何安排?怎么备考?

24年pmp考试不出意外的话就是3、6、9、12月了。(PMP干货文末) PMP如何备考 24年的PMP考试还有3个多月,现在开始备考,再合适不过,我这里提出四点备考建议,希望能帮到备考的大家: 一、要看的三份…

openGauss学习笔记-119 openGauss 数据库管理-设置数据库审计-设置文件权限安全策略

文章目录 openGauss学习笔记-119 openGauss 数据库管理-设置数据库审计-设置文件权限安全策略119.1 背景信息119.2 数据库程序目录及文件权限119.3 建议 openGauss学习笔记-119 openGauss 数据库管理-设置数据库审计-设置文件权限安全策略 119.1 背景信息 数据库在安装过程中…

Python算法:动态规划解决0-1背包问题

动态规划(Dynamic Programming,简称DP)是一种在数学、计算机科学和经济学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题,它能够将问题…

js将图片文件转为base64格式

/***图片文件转换成BASE64字符串,异步任务*param {File} file图片文件对象*return {String} BASE64字符串*/ const getBase64 (file: File) > new Promise((resolve: (url: string) > void, reject) > {const reader new FileReader();reader.onload ()…

一款基于.Net开发、开源、支持多平台云存储文件管理器

目录 01 项目简介02 项目代码03 部分截图04 项目地址 今天给大家推荐一款基于基于.Net开发、开源的,支持多平台的云存储文件管理器。 01 项目简介 Camelotia是一款云存储文件管理器,基于.Net UI框架和ReactiveUI框架开发的,目前支持的平台有…

GTDB-Tk基因组物种注释

文章目录 安装GTDB-Tk v2.3.3 and gtdbtk_r214_data.tar.gzGTDB-Tk v2.1.1 and gtdbtk_r207_v2_data.tar.gzGTDB-Tk 1.3.0 数据库classify_wf 物种注释一步使用分步使用批量dRep以及GTDB注释注意报错由于基因组存在重复id导致Pfam报错 查看已经安装的数据库iTOL可视化问题pplac…

时间序列预测(1) — 时间序列预测研究综述

目录 1 什么是时间序列预测? 2 时间序列预测的应用场景与分类 3 时间序列数据的特性 4 时序预测评价指标 5 基于深度学习的时间序列预测方法 5.1 卷积神经网络 5.2 循环神经网络 5.3 Transformer类模型 1 什么是时间序列预测? 时间序列:指对某种事物发展…

LabVIEW在OPC中使用基金会现场总线

LabVIEW在OPC中使用基金会现场总线 本文讨论了如何使用开放的OPC(用于过程控制的OLE)接口访问基金会现场总线网络和设备。 NI-FBUS通信管理器随附了一个OPC数据访问服务器。 (NI-FBUS Configurator自动包含NI-FBUS通信管理器。&#xff09…

JVM-虚拟机的故障处理与调优案例分析

案例1:大内存硬件上的程序部署策略 一个15万PV/日左右的在线文档类型网站最近更换了硬件系统,服务器的硬件为四路志强处理器、16GB物理内存,操作系统为64位CentOS 5.4,Resin作为Web服务器。整个服务器暂时没有部署别的应用&#…

深度学习pytorch之hub模块

pytorchhub模块里面有很多模型 https://pytorch.org/hub/ github网址:https://github.com/pytorch/pytorch import torch model torch.hub.load(pytorch/vision:v0.10.0, fcn_resnet50, pretrainedTrue) # or # model torch.hub.load(pytorch/vision:v0.10.0, fc…

Linux C语言进阶-D15递归函数和函数指针

递归函数 指一个函数的函数体中直接或间接调用了该函数本身 执行过程分为两个过程: 递推过程:从原问题出发,按递归公式递推从未知到已知,最终达到递推终止条件 回归阶段:按递归终止条件求出结果,逆向逐步…

Linux 基本语句_10_进程

进程和程序的区别: 程序是一段静态的代码,是保存在非易失储存器上的制令和数据的有序集合,没有任何执行的概念;而进程是一个动态的概念,它是程序的一次执行过程,包括了动态创建、调度、执行和消亡的整个过程…

Unity中Shader雾效的原理

文章目录 前言一、我们先看一下现实中的雾二、雾效的混合公式最终的颜色 lerp(雾效颜色,物体颜色,雾效混合因子) 三、雾效的衰减1、FOG_LINEAR(线性雾衰减)2、FOG_EXP(指数雾衰减1)3、FOG_EXP(指数雾衰减2) 前言 Unity中Shader雾…

linux espeak语音tts;pyttsx3 ubuntu使用

整体使用espeak声音很机械不太自然 1、linux espeak语音tts 安装: sudo apt install espeak使用: #中文男声 espeak -v zh 你好 #中文女声 espeak -v zhf3 你好 #粤语男声 espeak -v zhy 你好注意:espeak -v zh 你好 (Full d…

由于找不到msvcp140_1.dll无法继续执行代码怎么解决

msvcp140_1.dll是Microsoft Visual C库文件之一,丢失后可能导致程序无法正常运行。以下是一些关于解决msvcp140_1.dll丢失问题的方法以及丢失原因的介绍。 一、msvcp140_1.dll是什么? 作用:msvcp140_1.dll是Microsoft Visual C库文件&#…

Linux开发工具之软件包管理器 yum

文章目录 1.了解yum1.1yum的介绍1.2yum的作用 2.了解软件包3.yum三板斧3.1查看软件包3.2安装软件3.3移除软件3.4centos7有趣的软件 1.了解yum 1.1yum的介绍 一般原生的Linux系统,内置的下载链接基本都是配套的国外的网址 上图中的软件发布平台是国外的 因为我们国家…