APP下载

基于不准确图像数据清洗的分类方法研究

2022-08-20李政文杜文菊饶妮妮

信号处理 2022年7期
关键词:分类器噪音准确率

李政文 杜文菊 饶妮妮

(1.电子科技大学生命科学与技术学院,四川成都 610054;2.电子科技大学成都学院,四川成都 610031)

1 引言

图像分类是根据图像的语义信息将不同类别的图像区分开来,是图像检测与分割等其他高层视觉任务的基础,在文本识别、交通、地震以及医学等领域具有重要应用价值[1-6]。

传统的图像分类方法通过手工特征或特征提取方法对整个图像进行描述,然后使用分类器判别图像类别[1,7]。由于传统特征提取方法普遍不是机器学习算法,所以它们提取的特征没有自学习和自调整能力,特征的内容是固定的。这在一定程度上限制了传统分类方法的鉴别能力。基于深度学习的图像分类方法可以通过有监督或无监督的方式学习层次化的特征描述,从而可以取得很好的分类效果。自从2012 年AlexNet[8]神经网络以来,深度神经网络就成为了图像分类领域的主要方法[9]。2014 年英国牛津大学的“视觉几何实验室”设计的VGG[10]神经网络把神经网络层次加深到了19层,证明了神经网络的深度对分类准确率有很大的影响,但神经网络深度加深时会伴随着梯度消失的问题。为此,2016 年何凯明在设计的Resnet[11]神经网络中加入了一个残差模块,在保证准确率的情况下解决了梯度消失问题。2017 年稠密网络Densenet[12]设计了稠密模块,减少了模型参数量,提高了图像特征传递效率。同年,Xception[13]神经网络验证了神经网络加宽对于分类准确率的提升也有较大的帮助。

尽管如此,基于深度学习的图像分类方法性能的提升仍然面临一些问题:

(1)需要一个完全干净的数据集来训练分类模型,而这个完全干净的数据集在现实中是较难获取的。例如,受主观因素影响,医学图像集中存在或多或少的错标或漏标图像。

(2)在算力受限的场合(如穿戴式监护设备),要求深度学习网络的层数不能太高,不干净的图像数据对这类分类网络的性能将产生很大影响。虽然分类模型深度加深有利于其抗噪鲁棒性的提升,但会带来计算量增大和耗时加长,不适用于实时应用场景。

(3)大多数分类模型泛化能力差,在其他图像数据集上的分类性能严重下降。

鉴于此,本文提出了一种基于不准确图像数据清洗的分类框架,同时还探讨了图像数据集清洗后对图像分类的影响,以及数据集里含有标签噪音图像比例对模型分类准确率的影响。

2 材料和方法

2.1 材料

Kaggle计算机视觉竞赛公开数据集是一个为开发商和数据科学家提供举办机器学习竞赛、托管数据库、编写和分享代码的平台。该数据集共包含12500 张猫和12500 张狗的图像,共计25000 张猫狗图像,本文用于验证基于不准确图像数据集清洗的分类方法性能。

2.2 基于不准确图像数据清洗的分类框架

本文构建的基于不准确图像数据清洗的分类框架如图1 所示。该分类框架基于深度学习技术,主要由标签噪音图像清洗模型和分类模型组成。

2.2.1 图像清洗模型

本研究的图像数据清洗是基于聚类分析中的一个假设:聚类问题的边界必须位于低密度区域[14]。对于图像的二分类问题,在训练分类模型时,分类模型优先从数据集高密度区域学习到每一类共同具有的特征,基于这些共同特征进行分类。造成分类错误的主要数据来源是位于低密度区域的难分辨数据和位于高密度区域中的错误标签数据,这些数据是造成模型训练损失函数损失值高的主要原因。因此,把这部分数据提取出来并从数据集中删除,有利于提高分类准确率[15]。

本文采用了改进的VGG16_bn 神经网络(后简称为VGG_NIN,共14 层神经网络)来构建图像清洗模型[15],同时采用了深度Resnet152 神经网络作为清洗模型特征提取网络进行对比实验。VGG_NIN 删除了VGG16_bn 的全连接层,添加了两个1x1的卷积层和池化层,优化减少了模型参数量为19982402 个参数,远远少于原始VGG16_bn 神经网络的134277186个参数,而Resnet152网络的参数是60192808 个。VGG_NIN 提高了清洗模型的运行速度。

