版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于深度学习下的图像细粒度检索实践案例分析目录TOC\o"1-3"\h\u32690基于深度学习下的图像细粒度检索实践案例分析 1211691.1试验环境的配置和代码部署 1241251.2两种基于代理的损失函数 5260271.3对不同数据集下的检索效果评估 8271661.4不同模型下的对数据集的细粒度检索评估 111.1试验环境的配置和代码部署本实验是基于PyTorch开源项目下进行的细粒度图像检索任务。同时也使用了tqdm和wandb进行可视化结果处理,因此我们要在实验前对这些库进行配置。首先因为本实验的处理平台是pycharm,在pycharm中直接进行PyTorch包的自动安装配置会导致是CPU版本而无法使用GPU进行处理,出现训练效果减缓的不佳效果。图3-1使用CPU对模型进行训练下的训练数据在进行PyTorch的GPU版本安装前,我们需要预先对CUDA和CUDNN进行安装和配置。不同GPU下对NVCUDA64和PhysX的版本有着严格的要求,与CUDA和CUDNN的版本也要求严格的对应,我们需要通过面板调用到具体的GPU信息和兼容的CUDA版本,然后对CUDA进行配置和安装,安装后可以通过nvcc-v来确定CUDA的配置。图3-2GPU信息和对应兼容的CUDA版本在对CUDA和CUDNN的配置完成后我们可以在中我们可以找到对应版本的pytorch库安装指令。因为我们是WINDOWS10系统下的GPU方式,同时已经根据要求的CUDA版本,我们得到了具体的pip指令并进行安装图3-3得到的具体pytorch库的安装pip指令在通过配置后可以通过简单地torch.cuda.is_available()来检测cuda和pytorch的配置成功与否。在环境和基本库配置完成后我们可以通过参数选择来对代码进行部署和测试图3-4项目的模型选择和参数设置在首次训练时我们选择了CUB_200_2011数据集,根据GPU的性能调整了batch_size的大小和epoch的轮数,在dataloader的worker数量也做了合理减少到2来防止显存不足的溢出。在embedding-size选择了512,学习率为lr1e-4,同时也对学习率和权重的衰减做出了参数调整。最后我们首次选择的损失函数为基于代理锚的损失函数,接下来会对这个损失函数的相关进行介绍。1.2两种基于代理的损失函数度量学习中的语义距离度量学习在视觉和图像处理方面有着非常多的实用性,神经网络的发展也随之应用到度量学习中。训练网络中的数据在空间中通常会成组的聚集,而这种情况下的损失函数通常有两种:基于成对的损失函数和基于代理的损失函数。其中基于成对的损失函数则是通过传入成对的图像,在细粒度中如果这一对图像拥有着类相同的标签,则将其语义距离最小化提取他们其中的小特征,否则将分开并计入损失。通过这种成对的损失函数我们可以得到丰富的监管信号,但是他们作为元数据输入的话会导致训练的复杂度过高,达到O(M2)甚至O(M3)水平。其中的M是输入数据的样本量,这样会导致收敛速度过缓。同时存在一些对训练没有帮助的数据,手动调整这些数据可能会导致过拟合问题的发生。而引入了代理(proxy)的损失函数就解决了这种复杂度过高的问题,代理会鼓励同类别的代理相互靠近而远离不同类别,最早有关于基于代理的损失函数研究则是Proxy-NCA[15]。公式1.1则是Proxy-NCA的损失函数。 (1.1)因为代理的数量相对于训练数量大幅减少,所以会取得更加理想的复杂度和收敛速度。但是基于代理的损失函数由于过度依靠代理与数据的关系,相对于基于成对的损失函数造成了一些信息丢失。而本次使用的代理锚(proxy-anchor)[16]下的基于代理的损失函数则解决了这个问题。这种方式是通过把每个代理作为中间信息与其他所有信息相联系起来,本身拥有着给予代理的特性可以快速可靠地进行收敛,同时我们也可以利用基于成对的损失函数的数据关系。它的损失函数结构像Proxy-NCA一样为每一个类别分配了一个代理。l(1.2)在公式1.2中,其中δ>0是边距,α>0是比例因子,P代表处理中所有代理的集合,而P+则是所有代理中正代理的数据集合。我们将Log-Sum-Exp作为max函数,则很容易得到该损失是将p和它的最为接近的正项靠拢,然后推动p和它相似的负项分离。由于Log-Sum-Exp的性质,实际中的损失会拉动和推入批处理中的所有嵌入矢量,但强度不同,强度取决于它们的相对硬度,我们可以通过s(x,p)的梯度来证明这个特性。∂l(X)∂s(x,p)=1P+在公式1.3中hp+(x)=e−αs这种基于代理锚的损失函数相较于Proxy-NCA,前者主动参考了数据之间的关系,可以在训练期间为网络提供更多的监督信号。在Proxy-NCA损失中,对于每一个正项的梯度比例恒定,而负项的梯度比例是仅通过少量的代理来计算的。在这种情况下,正项的恒定梯度会损害网络的灵活性和通用性。与此相比下的代理锚损失函数则通过考虑正项和负项的相对硬度来确定梯度,得以增加了数据的紧凑型。在程序中我们通过以下代码进行对损失函数的实现图3-5基于代理锚的损失函数代码实现之后我们会在实验中对Proxy-NCA损失函数也进行模型训练,并与代理锚的损失函数的细粒度检索效果进行对比。以下是Proxy-NCA损失函数的实现。图3-6Proxy-NCA损失函数的代码实现1.3对不同数据集下的检索效果评估首先我们使用的是inception网络模型在基于代理锚的损失函数下对两种数据集进行训练和检索评估。首先是通过对CUB_200_2011数据集的训练和校验。图3-7第一次,第二次和第十次的训练后检索评估正确率在图3-7中我们可以得到在十轮训练中对CUB_200_2000数据集进行检索的正确率趋向。其中R@N代表着对一张图像进行检索的次数对应的正确率。我们可以看出随着训练次数的增加,在初次检索和二次检索的成功率有显著上升,但是在八次检索仍未正确的情况下后续提升则相对较小,默认为检索失败的情况。因为CUB_200_2000数据集为鸟类数据集,我们可以推测为在训练过程中对该种鸟类的特征提取并未提取到有利于细粒度检索的特征,在有效特征提取存在着失效或者错误,导致与其他鸟类混淆从而导致检索失败。并且通过最后保存的最优模型中我们可以得到,训练后的评估准确率并非与训练次数成正相关,在十次训练评估中模型与测试效果最好的是第六次的训练结果,其中加入提前结束机制可以达到提前收敛而减少训练时长。之后是对CARS196数据集利用resnet50网络模型在基于代理锚的损失函数下的训练和图像细粒度检索评估。我们根据图像训练次数和检索得到的成功率得到下图3-6图3-8对CAR196检索评估正确率在图3-8中我们可以看到,随着训练次数的增加,在图像细粒度检索的正确率上有着很好的进步效果,但是在第八轮训练后的收益提高都远小于前三次的收益。可以预测在进行了四轮训练时已经达到了比较成熟的检索效果,可以进行提前结束机制。从第四轮以后的训练只是做到了提高第一轮的检索精准度,而对后面的检索精准度影响并不显著。图3-9对CAR196的最优训练轮次和成功率根据对car196数据集的图像细粒度检索结果,我们可以推测到相对于鸟类的图像细粒度检索,汽车类的细粒度检索更加方便提取显著图,可能与汽车本身的外观形态和环境影响相对鸟类较小,而且汽车本身就有一个非常显著的特征提取物“车标”。经过几次训练后网络可以更快速准确的区分出可以用来进行细粒度检索的特征,相较于CUB_200_2000数据集的细粒度检索评估水平有着显著提升。我们通过代理锚损失函数的实验结果与Proxy-NCA[15]在Inception模型下对CUB_200_2000数据集的训练检索结果对比,我们可以看出基于代理锚的损失函数对细粒度检索的结果提升比单纯使用基于代理的损失函数要有明显的训练效果提升,平均对每个数据集在检索精准度都有15%-25%的精确度提升,也证明了基于代理锚的损失函数对细粒度检索的有效性。(a)Proxy-NCA (b)代理锚图3-10两种损失函数对CUB_200_2000进行细粒度检索的结果1.4不同模型下的对数据集的细粒度检索评估本节中我们同样使用了inception网络模型和resnet50网络模型来对CUB_200_2000数据集进行训练并进行细粒度检索任务和评估,来观测基于代理锚的损失函数在不同模型下的细粒度检索效果。(a)resnet50的检索成功率(b)inception的检索成功率图3-11两种模型对CUB_200_2000进行检索的成功率评估通过训练数据我们可以清晰的看出inception网络模型和resnet50网络模型在对CUB_200_2000数据集进行训练的时候的最优细粒度检索准确度曲线。在折线图中我们可以看到大致两者的准确度
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026山西太原市迎泽区师苑幼儿园招聘4人备考题库及一套答案详解
- 2026年度日照市莒县事业单位公开招聘初级综合类岗位人员备考题库及答案详解(新)
- 江西赣州市栖凤山路小学2026年春季学期顶岗教师及特教班保育员招聘备考考试试题及答案解析
- 2026上半年安徽事业单位联考合肥市瑶海区招聘49人备考考试题库及答案解析
- 青岛2025年山东青岛科技大学招聘2人笔试历年参考题库附带答案详解
- 赤峰2025年内蒙古赤峰市元宝山区公立医院招聘22人笔试历年参考题库附带答案详解
- 芜湖2025年安徽芜湖鸠江区清水街道招聘劳务派遣就业驿站专干笔试历年参考题库附带答案详解
- 福建2025年福建省大学生乡村医生专项招聘101人笔试历年参考题库附带答案详解
- 焦作2025年河南焦作市博爱县事业单位招聘146人笔试历年参考题库附带答案详解
- 淮南安徽淮南市望峰岗镇杨公镇政府专职消防员招聘12人笔试历年参考题库附带答案详解
- 人教版三年级上册竖式计算练习300题及答案
- GB/T 6974.5-2023起重机术语第5部分:桥式和门式起重机
- 心脏血管检查课件
- 运用PDCA循环管理提高手卫生依从性课件
- 二手房定金合同(2023版)正规范本(通用版)1
- 《高职应用数学》(教案)
- 点因素法岗位评估体系详解
- 汉堡规则中英文
- DB63T 1933-2021无人机航空磁测技术规范
- GB/T 5231-2022加工铜及铜合金牌号和化学成分
- GB/T 26480-2011阀门的检验和试验
评论
0/150
提交评论