Advertisement

2021 Oral CVPR : Exploring Simple Siamese Representation Learning

阅读量:

文章
代码库

1. 摘要

  • 孪生网络已被广泛应用于无监督视觉表征学习领域。
    通过最大化两个增强版本图像之间的相似度来规避崩溃解(collapsing solutions)的问题。
    本文提出了一种简洁型Siamese网络架构,在无需依赖负样本配对、处理小批量数据以及不采用动量编码器的情况下仍能获得良好性能。
    该术语不仅存在于损失函数设计中,在整个网络架构中也有所体现,并可通过应用stop-gradient操作加以抑制。
    实验结果表明,在ImageNet基准数据集及其下游应用任务上,SimSiam展现出较强的竞争性能。

2. 引言

该段改写后如下

Contrastive learning : Discards inputs from different images while simultaneously attracting enhanced pairs from the same image. Negative pairs exclude constant outputs in the solution space.

Clustering :通过在表示学习与预测分配之间的交替过程实现聚类目标。SwAV 利用一种孪生网络架构,在一个视图上计算数据分布的同时,在另一个视图上进行预测性建模以融合聚类信息。基于平衡分区策略,在线执行聚类过程以提高效率。为了提高效率并获得充足的样本支持,在每个batch中都会采用大量样本进行训练以保证足够的数据量来进行有效的聚类分析。

BYOL 是一种通过一个视图直接推导另一个视图的输出的方法,在其架构中包含一个用于生成目标表示的动量编码器分支。

3. 方法

SimSiam
在这里插入图片描述
  • 上述公式等于标准化向量的均方误差损失。同时提出了一种对称损失.
对称loss

这两个损失分别影响每一张图像,在计算总损失时取各张图像损失的平均值;因此其最小可能值为-1

使用stop-gradient操作 修改loss函数为:

在这里插入图片描述
在这里插入图片描述

在损失的第一部分中,在x₂处的元素无法通过z₂传递梯度信息;而在第二部分中,则会从p₂接收梯度信息。

SimSiam伪代码实现如下

伪代码

3.1 Baseline settings

  • Optimizer : 在预训练过程中使用SGD算法进行优化,默认的学习速率为lr=0.05(单位为批次大小),其中每批数据大小取值范围为batchsize/256;学习速率采用余弦衰减策略衰减;优化器参数配置包括:动量因子momentum=0.9和正则化系数weight decay=0.0001;默认情况下,默认批量大小设置为512;并且引入了批归一化(SynBatchNorm)以提升模型性能。
  • Projection MLP : 编码网络中的投影MLP模块由三个全连接层构成;每个全连接层之后紧跟一个批归一化(BN)操作;特别地,在最后一个全连接层之后不再使用ReLU激活函数;此外所有隐藏层节点数目统一设定为2048个。
  • Prediction MLP : 预测MLP模块同样采用了批归一化处理;尽管如此,在输出端的全连接层仍然未接激活函数(即直接输出);整个预测MLP结构包含两个全连接层:第一个全连接层接受并输出维数均为2048维的数据向量;第二个全连接层则缩减至512维。
  • Experimental setup :作者基于ResNet-50模型构建了研究框架,并将其应用于ImageNet大规模图像分类任务中的无监督预训练阶段;随后切换至监督学习模式下冻结ResNet-50作为特征提取器来训练分类头;实验结果均在验证集上进行了评估。

4. 实证研究

4.1 Stop-gradient

图2
  • 第一幅图显示,在不使用Stop-gradient的情况下(即直接进行梯度下降),优化器能够快速收敛至退化解状态,并使损失函数降至-1最低值。进一步分析发现,在这种情况下计算出每个通道l2规范化结果的标准差会显著偏离理论预期(若"崩溃"发生,则每个通道的标准差应趋近于零)。
    • 通过查看第二幅图可知,在输入数据服从零均值各向同性高斯分布的情况下(标准化程度与维度d呈反比),当加入Stop-gradient约束时(表示为蓝色曲线),其l2规范化结果的标准差与理论预测值基本一致(σ=1/√d)。这表明仅在施加Stop-gradient后才能有效避免"崩溃"现象的发生。
  • 第三个图表展示了KNN分类器在验证集上的性能表现。值得注意的是,在未采用Stop-gradient的情况下(即直接进行梯度下降),KNN分类器的分类准确率仅为0.1%,而在加入Stop-gradient约束后,则最终可达到67.7%的高分类精度。

4.2 Predictor

表1
  • 去除预测MLP头模块h后,则该模型不再具备有效性。
  • 若将预测MLP头模块h被设定为随机初始化状态,则该模型同样无法正常运行。
  • 若将预测MLP头模块的学习率设置为恒定值,则即使在这一策略下,在某些情况下也能超越基准表现。

4.3 Batch Size

表2
  • 研究了不同批次对模型精度的影响情况,在实验中设定的基础学习率为base\ learning\ rate为0.05,并且通过\begin{array}{c} lr\times batchsize/256 \end{array}的方式实现了学习率的按比例调整;当批次大小超过1024时,则采用了10个epoch的预热学习率策略。
  • 研究发现,在较大批次训练过程中可能会导致性能下降的现象,并且也表明优化器并不是防止模型崩溃的关键因素。

4.4 Batch Normalization

图3
  • 即使完全去除所有的Batch Normalization(BN)层...也不会导致模型崩溃;这种较低的性能类似于训练困难的问题...其性能则提升至67.4%。
  • 在完成Projection MLP运算后的输出结果上加入Batch Normalization (BN)操作...带来了显著提升至68.1%。
  • 然而,在完成Predictor MLP运算后的输出结果上加入Batch Normalization操作会使得训练过程变得更加不稳定。
  • 虽然Batch Normalization有助于提高模型优化效率...但并未提供足够的证据表明能够防止出现崩溃解的情况。

4.5 Similarity Function

相似度函数实验结果

此外,在采用交叉-熵相似度量的情况下,该方法同样表现出良好的效果

  • softmax属于channel维度,在其输出中可被视为d个类别中每个类别的概率。
  • 可以看出使用交叉熵相似性仍然能够有效地收敛,并不会出现崩溃问题,因此避免崩溃解与余弦相似性无关。

4.6 Symmetrization

对称实验结果
  • 非对称损失也达到了预期效果;然而其对称性设计则有助于提高模型精度,并无关联于防止出现"崩溃解"。
    • 在多个实验场景中应用stop-gradient操作能够有效规避"崩溃解"事件的发生。

5. 实验结果对比

5.1 ImageNet

ImageNet实验结果
  • 通过图表展示了所提方法与其他SOTA无监督学习方法在ImageNet上的性能表现对比分析。从图表中可以看出SimSiam能够获得具有竞争力的结果。经过100epoch的训练后,所提出的方法达到了最高的精度水平;然而,在持续训练的过程中所得收益逐渐减小。

5.2 Transfer Learning.

transfer learning实验结果
  • 表格清晰地展示了所提方法与其他SOTA方法在迁移学习方面的性能对比情况。从表格中可以看出,在迁移至ImageNet以外的任务时,SimSiam表达能够较为有效地实现目标,并且所建立的迁移模型展现出很强的竞争优势。

6. 结论

  • 这些表达学习方法的成功关键因素在于其独特的孪生形状设计。而具有建模不变性特性的孪生网络,则是实现这一核心目标的重要特征。

全部评论 (0)

还没有任何评论哟~