APP下载

基于卷积神经网络的图像分类研究

2019-10-22庞丝丝黄呈铖

现代计算机 2019年23期
关键词:准确率卷积神经网络

庞丝丝,黄呈铖

(南宁师范大学,南宁530299)

0 引言

Hinton 在2006 年提出了深度学习[1]的概念,是一种对数据进行表征的学习方法[2]。深度学习取得成功的原因主要来自于两点,第一个原因:拥有大量的训练数据,如Image-Net[3]、CIFAR-10、CIFAR-100 等;第二原因:计算机硬件的飞速发展,特别是GPU 的出现和发展。Image-Net 是目前深度学习图像领域应用得非常多的一个领域,关于图像分类、定位、检测等研究工作大多基于此数据集展开。CIFAR-10 和CIFAR-100被标记为8000 万个微小图像数据集的子集。他们由Alex Krizhevsky、Vinod Nair 和Geoffrey Hinton 收集。GPU 称为图形处理器,是一种并行编程模型,主要用来处理计算性强而逻辑性不强的计算任务,GPU 中可利用的处理单元可以更多的作为执行单元,加快了深度学习算法的执行速度

计算机视觉领域中,图像处理顾名思义就是我们输入一张图像,通过一个训练好的可识别的网络可输出对该输入图像内容分类的描述问题。机器学习中提供了很多对数据分类的算法,经典的算法有KNN(最近邻)[4]、SVM(支持向量机)[5]、Naive Bayes(朴素贝叶斯)、Boosting[6-7]等。目前,许多研究者使用比较热门的CNN[8-9](卷积神经网络)、VGGNET[10]、ResNet50[12]等深度学习模型进行图像分类。

现在,卷积神经网络在图像分类[11-12]等计算机视觉领域的应用广泛。卷积神经网络依旧是层级网络,只是层的功能和形式做了变化,可以说是传统神经网络的一个改进。传统的神经网络采用的是全连接网络,其中参数数量巨大导致训练消耗资源多甚至无法训练出结果。受到生物神经网络的启发,随之产生的卷积神经网络所拥有的权值共享、局部连接等优点使得参数数量、模型复杂度、训练难度大大降低,神经网络的发展开启了新的研究大门。

虽然卷积网络的发展使得图像分类得到了很大跨度的进展,但分类过程中仍然会遇到一些困难和挑战,例如视角变化、尺度变化、光照条件、背景不同、遮挡、形变等。以花卉分类为例,花卉存在大小、颜色、纹理、形状、背景不同、等各种各样的差异,已经有相关研究攻克难题:TakeShi 等人[13]针对花卉区域的提取,通过一种基于数码相机拍摄的自然景物中盛开花朵的自动识别方法,在600 张花卉图片中获得90%的识别率;Maria-Elena 等人[14]通过开发一个可视化词汇表,显式地表示将一朵花与另一朵花区分开来的各个方面(颜色、形状和纹理),克服了图案之间存在的相似性歧义。其他图像分类研究中,针对提取特征的表示能力不足,导致识别性能不足的问题,Wu Y 等人[15]提出压缩和分裂技术对浅密连接卷积网络进行图像分类的有效方法,提高细粒度图像分类的特征提取能力和识别性能。

为提高图像分类的识别能力,本文主体架构采用ResNet50[12]和迁移学习相结合的方法进行实验。实验结果表明使用该方法可以明显提升图像识别的准确率,反映出了网络具有较好的泛化能力,具有较强的鲁棒性。

1 相关工作

1.1 卷积神经网络

卷积神经网络(CNN)是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一[16-17]。传统的卷积神经网络结构图如图1 所示。间。池化操作分为max pooling 和average pooling,即最大池化和平均池化。池化层的关键作用就是压缩图像,较少过拟合现象的发生,方便优化。假设输入到池化层的图像为x(l-1),经过池化后的图像为x(l),down 表示池化操作,则池化部分可定义为:

