代码:https://github.com/facebookresearch/simsiam
论文:https://arxiv.org/pdf/2011.10566.pdf
孪生网络
Abstract
「孪生网络」(Siamese networks)
背景:目前孪生网络已成为无监督视觉表征学习模型的常见结构,它能够最大限度地提高同一图像的两个放大部分之间的相似性。为避免孪生网络的所有输出都坍缩成一个常量,目前主要存在3种策略:
一、对比学习,例如SimCLR,负对相斥,正对相吸,负样本对排除了来自解空间的恒定输出;
二、聚类,例如SwAV将在线聚类引入孪生网络中。(大batch)
三、BYOL,仅依赖正样本对,但在使用动量编码器的情况下不会让孪生网络崩溃。
本文提出简单的孪生表达学习机制(SimSiam),不使用上述的任一方法(负样本对,大批量,动量编码器),也可以避免表达学习中的“崩溃”问题,并取得很好的效果。
Introduction

为了最大化了一个图像的两个视图的相似性,在SimSiam中,采用图像中的两个随机增强视图作为输入;这两个视图同时被输入到一个由主干网络(如ResNet)和一个MLP头组成的编码器中分开进行处理;
- 将一幅图像(image x)放大为两个放大视图(x1,x2)。x1,x2同时经过encoder f处理得到f(x1)和f(x2),encoder f由卷积神经网络和全连接层组成,两个视图之间网络结构相同且共享权重。
- 一侧应用预测MLP h(predictor h),将f(x1)转换为h(f(x1))。
- 另一侧应用停止梯度运算。
- 将两个输出向量的负余弦相似度最小化,使两者之间的相似性最大化。
我们证明了坍缩(collapse)解确实存在,但是停止梯度操作(stop-gradient)是防止此类解的关键。停止梯度的重要性表明, 应该有一个底层优化问题需要解决。我们假设有两组隐变量, SimSiam的行为就像在交替优化每一组变量,相当于引入了另一组中间隐变量,然后迭代地优化这个特征隐变量以及特征网络。我们提供了概念证明实验来验证这个假设。 另外实验还证明了Siamese体系结构可能是相关方法成功的一个共同原因。因为根据定义, “不变性”意味着对同一概念的两次观察应该产生相同的输出,而孪生网络可以自然地引入归纳偏差来建模不变性。类似于卷积,它是一种成功地通过权值共享来建模平移不变性的归纳偏差, 与此类似, 权值共享Siamese网络可以建模更复杂的变换(如增强)的不变性。
Hypothesis

参考:SimSiam笔记
Methodology Comparisons

孪生网络的比较。编码器包括所有可以在两个分支之间共享的层。虚线表示梯度传播流。在BYOL、SwAV和SimSiam中,没有虚线意味着停止梯度。为了简单起见,没有说明它们的对称性。红色的组件是SimSiam中抛弃的组件。

