使用改进自编码器的细粒度图像分类研究

2022-01-21 02:55李凌鹤
小型微型计算机系统 2022年1期
关键词:卷积聚类分类

魏 赟,李凌鹤

(上海理工大学 光电信息与计算机工程学院,上海 200093)

1 引 言

生活中,图像分类对象往往来自某一类别下的不同子类别.这些图像存在子类差异较小,同时类别内部细节特征差异较大的特点.子类别特征差异细微,加大了噪声干扰,导致图像分类难度增大.这使得细粒度图像分类成为一项极具挑战性的研究任务.细粒度图像分类作为图像分类领域发展的延伸,很难通过人工大量标注图像细粒度细节进行强监督分类.当前比较热门的研究方向中,一种方式是通过分类子网定位识别物体细节特征,比如生物的头、汽车的标识等.目前的子网定位主要包括3种方法,利用图像检测分割[1-3],通过深度网络分割图像细节特征,然后利用分割的特征进行分类;着眼图像滤波[4-6],设计深层滤波网络过滤图像,消除无用噪声,保留图像细节特征来分类;利用注意力原理[7-9],通过构造注意力模块增强图像特征对比,进而增强细粒度特征的可识别特性,达到分类的标准.除此以外,还有一种方式采用端到端网络,利用细粒度特征的特征编码进行细粒度识别.主要有两种思路:一种思路充分发挥深度网络的优良特性来获取特征识别码:基于多路网络[10,11],提出不同的多路融合方案合并网络实现快速端到端训练分类;对已有的深度网络微调[12,13],通过新建自定义的模型损失函数,确保深度网络学习过程中的分类、重建等损失降到最低,从而达到最佳的分类效果.

作为细粒度图像分类未来发展的趋势之一,无监督分类主要研究使用无标记的图像训练出能够用于整体学习任务的模型.目前,作为传统无监督聚类的改进,采用高维聚类实现高维数据无监督分类的相关研究正在发展中.目前的深度聚类研究大致有几个方向:采用多路网络模型[14,15],构造复杂特征,实现高度融合后聚类;结合其他的技术[16-18],比如GAN、自编码器等加强特征的划分和识别,从而达到深度聚类的标准;利用聚类本身的特性[19,20],通过挖掘其内部结构、索引关联等特性,设计聚类模型,增强对象本身的关联度,实现高度聚类.

本文主要针对DCC[21]深度聚类改进.DCC能在分类对象具体类别数目未知的前提下,实现高效聚类.但是,目前的DCC聚类算法只能够实现简单图像的高效聚类;面对现实生活中的复杂图像,算法无法根据图像深度细节特征完成分类,基于这个问题,本文经过研究,提出了一个新的模型,做出如下几个贡献:

1)提出一个新的深度聚类模型,由卷积自编码器结合经典CNN网络构成;

2)在自编码器部分,设计一个循环卷积自编码器结构,加强对象细节特征学习能力;

3)循环结构中添加注意力,加强对象特征的区分度;

4)引入阈值超参数,避免图像聚类过程中出现聚类过度/不足;

5)采用聚类的方式,实现了图片批量分类,提升了分类效率.

实验采用聚类评估标准,结合其它聚类算法进行对比试验,确保网络在聚类、分类过程中具备较优良的性能.

2 深度连续聚类DCC

DCC(Deep Continuous Clustering)算法的目标函数如公式(1):

(1)

目标函数包括重构损失和聚类损失两部分.重构损失表示中,D表示降维前的数据维度,X是原始数据集,Y是降维后的数据集,Ω是X→Y的映射空间;d表示降维后的数据维度,Z={z1,…,zi}∈Rd×N表示数据集在对Y数据集聚类操作后生成的若干聚簇的集合,M表示Y→Z的映射空间.重构损失具体表示为:

(2)

Gω表示X→Y的反向映射空间,X到Y的损失函数采用Frobenius范式计算,通过寻找函数的最小值,得到降维映射后的最优解.聚类损失具体表现为:

(3)