全连接层在卷积神经网络的尾部,它把卷积输出的二维特征图转化成一维向量,即连接所有的特征,最终将输出值送给分类器,如Softmax 分类器等。网络中每个节点的输出表示为y1,y2,…,yn,经过Softmax 后输出可表示为:

图1 传统的卷积神经网络结构图

算法主要由卷积层、下采样层、全连接层组成。

卷积也就是在原始的输入上进行特征的提取,即在原始输入上一个一个的小区域进行特征的提取。由于共享权值的原因,所以输出图像的每一个像素值都共用了一个卷积核模板。卷积层的正向传播映射可表示为:

采样层也称为池化层,是夹在连续的卷积层中

卷积神经网络相比一般神经网络在图像理解中的优点有如下:第一,卷积神经网络本身的网络结构可以较好的适应图像的结构;第二,特征提取和分类两个操作是同时进行的,使得特征提取有利于推动特征分类任务;第三,也是卷积神经网络最突出的优点——权值共享,很大程度上减少了网络训练参数,避免了很大的资源消耗,同是使得网络的结构变得简洁,增强了网络的适应能力。

1.2 ResNet50[12]简述

ResNet 是由是何恺明等人提出的,他们发现使用残差块能够训练更深的神经网络。所以构建一个ResNet 网络就是通过将很多这样的残差块堆积在一起,形成一个很的深神经网络。因此,ResNet 网络拥有简单和实用并存的优点。

如果我们使用标准优化算法,例如说梯度下降法训练一个普通网络,如果没有残差,我们会发现随着网络深度的加深,训练错误会出现先减少后增多的现象。虽然理论上表示网络深度越深越好,但实际中,如果没有残差网络,对于一个普通网络来说,随着深度的不断增加意味着使用优化算法会越来越难训练一个网络,也就是说,网络越深其最终达到的效果会越差,其中的原因之一即是网络越深,梯度消失的现象就越来越明显,网络的训练效果也不会很好。此时,构建ResNet 网络显得格外重要,有了ResNet,即使网络再深,训练的最终表现不会因为网络太深而变太差。ResNet 的结构如图2 所示。

图2 ResNet结构

ResNet 在PyTorch 的官方代码中共有5 种不同深度的结构,深度分别为18、34、50、101、152,其中,ResNet50 和ResNet101 的出镜率很高。本文选用比较经典的ResNet50 用于图像分类的网络,较相比于其他深度的ResNet 收敛性更好。

1.3 迁移学习

迁移学习[18]是指在特定的数据集上学习训练得到的模型以及参数用到新领域的目标数据集中,即每一层网络中的各个节点的权重从一个已经训练好的网络迁移到一个全新的网络中,并非让一个全新的网络完完全全从头开始再训练出新的权重,用日常的话来表示,就是将一个领域已知的且成熟的知识直接应用在其他场景中。

因此,迁移学习主要解决一个问题:当我们在深度学习中没有大量的数据而只有小型的数据集的情况下,使用迁移学习的方法,在大规模数据训练的网络模型学习到的模型与参数迁移到小型数据集上,即用小的数据集对网络进行微调,从而使网络可以适用于小的数据集。也就是说,在大规模数据集上训练的模型我们可以称为“预训练模型”,这个模型我们可以直接使用相应的结构和权值,然后再应用到我们要解决的问题。2014 年Maxime Oquab 等人[19]使用ImageNet 预训练CNN 网络,同时迁移到目标数据集,这些预训练的网络对于ImageNet 数据集外的图片也表现出了很好的泛化性能,证明了迁移学习具有很大的潜力。

在图像识别领域,如果我们完全从头训练一个用来识别猫的神经网络,则需要海量的计算机资源和上百万级的带标注的数据,很多时候这是不现实的。倘若根据需求,使用不同方式的迁徙学习的手段,例如,在现有成熟的网络架构下,要么只训练最后的Softmax层,要么对整个网络进行微调,要么使用相同的网络结构并采用随机生成的权重来训练,得到的效果也都是很好的。

