【《基于原型网络的少样本图像分类模型分析案例》4700字(论文)】_第1页
【《基于原型网络的少样本图像分类模型分析案例》4700字(论文)】_第2页
【《基于原型网络的少样本图像分类模型分析案例》4700字(论文)】_第3页
【《基于原型网络的少样本图像分类模型分析案例》4700字(论文)】_第4页
【《基于原型网络的少样本图像分类模型分析案例》4700字(论文)】_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于原型网络的少样本图像分类模型分析案例目录TOC\o"1-3"\h\u242基于原型网络的少样本图像分类模型分析案例 1199051.1模型总体设计 1124201.2模型管理模块 2258181.2.1定义卷积块和嵌入函数 2187941.2.2图像映射成嵌入向量 442731.2.3类的原型计算 4120061.2.4测试点到类原型的距离 5162231.2.5预测函数 6141071.2.6模型训练和评估方法 6217901.3数据管理模块 7105941.1.1数据增强 7102111.1.2获取下一批数据 8266011.4数据集设置 8114951.5实验结果和分析 91.1模型总体设计原型网络是一种简单、高效的少样本学习算法,与孪生网络一样试图学习度量空间来进行分类。原型网络的基本思想是创建每个类的原型表示,并根据类原型与查询点之间的距离对查询点(新点)进行分类。整个软件包含2个模块,分别为数据管理模块、模型管理模块。模型管理模块提供模型训练、评估、特征提取、原型计算和分类等功能。数据管理模块载入数据集,从中读取图片,构建训练集;从数据集中随机读取下一批样本数据,如图3-1所示。图3-1原型网络算法功能分解图因为我们希望网络只从少量数据点学习,也就是说,希望执行少样本学习,所以我们使用阶段(episode)式训练。对于每个阶段,我们从数据集中每个类中随机抽取数据点作为样本,构建支撑集,并使用支撑集训练模型。类似地,我们从数据集中随机抽取一些数据样本作为查询样本,并尝试预测它的类,以评估模型的性能。因此,通过这种方式,我们的网络将学会如何从一组较少的数据点中学习。首先,我们将为支撑集中的所有数据点生成嵌入,并通过类中数据点的平均嵌入来构建类原型,还为查询点生成嵌入。然后,计算类原型与查询点嵌入之间的距离,用度量学习方法作为距离度量。之后,对这个距离应用softmax并得到概率。1.2模型管理模块1.2.1定义卷积块和嵌入函数将Omniglot数据集中图片的大小由原图的105×105重塑为28×28,再经过四个卷积块和一个池化层后获得特征向量,大小为1×1×128,表3-1展示了卷积和池化的参数设定和详细操作。训练时,在经过相同权重的孪生卷积神经网络之后,样本集和查询集中的数据分别得到对应的128维特征向量,最后对得到的特征向量使用相似度度量。图片在输入至包含了四层卷积神经网络的特征提取网络之后,各个层次的特征被卷积神经网络的不同层给提取出来。对于少样本数据集来说,tanh和sigmoid等激活函数的拟合能力不如ReLu函数好,ReLu激活函数可以使网络的非线性得到增强,神经网络的判别性也由此变得更好,因此我们选择ReLu激活函数作为卷积神经网络的后面的神经元。第三层和第四层卷积网络层的输出结果一起被送至全联通层。神经网络还需要在图片发生微小移动时保持较强的不变性,因此加入了一个max-pooling层在第三个卷积网络层后面,最后特征提取网络输出一个128维的特征向量。图3-2Omniglot数据集的卷积神经网络模型示意图表3-1Omniglot数据集的卷积神经网络模型参数设置1.2.2图像映射成嵌入向量怎么将图像中的节点通过嵌入转换成可计算的向量或值,一直是当前图像识别研究领域所关注的重点问题。在上一节中描述的四层卷积神经网络中,图像被编码转换成多维特征向量后被映射至嵌入空间中。假设是一组小样本的N标签的数据集,其中网络提取出来的样本特征是Xi,对应类别是Yi,则表示类别为k的数据集合。原型网络中的表示映射函数,用于将图像Ⅰ转换为向量X。(3-1)在式(3-1)中,H表示输入图像的高度,W表示输入图像的宽度,C表示输入图像的通道数,D表示嵌入空间的维数。1.2.3类的原型计算嵌入空间中的每个类别都有其类原型(classprototype),它是该类中一个特殊的点。借助神经网络的非线性映射把输入的图像映射至嵌入空间中可以获取图像的高层特征。在嵌入空间中,一个类的原型就是此时训练集中该类全部样本的加权平均值,围绕着类原型,该类别中每个样本的嵌入空间表示会进行聚类。预测分类时,通过计算被映射至嵌入空间里的测试图像与训练集各个类原型之间的距离,可以实现分类。定义类原型。(3-2)1.2.4测试点到类原型的距离样本被原型网络映射至高维的嵌入空间里,不同类别样本之间的距离在该空间里较长,相同类别的样本之间的距离在该空间里较短。每个类都有一个特征向量,集中在某单个原型表达周围,在特征向量空间中取训练集的均值即可获得该类的原型,然后通过计算类的原型表达与嵌入空间中测试图像之间的距离就可以实现分类。困难的分类问题通过原型网络变换成了更易处理的最近邻问题。原型网络可以在嵌入空间里学习类和方向相关的距离度量,使用哪种距离来构造损失函数很大程度上决定了训练的准确度和速度。经过反复的实践和考量后,本文选择三种度量方法来计算嵌入空间中测试点到类原型的距离。(1)欧式距离多维空间中两个点和的欧式距离为式(3-3)所示。(3-3)在机器学习中的L2范数的计算也和多维向量的欧式距离相似。(2)余弦距离余弦相似度(CosineSimilarity)的原理是通过计算向量空间中的两个向量间夹角的余弦值来度量这两个向量对应点之间的距离,在多维空间中,以此推导两个点和的余弦相似度为式(3-4),余弦距离为式(3-5)。(3-4)(3-5)(3)皮尔逊相关系数皮尔逊相关系数(PearsonCorrelationCoefficient)计算的是两个变量的协方差与标准差的商,用于衡量变量间的相关度,如式(3-6)所示。其中,X和Y分别代表了两个变量样本,代表样本X的平均值,代表样本Y的平均值,皮尔逊相关系数的值在-1到1之间。计算方法如式(3-7)所示。(3-6)(3-7)1.2.5预测函数本文定义了一个可微分的目标函数旨在对原型神经网络训练。该网络的最终目标是要学习一个可以对图像类别实现正确分类的神经网络,因此此目标函数有两个重要要求,一是图像原型能够正确体现该类的特征,二是使用合适的分类函数。本文图像类别的分类函数使用的是Softmax回归函数,可得x测试点属于k类别的概率:(3-8)原型网络的目标函数可以定义为:(3-9)根据上述方法可以算出各个类原型到测试点之间的距离,对应距离最小的类原型所属类即为测试点所属的类。图3-3原型网络模型分类示意图1.2.6模型训练和评估方法本文采用Adam方法在训练时优化神经网络,设定学习率为0.001。在训练的过程中,Adam方法能够自适应地更改各个参数的学习率,收敛的速度较快,在数据不密集的情况下该方法也具有较好的适应性。本文使用损失函数与测试精度(TestAccuracy)来作为模型评价标准。其中,测试精度的定义为:(3-10)式中,TestImages代表测试集的图片总数,CorrectTestImages代表检验正确的测试集的图片数量,测试精度越大意味着模型的识别效果越准确。1.3数据管理模块1.1.1数据增强样本量不多的时候,用深度学习领域的方法训练模型,识别率很多时候达不到预想。这时可以使用数据增强的方式来解决数据集的样本数不够的问题,在原有数据集上应用各种图像变换方法可以增加数据样本的数量。这样既能保证有限的数据集被充分地利用以得到更多相似图片,又能防止因为过度的图像变换引起原始图片发生信息畸变,让原始图片保持信息的完整。其旋转结果如图3-4所示。图3-4数据集旋转扩充示例数据增强方法:输入:原始图片文件集集img_files;图片类别label;旋转角度rotation;图片裁剪大小(img_width,img_height)Beginforindex,img_fileinenumerate(img_files)Doimg=Image.open(img_file)#读入图片img=img.rotate(rotation)#转换图片rotation角度img=img.resize((img_width,img_height))#裁剪图片train_dataset[label,index]=1.–img#将增强的图片加入到训练集EndforEndReturntrain_dataset1.1.2获取下一批数据启用Tensorflow会话,定义轮数与阶段数开始阶段性训练。对于每个阶段,我们从数据集中抽取数据点,构建支撑集和查询集,并训练模型。流程如图3-5所示:图3-5原型网络学习模型训练和测试过程示意图1.4数据集设置本文基于原型网络的少样本图像分类模型对Omniglot数据集进行实验。在训练之前,为了适应各自的卷积神经网络,数据集要被调整成一定的大小。除此之外,为了保证数据的收敛性,还要对全部数据进行标准化和归一化处理,然后被分成训练集和测试集两类,分别对模型进行训练以及测试。用来获取特征的卷积神经网络的结构在训练过程中不作改变,只改变对特征作相似度度量时所使用的度量方法,然后对比各个方法的性能优劣。为了验证识别算法是否有效,本文中的分类识别实验使用国际上常用的Omniglot数据集,采用这个数据集的优点是训练集和测试集彼此独立,没有交集。这个数据集包括来自50种字母表的1623类手写字符,每类字符都包含20个黑白的105×105像素的手写字符实例。本文从数据集中随机抽取60类字符,并从每类字符中随机选择5个字符实例图像作为支撑集,再随机抽取5个字符实例图像作为查询集。本文将实验使用np.array将这些图像转换为一个数组,并将其大小变形为28×28,训练次数为200,设置训练轮数为200个epoch,每个epoch包含100个episode,在验证集中随机采样5个episode的数据在当前模型中进行评估。迭代训练完成之后;随机抽取训练集之外的20个种类,随机选择5张图像为样本集,剩余图像为训练集,设置测试支持集和验证集数量为1000个episode。在C-wayK-shot问题中,在每一个episode的训练之前要从1632类的训练集中随机抽取C类字符,K个字符从每类字符里随机抽取出来成为样本集,剩下的20-K个字符作为查询集。在训练中,每一个episode的样本集数据的数量为K×C个,查询集的数据量为(20-K)×C个。当K比1大时,使用卷积神经网络对样本集每类的K个样本做平均化处理,这样保证了样本集中一类数据对应一个特征向量。1.5实验结果和分析在训练的时候,将训练轮数设置为200个epoch,与此同时,为了保证可以随时查看模型结果在训练的过程中能随时查看模型效果,每50个episode被epoch训练,都会在验证的集合中随机采取5个episode的数据样本,在当前模型里测试该数据样本,这样能知道模型损失和下降的多不多,还能通过训练准确率来评估当前模型的训练进展。例如1-way5-shot问题,这里展现了在Omniglot数据集上的网络模型使用三种度量方法在训练过程中的运行结果和准确率变化曲线。图3-6(a),图3-6(b),图3-6(c)展示的是这三种方法在Omniglot数据集1-way-5-shot问题上训练200次时运行结果。图3-6(a)欧式距离法在Omniglot数据1way5shot问题上运行结果图3-6(b)余弦距离在Omniglot数据1way5shot问题上运行结果图3-6(c)Person相关系数法在Omniglot数据1way5shot问题上运行结果图3-7(a),图3-7(b),图3-7(c)展示的是这三种方法在Omniglot数据集1-way-5-shot问题上训练200次时正确率变化曲线。图3-7(a)欧式距离法在Omniglot数据1way5shot问题上训练模型正确率变化图3-7(b)余弦距离在Omniglot数据1way5shot问题上训练模型正确率变化图3-7(c)Person相关系数法在Omniglot数据5way5shot问题上训练模型正确率变化图3-8(a),图3-8(b),图3-8(c)展示的是这三种方法在Omniglot数据集进行1000个episode测试时精确度变化曲线。图3-8(a)欧式距离法在Omniglot数据1way5shot问题上测试精确率变化图3-8(b)余弦距离在Omniglot数据1way5shot问题上测试精确率变化图3-8(c)Person相关系数法在Omniglot数据1way5shot问题上测试精确率变化观察图3-7和图3-8,不管是从收敛的速度还是分类的精确率上来看,欧式距离都要比皮尔逊相关系数和余弦距离法这两种度量方法更好。从图中可以看出,余弦距离性能优于Person相关系数的度量方法几个百分点,余弦距离收敛的准确率劣于Person相关系数。而相比于这3种度量学习方法,欧式距离的方法在收敛速度和收敛准确率上均是最

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论