论文:https://proceedings.neurips.cc/paper/2020/file/f3ada80d5c4ee70142b17b8192b2958e-Paper.pdf
代码:https://github.com/Spijkervet/BYOL

Abstract

BYOL包括online和target两个网络,互相之间相互影响相互学习。从图像增强的视角下看online和target网络,在同一张图片,我们训练了online网络去预测target网络的representation。与此同时,我们用online网络的缓慢移动平均值来更新目标网络。与其他自监督网络相比,我们不需要负样本,在imagenet上取得了很好的成绩。
(整体思路就像左右脚踩楼梯不断上升)

Method
image.png

图2: BYOL的框架。BYOL最小化了qθ(z)和sg(z)之间的相似性损失,其中θ是训练的权重,ξ是θ的指数移动平均值,sg表示停止梯度。在训练结束时,除fθ之外的一切都被丢弃,y用作图像表示。

BYOL的目标是学习一种表示法y,然后用于下游任务。如前所述,BYOL使用两种神经网络进行学习:在线网络和目标网络。在线网络由一组权重θ定义,由三个阶段组成:编码器fθ、投影器gθ和预测器qθ,如图2所示。
目标网络具有与在线网络相同的体系结构,但使用不同的权重集ξ。目标网络提供回归目标来训练在线网络,其参数ξ是在线参数θ的指数移动平均。更准确地说,给定一个目标衰减率τ ∈ [0,1],在每个训练步骤之后,我们执行以下更新,
image.png
……
在训练结束时,我们只保留编码器fθ。与其他方法相比,我们仅在最终表示fθ中考虑推理时间权重(inference-time weights)的数量。伪代码:
image.png

关于代码的一些解读:BYOL算法笔记

FAQ

1.为什么相对contrastive learning而言,对batch size相对不敏感呢?因为不存在负样本中的正样本,也不必刻意去拉大和负样本之间的距离。

2.为什么对augmentation的要求也降低了呢?
因为不是严格需要缩小两个正样本的augmentation之间的距离,而是统计上缩小所有的augmentation数据对之间的距离就好,简单理解就是数量多性能提升对单个要求不高,那么自然对augmentation要求也降低了。

3.target network的参数更新
target network的参数更新,采用的是Algorithm 1第11行的更新方式,即动量更新。

那么这就涉及到计算权重的选择问题,这里作者做了对比实验如Table5(a)所示,
T选择1的时候表示target network的参数一直都不变,就是前面motivation提到的结果18.8;
T选择0的时候表示target network的参数完全由online network的参数替换,相当于每个step都要更新一下网络参数,可以看到这个时候效果非常差(其实就是训练崩塌),此时整个网络的训练波动比较大。
因此中间3种T值的选择就是既不让更新速度过快,也不让更新速度过慢而设计的,整体上在每次更新时原target network的参数占比还是更大的。
————————————————
版权声明:本文为CSDN博主「我想静静,」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42764932/article/details/112922985