0%

论文阅读-contrastive-learning-Bootstrap Your Own Latent A New Approach to Self-Supervised Learning

动机

  • 现有的对比学习方法是通过减少正对特征之间的距离,增加负对之间的距离来训练的,这种方法依赖大的batchsizememeory bank或自定义的数据挖掘策略来处理负对;
  • 现有的对比学习方法性能也严重依赖于图像的增强方法。

贡献

  • 提出了一种新的自监督学习方法BYOL,其不使用负对样本;
  • 该方法性能最优,且BYOLbatchsize和图像增强集合的变换相比其它方法更鲁棒。

本文的方法

自监督学习方法建立在跨视图的预测框架之上,即通过预测同一图像的不同视图来学习表示,该预测问题为一个图像的增强视图的表示应该预测同一幅图像的另一个增强图像的表示,但直接将预测问题投射到表示空间可能会导致崩溃解:即所有图像的不同视图的表示不变。对比方法规避这个预测问题,改为:从一个增强视图的表示中,学会区分同一图像的另一个增强视图的表示和不同图像的增强视图的表示。但是这种情况会需要比较每一个增强视图的表示与许多负样本的表示,文章则探讨了在防止崩溃解且保持高性能时,负样本是否必不可少。

为了防止崩溃解,一个直接的解决方案是使用一个固定的随机初始化的网络来产生需要预测的目标,在ImageNet上准确率达到 18.8\% ,远高于随机初始化的网络本身,故BYOL的核心:从一个给定的特征(target),通过预测目标表征来训练一个新的、潜在增强的表征(online),在此基础上使用一个新的online网络作为下一次训练的新的target网络,在实践中,这里使用一个缓慢移动的online网络的指数平均作为target网络,而不是固定的checkpoints

BYOL的描述

BYOL的目标是学习一种可用于下游任务的表征 y_{\theta} ,如上图所示,BYOL包含两个神经网络:onlinetarget网络。online网络权重为 \theta ,由三个阶段组成:encoder f_{\theta} projector g_{\theta} predictor q_{\theta} target网络则权重为 \xi ,目的是提供训练online网络的回归值,其参数由online网络的参数进行指数滑动平均,设 \tau\in[0,1] ,则:

\xi \leftarrow \tau \xi+(1-\tau) \theta

给定图像集合 \mathcal{D} 和两个不同的图像增强分布 \mathcal{T} \mathcal{T}^{‘} ,采样一张图像 x ,分别应用两个不同的图像增强方法 t\sim\mathcal{T},t^{’}\sim\mathcal{T}^{‘} ,得到 v \triangleq t(x) v^{’} \triangleq t(x)^{’} 。对于 v online网络输出一个表征 y_{\theta} \triangleq f_{\theta}(v) 和一个投影 z_{\theta} \triangleq g_{\theta}(y) target网络则输出 y^{’}_{\xi} \triangleq f_{\xi}(v^{’}) 和目标投影 z^{’}_{\xi} \triangleq g_{\xi}(v^{’}) ;再输出 z_{\xi}^{’} 的预测 q_{\theta}(z_{\theta}) 并分别做 l_2 正则化,得到 \overline{q_{\theta}}\left(z_{\theta}\right) \triangleq q_{\theta}\left(z_{\theta}\right) /\left|q_{\theta}\left(z_{\theta}\right)\right|_{2} \bar{z}_{\xi}^{\prime} \triangleq z_{\xi}^{\prime} /\left|z_{\xi}^{\prime}\right|_{2} ,则采用均方误差,其损失如下:

\mathcal{L}_{\theta, \xi} \triangleq\left\|\overline{q_{\theta}}\left(z_{\theta}\right)-\bar{z}_{\xi}^{\prime}\right\|_{2}^{2}=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}}

对于对称损失,则额外将 v^{’} 输入online网络,v输入target网络,计算损失 \bar{\mathcal{L} }_{\theta, \xi} ,则总损失为 \mathcal{L}_{\theta, \xi}^{\text{BYOL} } = \mathcal{L}_{\theta, \xi} +\bar{\mathcal{L} }_{\theta, \xi} ,但反向传播每次只更新 \theta ,这里称为stop-gradient,即:

\begin{array}{l} \theta \leftarrow \text { optimizer }\left(\theta, \nabla_{\theta} \mathcal{L}_{\theta, \xi}^{\text {BYOL } }, \eta\right) \\ \xi \leftarrow \tau \xi+(1-\tau) \theta \end{array}

其中 \eta 是优化器的学习率,最后训练后,仅保留encoder f_{\theta}

算法如图:

损失函数与InfoNCE之间的关系

SimCLRBYOL的损失使用统一的形式,考虑如下的InfoNCE目标函数:

