2024-10-16
DL论文
00

目录

BYOL的主要创新点
相关工作
BYOL 架构
1. 双网络结构
2. 数据增强与视图生成
3. 前向传播与表示学习
4. 预测与损失计算
5. 参数更新
6. 训练细节与停止梯度
7. 最终模型
总结
BYOL 效果
BYOL是不是自蒸馏?
BYOL 与自蒸馏方法
自蒸馏方法的含义
自蒸馏方法的优点
BYOL 和其他方法的区别
总结
为什么自蒸馏有效
自蒸馏的教师模型更新慢于学生模型,为啥不是更差呢
1. 提供稳定目标,避免震荡
2. 引入延迟,避免过度拟合当前状态
3. 稳定的“前进方向”,帮助逐步改进
4. 减少模型崩溃风险
5. 缓慢更新并不意味着质量低
总结

BYOL的主要创新点

  1. 无负样本对的自监督学习:与现有的对比学习方法不同,BYOL在训练过程中不依赖于负样本对。传统的对比学习方法需要正样本对和负样本对来学习表示,而BYOL通过引导网络本身的输出来构建目标表示,避免了对负样本的依赖。

  2. 双网络结构的协同学习:BYOL使用两个神经网络——在线网络(online network)和目标网络(target network)。在线网络通过预测目标网络在不同增强视图下的表示来进行学习,而目标网络的参数是在线网络的慢速移动平均。这种双网络的设置使得模型在学习过程中可以相互强化,避免了崩塌解(即所有图像输出相同的表示)的出现。

  3. 对图像增强选择的鲁棒性:相比于其他对比方法,BYOL对图像增强的选择更具鲁棒性。它在不同的图像增强设置下,特别是在仅使用随机裁剪的情况下,表现出更少的性能下降。这表明BYOL在图像增强策略的变化下更加稳定。

  4. 高效的表示学习效果:BYOL在ImageNet的线性评估协议下达到了最先进的结果,并且在半监督和迁移学习基准测试中表现优异。即使在没有负样本对的情况下,BYOL仍然实现了与对比学习方法相媲美甚至更好的性能。

  5. 避免崩塌解的策略:BYOL通过在在线网络中增加一个预测器(predictor)和使用在线网络参数的慢速移动平均作为目标网络,有效地避免了崩塌解的发生。这种策略使得在线网络能够逐步学习到更丰富的表示,从而提高了模型的学习效率和效果。

总体而言,BYOL的创新之处在于突破了对比学习方法对负样本的依赖,并通过独特的双网络架构和崩塌解规避策略实现了更稳健且高效的自监督表示学习。

PS: 一篇博主在实验** [6]中发现BYOL依靠的还是“对比”。他们在复现BYOL的时候直接基于了MoCo的代码,结果发现效果还没有随机的好,原来是因为MLP中没有加BN。如果深究BN的作用,就会发现它重新调整了输出的分布,避免坍缩,同时BN也在隐式地进行对比,去除batch内样本相同的部分,保留不同的特征 **。

相关工作

大多数用于表示学习的无监督方法可以分为生成式和判别式两类 [23, 8]。生成式方法通过在数据和潜在嵌入之间建立分布,并使用学习到的嵌入作为图像表示。许多生成式方法依赖于图像的自编码 [24, 25, 26] 或对抗学习 [27],共同建模数据和表示 [28, 29, 30, 31]。生成式方法通常直接在像素空间中操作,这种操作计算成本高昂,并且用于图像生成所需的高细节可能对于表示学习并不是必需的。

在判别式方法中,目前对比学习方法 [9, 10, 32, 33, 34, 11, 35, 36] 在自监督学习中实现了最先进的性能 [37, 8, 38, 12]。对比学习方法通过将同一图像的不同视图的表示拉近(“正样本对”),并将来自不同图像的视图的表示拉远(“负样本对”)来避免像素空间中的代价高昂的生成步骤 [39, 40]。对比学习方法通常需要将每个样本与许多其他样本进行比较才能有效 [9, 8],这引发了是否需要负样本对的讨论。

