为了解决温度对光谱的影响,已存在两类方法,第一类剔除温度信息,通过主成分分析[6](principal component analysis,PCA)和其改进方法即外部参数正交化[7],去除温度敏感波长,减小温度对光谱的影响。第二类利用温度信息,将温度作为有效参数,建立了良好的三维光谱校正模型,但温度点稀疏且计算量大[8]。
本文从第二类方法出发,基于深度学习的残差神经网络[9](residual neural network,ResNet)和注意力机制[10](attention mechanism,AM),提出变温注意力残差网络(variable temperature attention residual network,VTARNet),对奶油中靛蓝色素含量进行了分析。
1 数据集与模型构建
实验主要分为3步,首先,采集不同温度不同含量的靛蓝色素奶油的温度热力图以及近红外光谱数据,然后对实验数据进行增强与建模,将没有加入AM的变温残差网络(variable temperature residual network,VTRNet)与常用的深度学习网络LeNet[11]、AlexNet[12]、ZFNet[13]、VGG19[14]、GoogLeNet[15]和DenseNet[16]进行对比分析,提取最佳模型,并将VTARNet与结合常用光谱特征处理方法如连续投影算法(successive projections algorithm,SPA)、竞争性自适应重加权采样法(competitive adapative reweighted sampling,CARS) [17]和PCA的最佳模型进行对比分析,最后对VTARNet定量检测模型进行评估与调优。所有模型均运行在Ubuntu18.04的虚拟环境Python 3.6上,开发框架为Pytorch1.4.0,服务器GPU型号为NVIDIA GTX2080Ti,8 GB显存。
1.1 数据采集
实验样品为植脂奶油,色素为靛蓝,纯度达到99%。使用仪器Sartorius CP224S 万分之一电子天平对靛蓝色素和打发的奶油进行计量得到奶油中靛蓝色素的含量数据。再将色素和奶油混合搅拌均匀,填充进样品池进行控温,对不同温度不同含量的样品分别进行近红外光谱采集。控温仪器为数显恒温水浴锅HH-6以及恒温冰箱,测温仪器为海康威视卡片式测温热像仪[18]。使用傅里叶变换近红外光谱仪(InfraLUM FT-12)采集光谱,采集方法为非接触式,其分辨率为8 000~14 000 cm-1,间隔为16 cm-1。扫描样品的上、下8个点,每个点扫描12次,最后输出一条光谱为96条光谱的平均值,减少偶然误差,增加准确性。每条光谱有390维特征,这些光谱特征对应一条温度数据以及含量数据。有关本实验样品的更多信息如表1所示。
1.2 特征增强与建模
1.2.1 VTRNet模型 VTRNet网络结构图如图1所示,由1个1D卷积层,2个残差模块,2个最大池化层和随机丢弃(dropout)层,1个自适应最大池化层,2个全连接层和1个激活函数Relu层组成。进入VTRNet模型前首先对输入的数据进行一阶导数标准化和维度处理,达到光谱降噪和增加通道维度的效果,并将通道设置为1,以便输入1D卷积。1D卷积输入通道为1,产生的输出通道为12,卷积核尺寸为3,步长为1,输入每一条边补充1的层数。将1D卷积初步特征提取的数据输入残差模块,然后使用1D最大池化层和Dropout层防止过拟合。1D最大池化层窗口大小设置为2,dropout层丢弃概率设置为0.2。将以上3个模块重复两次,对复杂光谱高维特征与温度特征进行充分赋权提取。接下来使用自适应最大池化层降低数据维数,输入全连接层展平数据,并加入Relu函数作为输出层,增强模型非线性能力。
1.2.2 VTARNet模型 VTARNet模型在VTRNet网络结构的所有残差层之后串联注意力机制构成注意力残差模块,如图2所示,将并发空间和通道挤压和激励(concurrent spatial and channel squeeze and channel excitation,scSE)注意力机制[19]和残差网络结合,进行特征增强。
残差网络训练成本较低,使用跳跃连接对高维特征进行恒等映射,使特征跨层流动,得到更好的保留。注意力残差模块中的残差层输入通道数为12,中间通道数为6,输出通道数为12,由卷积核尺寸分别为1,3,1的卷积层构成。卷积层的运算公式为
[xi+1=f(ki?xi+bi)] (1)
[xi]为输入,[ki]为卷积核,[bi]为偏置值,[?]为卷积运算,[f]为激活函数,[xi+1]为输出。
每个卷积层后有一个批量归一化层和Relu激活函数层。残差网络中的批量归一化层,使模型训练过程更加稳定。批量归一化核心公式为
[yi=γxi-1mi=1mxi1mi=1m(xi-1mi=1mxi)2+β] (2)
[B={x1…m}]为输入数值集合,[γ, β]为可训练参数, [yi]为输出由于光谱数据数量有限,残差网络在有限数据下容易出现过拟合现象,将注意力模块嵌入残差网络,通过权值学习在全局上增强网络对光谱中温度和含量重要特征的相关性,能有效提高提取特征的能力。受益于残差结构,使用注意力机制能捕获两个信息源,提高学习效率。scSE注意力机制由空间挤压和通道激励(spatial squeezeand channel excitation, cSE) 和通道挤压和空间激励(channel squeezeand spatial excitation , sSE)组成。cSE首先使用全局平均池化分解空间特征,然后对通道进行卷积处理,生成代表性张量。对张量使用激活函数,得到每个通道的注意力权重,最后将权重与初始特征的通道相乘,完成通道调整。sSE使用卷积和Sigmoid函数得到空间注意力权重,与输入特征融合,完成空间调整。scSE的输入通道数为12,通过对输入特征分别做空间和通道上重要性程度的提取,并进行相加处理后,提高了骨干网络对重要空间和通道特征信息的表征能力。
1.3 模型评估与调优
1.3.1 模型评估指标 模型常用评估指标有模型大小、总参数量、模型速度即运行500轮所需时间、训练损失、测试损失、决定系数和相对分析误差。相对分析误差大于2.0代表模型能够用于分析,大于3.0可实际运用[20]。
1.3.2 模型调优 模型调整优化得到最佳的VTARNet,需要进行组合选取最佳的模块有:Dropout层,激活函数层以及模型迭代优化器。通过是否使用Dropout层,判断是否需要进一步缓解过拟合。同步调整输出预测前的激活函数以及残差层的激活函数,在Relu和Sigmiod激活函数中选取最佳。模型迭代优化时,从传统的随机梯度下降(stochastic gradient descent,SGD)与适应性矩估计(adaptive moment estimation,Adam)算法中选择收敛较为快速的算法。
2 结果与讨论
2.1 近红外光谱数据及对应温度数据分析
采集的变温条件下奶油中靛蓝色素的近红外光谱数据,如图3(a)所示。近红外光谱的谱带复杂重叠,可以初步观察得出,C-H三倍频信息在8 600 cm-1附近有1个尖锐的吸收带,N-H三倍频信息在10 000 cm-1附近有1个重点吸收带, ArCH的四倍频信息在11 600 cm-1附近有1个小型吸收峰。对原始近红外光谱数据使用一阶导数降噪,处理后如图3(b)所示。采集到的对应的466条温度数据箱型图如图3(c)所示,以22.5 ℃为中心呈正态分布。
2.2 VTRNet与常用模型对比分析
VTRNet模型在VTARNet模型基础上去掉了scSE 注意力机制。对数据集按4∶1的比例随机划分为训练集与测试集,并固定数据集的划分,使模型对比评估更加公平。总轮数为500,模型每轮训练和测试时选取的批大小固定为128并将数据顺序充分打乱,提高模型的泛化能力,防止过拟合。损失函数使用均方误差,优化器使用SGD优化。6个模型与VTRNet模型决定系数与相对分析误差趋势如图4所示。所有模型的决定系数与相对分析误差都呈稳步上升趋势,模型逐渐收敛,但会有一定范围内的起伏波动。初步分析,效果最好的为 GoogLeNet和 VTRNet,并且GoogLeNet的波动相对平稳。
所有模型全部评估指标如表2所示,相对分析误差最高的为GoogLeNet,决定系数最高的为VTRNet。VTRNet模型大小和参数量相较而言具有很大优势,其训练速度与LeNet训练速度都比较快,但是LeNet模型训练损失和测试损失相差较大,模型过拟合。AlexNet,ZFNet和DenseNet相对分析误差低于2.0,不能用于分析。VGG19相对分析误差和决定系数较高,但是模型大小,参数量均最高,训练时间达到了40 min。所以选择最佳模型GoogLeNet进行进一步优化。
2.3 VTARNet与优化的GoogLeNet对比分析
GoogLeNet模型优化是指对输入模型的数据先进行特征提取。第一种方法是光谱波段选择里常用的SPA算法。第二种是机器学习里常用的数据降维算法PCA。第三种是CARS算法,其特征选择具有随机性,故运行5次选取最佳波点数。使用这三种方法对输入GoogLeNet的数据进行处理后与VTARNet的评估指标对比如表3所示。
使用SPA和PCA进行特征提取后再输入GoogLeNet模型,4种评价指标效果均变差。使用CARS算法以后,相对分析误差有较大提升,达到了2.619 5,且决定系数最高,为0.894 1。其训练和测试损失都显示有所降低,但模型过拟合。VTARNet模型的训练和测试损失最低,相对分析误差最高,为2.637 2,但决定系数略逊于CARS + GoogLeNet。所以需要对VTARNet模型进一步调整。
2.4 VTARNet模型调优与评估分析
对模型是否使用Dropout层,激活函数使用Relu还是Sigmoid,以及模型迭代优化器使用SGD还是Adam进行组合,选取表现最佳的模型结构。进行模型优化的评估指标如表4所示。表中√表示使用,×表示未使用。首先分析优化器,模型使用Adam优化器时的整体指标优于使用SGD时的。Adam优化器收敛速度更快。然后,在使用Adam优化器的情况下,固定激活函数,分析是否需Dropout层。没有使用Dropout层的和使用了的训练损失和测试损失之间差距从0.001 6缩小到0.000 5。最后,模型在使用Adam优化器,Dropout层时,Relu比Sigmoid更优秀, Relu函数能防止梯度弥散并加快计算,此时决定系数和相对分析误差达到了新高,为0.929 3和3.703 1。
因此,VTARNet模型最终结构需要Dropout层,并使用Relu激活函数和Adam优化器。模型在训练集上真实值和预测值的对比如图5所示。除了少数极大极小值附近的预测不够准确,其余部分预测基本一致。因此VTARNet模型将温度作为特征变量,对复杂光谱高维特征与温度特征进行充分赋权提取,能很好地融合温度对光谱的影响,解决了变温条件下奶油中靛蓝色素的近红外光谱定量检测问题。
<G:\武汉工程大学\2024\第4期\张芸-5.tif>[0 20 40 60 80 100
光谱数量][1.0
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1][归一化含量值 / (g/kg)][真实值
预测值]
图5 模型的真实值和预测值对比
Fig. 5 Comparison of the true and predicted values of the VTARNet model
3 结 论
提出了一种变温注意力残差网络VTARNet,使用近红外光谱和温度数据对奶油中靛蓝色素定量分析。VTARNet中将scSE注意力机制放在残差模块后,既能发挥残差网络的优势,减少训练时间,又能利用恒等映射的融合特征,使scSE在空间和通道上更全面充分地进行特征赋权,提高了学习效率。VTRNet与GoogLeNet的表现比其余模型更佳。VTARNet总体表现最佳在与特征优化后的GoogLeNet对比中。VTARNet结构中Dropout层能有效提高泛化能力,使训练和测试损失间差距缩小至0.000 5。输出层的Relu激活函数与Adam优化器结合能使VTARNet模型达到最优效果,决定系数和相对分析误差分别达到了0.929 3和3.703 1。VTARNet模型简单高效,具有高精度,高鲁棒性,达到了实践运用的标准,有助于近红外光谱人工智能快速检测技术在食品安全领域的发展。