ρ1和ρ2分别是差值降序排序得到的M估计量,将相关性较高的样本汇聚到一起,同时扩大相关性较低的样本间距,非凸性确保数据的低离散程度,增强聚类算法的鲁棒性.wi,j为自定义的权重超参数,代表每两个点聚类产生损失影响总体样本的程度;λ用于平衡参数和估计量.μ1、μ2用于控制所在凸函数ρ1、ρ2的计算域.函数后半部分惩罚表示连通图ε中各点迭代生成聚簇过程的损失值.

算法首先采用堆叠降噪自编码器对进行逐层预训练,然后使用重构损失进行端到端参数微调,得到调整后的网络参数的同时利用整体目标函数进行聚类,模型优化完成的同时实现聚类.

3 本文模型

3.1 整体框架

根据DCC的算法原理,本文设计了如图1的聚类模型,首先针对输入图片预训练自编码器,计算图片重构损失;然后连接编码层和经典CNN网络(本文主要使用VGG和ResNet),利用CNN学习图片编码完成的深层特征进行聚类,计算图片聚类损失,最终得到聚类结果.

图1 模型整体框架图Fig.1 Overall framework of the model

为了更好的利用DCC算法的聚类特性,研究设计了一种循环卷积自编码器R-CAE.自编码器部分设计参考Caffee深度学习框架[22]改造,使用小卷积提取特征,并且在编码层添加循环网络和注意力模块,加强特征识别能力.编码层整体结构如图2所示.

图2 编码层整体结构图Fig.2 Structure diagram of Encoding layer

3.2 编码层

图3 RG-CNN结构图Fig.3 RG-CNN structure diagram

RG-CNN的卷积层采用3×3卷积核进行特征提取,小卷积能够有效获取图片特征,在特征学习阶段效果明显;同时减少参数计算量,提升学习速率.模型设计前2层RG-CNN使用26通道卷积,后两层使用36通道卷积,实现逐级递增的效果.每一层卷积后添加一个BN层,实现对卷积后的特征值的批量正则化处理,控制了特征的变化域,可以有效控制梯度爆炸,防止梯度消失.BN正则后的特征使用tanh激活非线性映射.

RG-CNN的循环层使用门控网络GRU构造循环网络结构.GRU采用R门控重置前序特征,单记忆力门控Z实现特征记忆更新,具备低复杂度的计算优势.GRU的输入特征X、Y存在如公式(4)、公式(5)的关系:

(4)

(5)

其中,k∈[1,…,N],d是特征维度,N代表特征通道数.输入特征xk+1,级联前序特征yk得到qk+1=(xk+1,yk),使用q初始化门控参数R和Z.GRU的R门控和Z门控基于注意力模块SE实现初始化,此处采用通道压缩-空间激励块sSE[23](Channel Squeeze and Spatial Excitation Block)初始化特征权重,以此加强区分细粒度特征.针对输入的特征X,使用1×1卷积进行线性压缩,得到单通道的特征值Q={q1,…,qd}.使用tanh非线性激活,得到区间为(-1,1)的权值矩阵.其中权值为正的集合中,权值越大,特征对图片积极的影响越大.将权值与对应特征相乘,得到最终加权特征QsSE={tanh(q1)·X1,…,tanh(qN)·XN}.为了减少网络参数,设计网络采用多通道共享注意力权值更新门控的方式进行.

门控更新完成后,使用R门控重置前序特征yk,将重置后的特征yk*与xk+1级联作为新的前序输入P.此时,前一个网络状态与当前网络便建立了关联.更新P,使用tanh激活,得到关联前序输入yk′.相关公式见公式(6):

yk*=WR·yk,P=(xk+1,yk*),yk′=tanh(W·P)

(6)

更新权值W使用kaiming初始化完成权值初始化.为了确保前序特征能够更好的被使用,除了建立前序特征与输入特征之间的关联,还需要对其本身进行记忆.使用记忆门控Z对yk遗忘更新,同时,使用Z记忆yk′前序输入关联;将两类记忆相加,即可得到最终的特征输出yk+1:

fZ(yk)=(1-WZ)·yk,gZ=WZ·yk′
yk+1=fZ+gZ

(7)

RNN循环结构如图4所示.

图4 RNN循环结构图Fig.4 RNN Cycle structure diagram

