在阅读本篇之前建议先学习:【计算机视觉】MoCo讲解【计算机视觉】SimCLR讲解MoCov2论文信息标题:ImprovedBaselineswithMomentumContrastiveLearning作者:XinleiChen期刊:发布时间与更新时间:2020.03.09主题:计算机视觉、对比学习arXiv:[2003.04297]ImprovedBaselineswithMomentumContrastiveLearning(arxiv.org)代码:模型MoCov2是在MoCov1框架基础上,添加了SimCLRv1中一些与模型框架无关、即插即用的有效部件(非线性映射层和更多的数据增强)
文章目录一、MoCo1.1导言1.1.1前言1.1.2摘要1.1.3导言1.2相关工作1.2.1SimCLR:端到端的学习方式(InvaSpread也是)1.2.2memorybank(InstDisc模型)1.3算法1.3.1损失函数1.3.2伪代码1.4实验1.4.1对比其他模型1.4.2imagenet数据集结果对比1.4.3迁移学习效果1.5总结二、对比学习论文综述三、第一阶段:百花齐放(2018-2019Mid)3.1InstDisc(instancediscrimination)3.1.1研究动机3.1.2算法3.1.3NCELoss损失函数3.1.4ProximalRegular
目录1.什么是MOCO2.MOCO是干吗用的3.MOCO的工作原理3.1一些概念1.无监督与有监督的区别2.什么是对比学习3.动量是什么3.2MOCO工作原理1.字典查找2.如何构建一个好的字典3.工作流程3.3(伪)代码分析4.其他一些问题5.MOCOv2和MOCOv35.1MOCOv25.2MOCOv36.实战部分6.1数据6.2模型与参数设置6.3实验结果(好久没更新了~~~准备分享一些paper笔记以及在公司分享的内容)(还是要记录呀,很多东西过段时间再看都有点想不起来了)1.什么是MOCOMOCO:MomentumContrastforUnsupervisedVisualRepres
目录1.自监督,个体判别2.损失函数的意义3.总结4.伪代码1.自监督,个体判别训练编码器,做字典查找任务。结构如下图,论文中代理任务是instancediscrimination(个体判别),先将一个样本x分成两部分,分别为x11和x12,然后随机取mini-batch的样本x2、x3、…。然后将x11放进encoder,输出为q,x12放进momentumencoder,输出为k+,x2、x3、…同样放进momentumencoder,输出为key2、key3….。由于q与k+来自同一个样本x1,于是同属于正例,相似度最高,其余key2、key3…均为负例。Consideranencode
MoColoss计算采用的损失函数是InfoNCE:下面是MoCo的伪代码,MoCo这个loss的实现就是基于crossentropyloss。将k作为q的正样本,因为k与q是来自同一张图像的不同视图;将queue作为q的负样本,因为queue中含有大量不同图像的视图。在具体python代码中(在/moco/builder.py和/main_moco.py)的实现如下:(1)首先计算正样本损失l_pos,大小为(N,1)。l_pos=torch.einsum('nc,nc->n',[q,k]).unsqueeze(-1)再计算负样本损失l_neg,大小为(N,K)。l_neg=torch
MoColoss计算采用的损失函数是InfoNCE:下面是MoCo的伪代码,MoCo这个loss的实现就是基于crossentropyloss。将k作为q的正样本,因为k与q是来自同一张图像的不同视图;将queue作为q的负样本,因为queue中含有大量不同图像的视图。在具体python代码中(在/moco/builder.py和/main_moco.py)的实现如下:(1)首先计算正样本损失l_pos,大小为(N,1)。l_pos=torch.einsum('nc,nc->n',[q,k]).unsqueeze(-1)再计算负样本损失l_neg,大小为(N,K)。l_neg=torch
目录写在前面一、moco的主要思想二、代码精读2.1代码结构2.2main_moco.py2.2.1参数设置defmain():defmain_worker(gpu,ngpus_per_node,args)deftrain(train_loader,model,criterion,optimizer,epoch,args)2.3moco文件夹2.3.1loader.py2.3.2builder.py模型初始化样本队列动量编码器模型前向过程2.4main_cls.py写在前面本人刚入门自监督学习,对自监督学习的了解还停留在理论阶段,现在想为自己开一个坑,即这个自监督学习代码阅读合集,一方面可以加
✅个人简介:南京邮电大学,计算机科学与技术,在读本科●前驱文章一:《MoCov1文献研究[自监督学习]》●前驱文章二:《MoCov2文献研究[自监督学习]》文章目录一、代码中的“ReadMe.md”1.1Preparation1.2UnsupervisedTraining1.3LinearClassification1.4Models1.5TransferringtoObjectDetection1.6License1.7SeeAlso二、main_moco.py——无监督训练主文件2.1关于“导入包”的代码2.2关于“命令行参数”的代码2.3关于“main()函数”的代码2.4关于“main
✅个人简介:南京邮电大学,计算机科学与技术,在读本科●前驱文章一:《MoCov1文献研究[自监督学习]》●前驱文章二:《MoCov2文献研究[自监督学习]》文章目录一、代码中的“ReadMe.md”1.1Preparation1.2UnsupervisedTraining1.3LinearClassification1.4Models1.5TransferringtoObjectDetection1.6License1.7SeeAlso二、main_moco.py——无监督训练主文件2.1关于“导入包”的代码2.2关于“命令行参数”的代码2.3关于“main()函数”的代码2.4关于“main