陶 洋,刘翔宇,梁志芳
(重庆邮电大学 通信与信息工程学院,重庆 400065)
相较于视觉的发达,人类的嗅觉并不出色。因此机器嗅觉可以在多个领域替代人工[1],实现对气体的检测与分析,例如环境质量监测[2]、食品安全[3]、医疗卫生等[4],对电子鼻系统的研究具有重大的价值。
电子鼻传感器阵列的优化是一类特殊的特征选择问题[5],主要表现在两个方面:
(1)电子鼻系统中的传感器普遍具有广谱效应[5],因此传感器之间的冗余有别于传统特征之间的冗余,在冗余度相同的情况下前者更倾向于较大的冗余分布,即筛选出较少重叠的特征;
(2)与传统特征选择不同,电子鼻传感器阵列更倾向于筛选出高敏感特征,即传感器对不同气体的响应有更大的幅度差。
综上所述,本文提出一种电子鼻传感器性能的互信息特征选择算法(Sensor Performance Mutal Information,SPMI),结合传感器特性进行特征子集的筛选,相较于现有算法获得了更优的识别精度。该算法的主要创新点有:
(1)针对候选特征与已选特征之间的冗余度设计权重函数,降低联合冗余信息离散程度小的特征权值,使得筛选出的特征之间相互冗余的数量降低;
(2)设计基于方差的特征敏感性评价函数,使得筛选的特征对目标响应具有更高的辨识度。
互信息特征选择算法根据评价函数J(Xm)对特征Xm打分[6],并根据需求的特征数量确定迭代次数,每次迭代从候选特征集合M 中获得最高分特征并将其加入已选特征集合N 中。
1994 年,Battiti 等人提出MIFS 算法[7],其评价函数如式(1)所示,该算法将特征与类的互信息作为相关性,将候选特征与已选特征之间的互信息作为冗余性,通过系数β 平衡两者之间的权重:
其中,I(Xm;L)为特征与标签的相关性;I(Xm;Xn)表示特征之间的相关性;β 作为平衡系数,权衡两者之间的权重。
2000 年,Yang 等人提出了JMI 算法[8],该算法在特征与类的相关性基础上,通过条件互信息进一步消除其中的无效信息:
2005 年,Peng 等人提出了mRMR 算法[9],该算法确定特征之间的冗余性的系数为已选特征数量的倒数,计算出冗余程度的集中趋势:
2018、2019 年Gao 等人相继提出了CFR 算法[10]、MRMD算法[11],分别如式(4)、式(5)所示:
通过上述分析,可知现有算法并未根据电子鼻传感器阵列特性进行优化,使得其在电子鼻传感器数据集上未能筛选出最优特征子集。据此本文提出基于传感器性能的互信息特征选择算法。
互信息特征选择算法主要通过评价函数作为准则筛选特征,SPMI 算法的评价函数分为三部分:特征相关性Jrev(Xm)、特征冗余性Jrdu(Xm)以及特征敏感性Jsen(Xm):
可以发现此评价函数采用特征与类的互信息衡量特征的相关性:
候选特征与已选特征的互信息I(Xm;Xn)可以简单地看作特征的冗余性。然而由于标签信息的存在,此互信息可根据是否存在标签信息划分为两个部分:
其中,I(Xm;Xn|L)中不带任何标签信息,被称为类外冗余。类外冗余因不带标签信息可不被考虑在冗余范围内,因此,可以缩 小冗余信 息为类内冗余I(Xm;Xn;L)。同时减去此特征与标签特有的条件互信息I(Xm;L|Xn),以最大化相关性[12]。可得到冗余互信息评价函数为:
然而当多个特征的冗余度相同时,传感器阵列更倾向于较大的冗余分布,因此可以根据均值μ 和标准差σ表征特征的类内冗余分布:
类内冗余标准差σ 越大,此特征的冗余离散程度越高,相同冗余度下与已选特征冗余的数量越小。由于冗余性评价函数与整体评价函数呈现负相关,因此将此标准差的倒数作为权重函数W,并通过常数项扩大函数定义域:
最后将函数W(Xm)作为特征冗余度的权值,获得特征冗余评价函数:
电子鼻传感器阵列所识别的目标气体之间往往具有相关性,例如混合气体的识别中,不同目标气体之间可能只有浓度的差异。这就要求传感器特征具有足够的敏感性区分不同的目标气体。
SPMI 算法根据特征变量的方差设计特征的敏感性评价函数。特征的方差越大,特征分量与均值的差异也就越高,传感器特征对不同目标气体的辨识能力也就越强。同时设置系数α 平衡敏感性占总评价函数的比重:
SPMI 算法通过逐步迭代获取候选特征集合中每次得分最高的特征,算法的详细流程如下:
综上所述,SPMI 算法结合传感器阵列特性,做出以下优化:
(1)基于类内冗余度获得最大相关性,并设计冗余度的标准差为权重函数,以筛选出冗余离散度更高的特征;
(2)基于特征方差设计敏感性,以筛选出对不同目标气体更敏感的特征。
本文使用了两个数据集验证所提出算法性能:
(1)加州大学欧文分校(University of California Irvine,UCI)机器学习库中收录的流量调制下气体传感器阵列数据集[13]。其中包含了从16 个金属氧化物传感器在气流调制条件下获取的58 个时间序列内的响应。调制的气流为丙酮、乙醇以及二者的气态混合物,实验将传感器时间序列内稳态最大响应值作为候选特征。
(2)重庆大学生物感知与智能信息处理实验室采集的伤口细菌电子鼻公开数据集[14]。实验采用了34 个化学传感器获取对大肠杆菌培养液、金黄色葡萄球菌培养液、铜绿假单胞菌培养液以及任意两种混合培养液的响应,同样将传感器稳态最大响应值作为候选特征。
实验将在上述数据集中运行泛化性能良好的现有算 法(MIM、JMI、mRMR、MIFS、CFR、MRMD)以及所提出算法(SPMI)进行对比,获得各对比算法筛选出特征子集,并在分类算法(支持向量机(Suport Vertor Machine,SVM))下获得特征子集的识别精度[15]。
经过多次实验,确定在流量调制数据集下特征敏感性的系数α=1,伤口细菌数据集下系数α=0.3,能达到最优效果。支持向量机的核函数采用径向基函数(Radial Basis Function,RBF)能获得更好的分类精度。
本次实验在流量调制数据集和伤口细菌数据集下获取的特征子集的识别精度趋势如图1 和图2 所示,精度的数值如表1 和表2 所示。
表2 伤口细菌数据集下各算法筛选传感器的识别精度 (%)
图1 流量调制数据集特征子集识别精度折线图
图2 伤口细菌数据集特征子集识别精度折线图
表1 流量调制数据集下各算法筛选传感器的识别精度 (%)
图1 和图2 展现了在两个数据集上应用不同的算法得到的传感器子集在进行模式识别精度的趋势变化。可以发现在流量调制数据集中,当特征数量在30%~50%的范围时,SPMI 算法筛选的特征子集获得了最好的识别精度,随着特征数量的继续上升该算法也保持了良好的效果;在伤口细菌数据集下,SPMI 算法相较于对比算法则始终保持了最高的识别精度。
表1 和表2 列出了在两个数据集中不同算法筛选出特征子集具体的识别精度值。可以发现,各算法在伤口细菌数据集下的识别精度普遍高于流量调制数据集;相同数据集同等特征数量下,SPMI 算法精度提升的最大值均能达到20%以上。
本文针对电子鼻系统特性提出一种基于传感器性能的互信息特征选择算法,并在电子鼻相关数据集中筛选特征子集验证识别精度。实验表明,SPMI 算法确实能够针对传感器特性进行有效优化,筛选出的传感器特征子集能够获得更高的识别精度,且相较于现有的互信息特征选择算法筛选出的子集有较大的提升。
现阶段电子鼻系统工作的环境较为复杂,所识别的目标气体常为混合气体而非单质,因此针对多标记的特征选择算法更为契合电子鼻系统。今后的工作将继续改进SPMI 算法,使得算法能够充分考虑在多目标下传感器特征的性能,进一步扩大算法的应用范围。