迁移学习的思路帮助我们降低数据需求,因为我们并没有十分庞大的数据给予我们训练。训练一个好的卷积神经网络模型进行图像分类不仅需要计算资源还需要很长的时间。特别是模型比较复杂和数据量比较大的时候。普通的电脑动不动就需要训练几天的时间。迁移学习在图像分类问题上具有非常高的效率,也可以很好地防止过度拟合。

2 方法

根据实验目的,本文采用的卷积神经网络模型有ResNet50[12]。ResNet50 残差网络通过在输出个输入之间不是简单的堆叠网络而是引入一个shortcut connection,解决网络由于很深出现梯度消失的问题,能够通过增加相当的深度来提高准确率,也容易优化。

迁移学习[18]是当前计算机视觉中常用的一种机器学习方法之一,就是把任务A 开发的模型作为初始点,重新使用在任务B 开发模型的过程中。在常用的卷积神经网络模型中,加入迁移模型后,网络可以在短时间训练和学习中获得更好的性能,分类准确率得到提升。

ResNet50 两个模型均是在含有120 多万自然图像和1000 多种不同类别的ImageNet 数据集上对模型进行预训练,然后将模型参数迁移到CIFAR-10 这个公开数据集进行训练微调。在本文的实验中,将各模型的部分网络层的权重参数进行固定,剩余的网络层将通过训练和学习来对模型进行微调操作。

3 实验及结果分析

3.1 实验数据集

实验所用数据集采用CIFAR-10 公用数据集,CIFAR 是一个用于普通物体识别的数据集。CIFAR 数据集分为两种:CIFAR-10 和CIFAR-100,由Alex Krizhevsky、Vinod Nair 和Geoffrey Hinton 等人创建,都是带有标签的数据集。

CIFAR-10 是一个更接近普适物体的彩色图像数据集。一共包含10 个类别的60000 个32×32 的RGB彩色图片组成:飞机、汽车、鸟类、猫、鹿、狗、蛙类、马、船和卡车,包括50000 张训练图像和10000 张测试图像,数据集分为5 个训练块和1 个测试块,每个块包含10000 张图像。训练集每类包含5000 张图像,测试集每类包含1000 张图像。CIFAR-10 的图片样例如图3所示。

图3 来自CIFAR-10数据库10个类别部分样本图像

3.2 实验工具以及实验设置

本文实验在CIFAR-10 数据集上进行,采用Intel i7-7700 处理器训练,1T 固态硬盘,32G 内存,GPU:NVIDIA GTX1080Ti,采用标准SGD 算法,设置动量为0.9,图像大小resize 为384×384,Batch size 设置为32。

3.3 实验结果及分析

CIFAR-10 数据集共有10 个标签,包含50000 张尺寸大小为32×32 的彩色图像作为训练集和10000 张RGB 三通道图像作为验证集,属于像素较小的图像数据。网络共迭代300 次。ResNet 选用层50 网络层并加入迁移学习方法,如图4 所示,17 代之前验证集准确率平稳上升,在17 代以后准确率趋于平稳,最终验证集准确率达到86%。可以发现,ResNet50 加入迁移学习的方法后网络可以在短时间训练和学习中获得较好的分类准确率。

图4 ResNet50+transfer

4 结语

本文基于ResNet50 网络加入了迁移学习的方法。从实验结果可以看出,加入迁移学习的方法以后,不仅提高了图像识别的准确率,同时模型收敛速度快,提升效果明显,反映出了网络具有较好的泛化能力,具有较强的鲁棒性和泛化能力。但准确率还有一定的提升空间,会在今后的工作中继续探索。

猜你喜欢

准确率卷积神经网络
基于全卷积神经网络的猪背膘厚快速准确测定
基于神经网络的船舶电力系统故障诊断方法
MIV-PSO-BP神经网络用户热负荷预测
基于改进Hopfield神经网络的对地攻击型无人机自主能力评价
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
多层螺旋CT技术诊断急性阑尾炎的效果及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