\operatorname{InfoNCE}_{\theta}^{\alpha, \beta} \triangleq \frac{2}{B} \sum_{i=1}^{B} S_{\theta}\left(v_{i}, v_{i}^{\prime}\right)-\beta \cdot \frac{2 \alpha}{B} \sum_{i=1}^{B} \ln \left(\sum_{j \neq i} \exp \frac{S_{\theta}\left(v_{i}, v_{j}\right)}{\alpha}+\sum_{j} \exp \frac{S_{\theta}\left(v_{i}, v_{j}^{\prime}\right)}{\alpha}\right)

其中 \alpha>0 是固定的温度系数, \beta\in[0,1] 是权重系数, B batchsize v_i v_i^{\prime} 是来自一个batch的第 i 个样本的增强视图, S_{\theta} 对增强视图之间的两两相似度进行量化,对任意的增强视图 u z_{\theta}(u) \triangleq g_{\theta}\left(f_{\theta}(u)\right) \text { and } z_{\xi}(u) \triangleq g_{\xi}\left(f_{\xi}(u)\right) ,对于给定的 \phi \psi ,使用归一化点积:

S_{\theta}\left(u_{1}, u_{2}\right) \triangleq \frac{\left\langle\phi\left(u_{1}\right), \psi\left(u_{2}\right)\right\rangle}{\left\|\phi\left(u_{1}\right)\right\|_{2} \cdot\left\|\psi\left(u_{2}\right)\right\|_{2}}

则对于SimCLR,其损失为 \phi(u_1)=z_{\theta}(u_1) (无predictor), \psi(u_2)=z_{\theta}(u_2) (无target网络)和 \beta=1 ;对于BYOL,其损失为 \phi(u_1)=p_{\theta}(z_{\theta}(u_1)) \psi(u_2)=z_{\xi}(u_2) \beta=0

BYOL行为的直觉

BYOL通过只关于 \theta 最小化 \mathcal{L}_{\theta, \xi}^{\text{BYOL} } ,似乎BYOL应该收敛到对于 (\theta,\xi) 最小的损失,即崩溃的常数表示,但 \xi 的目标参数更新方向不是 \nabla_{\xi} \mathcal{L}_{\theta, \xi}^{\text {BYOL } } ,故可防止崩溃解。假设BYOLpredictor是最优的,如 q_{\theta}=q^{*}

q^{*} \triangleq \underset{q}{\arg \min } \mathbb{E}\left[\left\|q\left(z_{\theta}\right)-z_{\xi}^{\prime}\right\|_{2}^{2}\right], \quad \text { where } \quad q^{*}\left(z_{\theta}\right)=\mathbb{E}\left[z_{\xi}^{\prime} \mid z_{\theta}\right]

假设这个不想要的平衡是不稳定的,在这个最优predictor的情况下,BYOL关于 \theta 的更新基于期望条件方差的梯度:

\nabla_{\theta} \mathbb{E}\left[\left\|q^{*}\left(z_{\theta}\right)-z_{\xi}^{\prime}\right\|_{2}^{2}\right]=\nabla_{\theta} \mathbb{E}\left[\left\|\mathbb{E}\left[z_{\xi}^{\prime} \mid z_{\theta}\right]-z_{\xi}^{\prime}\right\|_{2}^{2}\right]=\nabla_{\theta} \mathbb{E}\left[\sum_{i} \operatorname{Var}\left(z_{\xi, i}^{\prime} \mid z_{\theta}\right)\right]

其中 z_{\xi, i}^{\prime} z_{\xi}^{\prime} 的第 i 个特征。对于任意随机变量 X,Y,Z ,有 \text{Var}(X|Y,Z)\le \text{Var}(X|Y) ,其中 X target投影, Y 为当前的online投影, Z 是在训练时online投影的随机变异性:单纯丢弃online投影中的信息不能降低条件方差。

特别地,BYOL避免 z_{\theta} 的常数特性,对于任意的常数 c 和随机变量 z_{\theta},z_{\xi}^{\prime} ,有 \text{Var}(z_{\xi}^{\prime}|z_{\theta})\le \text{Var}(z_{\xi}^{\prime}|c) ,如果要关于 \xi 最小化 \mathbb{E}\left[\sum_{i} \operatorname{Var}\left(z_{\xi, i}^{\prime} \mid z_{\theta}\right)\right] ,则 z_{\xi}^{\prime} 会得到崩溃解,相反BYOL使 \xi 更接近 \theta ,将online投影捕捉到的变异性整合到target投影中。

另外,如果直接将 \theta 复制到 \xi 也足以传播新的变化,但target网络突然的变化可能打破最优predictor的假设,此时损失不能接近条件方差,由此使用滑动平均并假设其主要作用是确保predictor在训练过程中接近最优性。

部分实验结果

在ImageNet上的无监督结果:

在ImageNet上的半监督结果:

将ImageNet学习得到的特征迁移到下游任务:

消融实验: