• 问答
  • 技术
  • 实践
  • 资源
如何看待无监督学习在 vision transformer 上的应用前景?
技术讨论
问题来源:https://www.zhihu.com/question/457507120/answer/1881903889



近期,vision transformer已经在CV各个领域如分类,分割和检测等各个方向全面发力。在NLP领域,基于无监督的transformer如BERT等已经得到广泛的应用。那么在CV领域,无监督学习和transformer结合又会带来怎么样的应用价值呢?虽然vision transformer近期已经在图像问题上取得了不错的进展,但是还远远谈不上颠覆性的改变。个人觉得无监督学习在vision transformer上的发展对计算机视觉领域可能意义更加大,所以提了这样的一个话题。

关于无监督学习和transformer的研究,Facebook AI已经有两篇研究论文:

An Empirical Study of Training Self-Supervised Vision Transformers​arxiv.org

这篇论文将CV中常用的无监督学习方法MOCO应用在ViT,最终在ImageNet上的top-1 acc(evaluated by linear probing)可达81.0%:

Emerging Properties in Self-Supervised Vision Transformers​arxiv.org

另外一篇论文提出了一种基于新的无监督学习方法DINO:self-distillation with no labels,其中模型ViT-B/8在ImageNet上的top-1 acc(evaluated by linear probing)可达80.1%:

而且DINO训练的ViT模型表现出了非常好的可解释性:

Training ViT with our DINO algorithm, we observe that our model automatically learns an interpretable representation and separates the main object from the background clutter. It learns to segment objects without any human-generated annotation or any form of dedicated dense pixel-level loss.


回案1:

来源:胡瀚

说下观点:前景非常广阔,自监督学习和视觉Transformer是黄金交叉

技术层面的理由:

1)自监督学习相比有监督学习能够更充分地利用模型更大的表示能力,关于这个结论比较好的阐述和实验论证参见:

a) Yann LeCun的蛋糕类比,从编码的信息量的角度讲主要学习范式

b) 陈挺的SimCLR和SimCLRv2,前者比较了有监督和无监督对于大模型的利用效率

SimCLR中有监督和无监督对于不同大小模型的利用效率比较

SimCLRv2里进行了小样本、半监督学习上更过瘾地探讨:

SimCLRv2的主要结论:Big Self-Supervised Models are Strong Semi-Supervised Learners

2)Vision Transformer相比CNN有着强得多的建模能力

这个目前在无数视觉task中已经证明,参见我另一个关于视觉Transformer的回答(主要观点:Transformer在视觉中替换CNN已经没有悬念):

如何看待Transformer在CV上的应用前景,未来有可能替代CNN吗?​www.zhihu.com图标

其它理由:

1)NLP领域已经验证了两者交叉能带来巨大能量,这也为视觉领域提供了充足的弹药

2)无数contributor已经正在探索了

\===========

最后叫卖一下小组做的一个新的自监督+视觉Transformer的codebase:

https://github.com/SwinTransformer/Transformer-SSL

相比于此前的DINO,以及未开源的MoCo v3,它有如下好处:

1)提供了在下游检测、分割任务上评估迁移性能的基准

迁移性能是自监督预训练最重要的价值所在,此前的DINO和MoCo v3基于ViT/DeiT进行研究,ViT/DeiT都是针对图像分类设计的,不适合作为backbone网络应用于检测、分割等下游任务,而我们新的codebase提供了Swin Transformer的支持,能比较方便评估在下游任务的迁移性能。

2)在相同训练budget和没研究multi-crop的情况下,比DINO和MoCo v3效果更优(DeiT-S/16上300epoch训练,72.8 vs 72.5)

3) trick比DINO和MoCo v3少得多,几乎没有奇怪的trick

DINO的trick: student和teacher网络不对称的温度(temperature)项设计;训练过程中线性提高teacher的温度;训练过程中变化weight decay;第1个epoch固定最后一层;针对不同模型调head中是否加weight normaliztion;线性评估时加入最后几个block以及CLS token的特征等等。

MoCo v3的trick: 固定patch embedding;MLP一开始的LN层被BN层替换;MLP中间加BN;head采用3层MLP;非常大的batch size (4096),大部分学校实验室几乎不能afford

我们的MoBY:MoCo v2+BYOL中已有的tricks;唯一算新加的trick是不对称的drop path,我们发现这个设计对结果帮助很大;我们也用了较小的512的batch size,希望让很多学校实验室也能afford

我相信更少的trick不容易过拟合benchmark,也更利于后续更好方法的研发。

坦率讲这个codebase在方法层面我们没有什么自己的东西,小组里的学生们花了很多GPU和时间调参,希望能帮助到想探索这个黄金交叉领域的同学和老师们!


回答2:

陀飞轮

DINO和MoCov3的思路大差不差,都是Self-Supervised+ViT,算是已经证明了Self-Supervised+Transformer这条路是行的通的

对于Self-Supervised+Transformer的看法基本上和之前回答MoCov3保持一致

如何评价Kaiming He团队的MoCo v3?​www.zhihu.com图标

希望在CV领域复刻NLP的BERT、GPT系列的路径,得到能力非常强的预训练模型,相信目前DeepMind、Google Research、OpenAI、FAIR等都在紧锣密鼓的进行大规模尝试,所以最终的核心问题还是数据量

Money is all you need!


图解 Transformer

  • 0
  • 0
  • 1216
收藏
暂无评论