论文解读(BYOL)《Bootstrap Your Own Latent A New Approach to SelfSupervised Learning》

作者: 希望每天涨粉

  论文标题:Bootstrap Your Own Latent A New Approach to Self-Supervised Learning
  论文方向:图像领域
  论文来源:NIPS2020
  论文链接:https://arxiv.org/abs/2006.07733
  论文代码:https://github.com/deepmind/deepmind-research/tree/master/byol


1 介绍

  BYOL,全称叫Bootstrap Your Own Latent,它在迭代的过程中引导网络的输出作为目标,训练过程中不需要negative pairs。它的特点就是:(1)不需要negative pairs;(2)对不同的batch size大小和数据增强方法适应性强。

  使用BYOL的效果:使用标准的 ResNet 达到 74.3% top-1 的准确率和使用large ResNet 达到 79.6% top-1的准确率。

      

  贡献:

  1. 引入了一种自监督的表示学习方法BYOL,在不使用负对的情况下,在ImageNet上的线性评估协议下获得最先进的结果。
  2. 在 半监督 和 transfer基准测试中,们所学的表现优于最先进的水平。  
  3. BYOL对批量和图像增强集的变化更有弹性。当仅使用随机裁剪作为图像增强时,BYOL的性能下降比强对比基线SimCLR小得多。

  Q: linear evaluation protocol?

  Q: frozen representation


2 BYOL框架

  BYOL框架图:

      

  如下图 2 所示,BYOL 由两个网络组成,一个称为online network,另一个称为 target network 。online network由三部分构成:encoder $f{\theta}$, projector $g{\theta} $ 和 predictor $q{\theta}$;target network 和 online network 有相似的结构,唯一的不同就是它少了一个 predictor,它的 encoder 和 projector 分别用 $f{\xi}$ 和 $ g_{\xi }$ 表示。

  两个网络训练方式:

*

  • online network 的参数 $\theta$ 用一般的梯度下降更新;
  • target network 的参数 $\xi$ 不通过梯度下降来更新,而是由 $\theta$ 的指数移动平均($\xi \leftarrow \tau \xi+(1-\tau) \theta$)来更新。
  • 即 $\begin{array}{l} \theta \leftarrow \text { optimizer }\left(\theta, \nabla{\theta} \mathcal{L}{\theta, \xi}^{\mathrm{BYOL}}, \eta\right) \\ \xi \leftarrow \tau \xi+(1-\tau) \theta \end{array}$

  online network 在执行梯度下降更新时, 计算 loss:

    $\mathcal{L}{\theta, \xi}^{B Y O L}=\mathcal{L}{\theta, \xi}+\widetilde{\mathcal{L}}_{\theta, \xi} $

  其中 $ \mathcal{L}{\theta, \xi}=2-2 \cdot \frac{\left\langle q{\theta}\left(z{\theta}\right), z{\xi}^{\prime}\right\rangle}{\left\\|q{\theta}\left(z{\theta}\right)\right\\|{2} \cdot\left\\|z{\xi}^{\prime}\right\\|{2}}$ 。 $\widetilde{\mathcal{L}}{\theta, \xi}$ 是 $ \mathcal{L}_{\theta, \xi}$ 的对称形式:$ \mathcal{L}$ 的输入是 $ t$ 的 prediction 和 $ t^{\prime}$ 的 projection; $\widetilde{\mathcal{L}}$ 的输入是 $ t^{\prime} $ 的prediction 和 $ t$ 的 projection,相当于交叉预测对方的 projection 。

  为什么加入了一个 target network ?

  contrastive learning 会陷入 collapse(所有图像的表征向量都一样),这在负样本不足的情况下很容易产生。

  BYOL

*

  • 借鉴了 Mean Teacher 中的指数移动平均策略;
  • 交叉预测 projection。target network可以看作是对 online network 学习的总结,历史经验往往能使模型更加稳定。交叉预测 projection 就是使 online netork 与历史经验保持一定的联系,从而得到更平稳的训练过程。

  算法流程:

      


3 启发

      

  联系GAN,两个网络学到的表示要尽可能相同,但总互相干扰(动量法)。


4 实验

4.1 Linear evaluation on ImageNet

      

  对比之前的自监督方法,BYOL(采用 ResNet encoder (1 $\times$))效果更好,在 Top-1 上达74.3的准确率,在 Top-5 上达 91.6 的准确率。更换 encoder 框架后效果依然很好。

      

  显然无监督方法 BYOL 的效果要比自监督的 BYOL 效果要差,但是比大部分其他监督方法要好。