RNN采用n通道GRU循环,分别学习图片每个通道的特征.学习以后将特征融合作为当前RG-CNN的输出.

1.3.3 观察两组患者术后出现腹痛、腹泻(排便次数明显超过平日习惯的频率,粪质稀薄,每日排粪量超过200 g或含未消化食物或脓血)和腹胀情况。

每2层RG-CNN卷积完成后,使用1个2×2池化层下采样.完成所有特征选择学习操作后,使用大小为(1,3072)的全连接层展开特征,然后使用线性变换输出大小为192的局部特征描述符,完成编码操作.

3.3 解码层

解码层全连接部分采用对称方式恢复(1,3072)大小的特征,使用1×1卷积恢复通道;卷积层对应编码层采用非对称结构构造解码架构.反卷积操作使用大核卷积操作,这样可以快速重构较大领域内的图像特征值,在卷积层数较少的情况下效果较为理想.首先使用4×4反卷积,然后使用5×5反卷积;每次反卷积完成后使用BN批处理正则化,tanh非线性激活,每一次激活完成后添加2×2池化层反池化,两次池化后输出最终的重构特征图.

4 算法流程

算法.Deep Continuous Clustering

输入:原始数据{oi}i

输出:聚类{ci}i

1.正则化{oi}i,添加高斯噪声

2.插值法下采样;降维,生成样本数据{xi}i

3.利用m-knn初始化连通ε图

4.初始化Ω、M空间,计算超参数λ、ωi,j

5.δ1取Y中每一个yi到其它点的平均距离之和的平均值,δ2取ε图中位于图的边缘域1%的点集距离的平均值

6.初始化μ1、μ2

7.逐层预训练自编码器,下采样过程添加Dropout噪声

生成重构特征图,保存预训练模型参数

9.去除解码层,联合训练RG-CNN和经典网络VGG/ResNet

10.Adam优化,微调参数

11.while 聚类变化率 >= 0.1% do

12. 每次迭代,构造一个由ε图边组成的最小批量样本集合β

13. 更新{zi}i∈β和Ω

end while

end while

16.取{ci}i={zi}i

17.输出聚类{ci}i

5 实 验

5.1 数据集

验证模型的聚类效果,本文采用MNIST数据集进行试验.MINIST数据集包含70000个大小为28×28的手写字体,字体数据已经完成中心化、归一化处理.为了验证本文设计模型的细粒度分类有效性,实验又选择Kaggle中的dog数据集和Stanford的dog数据集作为源数据预处理,得到处理后的数据集进行训练和测试.Kaggle的dog数据集是dog and cat数据集的子集,包含不同种类的狗的图片共12500张,其中图片包含RGB、RGBA、灰度图等多种图片类型;Standford的dog数据集是Imagenet数据集的子集,包含120种世界各地的犬共20580张,每一类犬的图片都放在同一类文件夹下,不同犬类图片已经完成类型标记.实验采取以Stanford的dog数据集为主,训练数据源不足时通过Kaggle的dog数据集补充的方式进行.

5.2 实验配置

CPU:Intel Core i7;内存:24G;GPU:NVIDIA GTX 1050Ti 4G;语言环境:Python 3.7;机器学习环境:PyTorch 1.3;Cuda版本:V10.

5.3 评价指标

实验采用聚类评估指标ACC、NMI以及AMI进行模型性能评估.

ACC(Unsupervised Clustering Accuracy,测准率)用于比较获取的标签和真实标签的匹配程度:

(8)

yi代表第i个真实标签,ci是由算法分配的标签集合,m映射了所有分类和标签之间的一对一关系.该度量指标从聚类方法出发,结合真实情况,给出了二者之间的最佳匹配关系.NMI(Normalized Mutual Information,标准化交互信息)用于衡量两个数据之间的吻合程度.假设N个样本标签的不同分布分别为U和V,则两种分布熵为H(U)、H(V),分布熵定义为:

(9)

则U和V之间的互信息(MI)为:

(10)

定义标准化的互信息为:

(11)

AMI(Adjusted mutual information,调整互信息)用于在分类较少、数据集较完整条件下评估模型性能:

(12)

5.4 实验细则

