Understanding self-supervised learning with dual deep networks

本文深入探讨了自监督学习中的SimCLR和BYOL框架。SimCLR通过大规模数据增强和对比损失实现76.5%的ImageNet top-1准确率,而BYOL则借助教师-学生框架,在不使用负样本对的情况下达到74.3%的top-1精度。关键在于数据增强、批归一化和移动平均策略。
摘要由CSDN通过智能技术生成

Facebook AI Research & Stanford University 带来的自监督学习相关研究

『 ML时代的机器学习模型一般只做最后的分类聚类回归,深度学习时代的模型把特征提取的工作一并做了,可以预见,未来我们需要更复杂的模型自动收集和筛选数据。』

—— 查资料发现的一句话

主要内容

  • SimCLR框架介绍
  • BYOL(Bootstrap Your Own Latent)框架介绍
  • 本文内容

SimCLR

简单有效的对比学习框架

主要成果:自监督 76.5% top-1 on ImageNet ILSVRC-2012

                  仅用 1% of the ImageNet labels 微调, 得到 85.8% top-5 accuracy

其中

(1)数据增强:旋转、切割、翻转、变色、模糊等

(2)f(.) ——ResNet-50架构作为ConvNet编码器,输出是2048维向量h。

(3)g(.) ——如图所示,zi = g(hi) = W(2)σ(W(1)hi)

实验发现,效果上,非线性映射 > 线性映射 > 不映射(即直接用hi hj

(4)loss function NT-Xent (the normalized temperature-scaled cross entropy loss).

l_{i,j}=-log\frac{exp(sim(z_i,z_j)/\tau))}{\sum_{k=1}^{2N}1_{[k\neq i]}exp(sim(z_i,z_k)/\tau))}  , 其中sim为余弦相似度

训练细节

(1)large batch size

batch size N from 256 to 8192,实验发现大的batch size 对于对比学习有利

(2)Global batch normalization

(3)linear warmup for the first 10 epochs, learning rate 4.8 (= 0.3 × BatchSize/256) weight decay of 10−6


BYOL(Bootstrap Your Own Latent)

魔法般的教师-学生框架

主要结果:在标准ResNet-50上达到74.3% top-1,在更大的ResNet上达到79.6%的top-1精度 

与SimCLR不同的是:

(1)不需要输入负样本对

(2)使用两种神经网络进行学习:在线网络和目标网络。在线网络比目标网络多了一个预测器qθ(也是一个MLP),但BYOL的MLP结构中多了一层BN

(3)目标网络的参数ξ不进行梯度更新训练,而是由θ进行移动平均

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

(4)loss为回归形式

