陶 洋,杨皓诚,梁志芳,黎春燕,胡 昊
(重庆邮电大学通信与信息工程学院,重庆 400065)
电子鼻又称为仿生嗅觉系统,是一个由气体传感器阵列和模式识别算法组成的用于气体识别的系统[1],在环境监测[2]、食品检测[3]和医疗诊断[4]等多个领域均有所应用。电子鼻能够模拟人类嗅觉系统以实现气体识别的关键在于其内部的气体传感器能够根据不同气体的特性产生对应的电信号响应,这些响应通过模式识别算法的处理最终转换为气体识别结果。
由于传感器老化或外界气体中毒等原因,传感器会发生漂移现象。将传感器未发生漂移时采集到的样本定义为源域样本,而将从已发生漂移的传感器中采集到的样本定义为目标域样本,漂移会引起相同环境条件下传感器输出响应发生变化,导致源域样本特征与目标域样本特征出现差异,进而使得识别算法精度下降。传感器漂移问题普遍存在于电子鼻系统中且无法避免。近年来许多学者提出了针对传感器漂移补偿的算法,Zhang等[5]提出了一种基于半监督学习的领域自适应极限学习机(domain adaptation extreme learning machine,DAELM)的漂移补偿方法,该方法在使用了目标域有标签样本的同时,还利用了目标域中无标签样本的特征分布共同构建分类器。Gong等[6]从减小域间距离的角度出发提出了基于测地线(geodesic flow kernel,GFK)的无监督学习算法,该算法被进一步的优化为Cui等[7]所提出的基于移动协方差的领域自适应算法。Zhang等[8]基于子空间学习提出了领域正则化成分分析(domain regularized component analysis,DRCA)方法,该方法将2个不同领域内的所有样本映射到一个具有相同维度的子空间中,并通过最大均值差异(maximum mean discrepancy,MMD)来度量源域与目标域间样本特征的分布差异。上述方法虽然能够得到较好的传感器漂移补偿效果,但它们均属于离线方法,需要定期对目标域样本进行采集并重新训练识别模型以实现补偿过程,而在实际应用中对大批量的电子鼻系统进行定期离线校正是不现实的。
针对上述现有算法所存在的局限性,本文提出了一种基于稀疏自编码器的在线漂移补偿算法(online drift compensation sparse autoencoder,ODCSAE)。该算法能够在不借助任何目标域样本的情况下,通过稀疏自编码器(sparse autoencoder,SAE)的特征学习和分类器的标签判别,获得相近甚至优于离线漂移补偿方法的分类精度。
本文所提出的ODCSAE算法创新点在于:
(1)模型训练的全过程无需目标域样本参与,训练后所得模型可对流式到达的目标域样本进行在线漂移补偿,更贴近于实际应用场景;
(2)引入l1范数实现了自编码器的稀疏,在加快模型训练速度的同时提升了特征投影的效果;
(3)通过构建分类器完成标签预测,相较于文献[9]中的方法,在样本类别数较多的情况下,大幅减少了模型使用过程中分类标签的判别时间。
自编码器(autoencoder,AE)是一种基于神经网络的无监督学习算法,最早由Rumelhart等人[10]提出,常用于数据降维和特征学习。自编码器由编码器和解码器两部分组成,其输出可分别表示为:
z=σ(W1x+b1)
(1)
(2)
一般通过添加约束条件使得重构样本在训练时不断接近输入样本,并在这种迭代中学习到输入样本的有效特征表示。
自编码器设计中常用的一种约束条件是将编码器的维数设置为大于输入样本的特征维数,并加入稀疏惩罚来抑制隐藏层节点的激活输出,实现样本特征的自动提取,这种自编码器被称为稀疏自编码器(sparse autoencoder,SAE),损失函数表示为:
(3)
KL散度(kullback-leibler divergence,KL divergence)常作为稀疏自编码器的稀疏惩罚,用于度量输入样本与重构样本间的特征匹配程度[11],其值的大小与样本特征的分布差异程度成正比。另一种稀疏性的添加方法是引入l1范数作为惩罚项,φ用于约束编码器的输出。相较于l2范数,l1范数更容易获得有效稀疏解[12]。
本文提出的基于稀疏自编码器的在线漂移补偿算法模型(ODCSAE)由稀疏自编码器与分类器两部分组成,算法模型如图1所示。
图1 ODCSAE算法模型框图
首先,输入源域样本特征训练稀疏自编码器,而后将编码器权重矩阵与源域样本标签一并带入到分类器的训练中。当目标域样本到达时,通过训练好的稀疏自编码器获得其在源域非线性结构下的重构表示,而后对该重构样本进行特征增强,并将增强后的样本输入到分类器中以实现样本标签的预测。
图2 稀疏自编码器结构图
稀疏自编码器训练中不需要使用源域样本标签,编码的过程实际上是将源域样本特征投影到另一个高维子空间中,并使用稀疏惩罚筛选出有效的特征表示。为了保证投影的稀疏性,引入l1范数对编码器的输出进行惩罚。此时稀疏自编码器的损失函数为:
(4)
(5)
图3 分类器结构图
输入源域样本及对应标签完成分类器权重与偏置的迭代更新,此时分类器的损失函数为:
(6)
(7)
分类器的最终输出表示为:
(8)
式中g(·)和s(·)为激活函数,其中g(·)选为ReLU函数,而s(·)选为softmax函数。
本文受文献[9]的启发,对编码及分类过程进行改进。主要改进在于两点:一是引入了特征增强,使得整个网络能够在仅使用源域样本进行模型训练的情况下完成对流式到达的目标域样本的有效标签判别;二是将分类器添加到自编码器的输出后,从而将样本标签分类结果使用以softmax作为激活函数的输出层直接算出。通过softmax函数,判别输入样本标签的度量标准由文献[9]中的最小均方误差转换为将网络输出值映射到区间(0,1)内,取输出值最大的节点对应的标签作为最终的分类结果,解决了当样本类别数较多时,使用文献[9]中的方法逐一计算比对均方误差而导致较长的标签判别时间的问题。
(9)
(10)
ODCSAE算法流程如下:
训练过程:
测试过程:
本文所使用的数据集为气体传感器阵列漂移数据集。该数据集收录于加州大学欧文分校(university of california irvine,UCI)机器学习数据库,数据库中的各类数据集常被机器学习相关的论文用于算法验证。数据集由Vergara等人[13]自2008年1月至2011年2月历时3年,使用包含了16个气体传感器的电子鼻系统,从每个传感器的输出响应中提取出8维特征后得到的,如表1所示。数据集共含有13 910个样本,依据采集时间的不同分为10个批次。
表1 气体传感器阵列漂移数据集样本组成 个
本文中的实验基于tensorflow-gpu(1.14.0)、keras(2.3.0)深度学习框架和scikit-learn(0.21.3)机器学习工具包设计。测试的分类精度由式(11)算出:
(11)
式中:Nc为每轮测试中通过算法预测获得正确气体分类的样本数量;N为当轮测试使用到的所有样本数量。
本文设计了两种不同的实验场景。
设置1:将批次1作为源域用于模型训练,批次2至批次10分别作为目标域用于测试。
设置2:将批i作为源域用于模型训练,其中i=1,2,…,9,批次i+1作为目标域用于测试。
ODCSAE模型建立过程中,选择adadelta作为优化器,稀疏自编码器输入层与输出层的节点数均选择为128,即数据集中样本的特征维数,隐藏层节点数nh选择为256,惩罚项系数λ选择为10-6,损失度量选择为均方误差。分类器的输出层节点数c对应于数据集中的6类气体标签选择为6,输入层和隐藏层节点数与稀疏自编码器相同分别设置为128和256,损失度量选择为交叉熵。
为了充分验证算法的有效性,本文选择了主成分分析(PCA)、线性判别分析(LDA)、基于径向基函数的支持向量机(SVM-rbf)、基于测地线核函数的支持向量机(SVM-gfk)、基于测地线组合核函数的支持向量机(SVM-comgfk)、广义最小二乘加权(GLSW)、直接标准化(DS)、领域正则化成分分析(DRCA)[8]和增强型极限学习机(AELM)[9]作为对比算法。
设置1下的各算法分类精度如表2所示。通过表2可以发现ODCSAE的平均精度达到了73.99%,仅次于DRCA。ODCSAE在批次6和批次8中获得了最优的分类精度,但在批次9和批次10上表现不佳。由表1可知,造成这种结果的原因可能是批次9和批次10样本采集时间距离批次1较远,目标域样本特征分布相较于源域已经发生了较大的变化,因此把这两个批次的样本进行自编码并完成特征增强后,无法有效地将样本特征向源域拉近,进而导致了较低的分类精度。虽然ODCSAE未在设置1下获得最高的平均分类精度,但除ODCSAE和AELM外,其他对比算法均使用了部分或全部目标域样本参与模型的训练。ODCSAE在训练过程中只使用了源域样本,更贴近于现实场景下的应用。
表2 实验设置1下各个算法的分类精度 %
表3展现了设置2下各算法的分类精度对比,可以发现ODCSAE获得了最高的平均分类精度77.63%,同时在4→5和5→6两个批次中获得了最优的分类精度。如表1所示,批次5中并不含有任何标签为甲苯的样本,因此在批次5→6的测试中,表中所有的方法均无法判别批次6中的甲苯样本,但即使在这种情况下,ODCSAE依然在这一批次的测试里获得了74.61%的分类精度,进一步证明了对目标域样本进行样本重构与特征增强能够有效的拉近源域与目标域间相似特征的距离。ODCSAE在批次9→10中仅获得了29.44%的分类精度,产生这种结果的可能原因在于批次9与批次10的样本特征分布差异过大,致使特征增强失效,进而无法获得较高的分类精度。
表3 实验设置2下各个算法的分类精度 %
为了解决电子鼻系统中气体传感器的漂移补偿问题,本文提出了基于稀疏自编码器的在线漂移补偿算法(ODCSAE)。该算法能够有效地获取源域样本的特征信息,并通过样本重构与特征增强将这些信息添加到目标域样本的特征空间中。实验证明,ODCSAE能够在没有任何目标域样本参与模型训练的情况下获得较好的分类准确率,有效地实现了电子鼻传感器的在线漂移补偿。但由于传感器漂移产生因素的复杂性,ODCSAE对采样间隔较大的样本批次分类效果较差。今后的工作将改进ODCSAE以探索该算法在线场景下实现模型动态更新的可能性,扩展算法的适用范围。