APP下载

基于卷积神经网络和代价敏感的不平衡图像分类方法

2018-08-27谭洁帆陈同孝张真诚

计算机应用 2018年7期
关键词:三元组代价神经网络

谭洁帆,朱 焱,陈同孝,张真诚

(1.西南交通大学 信息科学与技术学院,成都 611756; 2.台中科技大学 资讯工程系,台湾 台中 404;3.逢甲大学 资讯工程系,台湾 台中407)(*通信作者电子邮箱yzhu@swjtu.edu.cn)

0 引言

随着网络多媒体数据的日益增多,计算机图像数据的分类已经成为了近年来的一个研究热点。然而,在某些领域数据的类别分布是不平衡的,采用传统分类方法存在两个问题:1)不同类别的误分代价通常差别巨大。例如:医院肿瘤病患的诊断,警局犯罪分子的人像追踪和垃圾网页的图像识别等,在这些数据集中,少数类的识别更加地重要。少数类如果分类错误可能导致病人得不到及时治疗死亡,犯罪分子逃脱或者计算机重要资料泄露等严重的后果。然而传统分类算法中,假设所有的误分代价相等。2)当少数类在数据集中的占比少于1%时,即便是将所有样本都分到多数类,总的分类正确率仍然大于99%,但是少数类的分类正确率为0。这说明了,传统的分类方法虽然有很高的多数类识别率,但少数类的识别率有可能却很低。

针对以上两个问题,出现了代价敏感学习方法,目前主要包括两种解决方案:一种是重构数据集[1],包括阈值移动法、采样法和样本加权法[2];第二种方法是通过改进分类器模型的内部结构,使其成为基于最小代价为目标的代价敏感分类器。在传统分类算法中引入代价因子,对少数类赋予较高的代价,多数类赋予较小的代价,以此来平衡样本之间的数目差异[1]。

目前公开的数据集(例如Web Spam UK- 2006/UK- 2007),样本特征是由大量人工选择或判断产生,创建过程主观而且非常费时费力需要专业知识的辅助。近年新兴的深度学习方法通过多层神经网络的多次迭代训练可以自动学习数据的特征,很好地解决了上述问题。近年来,深度学习模型在提取图像高层特征方面有着重要的突破。基于层次化特征学习的深度学习模型在各种图像分类、识别、检索领域都得到了广泛的应用,并且也取得了不错的性能。Krizhevsky等[3]提出深度卷积神经网络,在大规模数据集ImageNet上取得了非常显著的效果并证明了该模型在大型图像数据集上进行分类的潜力。Yan等[4]将卷积神经网络和bootstraping结合,解决了数据集不平衡的问题,在视频检索国际权威评测(TREC Video Retrieval Evaluation, TRECVID)2011 benchmark数据集上对视屏截图进行识别,取得了不错的效果。Chung等[5]提出了将代价信息应用在深度学习预训练阶段的方法,将深度学习与代价敏感的分类结合,实验得到了较好的效果。深度学习模型在学习图像特征描述能力上显示了强大的潜力,采用无监督方式学习得到的层次特征描述,相比人工选取的特征更具有竞争力,提取的特征不仅表达能力强,分类效率高,而且避免了人工费时费力的特征提取过程。

本文结合深度学习和代价敏感学习建立分类模型,旨在解决不平衡的图像分类问题。提出了一种三元采样结合卷积神经网络的深度学习算法,应用该算法自动学习图像数据的深层特征并重构不平衡数据集,再使用代价敏感的支持向量机(Support Vector Machine, SVM)对学习到的特征进行分类,期望得到代价最小的分类结果。

1 Triplet loss卷积神经网络

Triplet loss是Schroff等[6]提出的一种新的基于度量学习的误差公式。它将图像特征映射到欧几里得空间,定义了同类样本与异类样本间的距离关系,即在欧氏空间中,两张图片的距离越近,则说明它们的相似度越高。通过Triplet loss,卷积神经网络每次学习到的特征使同类样本的距离越来越近,同时使异类样本的距离越来越远。

(1)

对应的目标函数为:

(2)

式(2)中,+表示当[]中的值大于零时,损失为该值,小于零时,损失为零。根据目标函数,当xa与xn的特征表达之间的距离小于xa与xp的特征表达之间的距离加α时,[]内的值大于零,就会产生损失;反之损失为零。当损失不为零时,通过反向传播算法来调节整个网络,优化特征提取模型。

图1 三元损失学习示意图[6]

传统的图像分类中主要使用人工选择的特征或是简单提取的颜色、纹理等浅层特征,具有主观性。卷积神经网络(Convolutional Neural Network, CNN)可以通过多次训练学习得到图像更具代表性的特征,Triplet loss替代了传统CNN中的softmax层,使用三元组计算距离的方式来优化网络,学习到的图像特征更加紧致;但是三元组的构建十分重要,否则神经网络收敛很慢,并且该方法主要针对平衡数据,并未对数据不平衡的情况作处理。