训练验证采用Kaggle和Standford混合数据集进行,Standford数据集只取数据源图片,不取标签.其中,Standford每一类别取约3/4张图片进行训练.测试采用Standford每一类别中的1/4作为测试数据集实现,使用对应标签比对,计算相关评估指标.实验采取对比试验,采用控制变量法进行试验.神经网络验证过程使用交叉验证法.

5.5 实验分析

实验设计模型的输入大小为64×64,通过卷积池化获得16×16的整体特征,经过全连接层学习得到最终的图片对象的192个核心特征;设计初始学习率为0.006,学习率衰减系数为0.15;设定dropout比例为0.72.预训练过程设计迭代6000次,批处理大小为128;网络微调学习过程设计最大样本学习次数为40次,批处理大小24.

5.5.1 不同聚类对比

为了验证实验的聚类效果,实验首先使用MNIST数据集进行试验,将结果与其它聚类方法进行对比.表1给出了不同聚类方法之间的比较结果.

表1 不同聚类方法准确率
Table 1 Accuracy of different clustering methods

ACC(%)K-means53.94LDMGI84.09DEC84.30DCEC[24]88.97JULE90.02DCC91.30DEPICT[25]91.90本文方法(冻结非线性映射)76.84本文方法(DCC+RNN+attention+VGG)94.78本文方法(DCC+RNN+attention+Res-NET)96.27

通过表1可以得出,在设计的实验环境下,本文所给出的方法相较于传统的聚类方法,聚类准确率超出40%;和其他的深度聚类算法相比,本文所给出的算法也有相当大的性能提升.与本文所参考的深度聚类算法DCC相比,修改后的模型也能够更有效地实现字符图片聚类效果.需要注意的是,本文实验过程中也采用冻结非线性映射的方式进行了测试.可以看到,冻结后的效果与本文设计方法具有较大差距,证明了设计端到端训练的有效性.

在聚类实验中,本文还针对聚类设计的阈值进行了修改,得到了如图5的折线图.

图5 不同阈值下同一个样本的聚类准确率Fig.5 Clustering accuracy of the same sample under different thresholds

图5中保存10个不同的阈值,阈值采样采用等比大小,图中最高点为设计阈值.实验证明,设计阈值如果过小,会增大聚类集合间距判断困难程度,降低聚类的准确程度;阈值如果过大,模型将有可能无法达到最佳的聚类效果,进而降低聚类的准确率.

5.5.2 细粒度分类对比

细粒度分类及后续实验在dogs数据集上进行,用于评估模型将真实图像聚类成细粒度的对象分类的能力.实验首先与效果较好的深度聚类方法JULE、DEPICT进行对比;在其基础上,分别创建了带有ResNet-50深度网络的变体进行试验比较.除此以外,实验挑选了相对较新的几个聚类算法,包括两个基于GAN生成对象的聚类方法对比,确保设计方案在最新的聚类方案中依旧能够达到理想的效果.

表2 不同深度聚类方案的准确率和归一化互信息
Table 2 ACC and NMI of different depth clustering schemes

ACCNMIJULE0.0430.142JULE-ResNet-500.0440.148DEPICT0.0520.182DEPICT-Large0.0540.183IIC-cluste0.0600.200StackGANv2[26]0.0400.139FineGAN[27]0.0590.194OneGAN0.0730.211本文方法(DCC+RNN+atten-tion)0.0680.208

通过实验可以看到,聚类模型的分类效果(ACC),与模型判断数据之间的吻合程度(NMI)呈现正相关.在这两个部分,本文的方法优于以往的大部分方案,与最新的GAN分类方案接近.这表明编码器的循环编码部分能够更好的捕获细粒度对象聚类所必须的细粒度对象细节.相较之下,过去的深度聚类方案诸如JULE和DEPICT无法详尽地捕捉分类对象细节信息,这些聚类算法更多关注整张图片的高级细节,例如背景和粗糙的形状.

比如,JULE和DEPICT聚类将会将背景相似度高的图片聚集成一类,而聚成类的图片并没有完全按照狗的种类细分,这种聚类明显与所希望得到的细粒度分类不相符.相比之下,采用本文设计的自编码器,能够在一定程度上降低背景带来的干扰,得到更好的分类结果.

