Abstract
Siamese网络已经成为最近各种无监督视觉表示学习模型的共同结构。这些模型最大限度地提高了一个图像的两个增强之间的相似性,在一定的条件下避免崩溃的解。在本文中,我们报告了令人惊讶的经验结果,简单的Siamese网络可以学习有意义的表示,即使不使用以下内容: (i)负样本对,(ii)大批量,(iii)动量编码器。我们的实验表明,对于损失和结构确实存在坍塌解,但停止梯度操作在防止坍塌方面起着至关重要的作用。我们给出了一个关于停止梯度含义的假设,并进一步证明了概念验证实验的验证。
Introduction
Siamese网络是应用于两个或多个输入的权重共享神经网络。它们是比较(包括但不限于“对比”)实体的自然工具。最近的方法将输入定义为一个图像的两个增强,并在不同的条件下最大化相似性。
Siamese网络的一个不希望的平凡解决方案是所有输出“崩溃”到一个常数。目前已经有了几种防止Siamese网络崩溃的一般策略。对比学习,例如,在SimCLR中实例化,排斥不同的图像(负对),同时吸引同一图像的两个视图(正对)。负对排除了来自解空间的常数输出。聚类是避免恒定输出的另一种方法,而SwAV将在线聚类合并到Siamese网络中。除了对比学习和聚类之外,BYOL只依赖于正对,但在使用动量编码器时,它不会崩溃。
在本文中,我们发现了简单的Siamese网络可以惊人地工作,没有上述策略来防止崩溃。我们的模型直接最大化了一个图像的两个视图的相似性,既不使用负对,也不使用动量编码器。它适用于典型的批量大小,并且不依赖于大批量训练。
SimSiam的模型图如下:
我们的经验表明,坍塌解确实存在,但停止梯度操作对于防止这样的解决方案是至关重要的。停止梯度的重要性表明,应该有一个不同的潜在的优化问题正在被解决。我们假设有两组变量,SimSiam的行为就像在优化每个集合之间交替。我们提供了概念验证实验来验证这一假设。
Method
我们的体系结构从一个图像x中选取两个随机增广的视图x1和x2作为输入。这两个视图由一个主干和一个投影MLP头组成的编码器网络f进行处理。编码器f在这两个视图之间共享权重。预测MLP头,表示为h,转换一个视图的输出并将其与另一个视图匹配。将两个输出向量表示为\(\begin{aligned}p_1&\triangleq h(f(x_1))\end{aligned}\)和\(\begin{aligned}z_2&\triangleq h(f(x_2))\end{aligned}\),我们最小化它们的负余弦相似度:
\(\mathcal{D}(p_{1},z_{2})=-\frac{p_{1}}{\|p_{1}\|_{2}}\cdot\frac{z_{2}}{\|z_{2}\|_{2}},\)
交换输入,我们定义对称的损失为:
\(\mathcal{L}=\frac12\mathcal{D}(p_{1},z_{2})+\frac12\mathcal{D}(p_{2},z_{1}).\)
我们的方法的一个重要组件是停止梯度(stopgre)操作。我们通过修改之前的余弦相似度来实现它:
\(\mathcal{D}(p_1,\text{stopgrad}(z_2)).\)
这意味着z2在这一项中被视为一个常数。类似地,对称损失函数中的形式实现为:
\(\mathcal{L}\overset{}{\operatorname*{=}}\frac12\mathcal{D}(p_1,\text{stopgrad}(z_2))+\frac12\mathcal{D}(p_2,\text{stopgrad}(z_1)).\)
在这里,x2上的编码器在第一项中不接收来自z2的梯度,但在第二项中它接收来自p2的梯度
读的比较简略,只是了解其中的一些方法,具体的证明细节没有看
标签:Simsiam,编码器,Siamese,梯度,论文,网络,视图,笔记,mathcal From: https://www.cnblogs.com/anewpro-techshare/p/18063819