为了能够把尽量多的错误图像筛选出来,本模型对数据集进行多次反复筛选,算法流程表示在图1左边的图像清洗模型中。在训练不准确数据集清洗模型的过程中,选择了AdamW[16]作为模型的优化器,采用了变化的学习率和交叉熵损失函数。如果损失函数训练指定批次后没有减少,则把学习率减半,以提高清洗精确度。为了加快错误图像清洗速度,每张图像像素大小统一为224×224,每批次训练32张图像。

2.2.2 图像分类模型

为了说明图像清洗的作用,本文采用了三个具有不同特点的图像分类模型,包括:VGG16_bn,DenseNet161[12]和Xception[13]。DenseNet模型是ResNet神经网络模型的改进,它建立了前面所有层与后面层的密集连接,这使得DenseNet 在参数和计算成本更少的情形下实现比ResNet更优的性能[12]。Xception 使用了多种不同尺寸的卷积核,提高了对不同尺度特征的适应能力,并且设计了精巧的Bottleneck结构,大大减少了网络参数量并提高了网络的表达能力。本文在分类模型训练过程中,固定了随机种子,没有使用图像增强,每个分类模型使用相同的验证集和测试集,并且保证验证集和测试集含有图像的标签是完全正确的,以减少其他因素对分类结果的影响。分类模型训练过程使用的优化器是AdamW,使用了变化的学习率。此外,本文还重点探讨了图像数据集里含有的标签错误图像比例对分类准确率(Accuracy,Acc)的影响。

2.3 实验设计

不准确的图像数据集含有的错误图像包括标签噪音和背景噪音图像,根据图像数据集的二分类问题自身特点,本文设计了三个实验来研究基于不准确图像数据集清洗的分类问题。

实验一:不同深度的神经网络对不准确图像数据集清洗的效果对比。该实验对比VGG_NIN 与Resnet152 神经网络的清洗效果。给定一个准确率未知并且没有完全正确的训练集做前提条件的图像数据集,基于上述两个网络清洗出标签噪音和背景噪音图像,再做分析与比较。

实验二:图像数据集清洗前后对分类的影响。该实验验证本文方法采用删除数据集里所有可能错误图像以后的数据和没有删除可能错误图像的数据集来训练模型,对比两个数据集对分类准确率和验证集的损失函数的损失值是否有影响。具体做法是:选择神经网络模型VGG16_bn,先使用原始图像数据集进行训练模型,对验证集和测试集里的数据进行分类,获得一个分类准确率和损失函数的损失值;再用删除了所有可能错误图像的数据集进行模型训练,使用新训练出来的模型对验证集和测试集里的数据进行分类,获得一个分类准确率和损失函数的损失值,对比两次的准确率和损失值的关系。

实验三:数据集含有标签噪音图像比例与分类准确率之间的关系。该实验的具体做法是:选择经典的三个神经网络模型VGG16_bn、DenseNet161 和Xception,对清洗干净以后的猫狗图像数据集先随机选择出一部分图像作为验证集,然后把剩余的图像作为训练集。在训练集里随机制造一定数量的标签噪音图像,研究训练集里含有标签噪音图像的比例与最终分类结果的关系。