5.5.3 不同细粒度类别数分类效果对比

受到网络模型聚类能力的限制,对于不同种群数,模型表现出的准确率也不同.实验基于JULE、DEPICT和本文的方法,分别抽取不同数量种类的狗图片进行测试,得到图6的结果.

图6 JULE、DEPICT、RG-CNN不同种类数聚类统计Fig.6 Cluster statistics of JULE,DEPICT and RG-CNN

从图6中可以看到,伴随着物种类别数的增加,尽管聚类算法的有效性没有太大的下降趋势,由于数据量大量增加,聚类之后类别的准确性存在比较明显的衰减.因此,本模型在极大细粒度分类工作中存在较大改进空间.未来改进过程中可以考虑引入多路网络,分别针对整张图片和部分特征(如头、脚等)进行学习,然后利用融合的特征达到更好的效果,本文不再赘述.

5.5.4 不同细粒度组合分类效果对比

细粒度分类的关键在于深度网络对于物种对象特征的学习识别能力.实验基于本文方法,采取分组对照试验,每一组定向选取特定种类的狗,将其打乱后输入网络测试.为了简化测试流程,每一组实验均采用二分类聚类比较;由于每一组实验数据量较小,故在测试结果中使用AMI聚类评估标准.

表3 个体差异较大对象二分类
Table 3 Two categories of objects with large individual differences

AMI阿拉斯加0.93吉娃娃 0.92

阿拉斯加和吉娃娃无论从形态还是和颜色方面存在较大差距.设计方法能够对这两类犬种有效分类.

表4 毛色差异较大对象二分类
Table 4 Two categories of objects with large differences in coat color

AMI拳师犬0.62斗牛獒0.68

拳师犬和斗牛獒主要的差别在于成年犬只的颜色,属于种内变化相对温和的比较.设计方法识别此类变化的能力相对降低.

表5 体型差异大,个体差异较小对象二分类
Table 5 Two categories of objects with large differences in body size,small individual differences

AMI小猎犬 0.38休伯特猎犬0.29

小猎犬和休伯特猎犬除了体型的大小,唯一的差别是地域不同.本文的方法不包括通过背景等区分地域的综合学习能力,因此聚类效果较差,聚类质量完全取决于测试图片的质量,将个体大小相似的图片对象聚成一类.

表6 相似度极高对象二分类
Table 6 Two categories of highly similar objects

AMI哈士奇(西伯利亚雪橇犬)0.12阿拉斯加0.18

哈士奇和阿拉斯加无论从体型,毛发,长相上都很相似,属于种内类别相似度最高的类型.在分类过程中,出现了两个分类数量两极分化的现象.由于很难辨别物种的不同,大量的图片对象被分到了同一类,对于此类品种出现了过拟合的现象,直接影响了最终的聚类准确率,使得准确率较高,分类效果却不理想.相对的,从AMI指数可以看到,实际分类效果与期望分类存在较大差距,说明方法在相似度极高的不同种属之间几乎失效.针对此类特殊聚类,可以利用背景特征作为附加因素交叉学习识别.

6 结 论

本文结合深度聚类、CNN、RNN和attention设计了一个循环卷积注意力网络RG-CNN,用于解决同类图像对象内部的子类别分类问题.MNIST数据集的聚类实验证明了该方法在聚类方面的卓越特性,避免了现有方案出现的部分问题.dogs分类实验说明实验在中等数量的子类别分类问题上具备相当强的可行性;在部分相似度较高的子类别分类,或者子类别类型较多时,需要依靠构造子网,识别背景特征或者构造细节特征识别网络辅助实现,以求达到较好的分类效果.如何设计辅助特征网络,这将是本实验后续研究工作的重点.

猜你喜欢
卷积聚类分类
基于全卷积神经网络的猪背膘厚快速准确测定
基于图像处理与卷积神经网络的零件识别
基于数据降维与聚类的车联网数据分析应用
基于深度卷积网络与空洞卷积融合的人群计数
基于模糊聚类和支持向量回归的成绩预测
按需分类
教你一招:数的分类
说说分类那些事
基于密度的自适应搜索增量聚类法
给塑料分分类吧