解决抽象标签的图像分类的多示例两阶段模型

2022-06-29 12:32宋金玉余晓晗
计算机技术与发展 2022年6期
关键词:集上分类器示例

于 全,宋金玉,余晓晗

(陆军工程大学 指挥控制工程学院,江苏 南京 210007)

0 引 言

Zhou等人[1]提出了一个对抽象标签的图像分类问题,如图1中的图像,该图像的标签不再是传统的具体标签,如“巴士”、“人”、“房子”,而是抽象的标签“城镇”。“城镇”不属于图像中包含的任何一个内容,而是对多个具体对象的整合。

这类抽象标签的图像分类问题在实际应用中不少见,如医学领域的CT图像癌症识别问题、作战领域的作战意图识别问题都涉及了抽象的标签。以作战意图识别为例,作战意图具有抽象性,是指挥员根据当前敌方的战场态势图综合推理出的。利用人工智能技术进行作战意图识别,识别模型需要根据战场态势图的输入信息判断出敌方的作战意图(如进攻或防守),传统的技术更多的是理解态势,如敌方兵力和位置,如何在具体的态势理解基础上完成抽象的作战意图识别,相关的研究工作还不多。

Zhou等认为可以使用多示例学习方法解决这类问题,并提出了多示例学习算法MIML[1],该算法先学习一组子标签(“巴士”、“人”、“房子”),然后在此基础上推导出图像的抽象标签(“城镇”),如图1所示。但是在模型验证实验中使用的数据依然是基于老虎、大象、狐狸这类带有具体标签的图像数据,并没有真正将算法应用于像“城镇”这类带有抽象标签的图像数据。

图1 通过开发子标签推导出“城镇”这个抽象标签

多示例学习(multi-instance learning,MIL)最早是由Dietterich等人[2]在研究药物分子活性预测中提出的,是传统监督学习的一种变体。在传统的监督学习中,每个对象都有一个标签来指导算法模型学习,而在多示例学习中训练集由若干个具有标签的包组成,每个包由若干对象组成,这些对象称为示例,只有包有准确的标签信息,示例的标签是未知的。MIL的目的是从给定标签的包中学习分类器,并对未知标签的包进行分类。多示例学习自提出以来,广受学者重视,开发出了各种应对多示例学习的算法,诸如Citation-kNN算法[3]、SMILE算法[4]、MI-NET算法[5]、MInD算法[6]等,已被应用到药物活性预测[7]、文本分类[8-9]、数据挖掘[10]、图像识别[11-12]等问题上。

为了实现抽象标签的图像分类的目标,该文借助多示例学习方法思路,基于Yolo(you only look once)[13]模型和多层感知机设计并实现了解决带有抽象标签的图像分类问题的算法模型,称为多示例两阶段模型。首先利用Yolo模型完成图像中具体对象的提取,然后将提取出的具体对象输入到多层感知机中完成图像抽象概念的预测。通过实验案例表明,多示例两阶段模型能够快速并准确对带有抽象标签的图像进行分类,体现了多示例两阶段模型的可行性。

1 多示例两阶段模型

对于传统的监督学习,每个训练样本都被标记,而多示例学习[14]是监督学习的一种变体,MIL的标记对象不再是一个样本,而是一个包(bag)。每个包是若干个样本组成的集合,这些样本也称为示例(instances),并且每个包都有一个训练标签(记为正标签或负标签),但包中的示例没有标签。如果包为负标签,则包中所有示例都认为是负示例;如果包为正标签,则包中至少有一个示例被认为是正标签。MIL的目的是从给定标签的正包和负包中学习分类器,并将未知标签的包进行分类,划分为正包或负包。

假设有N个包{B1,B2,…,BN},第i个包Bi由ai个示例组成{Bi,1,Bi,2,…,Bi,ai},每个示例都是一个k维属性值向量。例如第i个包的第j个示例为[Bi,j,1,Bi,j,2,…,Bi,j,k]T,其中T表示向量的转置。N个包对应的标签集为{yi|yi∈{0,1},i=1,2,…,N},其中1代表包为正标签,0代表包为负标签。

