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

【论文基本信息】 标题: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.rhkb.cn/news/188828.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Clickhouse学习笔记(8)—— 建表优化

数据类型 时间字段 建表时能用数值型或日期时间类型(DateTime)表示的字段就不要用字符串 因为clickhouse进行分区时一般使用时间字段来进行分区,而将时间字段使用DateTime表示,不需要经过函数转换处理,执行效率高、…

黑窗口连接远程服务

ssh root192.168.x.x 回车输入密码 查看docker docker ps 停止正在运行的服务 docker stop xxxxx 删除服务 docker rm xxxxx 查看镜像 docker images 删除镜像 docker rmi xxxxx 删除镜像 启动并运行整个服务 docker compose up -d jar包名称 idea 使用tcp方式连接docker 配置d…

深度探究深度学习常见数据类型INT8 FP32 FP16的区别即优缺点

定点和浮点都是数值的表示(representation),它们区别在于,将整数(integer)部分和小数(fractional)部分分开的点,点在哪里。定点保留特定位数整数和小数,而浮点…

webpack babel

构建工具 简介 当我们习惯了在node中编写代码的方式后,在回到前端编写html、css、js这些东西会感觉到各种的不便。比如:不能放心的使用模块化规范(浏览器兼容性问题)、即使可以使用模块化规范也会面临模块过多时的加载问题。我们…

S7-1200PLC和SMART PLC开放式以太网通信(UDP双向通信)

S7-1200PLC的以太网通信UDP通信相关介绍还可以参考下面文章链接: 博途PLC开放式以太网通信TRCV_C指令应用编程(运动传感器UDP通信)-CSDN博客文章浏览阅读2.8k次。博途PLC开放式以太网通信TSENG_C指令应用,请参看下面的文章链接:博途PLC 1200/1500PLC开放式以太网通信TSEND_…

图书销售数据大屏可视化【可视化项目案例-03】

🎉🎊🎉 你的技术旅程将在这里启航! 🚀🚀 本文选自专栏:可视化技术专栏100例 可视化技术专栏100例,包括但不限于大屏可视化、图表可视化等等。订阅专栏用户在文章底部可下载对应案例源码以供大家深入的学习研究。 🎓 每一个案例都会提供完整代码和详细的讲解,不…

k8s 裸金属集群部署metalLB软负载均衡 —— 筑梦之路

metalLB 官方网站 Repo:https://github.com/metallb/metallb 官网:https://metallb.universe.tf/installation metalLB解决什么问题? MetalLB 是一个用于裸机 Kubernetes 集群的负载均衡器实现,使用标准路由协议。 k8s 并没有为裸…

【m98】webrtc vs2017构建带符号的debug库

调试有符号 调试 无符号 试试exe不输出到独立的文件? -】 直接输出到sln下面

(2023|CVPR,扩散,主体标识符,先验保存损失)DreamBooth:微调文本到图像的扩散模型以实现主题驱动的生成

DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation 公众号:EDPJ(添加 VX:CV_EDPJ 或直接进 Q 交流群:922230617 获取资料) 目录 0. 摘要 1. 简介 2. 相关工作 3. 方法 3.…

C语言--从键盘输入当月利润I,求应发奖金总数。

题目描述: 企业发放的奖金根据利润提成。利润I低于或等于100000元的,奖金可提成10%; 利润高于100000 元,低于200000元(1000001000000时,超过1000000元的部分按 1%提成。从键盘输入当月利润I,求应发奖金总数。 int main() {int m…

使用MybatisPlus时出现的java.lang.NullPointerException异常~

错误描述如下所示: 错误原因:Junit的导包错误 单元测试的包有如下所示两个 我们应该根据springboot的版本进行选择, 在Spring Boot 2.2.X以后使用import org.junit.jupiter.api.Test Junit5 在Spring Boot 2.2.x之前使用import org.junit.T…

junit写搜索树测试

用法 assertTrue(range.contains("Two")); 2个参数,右边错就打印左边. AbstractSelfBalancingBinarySearchTree abt; AbstractBinarySearchTree.Node node; Before public void setUp() { abt new AbstractSelfBalancingBinarySearchTree() { Override protecte…

javaEE案例,前后端交互,计算机和用户登录

加法计算机,前端的代码如下 : 浏览器访问的效果如图 : 后端的代码如下 再在浏览器进行输入点击相加,就能获得结果 开发中程序报错,如何定位问题 1.先定位前端还是后端(通过日志分析) 1)前端 : F12 看控制台 2)后端 : 接口,控制台日志 举个例子: 如果出现了错误,我们就在后端…

【h5 uniapp】 滚动 滚动条,数据跟着变化

uniapp项目 需求: 向下滑动时,数据增加,上方的日历标题日期也跟着变化 向上滑动时,上方的日历标题日期跟着变化 实现思路: 初次加载目前月份的数据 以及下个月的数据 this.getdate()触底加载 下个月份的数据 onReach…

Panda3d 场景管理

Panda3d 场景管理 文章目录 Panda3d 场景管理有关分层场景图的重要信息NodePathNodePath 以及 Node 的函数调用模型文件文件格式加载模型文件将模型放置在场景图中模型缓存压缩模型异步加载模型通过回调函数进行 常见的状态变化修改节点的位置和姿态改变父级节点改变颜色隐藏和…

如何帮助 3D CAD 设计师实现远程办公

当 3D CAD 设计师需要远程办公时,他们可能需要更强的远程软件,以满足他们的专业需求。比如高清画质,以及支持设备重定向、多显示器支持等功能。3D CAD 设计师如何实现远程办公?接下来我们跟随 Platinum Tank Group 的故事来了解一…

JS实现数据结构与算法

队列 1、普通队列 利用数组push和shif 就可以简单实现 2、利用链表的方式实现队列 class MyQueue {constructor(){this.head nullthis.tail nullthis.length 0}add(value){let node {value}if(this.length 0){this.head nodethis.tail node}else{this.tail.next no…

drawio连接线的样式设置

drawio是一款强大的图表绘制软件,支持在线云端版本以及windows, macOS, linux安装版。 如果想在线直接使用,则直接输入网址draw.io或者使用drawon(桌案), drawon.cn内部完整的集成了drawio的所有功能,并实现了云端存储,以及在线共…

DDoS攻击剧增,深入解析抗DDoS防护方案

当下DDoS攻击规模不断突破上限,攻击方式越发复杂。面对复杂的攻击形式,对于企业和组织来说无疑需要更完备的抗DDoS方案,依靠传统的解决方法并不能做到一劳永逸。在服务器抵抗DDoS防护上,你不会忽略F5的产品,让我们一起…

【LLM_03】自然语言处理基础_1

一、自然语言处理基基本任务和应用1、自然语言处理的基本任务2、搜索引擎的基本工作原理3、知识图谱的构建4、应用 二、词表示与语言模型1、词表示2、上下文3、语言模型4、神经网络在语言模型的应用 三、神经网络1、神经网络基本组成元素2、如何训练神经网络3、计算图的概念4、…