文章提出了Greedy InfoMax算法,该算法在贪婪自监督训练的情况下,仍能较好地完成音频和图像分类任务。
神经网络能够进行异步、解耦训练,允许在大于内存的输入数据上对任意深度的网络进行训练。
文中证明了互信息最大化特别适用于逐层贪婪优化,并认为这减少了梯度消失的问题。
We propose a novel deep learning method for local self-supervised representation learning that does not require labels nor end-to-end backpropagation but exploits the natural order in data instead. Inspired by the observation that biological neural networks appear to learn without backpropagating a global error signal, we split a deep neural network into a stack of gradient-isolated modules. Each module is trained to maximally preserve the information of its inputs using the InfoNCE bound from Oord et al. [2018]. Despite this greedy training, we demonstrate that each module improves upon the output of its predecessor, and that the representations created by the top module yield highly competitive results on downstream classification tasks in the audio and visual domain. The proposal enables optimizing modules asynchronously, allowing large-scale distributed training of very deep neural networks on unlabelled datasets.
我们提出了一种新的局部自监督表示学习的深度学习方法,这种方法不需要标签,也不需要端到端反向传播,而是利用数据中的自然顺序。在观察到生物神经网络似乎不需要反向传播全局错误信号就可以学习的启发下,我们将一个深度神经网络分解成一堆梯度隔离的模块。每个模块都经过训练,使用Oord等人的InfoNCE边界[2018],最大限度地保留其输入的信息。尽管进行了这种贪婪的训练,但我们证明了每个模块都改进了前一个模块的输出,并且顶级模块创建的表示在音频和可视领域的下游分类任务中产生了极具竞争力的结果。该方案支持异步优化模块,允许在未标记的数据集上对深度非常大的神经网络进行大规模分布式训练。
人类在学习的过程中只会依靠少量样本,并且并没有通过反向传播错误信号的方式来优化全局目标,生物大脑是高度模块化的,主要基于局部信息进行学习。而传统端到端的反向传播需要大量的标记样本,这些样本很难获得。因此,它不适用于大多数可用的数据,并且有过拟合的风险,因为深度模型所需的参数数量常常超过手边标记的数据点的数量。同时,端到端反向传播在简单的实现中会产生大量的内存开销,因为整个计算图(包括所有参数、激活和梯度)都需要加入到处理单元的工作内存中。端到端培训不支持异步优化各个层的精确方式,在全局优化的网络中,每一层都需要等待它的前一层提供输入,等待它的后一层提供梯度。
在这篇文章中,作者介绍了一种新的学习方法Greedy InfoMax (GIM),在这些问题上有提高。通过将深度架构划分为梯度隔离的模块来消除端到端的反向传播,我们使用每个模块的贪婪的、自监督的损耗来训练这些模块。对于未标记的高维顺序或空间数据,文中逐个模块对其进行迭代编码。通过使用强制各个模块最大限度地保留其输入信息的损失,文中使堆中的模型来集体创建可用于下游任务的紧凑表示。
为了从对下游任务有用的数据中创建紧凑的表示,我们假设自然数据表现出慢特性(slow features [Wiskott and Sejnowski, 2002])。理论上,这些特征对于后续的任务,如目标检测或语音识别,是非常有效的。例如,一个只有几毫秒的原始语音的小块与相邻的小块共享比如说话人的身份、情绪和音素的信息,而它不一定与从其他话语中随机抽取的小块共享这些信息。类似地,自然图像中的小块与邻近的小块在许多方面有共同之处,如所描绘的物体或照明条件。
文章的工作主要依靠对比预测编码(Contrastive Predictive Coding, CPC)[Oord et al., 2018]。这是一个自监督端到端的学习方法,能够通过最大化时间上相近的小块之间提取表示的互信息量来提取序列输入可用表示。为了实现这一点,CPC首先使用深度编码模型 g e n c ( x t ) = z t g_{enc}(x_t) = z_t genc(xt)=zt来处理顺序输入信号 x x x,然后使用自回归模型 g a r ( z 0 : t ) = c t g_{ar}(z_{0:t}) = c_t gar(z0:t)=ct来生成一个表示 c t c_t ct,它可以聚合所有patch到时间步长 t t t的信息。然后,利用一个专门设计的全局概率损失(遵循噪声对比估计(Noise Contrastive Estimation, NCE)的原则),最大化提取的表示 z t + k z_{t+k} zt+k和相邻时间块的 c t c_t ct之间的互信息,对于每个延迟 k k k,CPC有一个集 X = { Z t + k , z j 1 , z j 2 , … , z j N − 1 } X=\{ Z_{t+k},z_{j_1}, z_{j_2}, \dots, z_{j_{N-1}}\} X={Zt+k,zj1,zj2,…,zjN−1},一个“正向采样” z t + k z_{t+k} zt+k—— c t c_t ct后 k k k个时间步长的输入的编码, N − 1 N − 1 N−1个“负向采样” z j n z_{j_n} zjn——从所有可用的已编码输入序列中均匀采样得到。
每对编码 ( z j , c t ) (z_j, c_t) (zj,ct)使用函数 f ( ⋅ ) f(·) f(⋅)进行评分,以预测给定的 z j z_j zj是正向样本 z t + k z_{t+k} zt+k的可能性有多大。在实际应用中,Oord et al. [2018]使用了一个对数双线性模型 f k ( z j , c t ) = exp ( z j T W k c t ) f_{k}\left(z_{j}, c_{t}\right)=\exp \left(z_{j}^{T} W_{k} c_{t}\right) fk(zj,ct)=exp(zjTWkct),每个 k k k步预测都有一个独立的权重矩阵 W k W_k Wk。 f ( ⋅ f(· f(⋅)的分数用来预测集 X X X中哪个样品是正确的。InfoNCE损失为:
L N = − ∑ k E X [ log f k ( z t + k , c t ) ∑ z j ∈ X f k ( z j , c t ) ] \mathcal{L}_{N}=-\sum_{k} \underset{X}{\mathbb{E}}\left[\log \frac{f_{k}\left(z_{t+k}, c_{t}\right)}{\sum_{z_{j} \in X} f_{k}\left(z_{j}, c_{t}\right)}\right] LN=−k∑XE[log∑zj∈Xfk(zj,ct)fk(zt+k,ct)]
该损失被用来优化编码模型 g e n c g_{enc} genc和自回归模型 g a r g_{ar} gar,以提取邻近斑块上一致但在随机斑块对之间发散的特征。同时,得分模型 f k f_k fk学习使用这些特征来正确地分类匹配对。在实践中,利用从大数据集中提取的小批量随机梯度下降法和从小批量序列中均匀提取的负样本训练损失。注意,在对抗性训练中不会出现最大最小值问题。
通过这种配置,可以得出 f f f的最优解与以下密度比成正比:
f k ( z t + k , c t ) ∝ p ( z t + k ∣ c t ) p ( z t + k ) f_{k}\left(z_{t+k}, c_{t}\right) \propto \frac{p\left(z_{t+k} | c_{t}\right)}{p\left(z_{t+k}\right)} fk(zt+k,ct)∝p(zt+k)p(zt+k∣ct)
通过学习对未来输入具有预测性的表示法来学习保存每个层的输入和输出之间的信息。
在本文中,提出了这样一个问题:我们是否能够有效地优化模型每一层的表示之间的相互信息,从而能够获得贪婪训练(模型各部分的解耦、隔离训练)所提供的许多实际好处。为此,文中引入了一种新的自监督表示学习方法: Greedy InfoMax(GIM)。如图1左侧所示,文中采用传统的深度学习体系结构,并将其按深度划分为一组 M M M模块。我们没有对这个模型进行端到端的训练,而是防止了模块之间的梯度流动,采用了局部自监督损失的方法,另外还减少了梯度消失的问题。
使用module-local InfoNCE 损失训练每个模块:
f k m ( z t + k m , z t m ) = exp ( z t + k m T W k m z t m ) L N m = − ∑ k E X [ log f k m ( z t + k m , z t m ) ∑ z j m ∈ X f k m ( z j m , z t m ) ] \begin{aligned}f_{k}^{m}\left(z_{t+k}^{m}, z_{t}^{m}\right) &=\exp \left({z_{t+k}^{m}}^{T} W_{k}^{m} z_{t}^{m} \right) \\\mathcal{L}_{N}^{m} &=-\sum_{k} \mathbb{E}_{X}\left[\log \frac{f_{k}^{m}\left(z_{t+k}^{m}, z_{t}^{m}\right)}{\sum_{z_{j}^{m} \in X} f_{k}^{m}\left(z_{j}^{m}, z_{t}^{m}\right)}\right]\end{aligned} fkm(zt+km,ztm)LNm=exp(zt+kmTWkmztm)=−k∑EX[log∑zjm∈Xfkm(zjm,ztm)fkm(zt+km,ztm)]
所有模块收敛后,评分函数 f k m f_{k}^{m} fkm (.) 可以被丢弃,为下游任务留下一个前馈神经网络结构的特征提取 z t M z_{t}^{M} ztM :
z t M = g e n c M ( g e n c M − 1 ( ⋯ g e n c 1 ( x t ) ) ) z_{t}^{M}=g_{e n c}^{M}\left(g_{e n c}^{M-1}\left(\cdots g_{e n c}^{1}\left(x_{t}\right)\right)\right) ztM=gencM(gencM−1(⋯genc1(xt)))
文章提出了一种新的自监督贪婪学习方法——Greedy InfoMax。相对较强的性能表明,深度神经网络在感知任务上并不一定需要监督损失的端到端的反向传播。文章中的方案支持贪婪自监督训练,使得模型不容易被过度拟合,减少了消失梯度问题,实现了内存有效的异步分布式训练。