Exploring Simple Siamese Representation Learning阅读笔记

2020年。
Xinlei Chen, Kaiming He。
Computer Vision and Pattern Recognition (cs.CV); Machine Learning (cs.LG)。

1 动机

  • Siamese network是一种无监督视觉表征学习模型的常见结构。这些模型最大限度地提高了同一图像的两个放大部分之间的相似性。
  • Siamese network的所有输出都“崩溃”成一个常量。目前有几种防止Siamese network崩溃的策略:(1)Contrastive learning,例如SimCLR,排斥负对,吸引正对,负对排除了来自解空间的恒定输出;(2)Clustering,例如SwAV,避免恒定输出;(3)BYOL仅依赖正对,但在使用动量编码器的情况下不会Siamese network崩溃。
  • 作者提出的simple Siamese不使用上述的任一方法(负样本对,大批量,动量编码器),也能有很好的表现。

2 SimSiam架构

2.1 具体流程

Exploring Simple Siamese Representation Learning阅读笔记_第1张图片

  1. 将一幅图像(image x)放大为两个放大视图(x1,x2)。
  2. x1,x2同时经过编码器(encoder f)处理得到f(x1)和f(x2),该encoder f由卷积神经网络和全连接层组成,网络结构相同且共享权重。
  3. 一侧应用预测MLP h(predictor h),将f(x1)转换为h(f(x1))。
  4. 另一侧应用停止梯度运算。
  5. 使两者之间的相似性最大化。

2.2 实现方法

Exploring Simple Siamese Representation Learning阅读笔记_第2张图片

  • x表示输入图像。f表示encoder f。h表示predictor h。
  • x1,x2表示随机增强输入图像。
  • z1,z2表示经过encoder f后的视图。z1=f(x1),z2=f(x2).。
  • p1,p2表示经过predictor h后的视图。p1=h(f(x1)),p2=h(f(x2))。
    Exploring Simple Siamese Representation Learning阅读笔记_第3张图片
  • 上式表示p1和z2余弦相似度的负值。
    Exploring Simple Siamese Representation Learning阅读笔记_第4张图片
  • 所以其对称损失为上式。
    在这里插入图片描述
  • 上式为应用一侧MLP,一侧梯度停止。
    在这里插入图片描述
  • 上式为最终的损失函数。

2.3 相关设置

  • 优化器:SGD进行预训练。学习率具有余弦衰减时间表(cosine decay schedule ),基础lr为0.05,学习率进行线性缩放为lr×BatchSize/256。BatchSize=512,使用8GPU训练。
  • encoder f:ResNet-50作为backbone进行100epochs,Projection MLP具有3层,隐藏层为2048-d,BN层应用于每个FC层,激活函数使用ReLU,输出层无激活函数。
  • predictor h:MLP有两层,输出FC不具有BN和ReLU,隐藏层有BN和ReLU,输入维度为2048,隐藏层维度为512。
  • 在不使用标签的情况下对1000级ImageNet训练集[11]进行了无监督的预训练。通过对训练集中的冻结表示进行监督的线性分类器,然后在验证集中对其进行测试(这是一种常见协议),可以评估预训练表示的质量。

3 实验

3.1 停止梯度

Exploring Simple Siamese Representation Learning阅读笔记_第5张图片
-蓝线表示使用停止梯度,红线表示未使用停止梯度。

  • 左图,在没有停止梯度的情况下,优化器快速找到退化的解并达到-1的最小可能损失。
  • 第二个图,如果输出崩溃为恒定向量,则每个通道的所有样本的std应为零。停止梯度的std位于1/√d附近,这表明输出不会崩溃,而是分散在单位超球面上。
  • 右图绘制了KNN分类器的验证精度。该KNN分类器可以用作进度监控器。借助停止梯度,KNN监视器显示出稳定提高的准确性。

3.2 Predictor

Exploring Simple Siamese Representation Learning阅读笔记_第6张图片

  • 如a,如果不使用Predictor,模型将不起作用,这是由于对称损失的梯度与D(z1,z2)的梯度有相同的方向,且大小按1/2缩放,这就等同于删除了停止梯度,这导致模型崩溃。
  • 如b,如果将h固定为随机初始化,则我们的模型也不起作用。
  • 如c,使用常数lr(无衰减)可以很好地工作,并且产生更好的结果。可能的解释是h应该适应最新的表示形式,因此在充分训练表示形式之前不必强制使其收敛(通过减小lr)。在我们模型的许多变体中,我们观察到具有恒定lr的h会提供更好的结果。

3.3 Batch Size

在这里插入图片描述

3.4 Batch Normalization

Exploring Simple Siamese Representation Learning阅读笔记_第7张图片

  • 如a,精度低可能是由于优化困难。
  • 如d,predictor的输出层加入BN会导致训练不稳定并且损失振荡。

3.5 Similarity Function

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

  • 交叉熵变量可以收敛到合理的结果而不会崩溃。这表明预防崩溃行为不仅与余弦相似性有关。

3.6 Symmetrization

在这里插入图片描述

  • 对称化有助于提高准确性,但与防止崩溃无关。对称化可以对每个图像进行更多预测。

4 构思

在这里插入图片描述

  • 假设SimSiam是期望最大化(EM)类似算法的实现。
  • x表示输入图像,T表示增强技术,F表示网络,θ表示网络F参数,η表示x的另一组特征。
    在这里插入图片描述
  • 我们的目的就是最小化该损失函数,也就是调整网络F参数θ和x的特征η。
    Exploring Simple Siamese Representation Learning阅读笔记_第8张图片
  • 这里将其中一个参数固定,调整另一个参数。
  • t表示交替索引。
  • θ可由SGD解决,使用停止梯度不会反向传播到η上,η是个常量。
    在这里插入图片描述
  • 在增量分布上,η被分配了x的平均表示。
  • SimSiam可以视作上述求解方案的一次性交替近似。

5 比较

在这里插入图片描述

  • SimSiam是一种类似交错优化的方案,其SGD更新间隔为1。基于该假设,所提方案在多步SGD更新下同样有效。

  • 1-step等价于SimSiam。
    Exploring Simple Siamese Representation Learning阅读笔记_第9张图片

  • ImageNet linear classification。

  • 基于标ResNet50,在预训练期间使用了两个224×224视图。
    Exploring Simple Siamese Representation Learning阅读笔记_第10张图片

  • 转移学习。
    Exploring Simple Siamese Representation Learning阅读笔记_第11张图片

  • 将预测器和梯度停止应用到其他架构中。
    在这里插入图片描述

  • 对于SiamCLR,停止梯度和额外预测器的引入大概是另一个潜在的优化问题的结果。它不同于对比学习问题,因此这些额外的组件可能无济于事。
    在这里插入图片描述

  • 添加预测变量也无济于事。消除停止梯度(以便对模型进行端到端训练)会导致分歧。作为基于聚类的方法,SwAV本质上是交替表述。

你可能感兴趣的:(其他论文阅读,神经网络,深度学习,原力计划)