模型框架:

在进行MIL的建模时,通常为每类示例构建分类器:

(1)

其中,fij(·)表示用于示例Bij的分类器,θ表示分类器的参数,E(·)表示分类器的误差函数,N表示样本数据个数。上述模型为每一类示例构建了一个分类器fij(·),借助取大函数,将每个分类器输出,整合成包的最终输出,即公式中的maxj{fij(Bij,θ)},然后将该输出与对应的标签值yi比较取误差。以往解决图像分类的多示例算法模型都是基于公式(1)构建的,但是使用max函数整合多个示例的输出过于简化,不能很好描述复杂情况。为此,该文考虑构建一个新的分类器t(·)替换该max函数,来整合所有示例输出fi1(Bi1,θ),fi2(Bi2,θ),…,fiai(Biai,θ)。其概率模型如下:

(2)

(3)

(4)

其中,公式(3)和公式(4)分别表示第一、二阶段模型,fij(·)和t(·)分别表示分类器1(第一阶段模型)和分类器2(第二阶段模型),θ1和θ2分别是分类器1和分类器2的参数,E1(·)和E2(·)分别是分类器1和分类器2的误差函数。在第一阶段模型中,输入N个包到分类器1计算每个示例的输出fij(Bij,θ1),然后根据这些输出与对应的标签值zj的误差,进而优化参数θ1;在第二阶段模型中,将分类器1的输出fi1(Bi1,θ1),fi2(Bi2,θ1),…,fiai(Biai,θ1)放入分类器2计算包Bi的最终预测结果,即公式中的ti({fij(Bij,θ1)},θ2),通过对比标签值yi优化参数θ2。

多示例两阶段模型框架如图2所示,分类器1和分类器2各自训练、共同预测。基于包中具体包含哪些示例的标签,训练分类器1的参数。例如计算机视觉领域已经有比较成熟的方法用于预测一张图片中的多个对象,可以借助已有方法完成分类器1的训练。在完成分类器1训练的基础上,利用分类器1和包的标签对分类器2进行训练。成功训练后,可用于多示例样本的预测。

图2 多示例两阶段模型框架

2 图像分类的多示例两阶段模型

针对图像抽象概念分类问题,该文设计了第一阶段使用Yolo[13]模型,第二阶段使用多层感知机(MLP)的多示例两阶段模型,如图3所示。

图3 多示例两阶段模型

Yolo是基于深度神经网络的对象识别和定位算法,被应用到计算机视觉领域目标检测与分类中[15-17]。输入一张图像,可以输出图像中所包含的所有对象,以及每个对象在图像中对应的位置,具有很高的实用性。使用Yolo作为第一阶段模型,可以很好地实现对图像中各个子对象的识别,并给出子对象的置信度(存在概率)。同时Yolo模型很成熟,可靠性高,可借鉴实例多。非常适合作为图像抽象概念分类的第一阶段模型。

2.1 第一阶段模型

第一阶段使用Yolo模型的作用是对包中示例进行初步分类,得到包中所有示例存在的概率,这需要在Yolo模型的基础上对其输出方式进行修改。

Yolo模型的输入图像被划分为7×7的网格,其中一个网格的输出为30维向量,那么一张图像通过Yolo模型会得到7×7×30的张量。其中,一个网格输出的30维向量共由三部分组成:一是20个对象的概率(20种不同的对象包括人、鸟、猫、汽车等),所以这20个值分别表示该网格位置存在这20种对象的概率,记作P(Oj|Object),表示该网格存在一个对象Object,且该对象是Oj的概率是P(Oj|Object);二是2个边框的位置,每个边框由4个数值表示其位置;三是2个边框的置信度,一个边框的置信度表示该边框是否包含对象且位置准确的程度,第s个边框的置信度记作Confidences。根据得到的7×7×30的输出张量,Yolo模型利用非极大值抑制算法(non-maximal suppression,NMS)输出其中最有可能的那些对象及其所在位置。

