Exploring Simple Siamese Representation Learning[arxiv Submitted on 20 Nov 2020]------论文解读

Exploring Simple Siamese Representation Learning[arxiv Submitted on 20 Nov 2020]------论文解读

注意

全文文字或图片来自 KaiMing 大神论文的翻译和其论文的图片,另外加自己的一些注解,仅仅供自己学习参考。

Abstract

Simple Siamese 已经成为最近各种无监督视觉表示学习模型中的通用结构。这些模型最大化了一幅图像的两个增强部分之间的相似性,但需要满足某些条件以避免 collapsing solutions(崩溃解)。在这篇文章中,我们报告了令人惊讶的经验结果,简单的Simple Siamese网络即使不使用以下任何一项也可以学习有意义的表示:(1)negative sample pairs负样本对,(2)large batches大批量,(3)momentum encoders动量编码器。
我们的实验表明,对于损失和结构确实存在崩溃解,但是stop-gradient停止梯度操作在防止崩溃中起着重要作用。我们对停止梯度的含义提出了一个假设,并进一步展示了验证它的概念证明实验。我们的“SimSiam”方法在ImageNet和下游任务上取得了有竞争力的结果。我们希望这个简单的基线将激励人们重新思考暹罗架构对于无监督表示学习的作用。

Introduction and Related Work

Exploring Simple Siamese Representation Learning[arxiv Submitted on 20 Nov 2020]------论文解读
简而言之,我们的方法可以被认为是“没有动量编码器的BYOL”。与BYOL不同,但与SimCLR和SwAV一样,我们的方法直接在两个分支之间共享权重,因此它也可以被认为是“没有负对的SimCLR”和“没有在线聚类的SwAV”。有趣的是,SimSiam通过移除其中一个核心组件而与每种方法相关联。即便如此,SimSiam也不会导致崩溃,并且表现具有竞争力。我们根据经验表明,崩溃的解决方案确实存在,但停止梯度操作对于防止这种解决方案至关重要。停止梯度的重要性表明,应该有一个不同的基础优化问题正在解决。我们假设隐式地有两组变量,SimSiam的行为就像在优化每组变量之间交替。我们提供概念证明实验来验证这个假设。

了解SimCLR SimCLR论文blog讲解笔记------ICML 2020

Siamese networks

Siamese networks是比较实例的通用模型。它们的应用包括签名[4]和人脸[34]验证、跟踪[3]、一次性学习[23]等。在传统的用例中,Siamese networks的输入来自不同的图像,可比性由监管决定。

Contrastive learning

对比学习[16]的核心思想是吸引正样本对,排斥负样本对。这种方法最近已经被推广用于无监督/自监督表示学习[36,30,20,37,21,2,35,17,29,8,9]。使用Siamese networks开发了对比学习的简单有效的实例[37,2,17,8,9]。在实践中,对比学习方法受益于大量的负样本[36,35,17,8]。这些样本可以保存在存储体中(memory bank)[36]。在Siamese networks中,MoCo [17]保持负样本队列,并将一个分支变成动量编码器,以提高队列的一致性。SimCLR [8]直接使用当前批次*存的阴性样本,它需要很大的批次大小才能正常工作。

Clustering

聚类。无监督表示学习的另一类方法是基于聚类[5,6,1,7]。他们在聚类表示和学习预测聚类分配之间交替。SwA V [7]通过从一个视图计算分配并从另一个视图预测分配,将聚类合并到一个Siamese networks中。SwA V在平衡分区约束下对每个批处理执行在线聚类,这是通过sinkorn-Knopp变换解决的[10]。虽然基于聚类的方法没有定义负样本,但是聚类中心可以作为负原型。像对比学习一样,基于聚类的方法需要memory bank内存库 [5, 6, 1], large batches大批量[7],或者队列[7]来为聚类提供足够的样本。

BYOL

BYOL [15]直接预测一种观点从另一种观点的输出。这是一个暹罗网络,其中一个分支是一个动量编码器。在[15]中假设动量编码器对于BYOL避免崩溃很重要,并且如果移除动量编码器,它会报告失败结果(0.3%精度,在[15]中的表5)。我们的实证研究对动量编码器防止崩溃的必要性提出了挑战。我们发现停止梯度操作是关键的。这一发现可能会被动量编码器的使用所掩盖,动量编码器总是伴随着停止梯度(因为它不会被其参数的梯度所更新)。虽然移动平均行为可以通过适当的动量系数提高精度,但我们的实验表明,它与防止崩溃没有直接关系。

Method

Exploring Simple Siamese Representation Learning[arxiv Submitted on 20 Nov 2020]------论文解读

Exploring Simple Siamese Representation Learning[arxiv Submitted on 20 Nov 2020]------论文解读

上面截图来自https://zhuanlan.zhihu.com/p/331678807的内容。
详细看论文。
(z1,z2都 stoprad)

Baseline settings

Exploring Simple Siamese Representation Learning[arxiv Submitted on 20 Nov 2020]------论文解读

Experimental setup

我们在1000级ImageNet训练集[11]上进行无监督预训练,不使用标签。预训练表示的质量是通过在训练集中的frozen representation 上训练有监督的线性分类器,然后在验证集中测试它来评估的。

Empirical Study

参考博客
https://www.cnblogs.com/wyboooo/p/14036948.html
Exploring Simple Siamese Representation Learning[arxiv Submitted on 20 Nov 2020]------论文解读

loss = -1 collapsing solutions

作者对Predictor,Batch_Size,BN,SimilarityFunc,Symmetrization的作用进行了消融研究
Exploring Simple Siamese Representation Learning[arxiv Submitted on 20 Nov 2020]------论文解读

上一篇:基于paddlepaddle的人像抠图程序


下一篇:metabase 基于问题(card)设计新的问题(card)