2 代价敏感的SVM

SVM是Vapnik根据统计学习理论提出的一种新的学习方法,它的最大特点是根据结构风险最小化准则,以最大化分类间隔构造最优分类超平面来提高学习机的泛化能力。对于分类问题,SVM在特征空间中找到一个超平面尽可能多地将两类样本正确地分开。假定有训练集RN={(xi,yi)}i=1,2,…,n超平面为(wT·x)+b=0,w∈RN,b∈R。SVM问题可以简化为求max (2/‖w‖),即求‖w‖的最小值。公式表达为:

(3)

s.t.yi(wTxi+b)≥1;i=1,2,…,l

因为训练数据通常是线性不可分的,引入了松弛变量δi和惩罚系数C。针对不平衡数据,代价敏感的支持向量机(Cost-Sensitive Support Vector Machine, CSSVM)是在传统算法基础之上引入了针对各类别不同的惩罚系数,Cp和Cn分别是正类和负类样本的代价因子[7]。此时SVM问题用公式表达为:

(4)

s.t.yi(wTxi+b)≥1-δi;i=1,2,…,l

式(4)中,不同类别的代价因子Cp和Cn通常是根据领域知识得到的。但是在具体应用中,很难得到代价因子的精确值。Liu等[8]提出了代价区间敏感的支持向量机(Cost-Interval Sensitive Support Vector Machine, CISVM)方法,基于不同类别的代价区间来处理不平衡分类,避免了需要获得精确值的问题并取得了不错的效果。

3 Triplet-CSSVM模型

为了解决不平衡的图像分类问题,本文提出了一个基于Triplet-sampling的卷积神经网络(Triplet-sampling CNN)和代价敏感支持向量机(CSSVM)的不平衡图像分类方法——Triplet-CSSVM(imbalanced image classification approach based on Triplet-sampling CNN and CSSVM)模型,如图2。本文将整个分类过程分为两个部分:第一部分使用Triplet-sampling CNN,通过目标函数为Triplet loss的卷积神经网络对图像进行特征学习,在该过程中结合了采样方法重构数据集(算法1)。训练得到特征学习模型,使用该模型提取训练集中每张图片的特征,作为第二部分的输入。第二部分应用CSSVM进行代价敏感分类。

图2 Triplet-CSSVM模型

算法1 Triplet-sampling CNN。

输入:不平衡图像数据集。

输出:特征学习模型f(x)。

1)使用目标函数为softmax的CNN进行预训练,初始化CNN中的各权值参数。

2)去掉CNN中的softmax层,加入Triplet-sampling层。

3)迭代训练神经网络:

a)从少数类和多数类样本中随机产生相同数量的三元组;

b)映射样本数据x的特征表达f(x)到欧氏空间;

c)对样本的特征表达进行归一化;

d)使用式(2)对特征表达f(x)进行优化。

4)停止迭代,得到最终的f(x)。

前文介绍了的Triplet loss CNN方法是在图像数据平衡时的特征学习方法。尽管在数据集很小的情况下,可以得到大量的三元组,但如果三元组构建不合适,神经网络收敛十分缓慢。图1中三元组的Anchor是随机得到的一个样本,当数据集不平衡时,随机的三元组也是不平衡的。Sampling方法是不平衡分类中常用的一种重构数据集的方法,因此针对不平衡数据,算法1中采用的策略是分类别随机选取Anchor,即在多数类中随机选择一定数量的Anchor得到三元组后,在少数类中随机采样相等数量的Anchor得到新的三元组。例如,如果在一组训练数据中,希望得到10个三元组,在多数类中随机选择5个Anchor,得到相应三元组,再在少数类中随机选择到5个Anchor得到相应的三元组。这样训练数据达到了类别分布平衡。为了减少训练时间,根据本文去掉了式(2)中的α[6],因此目标公式变为:

(5)

算法1中,第1步对目标函数为softmax的CNN进行预训练,由于Triplet-sampling CNN训练的复杂度高,收敛速度慢,从头开始训练耗费时间长,代价高。根据迁移学习的思想,使用经典的CNN对ImageNet上的大的数据集进行预训练,这样做的原因在于预训练的网络前几层一般是通用的特征(比如边缘提取器),而网络的后几层则是与数据集和分类任务相关的,因而在给定新的数据集和分类任务时可以仅调整后面几层。建设了各权值初始化后的CNN后,再根据式(5)对网络进行微调,可以节约大量的时间和资源。

经典的CNN使用softmax作为目标函数,产生的特征维数很大,通常大于1 000维。例如AlexNet,全连接层fc7产生的特征有4 096维;但Triplet-sampling CNN产生的特征维数只有512,大幅度减轻了分类器的负担。