下面根据第二阶段模型的需要对第一阶段Yolo模型的输出方式进行必要的修改。在Yolo模型输出的7×7×30张量中,有49组针对J个示例的条件概率数据:

(5)

(6)

其中,m表示第m个网格。基于上述方法计算包中包含各示例的概率P(I1),P(I2),…,P(IJ),计算过程如图4所示。

图4 第一阶段模型的输出

2.2 第二阶段模型

在设计实现第一阶段模型后,完成对包的初步分类得到包中所有示例在该包中存在的概率P(I1),P(I2),…,P(IJ),本节将设计第二阶段模型基于第一阶段计算出的概率用于包的分类。

第二阶段模型由一个三层结构的多层感知机(MLP)构成,最底层是输入层,输入层有J个神经元,分别用于输入J个概率P(I1),P(I2),…,P(IJ)。中间是单隐藏层,其中神经元有K个,最后是输出层,输出层只有一个神经元,对应两阶段模型最终输出y,即图像的抽象标签,层与层之间是全连接的。给定训练数据{(B1,y1),…,(BN,yN)|Bi∈R1×J,yi∈{0,1}},对如式(7)的第二阶段模型进行训练:

(7)

其中,矩阵W(1)∈RJ×K和W(2)∈RK×1分别表示输入层与隐藏层之间和隐藏层与输出层之间的权重参数,b(1)∈R1×K和b(2)∈R1×1分别表示添加到隐藏层和输出层的偏置,gi(·)为激活函数。因为第二阶段模型属于一个二分类的分类器,所以gh(·)使用logistic函数f(x)=1/(1+e-x)获得0到1之间的输出值,在进行预测时设置阈值0.5,将大于或等于0.5的输出包的预测结果为1,否则为0。分类损失函数定义为:

(8)

3 实 验

本节通过实验说明利用多示例两阶段模型解决抽象标签的图像分类问题的过程。

3.1 实验方案

对于带有抽象标签的图像分类问题,目前还没有一个标准测试集,该文基于图像数据集VOC 2012,引入抽象标签设计图像分类实验。

首先看一下VOC 2012数据集,该数据集中训练集中有2 501张图像用于模型训练,测试集中有4 952张图像用于模型测试,数据集中图像的标签一共分为20类(人、鸟、猫、汽车等),其中每张图像标签不只有一个。但是这20类标签都属于图像中包含的具体标签,无法直接作为抽象标签用于实验。所以该文根据数据集特点利用专家的知识和经验构造出规则库生成图像的抽象标签“室内/室外”,其中“室内”作为多示例数据的正包,“室外”作为多示例数据的负包,同时将20类标签则作为包中的20个示例,用于实验。数据集标注结果如下:在VOC 2012训练集的2 501张图像中,得到330张标签为“室内”的图像,2 171张标签为“室外”的图像,用于多示例两阶段模型的训练,VOC 2012测试集的4 952张图像中,得到651张标签为“室内”的图像,4 301张标签为“室外”的图像,用于多示例两阶段模型的测试。

下面根据得到的标注数据结合多示例两阶段模型进行图像分类的实验。

3.2 参数设置

实验分为训练和测试两个阶段,在训练阶段中将提出的第一阶段模型和第二阶段模型分开进行训练,其中第一阶段模型使用Yolo模型在VOC 2012训练集上集训练好的模型[13],第二阶段模型中多层感知机的超参数通过调试最终设置如下:输入层的单元数为20、隐藏层的单元数为4、输出层单元数为1、迭代次数为100、学习率为0.05、输出的阈值为0.5。在测试阶段,使用训练好的第一阶段模型和第二阶段模型共同测试。

