基于深度特征选择的多示例算法及在图像分类中的应用
2021-04-06吕文恬杨涵文李星烨高玉发丁昕苗
吕文恬, 杨涵文,2, 李星烨, 高玉发, 丁昕苗
(1.山东工商学院 信息与电子工程学院, 山东 烟台 264000; 2.山东省烟台第一中学,山东 烟台 264000)
0 引 言
随着科学技术的不断发展,多媒体资源日益增多,人们在互联网上越来越倾向于用更加直观的图片和视频来表达自己的观点和看法,大量的信息隐藏在图片中,这就需要对图像进行进一步处理来获取隐藏在图像中的数据信息。图像分类作为图像处理的重要研究方向,是图像处理中最基础和最具挑战性的工作。
图像分类的任务主要是对图像的内容进行分析,获取图片中的关键信息。传统的监督方法将图片看作一个整体,通过单示例的方法进行分类。但是实际应用中,一个图片往往由很多具有语义的分块组成,有些分块可以联合表达图片含义,有些分块则会对分类造成不必要的干扰,图片示例如图1所示。
图1a中,人、滑板和雪地综合可以得到该图片的分类为滑雪;而图1b中的玩偶则会对图片分类为狗造成干扰。为了更好地利用图片的分块信息,多层次表达图片语义,多示例学习框架[1]被引入到图片分类中。
不同于单示例学习框架,多示例框架将图片看作由图像分块示例构成的包,通过分析示例的特点预测包的标签,已在很多图像分类问题中取得了较好的效果[2]。
图1 图片示例
1 概 述
1.1 相关工作
多示例学习最早在1997年由研究者在对药物活性检测时提出[3],在经过许多学者研究后可分为两类:一类是基于示例级别的多示例算法,如APR[1]、mi-SVM[4]、SMILE[5];另一类是基于包级别的多示例算法,如MI-SVM[4]、Bayesian-kNN[6]、Citation-kNN[6]、MI-Kernal[7]。还有基于嵌入空间将多示例转化为单示例的方法,如DD-SVM[8]、MILES[9]、MILD[10]。在多示例应用到图像分类方面近年来许多研究者对此进行了深入研究。文献[11]提出多示例多标记学习框架,在该框架中每个样本不仅由多个示例描述,并且有多个标记,有利于解决图像处理中的复杂对象问题;文献[12]提出一种基于包级空间多示例稀疏表示的图像分类方法,该算法应用聚类算法构造每类图像的视觉词汇,依据训练样本示例与视觉词汇的相似度,获得每类训练样本的字典矩阵。最后,对待分类样本特征进行稀疏线性组合,预测待分类样本的类别标签;文献[13]根据多示例学习能够有效处理图像的歧义性,提出一种基于多示例学习的CBIR方法,该方法将图像作为多示例包,基于高斯混合模型和改进的EM算法全自动分割图像,并提取颜色、纹理、形状和不变矩等区域信息作为示例向量生成测试图像包;文献[14]针对大数据集问题,提出一种MIMLfast方法,该方法首先构造一个所有标签共享的低维子空间,然后通过随机梯度下降训练标签特定的线性模型来优化近似排序损失;文献[15]解决关键示例在训练和测试阶段的分布不一致的问题,并将这个问题称为关键示例移位的MIL,提出一种基于嵌入的MIKI方法来解决这个问题;文献[16]针对大规模多示例问题提出miVLAD和miFV 2种高效、可扩展的MIL算法,使用相应的映射函数将原始MIL包映射成新的向量表示。文献[17]基于稀疏编码和集成学习提出一种新的多示例多标记图像分类方法,首先利用训练包中所有示例学习一个字典,根据该字典计算示例的稀疏编码系数,然后基于每个包中所有示例的稀疏编码系数计算包特征向量,从而将多示例多标记问题转化为多标记问题,最后利用多标记分类算法进行求解;文献[18]提出多示例多标签学习框架在实际应用时可能存在数据的未知新标签,并针对此问题给出一种使用增强拉格朗日优化的方法。
以上这些方法都对多示例学习在图片分类方面的应用提供了很好的学习框架和模型,也为以后的研究提供了很好的思路。但是现有算法仍然存在以下问题:
(1) 示例特征表达多局限于低层手工特征,鉴于深度学习的强大优势,亟需新的深度特征提高示例的表达能力。
(2) 由于包内示例的多样性,图像包的分块示例对包特征的贡献不同。如何能从包特征中剔除干扰示例影响,选择出对包的分类有用的示例投影分量,将是基于多示例方法的图片分类面临的另一个问题。
1.2 本文工作
为了解决上述问题,本文提出了一种基于深度特征选择的多示例学习算法,方法框图如图2所示。
该方法首先对图片进行分割,将图片看作包,其分割出的分块作为该包的示例构成多示例结构;然后利用深度学习的迁移模型学习方法提取分块示例的高层语义特征,并通过向每个示例投影得到包的深度语义特征;最后引入一种高效的特征选择方法,通过对包的投影特征进行选择,剔除对包的分类无用的示例信息,保留关键示例投影信息,从而提高包特征的判别性。
图2 算法框图
2 本文算法
2.1 图像分割
因为图像不同的区域表达不同的语义会对图像分类造成干扰,所以本文先对输入图像进行分割。Graph cut[19]是图像分割方面十分有效的能量优化算法,适用的特征范围较广,因此本文选用Graph cut方法对图像进行分割。
Graph cut是一种基于图论的图像分割方法。基于图论的分割方法的本质就是移除特定的边,将图划分为若干子图从而实现分割。首先将输入图像映射为带权无向图G=〈V,E〉,图中每个节点N∈V对应于图像中的每个像素,每条边L∈E连接着一对相邻的像素,相邻像素之间在灰度、颜色或纹理方面的非负相似度用边的权值来表示。
按照划分后的子图在内部保持相似度最大,而子图之间的相似度保持最小的原则对图像进行一个分割记为S,其实就是对图的一个剪切,被分割的每个区域C∈S对应着图中的一个子图,每个子图作为该图片示例。
2.2 包深度特征提取
(1) 示例深度特征提取。由于示例标签是未知的,如果用监督的深度学习算法将无法对示例特征进行训练。为了解决这个问题,本文提出使用预训练的深度学习模型进行迁移学习。
基于CNN网络在图像分类中的优秀表现[20-21],本文选择使用预训练的CNN网络进行示例特征学习。预训练数据则选择类别覆盖广泛的ImageNet数据集[22]。该数据集有1 400多万幅图片,涵盖2万多个类别,其中大类别包括:两栖动物、鸟、花、乐器、车辆、人物、器皿、地质构造、植物等27个类别。与现有的图像数据集相比,ImageNet具有更大的规模和多样性,且精度更高,为计算机视觉及相关领域的研究人员提供了非常实用的实验数据。针对此数据集产生了很多优秀的算法和模型,其中用该数据集训练好的VGG16模型可以保证分块示例深度特征的语义准确性。
VGG16模型如图3所示,由13个卷积层、3个全连接层组成。其中,最后一层全连接层为输出标签预测层,因此该层的输入可以看作是样本的高层语义。于是本文在对VGG16进行预训练后,选择提取示例输入网络后的第2个全连接层的输出作为示例的深度特征。
图3 VGG16模型
假设给定N个训练图像,经过图像分割、特征提取和多示例建模后,可得到N个训练样本包{(Z1,h1),…,(Zi,hi),…,(ZN,hN)},其中:Zi={zi1,…,zij,…,zini}表示一个图像包;zij∈R为该包的一个示例;hi∈H={0,1}为该包的标签;ni为第i个包Zi所包含的示例数,如果存在示例zig,g∈{1,…,ni}为正示例,那么该包为正包;否则该包为负包。
(2) 包深度特征投影。为了将示例深度特征转换为包的特征表达,本文通过包-示例相似性度量[9]将每个包映射到由训练示例定义的特征空间:
定义包Zi到示例z的相似性度量公式为:
(1)
包Zi的投影特征向量xi,则计算为该包与所有示例的相似性距离:
xi=[d(Zi,z11),…,d(Zi,z1n1),…,d(Zi,zN1),
…,d(Zi,zNnN)]
(2)
其中,n1,n1,…,nN分别表示包Z1,Z2,…,ZN所包含的示例数。如此,可得到训练样本包的映射特征集合X={x1,x2,…,xN}。该映射可以很好地将示例特性融入包特征中,同时将多示例结构映射为单示例空间。
为了能进一步提高包特征表达的判别性,本文引入基于l2,1范式的特征选择对包特征进行更进一步的处理。
2.3 示例包特征选择及分类
(1) 特征选择。特征选择是选择相关特征子集的过程,是构建用于分类、聚类等任务的鲁棒机器学习模型的关键组成部分。如前所述,对于包中的示例来说,并非所有示例都带有图像的关键信息。从包的投影特征角度来讲,即并非所有示例投影出来的深度特征在决定图片类别时都起到关键作用。若能突出决定图片类别的关键特征,去除无关特征对分类的影响,则可以提高判别的准确性。因此本文引入一种基于l2,1范式的特征选择算法[23]。此算法对于数据中的异常值具有较好的鲁棒性,可以高效地剔除无关示例投影的影响,从而实现高效和鲁棒的特征选择。
假设有训练数据集为X={x1,x2,…,xN},xi∈Rm,其所对应的标签为Y={y1,y2,…,yN},yi∈Rc,c表示类别数。那么,定义标签拟合系数矩阵W,分类预测则可以用如下的最小二乘目标优化问题来拟合:
(3)
(4)
记
(4)式可转化为:
(5)
利用拉格朗日方法将(5)式转化并化简可得解析解[22]:
U=B-1AT(AB-1AT)-1Y
(6)
于是,(5)式可以通过对U和B交替迭代求解。首先初始化B为单位阵,然后在每次迭代中,用当前的B计算U。再根据当前计算得到的U更新B,重复迭代过程,直到算法收敛。算法具体步骤如下:
输入:A∈RN×k,Y∈RN×c
输出:U∈Rk×c
设t=0,初始化Bt∈Rk×k为单位矩阵
对角矩阵Bt+1=
t=t+1
直到算法收敛。
该算法迭代过程简单直接,相比于其他基于l2,1范式的优化算法更高效,同时有效地减小了无关特征对分类的影响,在很大程度上保证了分类的准确率。通过将包的投影特征送入该模型,可以实现剔除干扰示例投影特征影响的目的。
(2) 分类预测。当有未知样本需要分类预测时,首先将样本图片进行分割,并送入VGG16预训练模型学习深度特征,然后通过向训练示例进行包特征投影,得到测试包的特征向量,并利用基于l2,1范式的特征选择去除无关特征的影响。最后,将优化后的测试数据送入训练好的SVM模型得到预测标签。
3 实 验
3.1 数据集介绍
为了评估本文提出的基于深度特征选择的多示例算法,本文在多示例学习研究中广泛使用的Corel5K[24]数据集上进行了测试。该数据集包含50个图片类别,每个类别共有100张图片。本实验从50个类别中选取了8个类别图片作为正包。针对每类正包对应从该类以外的图片随机选择100个作为负包,如此构成一个多示例图片数据集。本文构造了Tiger、Fox、Elephant、Flowers、Buses、Horses、Ships、Dogs共8个数据集,如图4所示。
图4 实验数据集
3.2 实验结果
本节分别通过不同特征维度和不同算法对比实验验证算法的有效性。实验结果均采用10次十折交叉验证的平均分类精度作为评价标准,实验参数则通过训练集的交叉验证来确定。
(1) 不同特征维数的实验结果。为验证本文算法在减小无关示例影响上的有效性,本实验利用特征选择算法选择了不同维数的数据特征进行分类精度结果的对比,见表1所列。
表1 不同维数的分类正确率结果对比
由表1可知,提取不同的特征维数会对实验结果产生影响,使分类精度不同,说明并非所有的图像分块对分类都有贡献,而本文提出的算法可以智能地剔除无用示例的干扰,提高了包特征的判别性。根据表1中数据可以看出,当提取的特征维数较少或较多时分类精度都不算理想,而当提取原始特征个数的10%~30%时分类结果比较好。该特点也验证了某些图像分块可以联合得出更多的语义,从而支持包标签的预测。
(2) 不同特征提取方法的对比实验。为验证本文所用的特征提取算法对图像分类正确率的提升,此小节将本文所采用的深度特征与广泛应用的兴趣点特征[25]进行了对比,结果见表2所列。
从表2可以看出,本文所采用的深度特征在数据集上的分类效果要优于兴趣点特征,这是因为VGG16预训练模型有强大的训练学习能力,提取了图片的高层语义特征,因此提高了示例的特征表达,对下一步特征选择提供了良好的原始特征,从而提升了本文算法的有效性。
表2 不同特征提取方法分类正确率结果对比
(3) 不同特征选择方法的对比实验。本文采用了应用较广效果也较好的随机森林特征选择方法与对本文应用的基于l2,1范式的特征选择方法进行对比,结果见表3所列。
从表3可以看出,本文所用的基于l2,1范式的特征选择方法在数据集上的分类效果要优于随机森林特征选择方法,这是因为基于l2,1范式的损失函数是鲁棒的,并且l2,1范式正则化选择具有联合稀疏性的数据点的特性。
表3 不同特征选择方法的分类正确率结果对比
(4) 不同多示例学习算法的对比实验结果。为验证本文所提出算法在图像分类上的有效性,本小节对本文提出的基于深度特征选择的多示例算法与当前普遍应用的MI-Graph、MI-SVM、MI-Kernel、miSVM、miGraph以及最近提出的MI-net[26]、BSN[27]等分类算法做了对比实验。实验结果见表4所列。
从表4可以看出,在基于多示例的图像分类相关工作中,本文所提出的算法在本次实验所选取的8个数据集上都达到了非常理想的分类效果,相比于当前普遍应用的多示例学习方法具有很强的竞争力。结果的提升来自2个方面:一方面是示例深度特征的提取,提高了示例特征的语义表达;另一方面,对包投影特征的选择很好地剔除了正包中无用示例的干扰,提高了包特征的判别性。
表4 不同多示例算法分类正确率结果对比
4 结 论
本文提出了一种基于深度特征选择的多示例学习算法。该算法在利用迁移学习模型和包特征投影获得图片包的深度特征后,再利用特征选择算法剔除干扰示例对包特征的影响,最后通过支持向量机实现图像分类。实验表明本文算法有效可行。本文算法仍有改进空间,在今后的工作中将致力于将示例上下文特征加入到基于多示例学习的图像分类中,研究更优秀的图像分类模型。