L_{\theta,\xi}=\left \| \overline{q_\theta}(z_\theta)-{\overline{z}}'_\xi \right \|_2^2 = 2-2\cdot \frac{\left \langle q_\theta(z_\theta),{z}'_\xi \right \rangle}{\left \| q_\theta(z_\theta) \right \|_2\cdot \left \| {z}'_\xi \right \|_2}

将同一样本的两个增强样本对称地输入网络,得到两个Loss,将他们相加得到总体Loss

本文的方法并不依赖于 negative samples,对 batch size 和 augmentation 不敏感

WHY IT WORKS?

● 动机

首先随机初始化一个网络 (它的准确率是 1.4%, 相当于瞎猜), 直接用它当做 target network,然后训练online network, 让这个网络去贴近 target network, 当训练结束的时候, online network 的准确率竟然达到了 18.8%

左脚踩右脚上天——知乎郑华滨的答案

对比学习的两大目标:(1)不同的原样本有不同的表征(2)同一原样本增强产生的样本应当有相同的表征

之前其实已经有挺多工作告诉我们,一个随机初始化的CNN就已经具备一定程度的图像特征抽取能力。更进一步地,如果CNN随机初始化之后,就已经会把不同的样本输入投射到特征空间的不同地方,并且投射得足够分散,那它就已经完成了contrastive learning框架中第一个目标。如果上述猜测成立,那么只要在接下来的训练过程中达成contrastive learning框架第二个目标,并且小心翼翼地维护第一个目标不被破坏,避免网络收敛到trivial solution,那就确实可以抛开负样本。而本文采用的方法是随机初始化+mean teacher学习

到这里,我还有一些疑问,长时间的迭代后,两个网络的参数不会变得很接近吗?怎么保证参数不发生坍缩?

● 得到有效表示的手段Ⅰ

知乎史海舟的答案

BYOL的Teacher-Student framework很可能不是它工作的关键,使模型远离自己的Mean Teacher才是防止collapse的有效正则方法。而BYOL在有predictor网络时达成了和以上方法的等价。

团队首先从实验上验证predictor对于防止collapse的重要性。通过替换不同的predictor类型( MLPP / LP / LPI / NP 分别对应 MLP predictor / Linear predictor / Linear predictor initialized by I /No predictor),发现不使用predictor时,BYOL的表现会下降到比random baseline更差,发生collapse;另外值得注意的是当predictor为linear mapping的时候BYOL依然work,甚至当显式地给predictor提供一个退化解作为初始化值时,BYOL依然work;

接下来,该团队将BYOL的Loss分解为三项:(1)同一原输入不同增强的差别alignment loss(记为La);(2)online network靠近自己历史版本的移动平均,称cross-model loss(记为Lcm);(3)不太好解释的交叉项,实验发现交叉项这部分是增加的,据此推测交叉项是一个不重要的loss。

于是作者尝试优化  α × La + β × Lcm,(α β均为1时,即完全舍弃交叉项)这个新的loss和原来的loss在线性predictor条件下效果接近

作者希望将cross-model loss和uniformity loss建立联系,结果发现使用 La - Lcm 竟然也有效果,于是据此提出一个新的框架RAFT,它优化两个目标:拉近同一个data不同augmented view的representation,以及拉开和自己历史版本EMA(文章中称为Mean Teacher,MT)的距离。此外作者还给出了一些基于RAFT理解BYOL的结论。

● 得到有效表示的手段Ⅱ

Abe Fetterman, Josh Albrecht 在复现时得到的结论

(1)在删除batch normalization时,BYOL的性能通常不比random好 

(2)batch normalization的存在隐式地导致了一种对比学习的形式

首先作者发现,另一个使用了mean teacher模式的对比学习模型MoCo不需要BN,但BN对BYOL性能的影响很大,作者怀疑没有使用对比损失函数会导致训练依赖于BN;

接下来,作者想知道是否在投影MLP g、预测MLP q或两者中都需要batch normalization。实验表明批batch normalization在投影MLP中是最有用的,但是网络可以通过batch normalization在任一MLP中学习到有用的表示;

在对比损失函数中使用负样本的一个目的是防止模式坍塌,如果在投影层g中使用BN,那么投影输出向量z就无法坍缩成任何奇异值,无论如何相似的输入经过batch normalization,输出将根据学习的平均值和标准偏差重新分配,同样,BN在预测MLP中也可以产生类似的效果。

我们可以把batch normalization看作是在嵌入式表示上实现对比学习的一种新方法。SimCLR和MoCo使用的显式对比方法是这样学习的:“这两个特定图像之间的区别是什么?” 通过batch normalization,BYOL的学习方法是:“这张图像与平均图像有什么不同?”,这两种方式似乎是相同的。


Understanding self-supervised learning with dual deep networks

主要结论:

通过对SimCLR+InfoNCE梯度下降的分析,我们找到了一个在多层ReLU神经网络中,每一层权重随梯度更新的关键矩阵,文中称作协方差算子(covariance operator)。

其中K为 l 层的“连通性” ,求其关于数据增强的期望,再求关于输入样本的方差,即为协方差算子,而每层权重的更新与该算子密切相关。

协方差算子是随着当前权重的变化而变化的,但在整个训练过程中一直保持半正定。这个结论比较强的地方在于,它不依赖于输入数据的具体分布,也适用于任意的数据增强过程。唯一的假设是InfoNCE这个对比损失函数(contrastive loss)向下传播的梯度是近似常数。如果大家嫌这个假设比较强,那么采用简单的“正样本间距减去负样本间距”作为对比训练的目标函数,这个假设就是简单成立的。

具体来说,文中分析了三种常用的对比损失

r_+:=\frac{1}{2}\left \| f_{1,L}-f_{+,L} \right \|_2^2        r_+:=\frac{1}{2}\left \| f_{1,L}-f_{k-,L} \right \|_2^2

L_{simp}:=r_+-r_-        L_{triplet} = \tau log(1+e^{(r_+-r_-+r_0)/\tau})L_{NCE} =-log\frac{e^{-r_+/\tau}} {e^{-r_+/\tau}+\sum_{k=1}^{H}e^{-r_{k-}/\tau} }

 对于第一种最简单的损失Lsimp,OP^{simp}_l(\mathcal{W}):=\mathbb{V}_{x\sim p(\cdot )}[\bar{K}_l(x;\mathcal{W})]

对于后两种损失,OP^{simp}_l(\mathcal{W}):=\frac{1}{2}\mathbb{V}^\xi _{x,x'\sim p(\cdot )}[\bar{K}_l(x) - \bar{K}_l(x')] + \theta,强调了不同样本之间的表示的差别,θ为残差项,作者提到,如果在训练中θ能够减小,那么这种形式的loss能够将梯度更新中重要的信息和不那么重要的部分分开,使得网络能学到更多的东西。

