ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【论文视频】对比学习论文综述【论文精读】

2022-01-28 16:33:52  阅读:259  来源: 互联网

标签:精读 SimCLR 综述 论文 学习 v1 MoCo 对比


【】

文章目录


在这里插入图片描述
在这里插入图片描述
总结
MoCo v3和DINO这两篇工作,从方法和模型角度上来说,其实它们跟第三阶段基本是一模一样的,主要就是融合了Vision Transformer

到这里就把过去两三年比较有代表性的对比学习的工作都串了一遍,这里我们就再画一张大图如下图所示,整体再快速的把这些工作再过一遍,看一下它们之间的联系与不同
在这里插入图片描述

  • 从最开始的Inst Disc开始,它提出了个体判别的任务,而且它提出用一个 memory bank的外部数据结构去存储负样本,从而能达到一个又大又一致的字典去做对比学习

  • 如果不用外部结构的话,另外一条路就是端到端的学习,也就是Inva Spread这篇论文做的,它就只用了一个编码器,从而可以端到端的学习,但因为受限于batch size 太小,所以说它的性能不够好

  • CPC v1这篇论文提出了infoNCE这个loss,而且CPC v1是一个预测型的代理任务,不仅可以做图像,还可以去做音频、视频、文字和加强学习,是一个非常全能的结构

  • 最后还有CMC这个工作,它就把两个视角的任务扩展到了多个视角,从而给接下来多视角或者多模态的这个对比学习打下了铺垫

  • 另外还有一篇论文deep cluster并没有讲,它是基于聚类学习的,当时还没有用对比学习

  • 接下来就进入了第二阶段,第二阶段主要是MoCo v1开始,它算是Inst Disc的一个延伸性工作,它把memory bank变成了一个队列,然后把动量更新特征,变成了动量更新编码器,从而能预训练一个很好的模型

  • MoCo也是第一个能在很多视觉的下游任务上,让一个无监督预训练的模型比有监督预训练模型表现好的方法,它属于使用外部数据结构的

  • 自然端到端的学习肯定也有延伸性的工作,也就是SimCLR v1,SimCLR v1跟Inva Spread方法是很像的,但是它用了很多的技术,比如说加大了batch size,用了更多的数据增强,加了一个projection head,训练的更长时间,总之所有的这些技术堆起来让SimCLR在ImageNet取得了非常好的的结果

  • 然后CPC v1把这些技术也全都拿来用了一遍,CPC v2就直接比CPC v1在ImageNet 上高了30多个点

  • 最后CMC把这些都分析一下,提出了一个info Min的这个原则,它说两个样本或者两个视角之间的互信息,要不多不少才是最好的

  • 然后MoCo的作者看到SimCLR用的这些技术确实都很管用,所以就把这些即插即用的技术拿过来用在MoCo上,就有了MoCo v2,MoCo v2的效果就比MoCo v1和SimCLR v1都要好

  • 然后SimCLR的作者也对模型进行了一些改动,得到了SimCLR v2,但SimCLR v2主要是去做半监督学习的

  • 之前提deep cluster主要就是为了引出SwAV,SwAV就是把聚类学习和对比学习结合起来的一个工作,也取得了不错的结果,但它这个不错的结果主要是来自于它提出的multi crop的技术,如果没有这个技术,它其实跟SimCLR或者MoCo v2的结果都是差不多的

  • 第三阶段就来到了BYOL这个方法,因为处理负样本实在是太过麻烦,所以BYOL就说能不能不要负样本,能不能不去跟负样本做对比,结果它们发现还真行,就自己跟自己学,把一个对比任务变成一个预测任务就可以了,而且目标函数也很简单,不再使用info NCE,而是用一个简单的mse loss就可以训练出来

  • 但是大家都觉得很不可思议,所以立马就有一篇这个博文出来,它们就假设说BYOL能够工作主要是因为有batch norm,这个batch norm提供了一种隐式的负样本,所以BYOL 能够正常训练而不会模型坍塌

  • 但是 BYOL 的作者很快就又发了另外一篇论文叫BYOL v2,通过做了一系列实验以后,最后说batch norm只是帮助了模型的训练,如果能用另外一种方式能提供一个更好的模型初始化,BYOL不需要batch norm提供的那些batch的统计量照样能工作,就把之前博客里提出来假设给打破了,但它们提出的其实也只是另外一个新的假设

  • 紧跟着BYOL,SimSiam 就出来了,SimSiam就把之前的工作都总结了一下,因为它觉得之前的这些论文都在一点一点往上堆技术,那如果堆的太多了就不好分析了,这个领域也就不好再推进下去了,所以SimSiam就化繁为简,又提出来一个很简单的孪生网络的学习方法,它既不需要用大的batch size,也不需要用动量编码器,也不需要负样本,然后照样能取得不错的结果,SimSiam提出的假设就是说stop gradient这个操作是至关重要的,因为有这个操作的存在,所以SimSiam可以看成是一种EM算法,通过逐步更新的方式避免模型坍塌

  • 另外还有一篇工作叫barlow twins,它主要就是更换了一个目标函数,把之前大家做的这种对比或者预测变成了两个矩阵之间去比相似性,因为它已经是21年3月提出来的,所以很快就淹没在了Vision Transformer这波洪流之中

  • 最后第四阶段就来到了Vision Transformer,主要讲的两个工作就是MoCo v3和DINO,其实都是把骨干网络从残差换成了ViT,主要学习的方法其实是没有改变的

  • 但是换成Vision Transformer以后,面临的问题都是训练不稳定或者不好训练,所以他们就提出了各自的方法:MoCo v3提出来把patch projection layer冻住,DINO就提出把teacher网络的输出先做一下归一化,做一下centering。这2种方式都能有效的提高模型训练的稳健性,防止模型坍塌,让Vision Transformer用自监督的方式也能训练的很好

  • 到此,又把所有的这些工作快速的串了一遍,现在对比学习还是一个很火的方向,虽然说可能没有Vision Transformer那么火,而且尤其是MAE火爆了以后,大家都去尝试掩码学习,而不是去尝试对比学习了,所以说对比学习又从一个火爆发展期变成了一个发展潜伏期

  • 但是我对它的前途还是非常看好的,毕竟多模态的对比学习还是一个主流,CLIP的效果就很好,下次也会讲到CLIP这篇工作,而且在多模态里面,图像和文本对之间的对比学习loss还是一个标准的目标函数,基本上所有的工作都有在用,而且对比学习它属于一个想法而不是具体的一个工作,它在几十年之前就已经提出来了,所以接下来我们应该还是会看到很多对比学习的工作的,我很期待对比学习跟其它方法的结合

参考资料

太精彩了——对比学习论文综述【论文精读】


文字稿:
对比学习论文综述 第1,2阶段【论文精读】

对比学习论文综述 第三阶段----不用负样本

对比学习论文综述 第四阶段----transformer + 总结

标签:精读,SimCLR,综述,论文,学习,v1,MoCo,对比
来源: https://blog.csdn.net/weixin_43154149/article/details/122733013

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有