DeepCluster [17] 部分解答了这个问题。它使用其表示的前一版本的自举来生成下一步表示的目标;具体来说,它使用之前的表示对数据点进行聚类,并使用每个样本的聚类索引作为新表示的分类目标。虽然避免了负样本对的使用,但这种方法需要代价高昂的聚类阶段,并且需要采取特定的措施以避免收敛到平凡解。

一些自监督方法并不是对比式的,而是依赖于使用辅助手工构建的预测任务来学习其表示。特别地,预测相对位置 [23, 40]、灰度图像的颜色恢复 [41, 42]、图像修补 [43]、图像拼图 [44]、图像超分辨率 [45] 和几何变换 [46, 47] 被证明是有用的。然而,即使有合适的架构 [48],这些方法在性能上仍然被对比学习方法超越 [37, 8, 12]。

我们的方法与“预测自举潜在变量”(Predictions of Bootstrapped Latents, PBL, [49])有一些相似之处,这是一种用于强化学习 (RL) 的自监督表示学习技术。PBL 同时训练代理的历史表示和未来观测的编码。观测编码被用作目标来训练代理的表示,而代理的表示则用作目标来训练观测编码。与 PBL 不同的是,BYOL 使用其表示的缓慢移动平均来提供目标,并且不需要第二个网络。

使用缓慢移动平均的目标网络来为在线网络生成稳定目标的想法受到深度强化学习 [50, 51, 52, 53] 的启发。目标网络稳定了由 Bellman 方程提供的自举更新。这使得它们在 BYOL 的自举机制中非常有吸引力,以稳定其过程。尽管大多数强化学习方法使用固定的目标网络,BYOL 通过前网络的加权移动平均(如 [54] 中所述)来提供目标表示的平滑变化。

在半监督学习的场景中 [55, 56],无监督损失与少量标签的分类损失相结合,以便在训练中提供基础 [19, 20, 57, 58, 59, 60, 61, 62]。在这些方法中,mean teacher (MT) [20] 也使用了一个缓慢移动平均的网络(称为教师网络),用于为在线网络(称为学生网络)提供目标。添加了教师网络和学生网络的 softmax 预测之间的一致性损失,与分类损失结合使用。尽管 [20] 展示了 MT 在半监督学习中的有效性,但在第 5 节中我们展示了,在去除分类损失的情况下,类似的方法会发生崩溃。相比之下,BYOL 在在线网络之上引入了额外的预测器,以防止这种崩溃现象。

最后,在自监督学习中,MoCo [9] 使用缓慢移动的平均网络(动量编码器)来维持从记忆库中提取的负样本对的一致表示。而 BYOL 则使用移动平均网络来生成预测目标,以此稳定自举步骤。我们在第 5 节中展示了这种简单的稳定效果也可以改进现有的对比方法。

BYOL 架构

image.png

BYOL(Bootstrap Your Own Latent)是一种自监督学习方法,其训练方式独特,不依赖负样本对,而是通过自举(bootstrap)机制逐步改进表示。具体来说,BYOL 使用两个网络(在线网络和目标网络)来进行训练。以下是其训练过程的主要步骤:

1. 双网络结构

BYOL 包含两个神经网络:在线网络(online network)和目标网络(target network)。这两个网络结构相同,但参数独立。在线网络的参数是 θ\theta,目标网络的参数是 ξ\xi

  • 在线网络 包括三个模块:

    • 编码器 fθf_\theta:将输入图像变换为表示(representation)。
    • 投影器 gθg_\theta:将表示投影到更低维的空间,以便于后续计算。
    • 预测器 qθq_\theta:生成一个预测输出,用于与目标网络的投影进行比较。
  • 目标网络 与在线网络的结构相同,但没有预测器。目标网络的参数是在线网络参数的指数移动平均更新(EMA),确保其更新速度较慢,从而保持一定的稳定性。

2. 数据增强与视图生成

BYOL 从数据集中随机采样一张图像,然后通过两种不同的数据增强(如裁剪、翻转、颜色扰动等)生成该图像的两个不同视图。这两个视图被输入到在线网络和目标网络中,用于学习表示。

