自监督发展的第三阶段
无负样本BYOL与SimSiam
一. BYOL
论文标题:Bootstrap your own latent A new approach to self-supervised Learning
论文连接:https://arxiv.org/abs/2006.07733
论文代码:https://github.com/deepmind/deepmind-research/tree/master/byol
1.Abstract
我们介绍了一种新的自监督图像表示学习方法——Bootstrap Your Own Latent(BYOL)。BYOL依赖于两个神经网络,即在线和目标网络,它们相互作用并相互学习。从图像的增强视图出发,我们训练在线网络预测同一图像在不同增强视图下的目标网络表示。同时,我们使用在线网络的缓慢移动平均值更新目标网络。虽然最先进的方法依赖于负样本对,但BYOL在没有负样本对的情况下实现了新的技术水平。BYOL使用ResNet-50体系结构的线性评估,在ImageNet上达到74.3%的top-1分类准确率,使用更大的ResNet,达到79.6%。我们表明,在转移和半监督基准测试中,BYOL的表现不相上下,甚至优于目前的水平。
2.Introduction
学习良好的图像表示是计算机视觉中的一个关键挑战,因为它允许对下游任务进行有效的训练。人们提出了许多不同的训练方法来学习这种表征,通常依赖于视觉代理任务。其中,最先进的对比方法是通过减少同一图像的不同增强视图表示之间的距离(“正对”)和增加不同图像的增强视图表示之间的距离(“负对”)来训练的。这些方法需要仔细处理负对,要么依赖大批量、内存库,要么依赖定制的挖掘策略来检索负对。此外,它们的性能在很大程度上取决于图像增强的选择。
BYOL以迭代方式引导网络的输出作为增强表示的目标。此外,与对比方法相比,BYOL对图像增强的选择更具鲁棒性;我们怀疑,不依赖负对是其鲁棒性提高的主要原因之一。虽然以前基于自举(bootstrapping)的方法使用了伪标签、聚类索引或少量标签,但我们建议直接自举表示。特别是,BYOL使用两个神经网络,称为在线和目标网络,它们相互作用并相互学习。从图像的增强视图开始,BYOL训练其在线网络,以预测目标网络对同一图像的另一个增强视图的表示。 虽然这一方案可能导致训练崩溃,例如,为所有图像输出相同的向量,但我们的经验表明,BYOL不会收敛到此类情况。我们假设(i)向在线网络添加预测值,以及(ii)使用在线参数的缓慢移动平均值作为目标网络,鼓励在线投影中编码越来越多的信息,并避免崩溃的情况。
我们使用ResNet架构评估BYOL在ImageNet和其他视觉基准上学习的表示方法。根据ImageNet上的线性评估协议,包括在冻结表示的基础上训练线性分类器,BYOL在标准ResNet-50下达到74.3%的top-1精度,在较大ResNet下达到79.6%的top-1精度(图1)。在ImageNet上的半监督和传输设置中,我们获得了与当前技术水平相当或优于当前技术水平的结果。我们的贡献是:
(i)我们介绍了BYOL,一种自监督的表示学习方法,它在ImageNet上的线性评估协议下实现了最先进的结果,而不使用负对。
(ii)我们表明,我们的学习表示在半监督和转移基准上优于最新水平。
(iii)我们表明,与对比方法的BYOL相比,BYOL对批量大小和图像增强集的变化更具弹性。特别是,当仅使用随机裁剪作为图像增强时,BYOL的性能下降要比SimCLR小得多,SimCLR是一个对比度很强的基线。
3.Related work
大多数用于表征学习的无监督方法可分为生成性(generative)方法和区分性(discriminative)方法。表示学习的生成性方法在数据和潜在嵌入上建立分布,并将学习到的嵌入用作图像表示。其中许多方法要么依赖于图像的自动编码,要么依赖于对抗性学习,联合建模数据和表示。生成方法通常直接在像素空间中操作。然而,这在计算上是昂贵的,并且图像生成所需的高水平细节对于表示学习可能不是必需的。
在区分性(discriminative)方法中,对比方法目前在自我监督学习方面取得了最先进的表现。对比方法通过使同一图像的不同视图的表示更接近(“正对”),并将不同图像的视图表示(“负对”)分散开来,避免了像素空间中代价高昂的生成步骤。对比方法通常需要将每个例子与许多其他例子进行比较,才能很好地工作,这就引出了一个问题,即是否有必要使用否定对。
DeepCluster部分回答了这个问题。它在以前版本的表示上使用自举(bootstrapping)来生成下一个表示的目标;**它使用先验表示对数据点进行聚类,并使用每个样本的聚类索引作为新表示的分类目标。**虽然避免使用负对,但这需要一个代价高昂的集群阶段和特定的预防措施,以避免崩溃为琐碎的解决方案。
一些自监督的方法不是对比的,而是依赖于使用辅助的手工预测任务来学习它们的表示。特别是,相对面片预测、彩色灰度图像、图像修复、图像拼图、图像超分辨率和几何变换已被证明是有用的。然而,即使有合适的体系结构,这些方法的表现也优于对比方法。
我们的方法与Predictions of Bootstrapped Latents(PBL)有一些相似之处,PBL是一种用于强化学习(RL)的自监督表示学习技术。**PBL联合训练agent的历史表示和未来观察的编码。观察编码被用作训练agent表示的目标,agent表示被用作训练观察编码的目标。**与PBL不同,BYOL使用其表示的缓慢移动平均值来提供其目标,并且不需要第二个网络。
使用慢速移动平均目标网络为在线网络生成稳定目标的想法受到deep RL的启发。目标网络稳定了Bellman方程提供的自举更新,使其能够稳定BYOL中的自举机制。虽然大多数RL方法使用固定目标网络,但BYOL使用之前网络的加权移动平均值,以便在目标表示中提供更平滑的变化。在半监督设置中,无监督损失与少量标签上的分类损失相结合,从而为培训奠定基础。在这些方法中,平均教师(MT)还使用一个称为教师的缓慢移动平均网络,为一个称为学生的在线网络生成目标。将教师和学生的softmax预测之间的l2一致性损失添加到分类损失中。虽然证明了机器翻译在半监督学习情况下的有效性,但实验中,我们证明了一种类似的方法在去除分类损失时会崩溃。相比之下,BYOL在在线网络的顶部引入了一个额外的预测器,以防止崩溃。最后,在自我监督学习中,MoCo使用慢移动平均网络(动量编码器)来保持从内存库中提取的负对的一致表示。相反,BYOL使用移动平均网络生成预测目标,作为稳定引导步骤的一种方法。我们在实验中表明,这种单纯的稳定效应也可以改进现有的对比方法。
3.Method
先逐步深入介绍所解决的问题:
一些方法通过预测同一图像的不同视图(例如,不同的随机作物)来学习表示。许多这样的方法将预测问题直接投射到表示空间中:图像的增强视图的表示应该能够预测同一图像的另一个增强视图的表示。然而,在表示空间中直接预测可能会导致重叠表示:例如,在视图中保持不变的表示总是完全预测自身(也就是网络很容易对所有输入都输出一个固定值,这样特征差异性就是0,完美符合优化目标,但这不是我们想要的,这就是训练崩塌了)。
对比方法通过将预测问题重新表述为一个判别问题来绕过这个问题:从一个增强视图的表示中,他们学会区分同一图像的另一个增强视图的表示,以及不同图像的增强视图的表示。在绝大多数情况下,这会阻止培训找到重叠的表示。
然而,这种区分性方法通常需要将增强视图的每个表示与许多负面示例进行比较,以找到足够接近的示例,从而使区分任务具有挑战性。因此,在这项工作中,我们的任务是找出这些负面示例对于在保持高性能的同时防止崩溃是否必不可少。
为了防止崩溃,一个简单的解决方案是使用固定的随机初始化网络来生成预测目标。虽然避免了崩溃,但从经验上看,它并不能产生很好的表示。尽管如此,值得注意的是,使用此过程获得的表示已经比初始固定表示好得多。
最后引入核心动机:
在我们的消融研究中,我们通过预测固定的随机初始化网络来应用该程序,并在ImageNet上的线性评估协议上达到18.8%的top-1精度,而随机初始化网络本身仅达到1.4%。这一实验发现是BYOL的核心动机:从一个给定的表示(称为目标),我们可以通过预测目标表示来训练一个新的、潜在增强的表示(称为在线)。从那里,我们可以期望通过迭代此过程来构建一系列质量不断提高的表示,使用后续的在线网络作为进一步培训的新目标网络。实际上,BYOL通过迭代细化其表示来推广此引导过程,但使用在线网络的缓慢移动指数平均值作为目标网络,而不是固定的检查点。
3.1 framework
BYOL的目标是学习
y
θ
y_θ
yθ表示法,然后将其用于下游任务。如上所述,BYOL使用两个神经网络进行学习:在线网络和目标网络。在线网络由一组权重
θ
θ
θ定义,由三个阶段组成:编码器
f
θ
f_θ
fθ、投影器
g
θ
g_θ
gθ和预测器
q
θ
q_θ
qθ,如上图所示。目标网络与在线网络具有相同的体系结构,但使用不同的权重
ξ
ξ
ξ。目标网络提供回归目标来训练在线网络,其参数
ξ
ξ
ξ是在线参数
θ
θ
θ的指数移动平均值。更准确地说,给定目标衰减率
τ
∈
[
0
,
1
]
τ∈ [0,1]
τ∈[0,1],在每个训练步骤后,我们执行以下更新(理解为MOCO的动量),
(1)给定一组图像
x
∼
D
x \sim D
x∼D,BYOL从
x
x
x生成两个增强视图
t
∼
τ
t \sim τ
t∼τ和
t
∼
τ
′
t \sim τ^{\prime}
t∼τ′。
(2)对于第一组视图
v
v
v,在线网络通过representation和projection过程输出
z
θ
z_θ
zθ。第二组视图
v
′
v^{\prime}
v′,目标网络同样经过representation和projection过程输出
z
ξ
′
z^{\prime}_{\xi}
zξ′(注意这两个过程是相同的操作,但并不共享权重)。随后,我们将prediction的输出
q
θ
(
z
θ
)
q_θ(z_θ)
qθ(zθ)和
z
ξ
′
z^{\prime}_{\xi}
zξ′进行l2归一化为
q
θ
ˉ
(
z
θ
)
=
q
θ
(
z
θ
)
/
∣
∣
q
θ
(
z
θ
)
∣
∣
2
\bar{q_θ}(z_θ)=q_θ(z_θ)/||q_θ(z_θ)||_2
qθˉ(zθ)=qθ(zθ)/∣∣qθ(zθ)∣∣2和
z
ˉ
ξ
′
=
z
ξ
′
/
∣
∣
z
ξ
′
∣
∣
2
\bar{z}^{\prime}_{\xi}=z^{\prime}_{\xi}/||z^{\prime}_{\xi}||_2
zˉξ′=zξ′/∣∣zξ′∣∣2。prediction过程仅在在线网络中运行。
(3)最后,我们在归一化预测器和目标投影器之间定义以下均方误差:
在每个训练步骤中,我们执行一个随机优化步骤,用于最小化loss函数,这仅针对于在线网络,而不用于目标网络过程。动力学总结如下:
在训练结束时,我们只保留编码器
f
θ
f_θ
fθ。
3.2 Loss Analysis
下图为BYOL的伪代码:
BYOL跟MOCOV3结构很像,最大区别在于损失的构造和encoder结构。下图为MOCOV3的损失函数,我的理解是对比方法的损失函数分子为正样本对相似度,分母为正样本与其它样本对相似度,这样可以使网络逼近正样本对的相似性。而BYOL的损失为均方误差,它的意思是对batch中每个样本的两个不同增强视图之间需要最大的相似,并不考虑不同样本之间的关系。
3.3 Collapse Analysis
BYOL在对
θ
\theta
θ最小化
L
θ
,
ξ
B
Y
O
L
L^{BYOL}_{\theta,\xi}
Lθ,ξBYOL时没有使用显式项来防止崩溃(例如对比学习中的负样本对),因此BYOL似乎应该收敛到该损失相对于
(
θ
,
ξ
)
(θ,ξ)
(θ,ξ)的最小值(例如,崩溃常数表示)。然而,BYOL的目标参数
ξ
ξ
ξ更新的方向不是
▽
L
θ
,
ξ
B
Y
O
L
\bigtriangledown L^{BYOL}_{\theta,\xi}
▽Lθ,ξBYOL。更一般地,我们假设不存在损失
L
θ
,
ξ
L_{θ,ξ}
Lθ,ξ,因此BYOL的动态是在
θ
θ
θ,
ξ
ξ
ξ上的L的梯度下降。这与GANs相似,在GANs中,鉴别器和发生器参数都没有联合最小化的损耗。因此,这没有先验的原因 为什么BYOL的参数会收敛到最小值L。
BYOL仍然承认存在不理想的平衡,但我们在实验中并没有观察到这种平衡的收敛性。当假设prediction达到最优时,我们假设不期望的平衡是不稳定的。事实上,在这种最佳prediction情况下,BYOL对
θ
θ
θ的更新遵循预期条件方差的梯度。
4. Ablations
∙
\bullet
∙ Batch size,在对比方法中,从小批量中提取负面示例的方法在其批量减小时性能下降。BYOL不使用负面示例,我们希望它对较小的批量更加健壮。
∙
\bullet
∙ Image augmentations,对比方法对图像增强的选择很敏感。例如,SimCLR在消除图像增强中的颜色失真时效果不佳。作为一种解释,SimCLR显示相同图像的作物大多共享其颜色直方图。同时,不同图像的颜色直方图也不同。因此,当对比任务仅依赖随机裁剪作为图像增强时,主要可以通过仅关注颜色直方图来解决。这样,representation没有理由保留颜色直方图以外的信息。
为了防止这种情况,SimCLR在其图像增强集中添加了颜色失真。相反,BYOL将目标表示捕获的任何信息保存到其在线网络中,以改进其预测。因此,即使同一图像的增强视图共享相同的颜色直方图,BYOL仍有动力在其表示中保留其他特征(Gaussian blur and solarization )。因此,我们认为,与对比方法相比,BYOL对图像增强的选择更为稳健。
当从图像增强集中消除颜色失真时,BYOL的性能受影响比SimCLR的性能小得多
∙
\bullet
∙ Bootstrapping, BYOL使用目标网络的投影表示,其权重是在线网络权重的指数移动平均值(exponential moving average),作为其预测的目标。这样,目标网络的权重表示在线网络权重的延迟和更稳定版本。
这样,目标网络的权重表示在线网络权重的延迟和更稳定版本。当目标衰减率为1时,目标网络从不更新,并保持在与其初始化相对应的恒定值。当目标衰减率为0时,目标网络在每一步都会即时更新为在线网络。
衰减率在0.9和0.999之间的所有值在300个时代的性能都高于68.4%的top-1精度。
∙
\bullet
∙ Ablation to contrastive methods,我们从数学公式方面解释SimCLR和BYOL,以更好地理解BYOL对SimCLR的改进来自何处。对比学习的 InfoNCE loss为:
正如SimCLR中一样,我们也使用
(
v
i
,
v
j
)
j
!
=
i
(v_i,v_j)_{j!=i}
(vi,vj)j!=i给出的负例
BYOL的loss可以又下面这个 InfoNCE 扩展公式得出:
其中
α
>
0
α>0
α>0为固定温度(temperature),
β
∈
[
0
,
1
]
β ∈ [0,1]
β∈[0,1]是一个加权系数,B为batchsize,
v
v
v和
v
′
v^{\prime}
v′是batch中的增强视图,其中i为对于某一batch的索引,
v
i
v_i
vi和
v
i
′
v^{\prime}_i
vi′是来自同一图像的增强视图。$β
为
0
代
表
没
有
负
样
本
,
为0代表没有负样本,
为0代表没有负样本,β $为1代表有负样本。
S
θ
S_θ
Sθ量化了增强视图之间的成对相似性。对于任意增强视图
u
u
u,我们定义了
z
θ
=
f
θ
(
g
θ
(
u
)
)
z_{\theta}=f_{\theta}(g_{\theta}(u))
zθ=fθ(gθ(u))和
z
ξ
=
f
ξ
(
g
ξ
(
u
)
)
z_{\xi}=f_{\xi}(g_{\xi}(u))
zξ=fξ(gξ(u))。对于给定的
ϕ
\phi
ϕ和
ψ
ψ
ψ,我们考虑归一化点积
对于SimCLR的损失,用
ϕ
(
u
1
)
=
z
θ
(
u
1
)
\phi(u_1)=z_{\theta}(u_1)
ϕ(u1)=zθ(u1)(无预测头),
ψ
(
u
1
)
=
z
ξ
(
u
2
)
ψ(u_1)=z_{\xi}(u_2)
ψ(u1)=zξ(u2)(无目标网络)。
实验结果:
上图b中消融了预测头,目标网络,参数β。唯一在没有负面示例(即,β=0)的情况下表现良好的变体是BYOL,它同时使用引导目标网络和预测器。在不重新调整温度参数的情况下,将负对添加到BYOL的损耗中会损害其性能。
心得:
核心观点:如何理解带动量的目标网络,以及预测头的作用,两者是为了解决啥不同的问题?这两条分支分开来说都没解决塌陷问题,但是为啥放一起就能解决了?两者有啥协同关系?
塌陷问题:通俗来讲就是网络容易找到了最优解,使得输入与输出的差异为0了。网络学习就是个求高阶解的过程,某个特征可以理解为用n阶解去描述这个特征。当很容易就使得loss为0了,说明很快找到了解,但是解的阶数一定很低,对于某个复杂表征的描述肯定不到位,导致结果很差。
BYOL双分支结构:在线网络分支与目标网络分支,这些改动笼统的说就是为了让这两个分支尽量去学习到不同的表征,使得两个分支学习的表征差异性拉大,那么这样才能使得计算loss时网络能生成更高阶求解过程,从而防止塌陷,同时能学习到更多描述这个特征的表达。
目标网络作用(动量):MoCo中的目标网络用于提供更多负面示例。动量操作可以保持一定的连续性(惯性),但是这个连续性和上述的差异性不冲突。现在目标网络的连续性是保持与原在线网络的连续性,而现在的在线网络是经过一次反向传播之后的在线网络,这样两个分支的差异就出来了。
预测头作用(额外的预测因子):首先对于同一个图像的两种增强作为输入,再经过同样的backbone,其实得到的输出表征应该就是不一样的,网络就是为了学习这其中的差异。但是如果不改变结构,那么loss会拉近这两个表征从而很容易塌陷。所以这个逻辑就不对,于是这里加入了一个预测头,引入网络的非对称性,预测头相当于是拿在线分网络分支去预测目标网络分支,同时可以把预测头解释成一个生成器,这样的训练结构似乎就变得合理了一些。
二. SimSiam
与SimCLR类似,在BYOL基础上再加上梯度停止去解决塌陷问题,网络结构为贡献权重。
论文标题:Exploring Simple Siamese Representation Learning
论文连接:https://arxiv.org/abs/2011.10566
论文代码:
1.Abstract
罗网络已成为无监督视觉表征学习的各种最新模型中的一种常见结构。这些模型最大化了一幅图像的两个增强之间的相似性,但要满足某些条件,以避免崩溃的解决方案。在本文中,我们报告了令人惊讶的实证结果,即简单的暹罗网络可以学习有意义的表示,即使不使用以下任何一种:(i)负样本对,(ii)大批量,(iii)动量编码器。我们的实验表明,损失和结构确实存在坍塌解决方案,但停止梯度操作在防止坍塌方面起着至关重要的作用。我们提供了一个关于停止梯度含义的假设,并通过概念验证实验进一步验证了该假设。
1.Introduction
最近,非监督/自我监督表征学习取得了稳步进展,在多个视觉任务上取得了令人鼓舞的(encouraging)结果。尽管有各种原始动机,但这些方法通常涉及某些形式的暹罗网络(Siamese networks )。暹罗网络是应用于两个或多个输入的权重共享神经网络。它们是比较(包括但不限于“对比”)实体的自然工具。最近的方法将输入定义为一幅图像的两个增广,并在不同条件下最大化相似度。
暹罗网络的一个不受欢迎的琐碎解决方案是所有输出“崩溃”为常数。有几种防止暹罗网络崩溃的一般策略。对比学习,例如SimCLR中的实例,排斥不同的图像(负对),同时吸引同一图像的两个视图(正对)。负对排除了来自解空间的恒定输出。聚类是避免恒定输出的另一种方式,SwAV将在线集群整合到暹罗网络中。除了对比学习和聚类,BYOL只依赖于正对,但如果使用动量编码器,它不会崩溃。
在本文中,我们报告说,简单的暹罗网络在没有上述任何一种防止崩溃的策略的情况下都能令人惊讶地工作良好。我们的模型直接最大化了一幅图像的两个视图的相似性,既不使用负对,也不使用动量编码器。它适用于典型的批量大小,不依赖于大批量培训。
简而言之,我们的方法可以被认为是“没有动量编码器的BYOL”。与BYOL不同,但与SimCLR和SwAV类似,我们的方法直接在两个分支之间共享权重,因此也可以将其视为“没有负对的SimCLR”和“没有在线聚类的SwAV”。有趣的是,SimSiam通过删除其中一个核心组件与每种方法相关。即便如此,SimSiam也不会导致崩溃,并能在比赛中表现出色。
我们的经验表明,坍塌的解决方案确实存在,但停止梯度操作对于防止此类解决方案至关重要。停止梯度的重要性表明,应该有一个不同的基础优化问题正在解决。我们假设隐含有两组变量,SimSiam的行为就像在优化每个变量集之间进行交替。我们提供概念验证实验来验证这一假设。
我们的简单基线表明,暹罗体系结构可能是相关方法取得共同成功的重要原因。暹罗网络可以自然地引入归纳偏差来建模不变性,因为根据定义,“不变性”意味着相同概念的两个观测值应该产生相同的输出。与卷积类似,卷积是一种通过权重共享成功建立平移不变性模型的归纳偏差,权重共享暹罗网络可以通过更复杂的变换(如增广)建立不变性模型。(这一点很值得研究)
2.Related Work
Siamese networks. 暹罗网络是比较实体的通用模型。他们的应用包括签名和人脸验证、跟踪、一次性学习等。在传统用例中,暹罗网络的输入来自不同的图像,可比性由监督决定。
Contrastive learning. 对比学习的核心思想是吸引积极的样本对,排斥消极的样本对。这种方法最近在非监督/自我监督表征学习中得到了推广。使用暹罗网络开发了简单有效的对比学习实例。
在实践中,对比学习方法受益于大量的负面样本。这些样本可以保存在内存库中。在暹罗网络中,MoCo维护负样本队列,并将一个分支转换为动量编码器,以提高队列的一致性。SimCLR直接使用当前批中共存的负样本,需要较大的批大小才能正常工作。
Clustering. 另一类用于无监督表示学习的方法基于聚类。它们在对表示进行聚类和学习预测聚类分配之间交替进行。SwA V通过从一个视图计算分配并从另一个视图预测,将聚类合并到暹罗网络中。SwA V在每个批次的平衡分区约束下执行在线聚类,这由Sinkhorn-Knopp变换解决。
虽然基于聚类的方法没有定义负面的范例,但集群中心可以充当负面的原型。与对比学习一样,基于聚类的方法需要一个内存库、大批量或队列来为聚类提供足够的样本。
BYOL. BYOL直接预测一个视图与另一个视图的输出。这是一个暹罗网络,其中一个分支是动量编码器。其中假设动量编码器对BYOL避免崩溃非常重要,如果拆除动量编码器,则会报告故障结果。我们的实验研究挑战了动量编码器防止坍塌的必要性。我们发现,停止梯度操作是至关重要的。使用动量编码器可以掩盖这一发现,动量编码器总是伴随着停止梯度(因为它不会被其参数的梯度更新)。虽然移动平均行为可以通过适当的动量系数提高精度,但我们的实验表明,它与防止坍塌没有直接关系。
3.Method
同一个编码器网络f(主干网加投影MLP)处理一幅图像的两个增强视图。然后,在一侧应用预测MLP
h
h
h,在另一侧应用停止梯度操作。该模型最大化了双方之间的相似性。它既不使用负对,也不使用动量编码器。
3.1 framework
SimSiam将图像x中的两个随机增强视图
x
1
x_1
x1和
x
2
x_2
x2作为输入。这两个视图由编码器网络
f
f
f进行处理,该编码器网络
f
f
f由backbone(如ResNet)和投影MLP头组成。编码器
f
f
f在两个视图之间共享权重。预测MLP头,表示为
h
h
h,转换一个视图的输出并将其与另一个视图匹配。将两个输出向量表示为
p
1
=
h
(
f
(
x
1
)
)
p_1=h(f(x_1))
p1=h(f(x1))和
z
2
=
f
(
x
2
)
z_2=f(x_2)
z2=f(x2),我们将其负余弦相似性最小化:
这相当于l2规范化向量的均方误差,最大为2。我们将对称损失定义为:
我们的方法的一个重要组成部分是停止梯度(stopgrad)操作。我们通过将上式修改为:
这里,
x
2
x_2
x2上的编码器在第一项中没有从
z
2
z_2
z2接收梯度,但在第二项中从
p
2
p_2
p2接收梯度(对于x1,反之亦然)。
3.2 Baseline settings.
4.Empirical Study
4.1 Stop-gradient
左图所示,在没有停止梯度的情况下,优化器可以快速的找到退化解。为了证明退化是由坍塌引起的,我们研究了输出
z
/
∣
∣
z
∣
∣
2
z/||z||_2
z/∣∣z∣∣2的标准偏差(std)。如果输出塌陷为恒定向量,则每个通道的所有采样的std应为0,从中间图的红色曲线可以观察到这一点。
作为比较,如果输出 z z z具有零平均各向同性高斯分布(可以理解为学到最优了且没塌陷),我们可以表明 z / ∣ ∣ z ∣ ∣ 2 z/||z||_2 z/∣∣z∣∣2的标准差为 1 / d 1/\sqrt{d} 1/d。中间图的蓝色曲线表明在梯度停止时,输出的std将逼近 1 d 1\sqrt{d} 1d。这表明输出不会塌陷,而是分散在一个球体上。右图为KNN精度。
结论。实验表明,存在塌陷的解决方案。首先,塌陷可以通过最小化损失和恒定的输出来观察到。停止梯度的引入意味着应该有另一个正在解决的优化问题。
4.2 Predictor
本模型如果移除预测头将不起作用,
h
h
h是单位映射。
如果将
h
h
h固定为随机初始化,模型也不起作用。但是这种情况不是塌陷引起的。这种情况训练没有收敛,损失依然很高。所以预测器
h
h
h应该被训练到适应此表征。
我们还发现,具有恒定
l
r
lr
lr(无衰减)的
h
h
h可以很好地工作,并产生比基线更好的结果。一种可能的解释是,
h
h
h应该适应最新的表示,因此在表示得到充分训练之前,没有必要强制它收敛(通过减少lr)。
4. 3 Batch Size
batchsize过大效果变差。SimSiam的这种行为与SimCLR和SwA V明显不同。这三种方法都是具有直接权重共享的暹罗网络,但SimCLR和SwA V都需要大量(例如4096)才能正常工作。
我们还注意到,当批次太大时(即使在监督学习中),标准SGD优化器也不能很好地工作,而4096批次的结果较低。我们期望一个专门的优化器(例如,LAR)在这种情况下会有所帮助。然而,我们的结果表明,不需要专门的优化器来防止崩溃。
4. 4 Batch Normalization
上表比较了MLP头(投影头)上的BN配置。删除BN将导致精度较低(不会导致塌陷),原因可能是优化困难。
在投影头的影藏层添加BN将会提高精度至67.4,再添加BN到投影头的输出层还能进一步提高精度至68.1。在此项中,我们还发现 f f f的输出BN中的可学习仿射变换(learnable affine transformation)(比例和偏移)是不必要的,禁用它会导致68.2%的可比精度。
将BN添加到预测MLP h h h的输出中效果不佳。我们发现这与崩溃无关。训练不稳定,损耗振荡。总之合理使用BN可以提高精度,但是无法防止崩溃。
4. 5 Similarity Function
这里对比了余弦相似函数(cosine similarity function)和交叉熵相似(cross-entropy similarity)函数。交叉熵也就是将
D
D
D修改为:
D
(
p
1
,
p
2
)
=
−
s
o
f
t
m
a
x
(
z
2
)
⋅
l
o
g
s
o
f
t
m
a
x
(
p
1
)
D(p_1,p_2)=-softmax(z_2) \cdot logsoftmax(p1)
D(p1,p2)=−softmax(z2)⋅logsoftmax(p1)
交叉熵变量可以在不崩溃的情况下收敛到合理的结果。这表明坍塌预防行为不仅仅与余弦相似性有关。
4. 6 Symmetrization
到目前为止,我们的实验是基于对称损耗。我们观察到SimSiam防止崩溃的行为并不依赖于对称化。我们与不对称变体进行了如下比较:
4. 7 Symmetrization
我们的经验表明,在各种情况下,SimSiam可以在不崩溃的情况下产生有意义的结果。优化器(批量大小)、批量归一化、相似函数和对称化可能会影响准确性,但我们没有看到任何证据表明它们与崩溃预防相关。主要是停止梯度操作起着至关重要的作用。
总结思维导图
这部分还在制作中…