基于AlexNet网络的动物图片分类
2019-09-10周德良
周德良
摘 要:Caffe是目前广泛应用于计算机视觉处理的深度学习框架之一,支持卷积神经网络的模型训练与预测。本文利用caffe支持的AlexNet卷积神经网络分别基于加载与不加载基础模型两种模式对五类动物图片进行分类学习与训练,发现加载基础模型的网络模型收敛耗时仅2.77 s,测试集准确率接近100%,实用测试准确率达到99%,且训练与测试损失曲线高度重合,但另一模式的网络模型收敛耗时多达68.89 s,测试集准确率仅为95%,实用测试准确率仅94%,且训练与测试损失曲线存在严重分化。图像分类不仅可以对不同物类的图像进行准确分类,同样可以对不同属性、状态或特性的图像进行准确分类。
关键词:Caffe;AlexNet网络;基础模型;图像分类
中图分类号:TP391.4
文献标识码: A
Caffe[1-3]是由伯克利视觉和学习中心的贾扬清博士在2013年基于C++/CUDA/Python开发实现且开源的前馈卷积神经网络框架,其核心语言是C++,支持命令行、Python和Matlab接口,既可以在CPU上运行也可以在GPU上运行。Caffe的使用比较简单,代码易于扩展,运行速度快,同时支持GPU加速,在处理海量数据时速度很快;Caffe主要支持卷积神经网络架构[5-6],主要用于计算机视觉处理,包括图像分类[7-8]、视觉目标检测[9]、无人驾驶、机器人导航、人脸识别等;Caffe不支持循环神经网络RNN [10]、长短期记忆网络LSTM [11]等网络架构,因此无法处理自然语言处理[12]、手写识别、时间序列预测等。
传统的动物图像分类方法,低端方法就是人工分选,较高端的方法则是使用低级的视觉特征,如颜色、形状、纹理等作为图像分类特征,同时结合分类器,如SVM[13]、Adaboost等实现动物图片分选,这些方法不仅存在效率低、耗时长等问题(尤其前者),同时存在可靠性、准确性较低等问题。因此,本文基于caffe框架下的卷积分类网络AlexNet[19-21]对动物图片数据的低级与高级特征进行学习,并通过端到端分类检测得到由输入直接到输出的分类结果,旨在利用深度学习的方法解决传统动物图像分类方法效率低、准确率不高等问题,为动物图片分类,包括其它图像分类提供更智能、更可靠、更高效的方法。
1 Caffe图像分类
1.1 Caffe框架
Caffe主要由Blobs、Layers、Nets和solver等组成,其中Blobs是Caffe的数据存储结构,主要用于数据存储、交互和处理,且通过Blobs制定统一的数据内存接口。Blobs可以存储的数据类型很多,只要是caffe网络中传递的数据,包括前向传播的数据、反向传播的梯度、模型参数、网络损失等都可以存储。Blobs本质是一个N维向量,一个blob就是一个内存连续分布的N维数组,针对图片其就是一个4维数组,每一维分别代表图片数、通道数、图片宽和高。Blobs不仅仅用作图像计算,也可以用作非图像计算,只需根据数据相应调整Blobs的维数即可。
Layers是Caffe模型和計算的基本单元,是神经网络的核心,主要负责数据处理与运算并输出计算结果。Caffe设计实现了许多Layer,包括卷积、池化、全连接层等,利用这些Layer可以实现绝大部分的卷积神经网络。在Caffe中,网络的结构是从下往上的,每个层layer接收底部连接层layer的blobs数据,然后通过前向传播过程更新顶部连接层layer的blobs数据,如图1所示。当然也可以接收顶部连接层的blobs梯度,然后通过反向计算过程更新底部连接层的blobs梯度。每一层layer都包含setup(初始化设置)、forward(前向传播)、backward(反向传播)3种重要的运算,其中Setup用于网络初始化及参数设置; Forward从底部连接层接收数据,然后计算并向顶部连接层输出数据和loss;Backward利用反向传播算法进行反向梯度的计算,然后利用梯度来调整各单元权重和相关参数。
Nets是一系列layers的连接与集合,并定义了输入、输出和隐藏层,且对于不同的学习任务,应选择不同的代价函数作为输出。Nets通过Blob将各个层Layer以有向、无环(有环无法反向传播)的形式组织在一起,以完成前向和反向传播计算;Nets的概念图如图2所示,其中label为ground truth真实值,ip为预测值,两者输入到loss(SOFTMAX_LOSS)里就可以计算真实值和预测值的误差。
Solve是Caffe的核心,它协调着整个模型的运作,主要用于模型训练与优化。Solver定义了针对Net网络模型的优化方法,记录网络的训练过程,保存网络模型参数,中断并恢复网络的训练过程。在深度学习中,损失函数往往是非凸的,没有解析解,因而需要通过优化方法来求解,而solver则定义了这种迭代优化算法,其通过交替调用前向(forward)和后向(backward)算法来更新参数,以实现loss最小化。目前,Caffe提供了SGD、AdaDelta、
AdaGrad等六种优化算法来求解最优参数,在solver配置文件中,通过设置type类型来选择,但一般默认选择SGD。
1.2 图像分类网络
图像分类[7-8,17-18]是对图像整体的语义内容进行类别判定,其在海量图片分类和特定类别的图片分类中具有重要意义。文献[14]利用卷积神经网络AlexNet实现了基于图像内容(包括巴士、摆钟、菠萝等20类)的图像检索,其解决了传统技术方法存在的语义鸿沟问题,具有令人满意的检索效果;文献[15]基于神经网络AlexNet的分类识别算法,对验证码图片进行分类识别,取得了较好的识别效果;文献[16]基于改进的AlexNet模型实现了示功图的高准确性识别,提高了模型的收敛速度,很好地达到了实际应用要求。
AlexNet网络[19-21]是 KrizhevskyA等在 2012年提出并在当年的ILSVRC 比赛中获得冠军的卷积神经网络,其网络结构如图3所示分为 8 层,包含5 个卷积层和3 个全连接层,其中第一、二、五层卷积层后跟有池化层(最大池化),第三、四卷积层后未跟有池化层;每一个卷积层都包含了激励函数RELU和局部区域归一化LRN。后三层全连接层将二维特征图转变为一维列向量,其中为了防止过拟合,第六、七全连接层后均跟有一个 Dropout层。第六、七全连接层仍使用ReLU函数作为激活函数,但第八层全连接层作为分类层没有激活函数。本文则利用AlexNet卷积神经网络对动物图片进行分类识别,探讨AlexNet图像分类网络在动物图片分类识别中的应用效果和识别性能。
2 数据处理与训练
实验数据集采用网络媒介上下载的动物图片,一共包括500张。数据集图片共分为5类,包括大象、恐龙、马、老虎、牛,标签分别為0、1、2、3、4;每一类图片均为100张,且每一类图片都随机抽取80张作为网络的训练集,余下20张图片作为测试集,因此网络训练集共包括400张图片,测试集包括100张图片,训练集与测试集分别单独存放在不同文件夹内,同时分别利用程序脚本将训练集与测试集的每张图片组合成“图片路径+标签”的形式存入不同文本文件中以供模型读取。
利用AlexNet网络进行数据训练时,网络参数设置主要包括批尺寸(batch_size)、学习率(learning_rate)、动量常数(momentum)和权值衰减系数(decay)等,具体参数取值见表1,其中批尺寸指每次迭代训练时神经网络处理图片的数量,其值越大,网络收敛速度越快,训练时间越短,但内存占用越大,需要根据计算机配置具体设定;学习率对网络模型的收敛起到关键作用,取值过大会导致损失函数跳过极小点,太小则导致网络收敛速度过慢;动量常数旨在提高网络收敛速率;权值衰减系数旨在调节模型复杂度对损失函数的影响。
3 分类结果与分析
实验分别以加载和不加载基础模型两种模式进行训练,它们的模型性能比较见表2,其中基础模型为AlexNet网络1 000分类的训练模型。从表2可以发现,当加载基础模型时网络收敛速度更快,测试集准确率更高,当迭代训练10次后,训练网络就已经开始收敛,收敛时间只有2.77 s,测试集准确率也达到了100%。而不加载基础模型的网络,收敛速度相比之下就要慢了很多,测试集准确率也只有95%,当迭代训练250次后训练网络才开始收敛,收敛时间也达到了68.89 s,收敛迭代次数和收敛时间都将近是前者的25倍。
图4为加载和不加载基础模型两种模式下的网络模型损失曲线,从图4(a)可以发现,对于加载基础模型的网络,训练损失与测试损失曲线在迭代10次后就迅速趋于0,且两者在10次迭代后的损失值一直都小于0.01,两类损失曲线高度重合;但从图4(b)可以发现,对于未加载基础模型的网络,训练损失曲线在迭代250次后才开始趋于0,且测试损失曲线在迭代250次后不降反升,与训练损失曲线垂直间距逐渐变大,出现较为严重的分化问题。
图5为加载和不加载基础模型两种模式下的网络模型测试集准确率曲线,从图中可以发现,对于加载基础模型的网络,测试集准确率曲线在迭代10次后就迅速趋于1,且在10次迭代后的测试集准确率一直稳定保持100%不变;但对于未加载基础模型的网络,测试集准确率在迭代250次后才开始趋于0.95,此后随着迭代次数的增加测试集准确率始终徘徊在95%左右,与100%有一定差距。
表3为两种模式下的网络模型分别对100张图片的实用测试结果,从表中可以发现,对于加载基础模型的网络,仅100次迭代训练得到的模型就可以实现准确分类99张图片,测试准确率达到99%,非常接近100%,其它高于100次迭代训练得到的模型则同样达到了至少99%的测试准确率;但对于未加载基础模型的网络,100次迭代训练得到的模型仅准确分类85张图片,测试准确率仅有85%,较前者有较大差距;当迭代训练次数达到200次时,得到的模型可以准确分类94张图片,测试准确率达到94%,但较前者99%的测试准确率仍有不小的差距,此后随着迭代训练次数的增加,得到模型的测试准确率始终徘徊在94%左右。
通过上述实验发现,当训练数据量较小或训练数据与现有基础模型的数据较相似时,加载基础模型进行模型训练可以获得更快的收敛速度,更高的测试准确率和更低的训练与测试损失,且两类损失曲线基本重合,不存在两类曲线分化的问题。而且加载基础模型的网络模型在实际分类应用中具有更满意的识别分类效果,满足图像分类应用的可靠性、实用性需求。
4 结论
(1)本文基于加载和不加载基础模型两种模式,分别利用AlexNet网络对五类动物图片(共500张)进行类别学习与训练,并比较了两类模式下的收敛速度、训练与测试损失、测试集准确率等模型性能,发现加载基础模型的网络模型具有更快的收敛速度和更高的测试集准确率,且在实际应用中具有更好的分类效果,对于训练数据集较小的分类任务尤其适用。
(2)图像分类具有非常广泛的实际应用,但是不论哪种分类应用,优良的分类效果势必建立在合理的网络设计、充足的数据数量、达标的数据质量等基础之上。
参考文献:
[1]JIA Y Q, SHELHAMER E, DONAHUE J, et al. Caffe: convolutional architecture for fast feature embedding [J]. Computer Science, 2014, 2: 675-678.
[2]MAKOTO I, TETSUYA O, LEONARD B. A vegetable category recognition system: a comparison study for caffe and Chainer DNN frameworks [J]. Soft Computing, 2019, 23(9): 3129-3136.
[3]IKEDA M, SAKAI Y, ODA T, et al. Performance evaluation of a vegetable recognition system using caffe and chainer[J]. CISIS, 2017, 611: 24-30.
[4]LECUN Y, BENGIO Y, HINTON G. Deep learning[J]. Nature, 2015, 521: 436-444.
[5]SHI W W, GONG Y H, TAO X Y, et al. Improving CNN performance accuracies with min ̄max objective[J]. IEEE Transactions on Neural Networks & Learning Systems, 2018, 29(7): 2872-2885.
[6]ZHANG X B, CHEN F C, HUANG R Y. A combination of RNN and CNN for attention ̄based relation classification[J]. Procedia Computer Science. 2018, 131: 911-917.
[7]HUANG K Q, REN W Q, TAN T N. A review on image object classification and detection[J]. Chinese Journal of Computers, 2014, 37(6): 1225-1240.
[8]CHEN R, CAO Y F, SUN H. Multi ̄class image classification with active learning and semi ̄supervised learning[J]. Acta Automatica Sinica, 2011, 37(8): 954-962.
[9]尹宏鵬, 陈波, 柴毅, 等. 基于视觉的目标检测与跟踪综述[J]. 自动化学报, 2016, 42(10): 1466-1489.
[10]GRAVES A. Generating sequences with recurrent neural networks[J]. Eprint Arxiv, 2013, 157(6): 1158-1174.
[11]ERHAN D, BENGIO Y, COURVILLE A, et al. Why does unsupervised pre ̄training help deep learning[J]. Journal of Machine Learning research, 2010, 11(3): 625-660.
[12]COLLOBERT R, WESTON J, KARLEN M, et al. Natural language processing (almost) from scratch[J]. Journal of Machine Learning Research, 2011, 12( 1): 2493-2537.
[13]SHEN L X, WANG H, XU L D, et al . Identity management based on PCA and SVM [J]. Information Systems Frontiers, 2016, 18(4): 711-716.
[14]基于深度学习的图像检索系统[M].北京:国防工业出版社,1981.
[15]基于深度卷积神经网络AlexNet的验证码识别研究[M].北京:国防工业出版社,1981.
[16]改进的AlexNet模型及在油井示功图分类中的应用[M].北京:国防工业出版社,1981.
[17]许少尉, 陈思宇. 基于深度学习的图像分类方法[J]. 电子技术应用, 2018, 44(6): 116-119.
[18]ZHAO Z Q, XU S T, LIU D. A review of image set classification[J]. NEUROCOMPUTING, 2019, 335: 251-260.
[19]GONZALEZ R C, WOODS R E. Digital image processing third edition[M]. 北京: 电子工业出版社, 2017.
[20]WAJAHAT N, SAGHEER A, ALI T, et al. Classification of breast cancer histology images using AlexNet [J]. Image Analysis and Recognition, 2018, 10882: 869-876.
[21]CUI W C, GUO X P, SHAO H, et al. Offline chinese signature verification based on AlexNet[J]. Advanced Hybrid Information Processing, 2018, 219: 33-37.
(责任编辑:于慧梅)
Animal Image Classification Based on AlexNet Network
ZHOU Deliang*
(Bei Jing zhongdianyida technology Co., Ltd, Beijing 100190, China)
Abstract:
Caffe is one of the deep learning frameworks widely used in computer vision processing, which supports convolutional neural network model training and prediction. In this paper, AlexNet network supported by Caffe is used to classify and train five kinds of animal pictures based on loading and unloading basic models. It is found that the convergence time of network model with loading basic models is only 2.77 seconds, and the accuracy of test set is close to 100%, and the practical test accuracy is 99%, and the training and test loss curves are highly coincident. However, the convergence time of network model with unloading basic models is as high as 68.89 seconds, and the accuracy of test set is only 95%, and the practical test accuracy is only 94%, and the loss curve of training and testing is seriously differentiated. Image classification can not only accurately classify the images of different objects, but also accurately classify the images of different attributes, states or characteristics.
Key words:
caffe; AlexNet; basic models; image classification