3.3 实验结果

实验结果从两部分给出:一是在实验数据集上的分析;二是通过一个实验案例进行展示。

3.3.1 实验数据分析

在训练集上,利用python对多示例两阶段模型进行仿真,并在测试集上对训练好的多示例两阶段模型进行测试,选择损失值和准确率分别对训练过程和测试过程进行分析,其中损失值Loss通过公式(8)计算得到,准确率Acc通过下式计算得到。

(9)

图5 多示例两阶段模型在训练集上的 损失随迭代次数的变化

图6 多示例两阶段模型在测试集上的 准确率随迭代次数的变化

图5和图6分别显示了多示例两阶段模型在训练集上的损失和测试集上的准确率随迭代次数的变化曲线,表1显示了多示例两阶段模型迭代结束后在训练集上的损失和测试集上的准确率以及测试集上平均运行时间。

表1 多示例两阶段模型迭代结束后在训练集上的损失、测试集上的准确率和测试集上的平均运行时间

指标值训练集上的损失0.024测试集上的准确率0.935测试集上的平均运行时间1.1 s

从图5和表1可以看出,随着迭代次数的增加,模型不断向着损失函数减小方向不断进化在80代左右,损失函数逐渐收敛至最小值0.024,说明设计实现的两阶段模型能够在训练集上成功进行训练。从图6和表1中可以看出,在80代左右模型在测试集上的准确率收敛至0.935,且对一张图像分类平均需要1.1 s,说明提出的多示例两阶段模型能够以较好的预测效果和较快速度解决抽象标签的图像分类问题。

3.3.2 实验案例

为了体现多示例两阶段模型的可行性,给出一张图像的分类案例,如下:首先从测试集中选择一张标签为“室内”的图像。将该图像作为输入,通过训练好的第一阶段模型计算得到输出,如表2和图7所示。

表2 第一阶段模型的输出

图7 第一阶段模型的输出

表2得到了图像(包)中包含的20个对象(示例)的概率,其中,该图像包含椅子的概率为0.386、包含沙发的概率为0.128、包含电视/显示器的概率为0.664,其余17个对象都不足0.1。然后将这20个概率通过训练好的第二阶段模型计算,输出为1,也就是说将该图像分类为“室内”(正包),即与该图像的标签“室内”一样,对该图像完成正确分类。

4 结束语

基于多示例学习利用Yolo模型和多层感知机创新性地设计并实现了多示例两阶段模型,解决了抽象标签的图像分类问题。第一阶段模型继承了Yolo对图像识别方面快速、准确的优势,引入max函数设计多示例学习算法完成对包的初步分类,得到包中所有示例在该包中存在的概率。第二阶段模型则借助成本低、效率高的多层感知机来完成包中示例到包抽象类别的推导。最后,通过将多示例两阶段模型应用于图像分类领域的一个带有抽象标签的实验案例,验证了该模型在解决更复杂的图像分类问题时具有一定的可行性,成功拓展了多示例学习的应用领域。

目前,提出的多示例两阶段模型还存在不足,一是第二阶段中使用的是比较简单的多层感知机对于图像抽象标签的推导不具有可解释性;二是多示例两阶段模型只是在图像数据集上进行验证,还没有应用于实际场景中。下一步的目标是利用模糊树、模糊决策引入专家知识来设计第二阶段模型,使模型具有可解释性,同时将多示例两阶段模型应用于作战意图识别这样的实际应用场景中。

猜你喜欢
集上分类器示例
分类器集成综述
少样本条件下基于K-最近邻及多分类器协同的样本扩增分类
单双点平滑结合的流形正则化半监督分类学习框架
学贯中西(6):阐述ML分类器的工作流程
基于AdaBoost算法的在线连续极限学习机集成算法
10秒记忆
飞吧,云宝
《中考“仿写”题解题技法指津》参考答案
几道导数题引发的解题思考
高考作文“踮起脚尖”升格示例