本实验实现的编程语言是Python 3.6.4,深度学习库是PyTorch 1.0.0(https://pytorch.org/)。所有实验均在基于Ubuntu 16.04.6 LTS(GNU/Linux 4.8.0-36-generic X86_64)的服务器上进行,服务器配备Nvidia GeForce rtx2080ti、11G 四个图形处理单元。

2.4 性能评估指标

本文使用了以下几个标准作为分类性能的检测指标:

(1)召回率Recall(Rec):

式(1)的召回率可以反应图像数据集里正类的图像被分类器判定为正类的准确程度。

(2)准确率Accuracy(Acc):

准确率(式(2))可以判断分类器总体分类的准确程度,但在样本不均衡的情况下,不能很好的衡量分类器性能。

(3)精确率Precision(Pre):

精确率(式(3))可以反应分类器判定图像为正类的准确程度。也就是说分类器判定一个图像为正类时,该判定有多大的可能性是正确的。

(4)F1-Score:精确率和召回率通常呈现负相关,召回率高则精确率就低,精确率高则召回率就低,因此本文引入最终参数F1-Score(式(4))。F1-Score取值越大说明模型分类性能越好。

式(1)~(3)中,TP(True Positive)表示分类器判定正确的正类图像数量,即:一个图像的标签是正类且分类器也判定该图像为正类图像。FN(False Negative)表示分类器分类判定错误的负类图像数量,即:图像标签是正类图像但分类器做出了错误的判定,判定该图像为负类图像。FP(False Posi⁃tive)表示分类器判定错误的正类图像数量,即:图像标签是负类图像但分类器做出了错误的判定,判定该图像为正类图像。TN(True Negative)表示分类器判定正确的负类图像数量,即:图像标签是负类图像并且分类器也判定该图像是负类图像。

3 实验结果

3.1 不同深度网络的不准确图像数据集清洗结果对比

猫狗数据集里图像质量差别较大,有的图像像素较低或被其他物体遮挡等。经过图像数据的清洗发现,不同的神经网络提取图像的特征后,清洗出的可能错误图像是不同的,实验结果如表1所示。其中,Resnet152 清洗出的标签错误图像较少,而VGG_NIN 神经网络清洗出的标签错误图像较多,较深的神经网络对于标签错误的数据会形成记忆,从而导致神经网络的泛化能力较差[17-18]。

从表1 中可以看出,Resnet152 是较深层次的神经网络,对标签错误的图像有一定的鲁棒性,而VGG_NIN 神经网络层次较少,神经元含量较少,对标签错误的图像鲁棒性较差但有利于清洗标签错误的图像。实验发现,增加清洗次数可以增加清洗出来的错误图像数量,但清洗时间会增加很多,设置不同的随机种子,清洗出来的结果也会有所不同。

表1 猫狗数据集错误图像筛选结果Tab.1 Error image screening results of original cat and dog data sets

图2给出了筛选的错误图像示例。对于猫和狗在同一副图像的情况,无论给出哪类标签都是错误的,或者第一行非猫非狗标注成猫或者狗都是错误的标签,而有的图像给出了多个不同类别的标签,以上几种类型图像总共筛选出来62张。

本文选择VGG_NIN神经网络清洗后的数据集作为后面分类实验的数据集。删除所有真实错误和部分模糊的图像后,数据集余下的图像共有24826张。其中,猫和狗图像分别为12391和12435张。

3.2 清洗前后分类结果

首先对没有筛选过错误图像的原始猫狗数据集进行分类,原始数据集共有图像25000张,其中包含猫和狗的图像分别为12500 张。我们把这25000 张图像分为了训练集和验证集,其中验证集包含2400张图像(猫和狗的图像分别为1200张),验证集图像占总图像的比例约9.6%,并且验证集里的2400 张图像都是经过筛选,保障每一张图像都是标签正确的。清洗前,训练集包含狗和猫的图像都为12300 张,清洗后的训练集包含猫的图像11191 张,狗的图像11235 张。然后,探究猫狗数据集里删除错误图像后的分类准确率以及数据集含有标签错误图像的比例对于分类准确率的影响。实验结果如表2所示。

表2 清洗前后分类结果Tab.2 Classification results before and after cleaning

由表2 可以看出,使用VGG16_bn 神经网络作分类模型时,对于相同的验证集,将可能错误图像清洗前后的训练集训练出来的模型比较,清晰后的分类效果更好。

被清洗前后猫狗图像数据训练的分类模型,在验证集上的准确率曲线和损失函数的损失值曲线分别如图3(a)和(b)所示。可以看出,被清洗了可能错误图像后训练的分类模型的准确率明显提升,损失函数的损失值也明显降低了很多。

3.3 数据集中含有标签噪音图像比例与分类准确率之间的关系研究

由于猫狗数据集里含有的错误图像比例较少,而现有较深层次的神经网络对于标签错误率较低的数据集具有较强的分类鲁棒性,所以直接采用现有的猫狗数据集难以探讨清楚标签噪音图像比例与分类准确率之间的关系。为此,本文在删除了所有错误图像的猫狗数据集里,人工制造了一定比例的标签错误图像(表3),加入到清洗后的数据集中。删除所有真实错误和部分模糊的图像后,原数据集余下的图像共有24826 张。其中,猫和狗图像分别为12391和12435张。

制造标签错误图像的方法是交换一部分猫和狗的标签,也就是随机把一部分猫的标签修改为狗,把一部分狗的标签修改为猫。在不同比例的标签错误图像下,三个分类模型的分类准确率如表3和图4所示。

由表3和图4可以看出,无论是较浅层还是较深层次的神经网络,随着数据集中含有的标签噪音图像比例增加,分类准确率都是下降。虽然较深层次的神经网络模型(如DenseNet161)对图像数据集中含有的标签噪音图像具有较强的鲁棒性,但随着数据集中标签噪音图像比例的增加,较浅层的神经网络(如VGG16_bn)在分类效果上与较深层次的神经网络模型(如DenseNet161)的分类准确率相当,并且较浅层的神经网络模型还具有运算速度更快的优势。因此,在分类框架中引入的错误图像清洗环节有效地提升了较浅层神经网络模型的分类能力。

表3 标签噪音图像比例与分类准确率Acc之间的关系Tab.3 The relationship between the ratio of tag noise image and Acc of classification accuracy

4 讨论

由于大量图像数据集标注成本较高并且花费时间多,人工标注过程中受到主观性、经验和疲劳程度等多种因素影响,很难获得数量较大的准确的数据集,所以实际中多数是带有标签噪音或背景噪音的数据集。现有分类方法大多数在训练模型时需要完全干净的数据集,而本文提出的方法,引入错误图像清洗环节,在训练分类模型时不需要完全干净的数据集,并且本文的方法可以推广到其他不准确数据集的分类任务中。在清洗二分类图像数据集中的错误图像时,较深层次的神经网络对于错误图像的清洗有较高的鲁棒性,并没有取得较好的清洗效果。

本研究方法基于标签噪音图像和背景噪音图像的清洗,在自然图像数据集上取得了较好的分类效果,数据集清洗完以后,分类准确率得到提升,损失函数的损失值也降低了一些,当然也存在一些局限性。例如,在删除标签噪音和背景噪音图像的同时,也删除了少部分标签正确的图像,另外,还没有推广到多分类的数据集中去。

本文也讨论了数据集里含有的标签错误图像比例对分类准确率的影响,较深层次的神经网络模型和设计合理的神经网络结构可以降低错误图像对分类准确率的影响。当神经网络模型较简单时,对错误图像的鲁棒性较差,但在分类框架中引入的错误图像清洗环节将提高较简单神经网络分类模型抵抗错误图像的能力。

5 结论

本文提出了一种不准确监督学习中基于标签噪音和背景噪音图像清洗的分类框架。该框架可以提高较简单神经网络分类模型抵抗错误图像的能力,为快速和准确分类提供了一种新思路。接着,对比了清洗前后的分类准确率。清洗后的分类准确率明显提升,数据集损失函数的损失值也明显有所降低。最后,探讨了数据里含有标签噪音图像的比例大小对模型分类准确率的影响。在该分类框架下,即使在图像数据集中标签噪音图像的比例较高时,较浅的神经网络分类模型也能达到与较深层次的神经网络分类模型相当的分类效果,而且运算速度更快。

在未来的工作中,我们打算将该分类框架推广到自然图像多分类数据集中,并进一步改进神经网络模型,提高清洗速度和分类准确率。

猜你喜欢

分类器噪音准确率
学贯中西(6):阐述ML分类器的工作流程
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
基于朴素Bayes组合的简易集成分类器①
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
基于动态分类器集成系统的卷烟感官质量预测方法
无法逃避的噪音
噪音银行
一种自适应子融合集成多分类器方法