3. 前向传播与表示学习

  • 第一个增强视图 vv 输入在线网络,生成表示 yθ=fθ(v)y_\theta = f_\theta(v),然后通过投影器生成投影 zθ=gθ(yθ)z_\theta = g_\theta(y_\theta)
  • 第二个增强视图 vv' 输入目标网络,生成目标表示 yξ=fξ(v)y_\xi' = f_\xi(v'),再通过投影器生成目标投影 zξ=gξ(yξ)z_\xi' = g_\xi(y_\xi')

4. 预测与损失计算

  • 在线网络生成的投影 zθz_\theta 通过预测器 qθq_\theta 进行预测,得到预测结果 qθ(zθ)q_\theta(z_\theta)
  • qθ(zθ)q_\theta(z_\theta)zξz_\xi' 进行 2\ell_2 归一化,然后计算二者之间的均方误差损失:
    Lθ,ξ=qθ(zθ)zξ22=22qθ(zθ),zξL_{\theta, \xi} = \| q_\theta(z_\theta) - z_\xi' \|_2^2 = 2 - 2 \cdot \langle q_\theta(z_\theta), z_\xi' \rangle
  • 为对称化损失,BYOL 还会将增强视图交换(即将 vv' 输入在线网络,将 vv 输入目标网络),计算另一个损失 L~θ,ξ\tilde{L}_{\theta, \xi}。最终损失为:
    LBYOL=Lθ,ξ+L~θ,ξL_{\text{BYOL}} = L_{\theta, \xi} + \tilde{L}_{\theta, \xi}

5. 参数更新

  • 使用随机梯度下降(SGD)或类似优化器,仅针对在线网络的参数 θ\theta 优化损失 LBYOLL_{\text{BYOL}},而目标网络的参数 ξ\xi 通过 EMA 更新:
    ξτξ+(1τ)θ\xi \leftarrow \tau \xi + (1 - \tau) \theta
    其中,τ\tau 是衰减因子,控制目标网络的更新速度(通常设定在 0.99 或更高,以保持稳定性)。

6. 训练细节与停止梯度

  • 在目标网络中,梯度是“停止”的,即不会反向传播梯度到目标网络的参数,这种设计避免了目标网络直接受到在线网络参数更新的影响。
  • BYOL 通过迭代上述过程,不断更新在线网络的参数和目标网络的 EMA,使得在线网络能够逐步学习到稳定而有用的表示。

7. 最终模型

训练结束后,只保留在线网络的编码器部分 fθf_\theta,用于下游任务。预测器和投影器部分在最终模型中通常不保留,因为它们主要用于自监督学习阶段的优化,而非下游任务的实际表示使用。

总结

BYOL 的训练方法通过自举过程,不需要负样本对,从而避免了对比学习中的一些缺点(如对大批量数据和复杂的负样本选择的依赖)。它通过在线网络和目标网络的协同训练,实现了无监督条件下的高质量表示学习。

BYOL 效果

image.png

BYOL是不是自蒸馏?

BYOL(Bootstrap Your Own Latent)不是第一个提出这种类型的自监督学习方法,但它是最早成功在无监督学习中应用自蒸馏(self-distillation)概念的模型之一。自蒸馏方法是一种特定的机器学习策略,其特点是模型在没有外部教师模型的情况下,通过不断改进自己的表示来进行学习。

BYOL 与自蒸馏方法

BYOL 属于自蒸馏方法。自蒸馏是指模型通过自我监督的方式进行训练,将模型自身的一个版本(通常是经过平均平滑的版本)作为“教师”,为模型当前版本的参数提供学习目标。在这种方法中,不再需要使用外部教师模型,而是通过内部产生的目标(即,目标网络)来指导在线网络的学习过程。自蒸馏的目的是为了改善模型性能并提高其稳定性。

自蒸馏方法的含义

自蒸馏(self-distillation)方法可以理解为一种无监督或半监督的知识蒸馏(knowledge distillation)变体,主要包括以下特点:

  1. 内部教师:自蒸馏不需要额外的教师模型,而是通过模型的历史状态或经过平滑处理的版本来作为当前模型的教师。例如,在 BYOL 中,目标网络是在线网络的一个指数移动平均(EMA)版本,这个目标网络提供了稳定的训练目标,相当于一个内部教师。

  2. 去负样本对比:传统的自监督学习,如 SimCLR 和 MoCo,依赖于对比学习中的正负样本对,以避免表示崩溃。但 BYOL 没有使用负样本对,而是依靠自蒸馏的方式来获得高质量表示。在这种方法中,模型通过预测其自身的不同版本来学习,从而避免了对比学习的需求。

  3. 持续优化:通过内部教师的不断更新,模型可以反复蒸馏自己,使得在每次迭代中,模型变得更加稳健且具有更强的泛化能力。在 BYOL 中,这种机制表现为:在线网络不断学习目标网络的表示,然后目标网络以指数平滑的方式向在线网络靠近,从而形成自我改进的循环。

自蒸馏方法的优点

  • 避免外部教师:自蒸馏方法不需要额外的教师网络,从而降低了对额外资源的依赖。
  • 提高稳定性:由于目标是内部生成的,模型可以在没有负样本对的情况下避免崩溃,这提升了模型训练的稳定性。
  • 自监督学习的适用性:自蒸馏方法特别适合自监督学习,因为它可以在没有标签的情况下生成稳定而有用的表示。

BYOL 和其他方法的区别

在 BYOL 之前的许多自监督学习方法,如 SimCLR 和 MoCo,依赖于对比学习(contrastive learning)机制,需要构造正负样本对,以使得同类样本(正样本对)在表示空间中更接近,不同类样本(负样本对)更远离。相比之下,BYOL 采用自蒸馏策略,摒弃了负样本对,依赖于在线网络和目标网络的自我学习更新循环来避免崩溃。

虽然 BYOL 并不是第一个自蒸馏的尝试,但它是第一个在完全自监督学习场景中成功避免对比损失(contrastive loss)且获得优异表现的方法之一。因此,它在自监督学习和自蒸馏领域具有里程碑意义。

总结

自蒸馏是一种内部教师与学生之间的蒸馏过程,通过反复自我蒸馏来增强模型表示。BYOL 采用了这种自蒸馏方法,并通过目标网络和在线网络之间的动态更新机制,有效避免了传统对比学习中的负样本对需求,从而推动了自监督学习方法的发展。

为什么自蒸馏有效

  1. 稳定性提升:通过使用模型的平滑版本(如指数移动平均)作为目标,自蒸馏提供了更稳定的训练目标。相比于直接学习当前版本的自身表示,这种平滑处理可以减少训练中的噪声波动,稳定了训练过程。BYOL 中的目标网络就使用了在线网络的指数移动平均,从而提供了平滑且稳定的目标表示。

  2. 信息保留与丰富性:自蒸馏利用了模型自身的历史知识或平滑的变体,这些内部目标通常能捕捉到更加细腻的特征和信息。因为模型在每次迭代中不断改进自己的表现,自蒸馏帮助模型逐步积累知识,提高了特征表示的丰富性。

  3. 避免过度拟合:传统的监督学习和对比学习往往依赖于大量标注数据或负样本对,而自蒸馏则可以在没有外部监督的情况下实现高效训练。这种方法不依赖负样本对,减少了模型过度拟合特定样本的风险。在 BYOL 中,尽管没有使用负样本对,模型仍然能够学习到稳定且有用的表示。

  4. 内在的正则化效果:自蒸馏实际上引入了一种隐式的正则化。因为目标网络是缓慢更新的,它不会立即反映在线网络的最新状态,这使得在线网络不会简单地复制目标网络,从而避免了崩溃到一个恒定表示的可能性。

  5. 自引导的递进学习:自蒸馏提供了一种逐步改进的机制,模型可以通过多个迭代来不断自我增强。这类似于一种递进学习的过程,每次迭代都在现有知识的基础上进一步精炼。BYOL 就是利用在线网络和目标网络的动态交替更新,实现了这种逐步自我改进。

自蒸馏的教师模型更新慢于学生模型,为啥不是更差呢

自蒸馏的教师模型更新慢于学生模型,为啥不是更差呢,为啥教师模型更新缓慢还能起指导作用?

自蒸馏中的教师模型通常更新比学生模型缓慢,这种设计在初看上去似乎会限制教师模型的质量,但实际上,这种缓慢更新的策略在自监督学习中具有独特的优势。以下是教师模型更新缓慢仍然能够起到指导作用的几个原因:

1. 提供稳定目标,避免震荡

教师模型更新缓慢意味着它是学生模型的平滑版本,这可以为学生模型提供一个稳定的学习目标。相比于频繁变化的目标,一个逐步变化的教师模型减少了训练中的随机性和不确定性,有助于避免学生模型在优化过程中的震荡。

这种稳定性尤其在自监督学习中重要,因为自监督学习通常缺乏显式的监督信号。一个稳定的教师模型能够防止学生模型追逐不稳定的短期特征,从而更好地学习到数据的整体结构和特征。这种机制在 BYOL 中尤为关键,因为 BYOL 没有负样本对,若目标网络不够稳定,在线网络就容易崩溃到一个无效的常数解。

2. 引入延迟,避免过度拟合当前状态

缓慢更新的教师模型为学生模型提供了“历史”信息,而不是即时的反馈。这种延迟能够帮助学生模型避免过度拟合当前状态的噪声或局部特征。换句话说,教师模型的缓慢更新使得它不会立即反映学生模型的最新状态,从而强制学生模型在多个训练步骤上保持一致。

例如,如果教师模型立即更新为学生模型的状态,那么学生模型很可能会陷入自我复制的循环,特别是在没有负样本对的情况下。缓慢更新的策略相当于引入了一种正则化,使学生模型在多个时间步长上学到的信息保持连贯性,从而增强了模型的鲁棒性。

3. 稳定的“前进方向”,帮助逐步改进

缓慢更新的教师模型提供了一个方向上的指导,而不是瞬时的准确性。这类似于强化学习中的“目标网络”(target network),其缓慢更新使得模型在优化过程中有一个相对固定的目标,有助于减小训练过程中的波动并防止崩溃。在 BYOL 中,目标网络更新得较慢,使得学生模型能够在相对稳定的“前进方向”上逐步改进,从而在长期内提升表示的质量。

缓慢的教师模型充当一种“锚点”,它在学生模型试图改变表示时提供了稳定的参考。这样,即使学生模型短期内尝试多种不同的表示方向,教师模型的存在可以帮助它逐步朝向更稳定的目标发展。

4. 减少模型崩溃风险

在自监督学习中,模型崩溃(collapse)是一个常见的问题,即所有输入的表示趋于恒定,失去辨别力。更新缓慢的教师模型能够有效地防止这种崩溃现象。由于教师模型不会立即复制学生模型的最新状态,它能保持一定的多样性和稳定性,防止学生模型陷入单一的解。

BYOL 中的目标网络更新缓慢,这样即使学生模型当前出现一些崩溃迹象(如表示变得过于相似),目标网络依然可以提供足够的多样性来引导学生模型返回到有辨别力的表示。

5. 缓慢更新并不意味着质量低

缓慢更新的教师模型并不意味着质量更差。相反,它更像是学生模型表示的“长时间平均”,可以去除短期波动和随机性,保留整体趋势。因此,这种平滑后的表示往往更加稳健,避免了学生模型对噪声和局部极值的过度反应。最终,教师模型可以帮助学生模型更快地收敛到一个高质量的解。

此外,教师模型的缓慢更新通常是通过指数移动平均(EMA)实现的,这样即使教师模型更新缓慢,但它仍然能逐步追随学生模型的进步,从而保证教师模型的质量逐步提升。这也意味着教师模型会随着学生模型的优化而逐步变好,并为学生模型提供逐步改进的目标。

总结

教师模型更新缓慢并不会导致其质量更差,相反,这种策略能够提供一个稳定且逐步改进的指导目标,帮助学生模型在长时间内保持稳定的优化方向,防止模型崩溃并提高表示的质量。这也是 BYOL 等自监督学习方法在没有负样本对的情况下仍然能取得优异表现的原因之一。缓慢更新的教师模型在自蒸馏方法中有效地充当了稳定器和正则化器的角色。

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!