BYOL 阅读笔记 | Bootstrap Your Own Latent: A New Approach to Self-Supervised Learning

背景

首先,本质上这也是一个关于对比学习(Contrast Learning)的方法。关于对比学习的一些背景介绍可以看一下MoCo的笔记。

对于对比学习,我们希望最终的网络有两个能力:

  • 将同样本的不同view/arg在特征空间尽量靠近。alignment
  • 将不同样本在特征空间内尽量分开。uniformity/dispersion

BYOL做了一件反直觉的事情,在训练中把负样本的对比部分给去掉了。按照直觉,我们会觉得,网络失去了将不同类的特征向量分开(dispersion)的能力,那么网络很容易得到退化解/奇异解(collapsed solution/trivial solution),但是BYOL并没有这样。这很大程度上因为Moving Average/Mean Teacher(也类似于MoCo的momentum方法),下文详述。

主要贡献/动机

动机1 - 结构改进

  • 类似于MoCo v2,BYOL也添加了两个MLP,为提升性能
  • BYOL添加了2个MLP之后,额外添加了一个predictor,增强灵活性

image-20210122182418662

动机2 - 去除负样本

为什么想到去除负样本呢?

  • 取负样本的开销很大,memory bank、MoCo这些工作都在尝试取得尽可能多的负样本。
  • 直觉 -- 不取负样本的话无法完成对比学习的任务——不同样本之间的分离,容易获得退化解。

文中给了一个简单的证明,如果想避免坍缩,为什么不能用梯度下降来优化我们的目标。

1)假设,预测器predictor最优时,满足如下条件

image-20210122185316043

2)更新θ根据

image-20210122185530918

3)若要最小化image-20210122185710592

a. 对于z\_θ

image-20210125145811399

显然成立,所以z\_θ不会坍缩。online网络我们用梯度下降更新参数。

b.对于z'_ξ

显然一个常数解会令

image-20210125150121472

最小,容易坍缩。/target网络我们采用image-20210122190133329更新参数。

动机3 - Moving Average / mean teacher

其实和MoCo的momentum实际上是一样的,target是online的缓慢收敛smooth的版本

image-20210125145032338

首先我们看一个ema曲线的示例,蓝点是原始数据,红线是拟合的数据,绿色的线是EMA曲线,可以看出特点很明显。

image-20210125145000259

文中给出了一个实验,来说明τ对效果的实验。

image-20210125145141283

这个实验说明什么呢:

  • Student不能学的太快了,学得太快会很容易退化。
  • Student也不能学的太慢,学得太慢会收敛很慢。
  • 一个随机初始化的CNN很可能本来就具有将不同样本在特征空间分离的能力,只不过可能不强,我们需要一个速度适中、平缓的一个学习过程,来保持这种能力。

动机4 - 左脚踩右脚

  • 一个有趣的现象

文章第3部分的第2段(To prevent...)指出,随机初始化网络A、B,A作为teacher,A随机初始化之后的性能为Top1-1.4%。固定A的参数,使用x的不同aug版本,x1、x2作为两个网络的输入,使用A的网络输出作为B学习的pseudo label,引导B的学习,最终B达到Top1-18.8%。这个动机很神奇,如果可以无穷无尽的这样下去,C再跟B学,D再跟C学... 性能是否会非常高。

  • 优化 - 小碎步交替进行,螺旋升天

每次迭代x增强为x1,x2;

输入x1到online,x2到target,算一个loss;

输入x2到online,x1到target,再算一个loss;

然后把两个loss加在一起,更新online的参数,之后mean teacher更新target的参数。

image-20210125151053329

image-20210125151106520

image-20210125151126008

  • Loss防止退化

这是一个cos相似度,只关心方向,不关心大小,也防止MSE把feature的scale都拉倒接近0。

  • 如何理解这种优化?

相当于将上一段提到的每次提升一大截过程,变成了一个小碎步交替上升的过程。如何解释呢,上段中提到的训练过程,在整个训练的很多次迭代中A的参数都固定,然后B根据A的指导进行参数更新。而Moving Average策略,每一次迭代中,Online网络(相当于A)参数都进行了更新,Target网络(相当于B)都根据online网络的参数进行momentum更新。这样,相当于A网络在训练B的同时,也在提升自身的性能。

另外EMA策略也相当于让target慢步跟上,也算是小碎步的一部分。

实验结果

image-20210125151416131

作者的意思就是——“你看你想不到把负样本去掉吧,你更想不到我把负样本去掉之后还很有效吧”。

小结

那么,我们回顾一下BYOL干了什么

1)去除负样本的同时防止退化

2)左脚踩右脚,小碎步上升

3)结构中添加MLP

本文链接:

https://www.vurkty.com/notes/125.html
1 + 6 =
快来做第一个评论的人吧~