4.2 Semi-supervised training on ImageNet

      

  在获得表示后,使用训练集上的 label 对BYOL's representation 进行微调。

  (a) 可以看到 BYOL 在 Top-1 和 Top-5上的效果比InstDisc、PIRL、SimCLR效果要好。

  (b) 可以看到采用不同的 Encoder Architecture 效果依然显著。

      

  图 4 采用不同的微调率(1% and 10%),使用 ResNet-50(1 $\times$ ) 在不同 ImageNet traininjg data 上的表现。

  从图 4 可以看出有监督方法在 training data少的情况下表现是很糟糕的,使用全部 training data 的效果还是比较好的,但是无监督方法仍然可以通过微调达到一个可以媲美有监督方法的实验结果。

4.3 Transfer to other classification tasks

      

      

4.4 Ablation Study

      

  这里采用不同的 Batch size 和SimCLR做消融实验。

  从图中可以看出SumCLR对Batch size 的变化更加敏感,因为它需要更多的负样本。BYOL对样本数不是很敏感,这是它的优势。


5 总结

    • BYOL learns it's representation by predicting previous versions of its outputs, without using negative pairs.
    • BYOL bridges most of the remaining gapbetween self-supervised methods and the supervised learning baseline.
    • Sensitive to batch size \& opimizer choices

6 参考

  • [解读]
  • [视频]

    原文创作:希望每天涨粉

    原文链接:https://www.cnblogs.com/BlairGrowing/p/15255409.html

更多推荐

更多
  • CopyOnWriteArrayList 读写分离,弱一致性 CopyOnWriteArrayList 读写分离,弱一致性,为什么会有CopyOnWriteArrayList?,什么是弱一致性,fail-safe特性,总结,t实现的List都是非线程安全的,于是就有了Vector,它是基于Arra
  • Docker常见问题-MAC电脑运行docker-compose up-d报File "docker/transport/unixconn py", line 43, 在本地有一个 docker-compose.yml 文件,要运行它docker-compose up -d结果报错了,File "docker/transport/unixconn.py", line 43, in connect ...
  • Python 常见问题-pip install报错ERROR: In--require-hashes mode, all requirements poetry 1.1.8 执行了命令,导出 requirements.txt,poetry export,每个库都有 hash 加密字段 执行 pip install 命令,Collecting cffi>=1.1 8 29.38 ...
  • Docker-解决 docker push 上传镜像报:denied: requested access to the resource is denied 的问题 ,Docker - 解决 docker push 上传镜像报:denied: requested access to the resource is denied 的问题,,问题背景,解决方案, ``` ![](https://sta
  • Docker-解决 Error response from daemon: driver failed programming external connectivity on endpoint tomcat9999 ,Docker - 解决 Error response from daemon: driver failed programming external connectivity on endpoint tomcat9999,,问题背景,
  • Docker-解决在容器内删除和主机映射的目录而报错 rm: cannot remove 'webapps': Device or resource busy 的问题 ,Docker - 解决在容器内删除和主机映射的目录而报错 rm: cannot remove 'webapps': Device or resource busy 的问题,,问题背景,问题排查,解决问题,local/tomcat/we
  • Docker-解决 gitlab 容器上的项目进行 clone 时,IP 地址显示一串数字而不是正常 IP 地址的问题 ,Docker - 解决 gitlab 容器上的项目进行 clone 时,IP 地址显示一串数字而不是正常 IP 地址的问题,,问题背景,问题排查,解决方案,atic.oomspot.com/image/bost/2021/189687
  • Docker-解决同步容器与主机时间报错:Error response from daemon: Error processing tar fileexit status 1: invalid symlink "/usr/share/zoneinfo/UTC"-> " /usr/share/zoneinfo/Asia/Shanghai" ,Docker - 解决同步容器与主机时间报错:Error response from daemon: Error processing tar file(exit status 1): invalid symlink "/usr/sh
  • Docker-解决容器内获取的时间和主机的时间不一样的问题 ,Docker - 解决容器内获取的时间和主机的时间不一样的问题,,问题背景,解决方案,1/1896874-20201112213159066-2047342389.png) 可以看到,时间是完全不一样的 解决方案 ---- 在运
  • Docker-解决重新进入容器后,环境变量失效的问题 ,Docker - 解决重新进入容器后,环境变量失效的问题,,问题背景,解决办法,扩展,设置的环境变量失效了 解决办法 ---- 将环境变量设置在 /root/.bashrc 优点 重启容器之后,文件内的环境变量仍然生效 缺点
  • 近期文章

    更多
    文章目录

      推荐作者

      更多