西北工业大学人工神经网络考试报告.docx
《西北工业大学人工神经网络考试报告.docx》由会员分享,可在线阅读,更多相关《西北工业大学人工神经网络考试报告.docx(9页珍藏版)》请在冰豆网上搜索。
西北工业大学人工神经网络考试报告
研究生专业课程考试答题册
得分:
学号
姓名
考试课程人工神经网络及其应用
考试日期
西北工业大学研究生院
基于AlexNet的图像分类
近几年,随着深度学习的崛起,越来越多的科研工作者开始使用深度学习的方法进行实验,并且取得了非常不错的成绩。
目前,深度学习算法主要应用在语音识别、图像识别以及自然语言处理领域。
本文根据所给的训练样本,选取深度学习方法进行图像分类。
1.图像分类
1.1传统方法
图像分类是机器视觉中的一个基本问题。
针对这一问题的模型框架主要包括图像预处理、图像特征提取、分类器设计三个步骤。
其中特征提取是生成图像表示的过程,也是图像分类中最重要的一步,鲁棒的特征表示是提高分类正确率的关键。
关于图像表示,相关学者提出了许多特征表示法,例如基于部位模型[1]、BOW[2]模型等等,在这些模型当中,BOW模型的鲁棒性最强,具有尺度不变性、平移不变性以及旋转不变性等优点,使其在实际问题中得到广泛应用,包括图像分类、图像标注、图像检索以及视频事件检索等,并且在Caltechl01等库中取得很好的分类效果。
1.2卷积神经网络模型
在传统的图像分类方法中,首先对原始图片进行预处理,然后根据BOW最后选择合适的分类器进行分类,如图1.1所示。
然而,在传统方法中,特征都是人为设计的,包括底层特征的选择、码本长度的设置、编码策略的设计、池化方法的选择以及空间金字塔区域的划分形式等,这些人为因素对特征产生很大的影响,目前没有理论上的公式给出最优的设计因素组合,所以只能从经验上进行判别和设计,降低了特征的表达能力和可靠性,并且针对不同的数据库,需要重新设计以上因素,导致传统特征模型的通用性不强,关于特征的表达能力也未能给出理论上的估计。
图1.1传统分类与卷积神经网络分类模型
如图1.1所示,在卷积神经网络中,直接输入原始图像,在网络的最后一层加上分类器,根据分类器的预测结果使用反馈传播(BackPropagation,BP)算法更新权值参数,最后得到的网络模型能够自动学习给定数据集的样本特征。
所以,与传统图像分类模型不同,CNN是一个特征学习模型,从原始图像到类别预测整个过程都是自动训练和学习的过程,不需要人为参与和设计,具有很强的鲁棒性和表达能力,在图像分类中的性能远远超过SIFT和HOG等传统特征。
在模式分类中,为了获得非线性的、自适应的、自组织的识别系统,美国心理学家麦卡洛克(W.McCulloch)和数学家皮茨(W.Pitts)最早使用数学模型对人脑神经系统中的神经元建模,提出神经网络数学模型的概念;随后,美国计算机科学家罗森布拉特(F.Rosenblatt)最早于1957年提出感知机模型,使用阈值激活函数,并在神经网络数学模型中引入学习和训练的概念和功能,通过连续调节和更新网络的权值参数来学习网络模型;到1959年,美国的威德罗(B.Widrow)和霍夫(M.Hom)提出自适应线性元件,对每个神经元使用线性激活函数,并采用W-H学习规则训练权值,从而得到比感知机更低的测试误差以及更快的收敛速度;到了1986年,美国的心理学家麦克利兰(McClelland)和人工智能专家鲁梅尔哈特(Rumelhart)提出了经典的反馈传播神经网络模型,即BP神经网络模型,使用误差反传和梯度下降法逐层更新网络的权值参数,从而逼近任意的非线性可微函数,实现模式识别、函数逼近等功能。
后来,在人工神经网络的实践应用中,接近80%到90%的研究工作均采用BP网络模型或者它的变化形式[3]。
尽管选择非线性激活函数以及多层前向网络可以学习复杂的、高度非线性的模型,实现模式识别或分类等功能。
但是传统人工神经网络仍然存在很多局限性:
第一,参数太多,传统人工神经网络的逐层连接方式均为全连接,每一层都涉及到大量的矩阵乘积运算,参数个数与节点数呈倍数增长,导致传统神经网络模型的参数过多,容易引起过拟合问题,为了防止过拟合,传统神经网络模型的层数一般设置的很少,限制了网络深度的增长和网络学习能力的增强;第二,局部极小值问题突出,训练传统人工神经网络模型的方法中,并没有提出良好的参数初始化策略,导致网络收敛到局部极小值的问题比较突出;第三,训练过程缓慢,BP网络的隐含层通常使用sigmoid或者tanh等激活函数,这些非线性激活函数存在非常广泛的饱和区域,当神经元输入值落于函数的饱和区时,得到的函数导数值非常小,使得训练过程中,根据梯度下降法更新的网络权值基本不变,从而出现神经元“麻痹”的现象,导致训练过程非常缓慢
针对传统神经网络存在的问题,在图像分类中,引入卷积神经网络模型。
与统神经网络模型相同,CNN模型是由多个网络层以有向无环图形式连接而成的网络结构,针对传统人工神经网络存在的缺点,CNN模型在结构和训练方法上做出如下改进:
第一,通过权值共享和局部感受野连接来减少参数个数。
为了减少参数个数,CNN模型的大部分网络层(通常是网络前面的层)采用卷积层结构,而不是全连接结构,卷积层的每个节点仅与前一层的部分神经元连接,并且属于同一通道的所有神经元共享一个卷积核参数,从而大幅度减少网络的参数个数。
第二,增加网络的层数,从而增强网络的学习能力。
卷积神经网络通过权值共享大大减少了参数个数,所以在CNN中可以增加网络层数从而增加模型的深度,目前常用的传统人工神经网络模型大多包含3个网络层,而常用的卷积神经网络结构则大多包含8个以上的网络层,使用较深的结构可以获得更好的非线性特征以及更好的表达能力。
第三,使用更好的权值初始化策略和激活函数,提高训练速度和精度。
文献[4]提出高斯权值初始化策略,提供较好的初始权值,使得网络收敛于全局最优点或者更好的局部极值点;此外,Krizhevsky等人在CNN模型中引入RELU激活函数,从而获得比sigmoid、tanh等非线性激活函数更快的收敛速度和更低的误差,避免传统BP神经网络中的麻痹现象。
第四,通过dropout、逐层学习技术来避免过拟合以及梯度弥散问题。
在训练CNN模型的过程中,随机选择全连接层的部分神经元,将激活值设置为0,从而加快训练速度,避免产生过拟合问题;此外,对于深度网络的训练,首先使用大规模未标记数据对每一层参数进行无监督逐层学习,再利用标记数据对整个网络进行微调,从而学习更复杂的、深层的网络结构,避免梯度弥散问题,获得更加非线性的、鲁棒的特征和更好的网络表达能力。
目前,大部分文献都是根据以上各方面的改进,构建和训练多层的CNN模型实现图像的分类研究。
其中,最常使用的CNN网络结构大体分为两类,分别为Zeiler类型与Inception类型网络。
最典型的Zeiler类网络为AlexNet[4],而最典型的Inception类网络则为GoogLeNet[5]。
由于Alexnet网络参数较少,且分类效果好,因此,文本选择AlexNet这个网络来做图像分类,下文将详细分别AlexNet网络的结构和特点。
2.Alexnet网络介绍
AlexNet是由Krizhevsky等人提出的Zeiler类型卷积神经网络模型,关于CNN模型在图像分类、图像分割、目标检测、图像检索等任务中的应用,大部分研究工作都使用AlexNet或者是它的变化形式,例如,VGG[6]网络是在AlexNet网络上固定卷积核大小,增加层数得到的CNN模型;RCNN[7]是在图像子区域中使用AlexNet得到的网络模型;SPPNet[4]是在最后一个卷积层后增加金字塔网络层得到的网络模型。
AlexNet网络结构包含8个网络层,分别为5个卷积层和3个全连接层。
每个卷积层依次包含卷积运算、逐元素RELU运算、标准化运算以及最大池化运算。
在三个全连接层中,前两个全连接层的神经元个数为4096,通常对这两层使用dropout操作。
最后一个全连接层的神经元个数与目标数据库的类别数一致。
在AlexNet中,使用的损失函数通常是Softmax负对数损失函数,根据BP算法来训练网络的参数,首先初始化网络参数,在每一次迭代中,根据网络的预测值计算损失函数值,再根据损失值和梯度下降法算法逐层更新滤波器的值,所以获取良好的网络初始化权值是加快网络收敛速度和减少训练误差的关键。
具体的网络结构如图2.1所示,输入图片大小为227×227×3,包含8层结构,前五层为卷积层,分别为蓝色矩形框中的Convl到Conv5,其中Convl(11x11+4s)表示该层的滤波器大小为11X11,滑动步长为4像素或神经元,下方的数字表示该层包含的通道数目,后面三个绿色的矩形框表示全连接层,最后一层的L表示目标数据库包含己个类别。
该网络模型在ImageNet-1K测试集上的top-5平均分类错误率为15.3%,远远低于传统模型的26.2%。
图2.1AlexNet结构示意图
AlexNet网络结构有6000万个参数,要学习如此多的参数而不带相当大的过拟合,这就需要非常多的样本数据。
减少图像数据过拟合最简单最常用的方法,是人为地扩大数据集。
AlexNet使用数据增强的两种不同形式,这两种形式都允许转换图像用很少的计算量从原始图像中产生,所以转换图像不需要存储在磁盘上。
数据增强的第一种形式由生成图像转化和水平镜像组成。
AlexNet网络从256×256的图像中提取随机的224×224的碎片(还有它们的水平镜像),并在这些提取的碎片上训练网络。
这使得网络训练集规模扩大了2048倍,但是由此产生的训练样例高度地相互依赖。
在测试时,该网络通过提取五个224×224的碎片(四个边角碎片和中心碎片)连同它们的水平镜像(因此总共是十个碎片)做出了预测,并在这十个碎片上来平均该网络的softmax层做出的预测。
数据增强的第二种形式包含改变训练图像中RGB通道的强度。
具体来说,ALexNet遍及训练集的RGB像素值集合中执行PCA。
对于每个训练图像,成倍增加已有主成分,比例大小为对应特征值乘以一个从均值为0,标准差为0.1的高斯分布中提取的随机变量。
这样一来,对于每个RGB图像像素
,通过增加
其中
与
分别是RGB像素值的3×3协方差矩阵的第i个特征向量与特征值,
是前面提到的随机变量。
每个
对于特定训练图像的全部像素只提取一次,直到那个图像再次被用于训练,在那时它被重新提取。
这个方案大致抓住了自然图像的一个重要属性,即,光照强度与颜色是变化的,而对象识别是不变的。
该方案将top-1误差率减少了1%以上。
3.实验
本次实验环境为i7处理器,CPU为GTX1080,ubuntu14.04.样本共有13501张图片,包含10个大类,共计100个小类的生物图片。
首先对数据集进行划分,将13501张照片按分为训练集,验证集,数据集三部分,训练集为8542张,验证集为950张,测试集4009张。
使用caffe深度学习框架进行实验,用AlexNet作为分类网络,网络结构图如图3.1所示,因此,需要先将图片转换为caffe课识别的LMDB数据格式。
生成LMDB文件的步骤如下:
1.生成相应的train.txt,val.txt和test.txt
2.利用caffe框架中的create_imagenet.sh创建训练集,验证集,测试集的LMDB文件。
图3.1实验网络结构图
LMDB文件生成之后,需要均值文件,在各类深度学习模型中都具有计算图像均值的操作,这是因为图像减去均值后,再进行训练或测试,会大大提高速度和精度,这是在进行大量计算时希望可以达到的效果。
在caffe中,计算所有训练样本的均值文件,保存为一个均值文件。
修改Caffe中的make_imagenet_mean.sh脚本文件中的LMDB数据源,生成实验所需的均值文件。
接下来修改AlexNet的网络模型,首先修改模型的输入文件,将之前生成的LMDB接入模型中,再根据电脑显卡性能,配置batch大小,本次实验设置batch_size为256。
再根据样本类别,修改模型输出为100。
最后修改网络的solver.prototxt。
设置网络的初始学习率为0.01,gamma为0.1,每迭代100000改变一次学习率,网络的最大迭代次数设置为25万次。
设置网络没迭代10000次保存一个模型。
训练完成后,得到25个caffemodel,用4009张测试集在25个模型上做测试,最终得到的lose曲线和top-1的accuracy曲线如下图3.2和图3.3所示。
图3.2迭代次数与lose曲线图
图3.3迭代次数与accuracy曲线图
结合上述两幅图,可以看出模型的loss和accuracy收敛速度很快,在模型迭代1万次以后accuracy就已经有51%。
迭代次数达到10万次后,学习率减小,模型开始趋于收敛,迭代20万次后,学习率再次减小,并在23万次时达到收敛,最终得到的accuracy为55.7%,loss为2.51。
4.结论与分析
深度学习网络在图像分类领域表现出非常好的性能,本次实验通过25万次迭代在ALexNet模型上达到了55.7%的准确率,而[4]一文中给出的AlexNet可达到的top-1准确率最高为57.1%。
分析实验可以得知,本次试验中,样本的分布不够均匀,某些样本数量太少,无法达到深度学习训练的效果,可以对数量较少的样本种类进行旋转,拉升及仿射变换的方法进行样本扩充。
同时,可以针对训练样本做初始的区域推荐或者目标检测,用处理后的训练样本去训练深度学习网络,可以得到很好的分类结果。
5.参考文献:
[1]FergusR,PeronaP,ZissermanA.Asparseobjectcategorymodelforefficientlearningandexhaustiverecognition[C]//ComputerVisionandPatternRecognition,2005.CVPR2005.IEEEComputerSocietyConferenceon.IEEE,2006:
443-461.
[2]YanzhiChen,A.Dick,XiLi,"VisualDistanceMeasuresforObjectRetrieval", DigitalImageComputingTechniquesandApplications(DICTA)2012InternationalConferenceon,pp.1-8,2012.
[3]王顺晃,舒迪前.智能控制系统及其应用[M].机械工业出版社,1995.
[4]KrizhevskyA,SutskeverI,HintonGE.2012.ImageNetClassificationwithDeepConvolutioualNeuralNetworks[J].AdvancesinNeuralInformationProcessingSystems,25
(2):
2012
[5]SzegedyC,LiuW,JiaY,eta1.2015.Goingdeeperwithconvolutions[C]//IEEEConferenceonComputerVision&PatternRecognition.1-9
[6]DengJ,DongWSocherRcta1.2009.ImageNet:
Alarge-scalehierarchicalimagedatabase[C]//IEEEConferenceonComputerVision&PatternRecognition.248-255.
[7]FellbaumC.2010.WordNet[M]TheoryandApplicationsofOntology:
ComputerApplications.231-243.