作者的另外一大创新点是,引入了数据的生成模型来具体揭示网络的训练过程。主要想法是数据由两组主要的隐变量 z 和 z' 生成,其中 z 和数据的“类标签”相关,在数据增强之后不会发生改变;而z' 则囊括了生成过程中与类标签正交的部分,比如说图像旋转和缩放程度等,在数据增强之后会发生变化。

在不同的生成模型下,协方差算子的行为并不一样,作者主要分析了几种有代表性的情况。 首先是最简单的单一神经元的一层网络,和具一维平移不变性的两类物体识别问题,在这种情况下协方差算子有解析解。 但有趣的是,如果神经元是线性的,这个算子是零(所以没有权重更新发生),只有在神经元是ReLU的情况下,才会利用初始涨落学会并且巩固学到的有效特征。这就显示出了神经网络中非线性变换的重要性。

在此之上,作者进一步分析了一些更复杂的情况,比如说两层ReLU的权重同时训练时,上下两层的协方差算子会产生互动,上层的训练成果会改变下层协方差算子,从而加速了下层的权重学习,这就是多层训练的好处。之后,还分析了一个更加广义的生成模型,即层次式隐变量树模型(Hierarchical Latent Tree Model, HLTM)与多层受限感受野的ReLU网络的互动,发现有相似的结论,并且还能看出来ReLU中间层的神经元,能学到对应的树模型同层隐变量的值,即便这些中间层在SSL训练时,并没有收到任何相关监督信号,这一定程度上揭示了神经网络训练的内部过程。

最后一部分,作者用这个框架来分析BYOL不需要负样本对的秘密 ,根据其模型的三个特点:(1)不对称的双塔结构(2)使用移动平均(3)使用BN,作者首先将BN简化成“对前一层的输入作零均值”的操作,这样它对反传梯度的效果,就是对梯度进行零均值,计算出新的权重更新方式

 这个公式里面的第一项是鼓励类标签相同的样本其表示也相近,如果只有这项,BYOL应当收敛到平凡解。后两项中,负项是之前提到协方差算子的相反数,而正项则类似协方差算子本身。 有趣的是,因为BYOL的不对称性,负项是个关于predictor的二次项,而正项是个关于predictor的一次项。 如果predictor里面的权重其绝对值比较小,那么负项的幅度要比正项小,正项占主要贡献,于是协方差算子再次登场,而BYOL也就有效,再次证明了BN的重要性。

参考资料:

BN在BYOL模型中的重要性

知乎上关于BYOL的讨论

BYOL论文介绍

作者本人的解说

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值