出奇简单的二进制表示学习
摘要
近年来的二进制表示学习模型通常需要复杂的二进制优化、相似性度量甚至生成模型作为辅助。然而,人们可能会思考:这些非同寻常的技术对于形成实用有效的哈希模型是否是必须的?
在本文中,我们通过提出一种出奇简单的二进制表示学习方法来回答该问题。通过简单的分类目标,我们的模型只在任意backbone网络的顶部加上两个额外的全连接层,同时在训练过程中遵守二进制约束。该模型降低了数据样本及其语义之间的信息瓶颈(IB),并且可以与许多最近的“哈希学习”范式相联系。我们的研究表明,如果设计得当,即使是这样一个简单的网络也可以生成有效的二进制码,通过充分探索数据语义,而不需要任何held-out的交替更新步骤或辅助模型。在传统的大型基准数据集(包括CIFAR-10、NUS-WIDE和ImageNet)上进行的实验显示,我们的模型效果优于最先进的方法。我们的代码在https://github.com/ymcidence/JMLH 。
1. 导言
基于二进制表示的近似最近邻搜索被认为是大规模多媒体数据检索的一种有效的解决方案。这类技术通常被称为哈希学习,其旨在(a)缩小数据的embedding大小和(B)产生二进制特征以加速基于距离的成对数据相关性的计算。与许多其他机器学习任务类似,哈希学习可以是无监督的,也可以是有监督的。前者需要更少的标记工作进行训练,而后者能在检索中获得更好的性能。我们专注于监督哈希,以充分利用数据的语义信息。
该领域最近的研究通过引入深度学习技术大大提高了所产生的哈希码的性能。深度哈希模型通常对encoding网络顶层采用sign激活函数。研究者们已经提出了各种方法来使编码器具有在汉明空间中正确定位数据的能力。
典型的方法是采用held-out编码学习器作为神经网络训练的补充[11,29,40]。held-out编码学习器通过离散优化更新基于语义的目标码(译者注:也就是神经网络的输出)以控制encoding网络。这种方法通常需要更长的训练时间,因为held-out离散优化步骤不能有效地并行,并且在每一轮更新期间需要消耗额外的存储器来缓存目标码。还有一些其它的方法,例如,通过向encoder网络引入基于相似性的惩罚来解耦不相关的数据表示 [7, 42, 43, 44],但为了用这种惩罚训练encoder网络,通常需要对编码的连续放松,这可以说降低了训练质量。深度哈希的一种最新方式是使用生成对抗模型[5,13,34,45]。通过将生成数据与真实数据区分开来,编码器自然地确认了相应的数据分布。
然而,这些精细的方法引出了另一个问题:如何在增加最少辅助的情况下构建的有效监督哈希模型?
我们试图通过仔细考虑哈希学习的主要痛点来找到答案:
- 保持二进制码的离散特性。在参数化模型中,二元约束通常导致NP-hard优化问题,不能直接用基于梯度的方法求解。这通常通过使用held-out离散优化或松弛技术的常规方法来解决。
- 丰富二进制码所表达的信息。使encoder网络感知数据的语义信息(例如,label或tag)总是至关重要的。
因此,在本文中,我们提出了一个简单但强大的深度哈希网络。在我们的模型中,我们通过一个二进制表示瓶颈来把数据和其语义联系起来,以解决上述问题,该二进制表示瓶颈被用作最终的哈希码。我们对训练应用单个识别惩罚。通过合理的正则化项,最终的学习目标形成了观测数据及其语义之间的信息瓶颈(IB)[2,36]的变分下界。重要的是,可以在二进制瓶颈上施加随机性以保持二进制约束并在训练期间应用梯度估计方法。因此,整个框架可以用随机梯度下降(SGD)进行端到端优化。为此,我们发现我们的设计导致了一个出奇简单的解决方案,它基本上形成了一个单一的分类神经网络。
不考虑正则化,所提出的模型只是最大化数据的标签似然。因此,我们将模型命名为最大似然哈希(JMLH)。本文的贡献总结如下:
- 我们提出了一种简单新颖的深度哈希模型,即JMLH方法,并将其理论基础创建在变分信息瓶颈(VIB)[2] 方法上。据我们所知,JMLH是深度哈希中使用IB方法的第一次尝试。
- 我们的研究表明,经过适当的设计和训练,分类神经网络+离散瓶颈就已经能产生有效的二进制表示。因此,该模型不需要辅助部分,可以直接进行优化。
- 详细讨论了JMLH与许多现有哈希模型之间的关系。
- JMLH在几个benchmark数据集(CIFAR-10 20、NUS-WIDE 9和ImageNet 28)上的表现优于最先进的哈希技术。
本文的其余部分内容如下:首先第2节详细描述了我们的模型。随后,第3节中阐述了JMLH与现有研究之间的关系。第4节介绍了实现细节和实验结果,并在第5节给出了简要结论。
2. 模型
哈希学习的目标是找到一个最佳的编码函数来表示数据。这里为数据观测的变量空间,为哈希码空间的长度。在监督哈希中,训练通常基于数据的标签。我们使用大写符号,即,、和表示(随机)变量空间,并且用小写字母表示每个相应的变量实例,即、和。
2.1. JMLH一览
JMLH包括随机编码器和分类器。还使用了一个附加的确定性分布作为的先验。 该模型在图1中被示为有向图形模型。具体地,每个数据首先根据与潜在二进制码相关联,然后可以用和预测相应的标签 .因此,可以看作是和之间的瓶颈。根据上述程序形成了一个单任务神经网络,中间有一个二进制层,这使得JMLH变得极其简单。
我们首先描述上述概率模型,然后讨论如何将它们作为一个整体进行有效的端到端训练。
2.1.1 概率模型的参数化
给定一个训练对,其相应概率模型和在JMLH中被定义为:
(1)
这里的表示泊松二项分布,其参数由神经网络决定:
(2)
另一方面,可以是这样的单一标签分类的概率模型,或是用于多标签分类的泊松二项式,即,该模型是通过另一个网络实现的。我们还引入了二项分布的概率模型作为二进制码的先验来实现正则化的目标。
注意,我们为选择离散概率模型,以避免使用连续松弛。也就是说,分类器的输入已经被二值化。这里不考虑用使用连续松弛(如sigmoid非线性函数)来激活神经元,因为它使分类器的观察偏斜,将有偏差的语义信息测量传播回编码器。
2.1.2 形成单一网络
依次堆叠和从而形成具有二元瓶颈的分类神经网络,其简要结构如表1所示。可以看出,JMLH只在任意网络主干的顶部引入了两个额外的层,这使得它易于被不同的预训练模型所采用,便于实现。
然后我们将这个单个网络的个给定训练对的学习目标定义为
(3)
其中是超参数。所有的概率模型都由公式(1)定义。我们首先在本小节中阐述它的每个组成部分,然后在第2.2.1节中说明该学习目标得到了VIB[2]的支持。
公式(3)右侧的第一项实际上是负对数似然分类惩罚,因为是类别函数。这部分loss代表了在训练期间传递了多少数据的语义标签信息给其二进制码。公式右侧第二项起着正则化的作用,通过最小化后验和先验之间的Kullback-Leibler(KL)散度,保留所携带的信息熵。由于先验和后验都是服从二项分布,KL散度可以通过两个熵项来明确计算:
(4)
JMLH整个网络仅需要使用公式(3)来训练。这使得优化变得极为简单,不需要辅助模块或额外的复杂损失函数。唯一的问题是计算关于的期望负对数似然函数的梯度,这点我们将在2.1.3.讨论。
2.1.3 JMLH的简便性
计算负对数似然期望项的梯度是一个棘手的难题,对于每个样本x,需要遍历B的潜在空间,以精确地获得损失和相应的梯度。受[10]的启发,我们使用以下的重新参数化:
(5)
其中每个是一个很小的随机信号。公式(5)通常被称为随机二元神经激活。通过这种重新参数化,相对于编码器参数的梯度可以通过分布导数估计器[10]来估计:
(6)
有了这个估计器,可以用SGD端到端训练JMLH的网络。注意可以确定地获得,并且不需要近似,因为不涉及随机性。
整个训练过程如算法1所示,相应的变量通过路径如图2(a)所示。这里我们用(·)表示梯度缩放器,本文中使用Adam优化器[18]。可以看出,在训练期间,JMLH的与普通的神经分类网络并无差异。唯一的附加步骤只是对随机信号ε 进行采样。