CSSVM直接对式(4)所表示的优化问题进行求解,其中,应提供代价因子Cp、Cn的具体值。本文采用了Wang等[9]定义的代价模型。该模型将正确分类的代价定义为0,即:Cost(1,1)=Cost(0,0)=0,1表示正类,0表示负类,括号中两数相同代表分类正确。少数类的代价因子取决于不平衡的比例:

(6)

其中yi代表样本i的类别。例如,多数类的样本数为n=90,少数类的样本数为p=10,根据式(6)少数类的代价因子则为Cp=90/10=9。该方法定义多数类代价因子Cn=1。

4 实验与结果分析

本文提出的不平衡图像分类模型集成了深度学习和代价敏感学习方法。通过设计实验比较经典CNN和传统SVM方法,验证本文方法提升了检测性能。所有的实验都在著名深度学习框架Caffe[10]上进行,实验平台为GeForce GTX 960。由于设备限制,CNN配置文件中的batch_size设置为6,网络迭代次数为400 000。

实验数据为人脸数据集FaceScrub,该数据集包含530人超过100 000张正面图像(图3)。数据集的原始分布是平衡的且各类别代价因子相等。本文实验进行了不平衡设计,选择两类图像进行二分类,两类数据的比例调整为1∶3。本文中少数类是正类,多数类是负类。

图3 人脸图像实例

实验采用三种分类评价指标:Precision(检测的精确率)、Recall(召回率)、F-Score(Precision和Recall的调和均值)。评价指标均基于实验结果的混淆矩阵计算,如表1所示。

表1 混淆矩阵[11]

4.1 实验结果与分析

在相同数据集上本文进行了4组实验,分别是:1)经典VGGNet(Visual Geometry Group-Net)[12]结合传统SVM分类——VGGNet-SVM(Visual Geometry Group Net-Support Vector Machine);2)经典VGGNet结合CSSVM分类(VGGNet-CSSVM);3)Triplet-sampling CNN结合传统SVM(Triplet-SVM);4)Triplet-CSSVM(本文方法)。实验结果如表2所示。

表2 实验结果比较(少数类)

结果表明,使用经典VGGNet结合传统SVM方法时,分类性能最低。当分类方法相同时(1,3/2,4),Triplet-sampling CNN的学习效果明显优于VGGNet。本文方法在Recall一项达到了0.93,比VGGNet-SVM提高了71个百分点,说明本文方法在少数类的查全率上优胜其他所有方法。

4.2 方法有效性实验

为了验证Triplet-sampling CNN 和CSSVM在不平衡图像分类的作用。本文在类别比例为1∶3的图像数据上进行了特征学习,然后在类别比为1∶1、1∶3、1∶6以及1∶9的图像数据上使用上一步得到的特征学习模型提取图像特征,再进行代价敏感分类。表3为实验结果。

表3 不同不平衡比例下的CSSVM分类结果

实验结果显示,当Triplet-sampling CNN的训练集比例为1∶3时,CSSVM能得到最佳分类效果的两类数据的不平衡比例也是1∶3,即模型中两部分训练的图像数据集不平衡率相同时,分类效果最好,证明了CSSVM对不平衡分类的有效性。当CSSVM分类的两类数据的不平衡比例为1∶3时,少数类F-Score比1∶1的情况下提高了15个百分点,这是由于特征提取模型是在1∶3的训练集上学习得到的,即在特征提取过程中,Triplet-sampling起到了作用,使通过该模型提取的特征根据1∶3的类别比进行了采样,导致1∶1比例下的数据提取到的特征反而不如1∶3比例下的数据提取到的特征平衡,所以其分类结果劣于1∶3。

5 结语

本文提出了集成Triplet-sampling CNN和CSSVM(Triplet-CSSVM)的模型来解决图像数据不平衡的分类问题。Triplet-CSSVM将不平衡处理过程分为两部分,特征学习部分重构数据集分布,在分类部分突出少数类的重要性。与传统方法比较,得到更加优秀的分类效果。在医疗诊断和犯罪识别等数据极度不平衡的领域可以得到广泛的应用。由于分类采用SVM方法,在后续的研究中,可以探究是否可以应用深度学习同时特征学习和分类两个问题。

猜你喜欢

三元组代价神经网络
TransP:一种基于WordNet中PartOf关系的知识图谱嵌入方法
基于递归模糊神经网络的风电平滑控制策略
时序知识图谱的增量构建
基于卷积神经网络的知识图谱补全方法研究
神经网络抑制无线通信干扰探究
关于余挠三元组的periodic-模
基于神经网络的中小学生情感分析
爱的代价
幸灾乐祸的代价
基于Q-Learning算法和神经网络的飞艇控制