Bootstrap Your Own Latent A New Approach to Self-Supervised Learning论文阅读笔记
Abstract
我们提出了BYOL,一种新的自监督图像表示学习的方法。BYOL依赖于两个神经网络,即在线网络和目标网络,它们相互作用和相互学习。从一个图像的增广视图出发,我们训练在线网络来预测同一图像在不同的增广视图下的目标网络表示。同时,我们用在线网络的慢移动平均值来更新目标网络。虽然最先进的方法依赖于负对,但BYOL在没有它们的情况下实现了一种新的优异状态。
Introduction
说目前的图像自监督学习依赖辅助任务,图像增强的选择和对负对进行检索。
在本文中,我们介绍了BYOL,一种新的自监督学习算法。BYOL在不使用负对的情况下,获得了比最先进的对比方法更高的性能。它迭代地引导网络的输出,以作为增强表示的目标。此外,BYOL对图像增强的选择比对比方法更具有鲁棒性;我们怀疑不依赖负对是其提高鲁棒性的主要原因之一。虽然以前基于引导的方法使用了伪标签、聚类索引或一些标签,但我们建议直接引导表示。特别是,BYOL使用两种神经网络,被称为在线网络和目标网络,它们相互作用和相互学习。从一个图像的增强视图开始,BYOL训练其在线网络来预测目标网络对同一图像的另一个增强视图的表示。虽然这个目标允许折叠解,例如,对所有的图像输出相同的向量,但我们的经验表明,BYOL并不收敛于这样的解。我们假设,(i)在在线网络中添加一个预测器和(ii)使用在线参数的移动平均值的组合,因为目标网络鼓励在在线投影中编码越来越多的信息,并避免了崩溃的解决方案。
Method
许多成功的自监督学习方法都建立在引入的跨视图预测框架之上。通常,这些方法通过预测同一图像彼此之间的不同视图(例如,不同的随机作物)来学习表示。许多这样的方法将预测问题直接放在表示空间中:一个图像的增强视图的表示应该可以预测同一图像的另一个增强视图的表示。然而,可以在表示空间中直接进行预测可能会导致崩溃表示:例如,在视图中保持恒定的表示总是可以完全预测其本身。对比方法通过将预测问题重新定义为分类问题来规避这个问题:从一个增强视图的表示中,他们学习区分同一图像的另一个增强视图的表示,和不同图像的增强视图的表示。在绝大多数情况下,这就阻止了训练找到可折叠的表征。然而,这种区分方法通常需要将增强视图的每个表示与许多负面例子进行比较,以找到足够接近的例子,使识别任务具有挑战性。因此,在这项工作中,我们要求自己找出这些负面的例子是否必须防止崩溃,同时保持高性能
为了防止崩溃,一个简单的解决方案是使用一个固定的随机初始化的网络来为我们的预测产生目标。虽然避免崩溃,但并不能产生很好的表现。尽管如此,有趣的是,使用这个过程获得的表示已经可以比初始固定表示好得多。在我们的消融研究中,我们通过预测一个固定的随机初始化网络来应用这个程序,在ImageNet上的线性评估协议上达到18.8%的前1精度,而随机初始化的网络本身仅达到1.4%。这一实验发现是BYOL的核心动机:从一个给定的表示,称为目标,我们可以通过预测目标表示,训练一个新的、潜在增强的表示,称为在线表示。从那里,我们可以期望通过迭代这个过程,建立一系列提高质量的表示,使用后续的在线网络作为新的目标网络进行进一步的训练。在实践中,BYOL通过迭代地细化其表示来推广这种bootstrap过程,但使用缓慢移动的指数网络作为目标网络,而不是固定的检查点
BYOL的模型结构图如下:
BYOL的目标是学习一个表示yθ,然后可以用于下游任务。如前所述,BYOL使用两种神经网络来学习:在线网络和目标网络。在线网络由一组权值θ定义,由三个阶段组成:编码器fθ、投影仪gθ和预测器qθ。目标网络具有与在线网络相同的架构,但使用不同的权值ξ。目标网络提供了对在线网络进行训练的回归目标,其参数ξ是在线参数θ的指数移动平均值。更准确地说,给定一个目标衰减率τ∈[0,1],在每个训练步骤后,我们执行以下更新:
$\xi\leftarrow\tau\xi+(1-\tau)\theta $
我们定义的损失函数为:
\[\mathcal{L}_{\theta,\xi}\triangleq\left\|\overline{q_\theta}(z_\theta)-\overline{z}_\xi^{\prime}\right\|_2^2=2-2\cdot\frac{\langle q_\theta(z_\theta),z_\xi^{\prime}\rangle}{\left\|q_\theta(z_\theta)\right\|_2\cdot\left\|z_\xi^{\prime}\right\|_2}. \] 我们对称了等式中的损失.分别将v'输入在线网络,将v输入目标网络,计算\(\widetilde{\mathcal{L}}_{\theta,\xi}\)。在每个训练步骤中,我们执行一个随机优化步骤来最小化\(\mathcal{L}_{\theta,\xi}^\text{вүоL}=\mathcal{L}_{\theta,\xi}+\widetilde{\mathcal{L}}_{\theta,\xi}\),仅相对于θ,而不对ξ,如图2中的停止梯度所示。BYOL的相互作用被总结为
\(\theta\leftarrow\text{optimizer}(\theta,\nabla_\theta\mathcal{L}_{\theta,\xi}^\text{BYOL},\eta)\quad\mathrm{~and~}\quad\xi\leftarrow\tau\xi+(1-\tau)\theta,\)
只看了一点方法的部分,就算结束了,然后再贴一点知乎上看的分析
来源:[论文笔记]——BYOL:无需负样本就可以做对比自监督学习(DeepMind) - 知乎 (zhihu.com)
Understanding Contrastive Representation Learning through Alignment and Uniformity on the Hypersphere这篇论文指出,我可以把contrastive loss分解成两个部分,第一部分叫做alignment,就是希望positive pair的feature接近,第二部分叫做uniformity,就是希望所有点的feature尽量均匀的分部在unit sphere上面,都挺好理解的吧?这两部分理论上是都需要的,假如只有alignment,没有uniformity,那就很容易都坍缩到0,就是退化解。所以BYOL就是去掉uniformity,只保留了alignment。这听起来似乎不科学,因为模型很容易学到trivial solution:就是使online网络和target网络永远都输出同样的constant。所以模型为什么会work呢?,总结大概有以下几点:EMA,predictor,BN。
online网络后面的predictor也非常重要,虽然它只是1或2层全连接层。
我觉得它给了online network很好的灵活性,就是online network的feature出来后不用完完全全去match那个EMA模型,只需要再经过一个predictor去match就好了。然后这个predictor的weight是不会update到EMA的,相当于一个允许online和EMA feature不同的缓冲地带。
BN有的说有用有的说没有,这里就不多解释了
标签:Own,Latent,在线,Self,网络,视图,xi,theta,BYOL From: https://www.cnblogs.com/anewpro-techshare/p/18063328