顾 岩,赵崇宇,黄 平
(太原理工大学 物理与光电工程学院,山西 晋中 030600)
面向大规模图像的近似最近邻(Approximate Nearest Neighbor,ANN)检索方法已经成为学术界和工业界的研究热点之一[1-2],哈希方法由于其特有的高查询速度和低存储代价而被广泛应用于ANN检索领域。现有的哈希学习方法大致可以分为两类,即数据独立哈希和数据相关哈希[3-4]。其中,数据独立哈希在训练过程中通常不依赖任何数据集,其采用随机映射的方式进行哈希映射函数的学习,而数据相关哈希通过训练数据集以学习哈希函数,因此其又被称为学习哈希(Learning to Hash,L2H)[5]。根据是否利用训练样本的监督信息,学习哈希又可以进一步分为监督哈希、半监督哈希和无监督哈希[6-8]。传统的学习哈希由于输入的手动特征在表达深层语义信息方面的局限性,导致其哈希检索的性能受限。随着深度神经网络技术的深入研究,许多研究人员采用卷积神经网络(Convolutional Neural Networks,CNN)等模型对特征进行自动提取,并提出了较多基于深度学习的哈希方法,大幅提高了哈希检索的性能[9]。文献[10]利用CNN自动提取图像的深层语义特征,并在此基础上采用坐标下降方法对相似矩阵进行分解,但是该学习过程是基于两阶段的,难以进行端到端的训练。文献[11]采用三元组思想设计一种优化的排序损失函数,并将特征学习和哈希学习处于同一框架下,以对模型进行端到端的训练。文献[12]采用对比损失的方式来优化哈希学习过程,提高了哈希检索的性能。文献[13]提出了一种基于多标签的多层语义相似度排序方法,其采用代理损失的方式来优化哈希码学习过程。文献[14]通过CNN对图像进行特征提取,并设计损失函数对相似图像对和不相似图像对之间的汉明距离分别进行逼近和惩罚。
在现有基于深度哈希方法的训练数据集中,与目标图像相似的图像数量远小于不相似的图像数量,这导致了整个训练数据集的不平衡性[15],同时造成在训练过程中模型对负样本学习的过拟合和对正样本学习的欠拟合现象。因此,对不平衡的样本数据进行哈希学习容易导致训练得到的模型泛化能力差,从而降低哈希检索的准确率。此外,大部分学习哈希注重损失优化的设计,忽略了对图像深层语义特征的表示,然而高阶细粒度特征不仅可以保持高层的语义相似度,而且可以提高所生成的哈希编码的区分能力[16-17]。为提高哈希检索的时间效率,现有的多数深度哈希学习方法在对不相似图像进行哈希学习时,通常采用多级索引的思想生成哈希编码,即将生成的哈希编码分解为多个连续且不相交的哈希块,并为每个哈希块创建一个单独的块索引[18]。在检索过程中,将查询图像的哈希块与候选图像的哈希块进行匹配,并对块匹配不成功的候选图像进行过滤,在此基础上,生成候选图像集并根据汉明距离实现排序[19]。然而,这种方式生成的哈希块内的哈希编码往往不均匀,可能会导致不相似图像的哈希索引块与相似图像的哈希索引块具有相同的哈希编码。假设将图像哈希编码划分为m个哈希块单元,每个块内有nbit的哈希码,传统的多级哈希检索由于编码的不均匀性,导致查询图像、相似图像以及不相似图像的哈希块单元内具有相同的哈希编码,这将大幅增加查询过程中候选图像的数量,降低多级索引检索的效率。
本文建立一种基于高阶统计信息的深度哈希学习模型(BCI-DHH)。采用改进的VGG-m模型提取输入图像基于层内的自相关特征以及基于层间的互相关特征,在此基础上生成归一化的高阶统计向量。为防止模型训练过程中由于数据的不平衡性导致对负样本学习的过拟合和对正样本学习的欠拟合现象,提出一种基于平衡权重的对比损失优化方法。为降低检索的时间复杂度,对不相似图像对之间的哈希块进行差异化学习,增大其与目标图像之间的汉明距离,从而减少候选图像的数量并提高检索效率。
本文BCI-DHH模型将基于图像的高阶统计学习和哈希学习集成在统一框架下,并采用端到端的方式进行训练,整个模型的架构如图1所示。
图1 BCI-DHH模型总体框架
BCI-DHH模型主要由高阶统计学习和哈希学习2个部分构成。在高阶统计学习部分,为了更高效地提取细粒度深层语义特征,模型同时获取了基于层内的自相关信息和基于层间的互相关信息,并在此基础上生成归一化的高阶统计向量。在哈希学习部分,首先对输入的训练图像对进行平衡优化,对不相似图像对的训练采用具有兼容性的多级索引进行优化,从而提高了哈希编码的检索效率和准确率。由于本文的目的在于研究基于高阶统计信息的深度哈希检索的有效性,因此仅采用基于VGG-16模型的前14层以及Relu激活函数作为特征提取的基本架构,其他CNN模型也可以用来验证本文方法的有效性。
与已有研究不同,本文模型输入到哈希层的图像特征是基于归一化的高阶特征,从而使得产生的哈希编码更加具有区分能力[18-20]。在BCI-DHH模型中,假设第i张图像的高阶统计信息fi可以由式(1)得到:
fi=φ{Ii;Θ}
(1)
其中,φ表示可以进行归一化高阶统计学习的网络架构,Θ表示网络参数。BCI-DHH模型中哈希层输出的哈希编码可以由式(2)获得:
(2)
为获取高层细粒度的语义特征,多数学者采用双线性的卷积神经网络(Bilinear Convolutional Neural Networks,B-CNN)模型对图像进行深层语义特征提取,以进行哈希学习并生成高质量的哈希编码。如图2(a)所示,B-CNN需要采用2个单独的CNN模型分别获取统计向量。然而,B-CNN仅能获取不同层之间的互相关特征而忽略了层内的自相关特征,相关研究也证明了自相关信息对生成具有区分能力的细粒度特征描述符具有重要作用[16-17]。在本文BCI-DHH模型中,对输入的图像分别提取层内的自相关特征和层间的互相关特征,从而生成基于高阶统计信息的特征向量(如图2(b)所示),并在此基础上进行深度监督哈希学习。
图2 高阶统计学习示意图
在B-CNN模型架构中,通过2个CNN对输入的图像分别进行局部特征提取,得到特征矩阵X和Y,在此基础上进行双线性池化操作得到高阶特征Z,双线性池化操作具体如式(3)所示:
Z=XTY
(3)
(4)
(5)
为生成具有区分能力的哈希编码,需要对模型的损失函数进行优化设计。模型通常采用损失函数来计算目标图像和查询图像之间的汉明距离,从而生成最优的哈希编码。因此,损失函数的设计对于整个哈希检索过程至关重要。本文在提取到的基于归一化高阶统计特征的基础上,针对哈希学习中容易出现的数据不平衡性和多级索引的不兼容性,提出一种更加有效的面向深度哈希学习的损失函数,从而生成更具区分能力的哈希编码。
假设存在图像对{ii,ij}∈I及其对应输出的哈希编码{bi,bj}∈{-1,+1}k,基于图像对的损失函数定义如下:
(1-sij)·max(m1-Dh(bi,bj),0)}
s.t.bi,bj∈{-1,+1}k,i,j∈{1,2,…,N}
(6)
其中,Dh(·,·)表示2个哈希编码之间的汉明距离。m0>0和m1>0分别表示边缘阈值参数,sij=1表示式(6)中第一项对汉明距离大于m0的相似图像ii和ij进行惩罚,sij=0表示式(6)中第二项对汉明距离小于m1的不相似图像ii和ij进行惩罚,由此可以保证所生成哈希编码的区分能力。
为防止模型在训练过程中由于数据的不平衡性而导致对负样本进行拟合学习的现象,在式(6)的基础上引入权重wi,j,对训练数据集中的正负样本数目进行平衡,具体表示如下:
(7)
其中,S1={(xi,xj)|sij∈S∩sij=1}表示相似图像对,S0={(xi,xj)|sij∈S∩sij=0}表示不相似图像对。基于此,式(6)可以重写如下:
(1-sij)·max(m1-Dh(bi,bj),0)}
s.t.bi,bj∈{-1,+1}k,i,j∈{1,2,…,N}
(8)
在式(8)中,由于bi,bj∈{-1,+1}k为离散化值,因此整个模型不能直接进行反向传播与训练。为提高整个模型的收敛速度,本文采用具有连续属性的欧式距离来替代离散化的汉明距离。此外,为了减少量化误差,通过增加正则项使得模型的输出值达到离散化(-1/+1)[14]。因此,基于正则化的数据平衡性损失函数lw如下:
lw=L(bi,bj,sij)=
α(‖|bi|-1‖1+‖|bj|-1‖1)
(9)
s.t.bi,bj∈{-1,+1}k/b
(10)
从式(10)可以看出,兼容性损失使得不相似图像对的哈希编码中每个哈希块的哈希距离增大为m1,从而减少了检索过程中候选图像的数量,提高了检索效率。
综合考虑模型训练过程中数据平衡性和多级哈希索引的兼容性,本文BCI-DHH模型对应的目标函数lw-index如下:
α(‖|bi|-1‖1+‖|bj|-1‖1)
(11)
其中,β>0表示平衡性损失lw和兼容性损失lindex之间的权衡参数。
本文采用基于小批量的梯度下降算法对BCI-DHH模型中的损失函数lw-index进行优化,故需要计算式(9)对bi,j的梯度。此外,由于max操作和绝对值操作在个别情况下是不可导的,因此在上述不可导点本文采用次梯度(训练过程中设置次梯度为1)来代替梯度。本文目标函数lw-index的梯度计算如下:
(12)
基于式(12)中梯度的计算方法,可以对本文BCI-DHH中的参数进行反向传播以训练网络模型,从而得到最优参数。
在CIFAR-10和NUS-WIDE 2个被广泛使用的基准数据集上对本文BCI-DHH模型进行对比实验。CIFAR-10是一个单标签图像数据集,其包括属于10个类别的共计60 000张32×32图像,本文随机选择每个类别中的100张图像(共计1 000张图像)作为测试数据集,剩余每个类别中的5 000张图像(共计50 000张图像)作为训练数据集。NUS-WIDE是来自于Flickr的269 648张多标签图像数据集,其中手动标注了81个类别与图像之间的关联关系,与文献[14,22]类似,本文使用与其中21个最常见类别相关联的图像作为输入,每个类别至少包含5 000张图像,从而有共计1 958 334张图像。在一般情况下,如果2张图像共享至少一个类标签,则认为该图像对为相似图像对,否则为不相似图像对。在NUS-WIDE数据集中,本文随机选择2 100张图像(每类100张图像)作为测试数据集,剩余数据用于模型训练。在本文实验中,分别采用深度哈希方法和传统哈希方法与BCI-DHH模型进行对比实验。其中,深度哈希方法包括RICH[23]、BDH[15]、DSH[14]、DHN[22]和DPSH[12],传统哈希方法包括ITQ[24]和SH[25]。为提高传统哈希方法的检索性能,本文采用CNN对输入数据进行特征提取并将其作为哈希学习的输入特征。
本文BCI-DHH模型基于开源Caffe框架实现。在模型训练过程中,采用基于小批量的梯度下降算法进行参数优化,设置动量为0.9,权重衰减为0.004。在10-5~102区间内采用基于步长为10的交叉验证的方式对超参数α和β进行选取[23]。对于边缘阈值参数m0,本文根据经验值,在CIFAR-10中将其设置为4,在NUS-WIDE中将其设置为8。此外,本文实验中设置m1=2k。在多级索引的兼容性损失中,将哈希编码划分为k/2个哈希块,这样可以保证不相似图像的每个哈希块中至少有一位不同的二进制编码。本文提出的多级索引的方式基于高性能全特征的文本搜索引擎库Lucene-6.4.2实现。
在实验过程中,对本文BCI-DHH模型和其他方法在检索的准确度和检索效率方面进行对比分析,采用均值平均精度(mean Average Precision,mAP)来评价模型的检索准确度,通过基于汉明距离的图像查询时间衡量检索效率。
在CIFAR-10和NUS-WIDE 2个基准数据集上,当设置哈希编码长度为16 bit、32 bit、48 bit和64 bit时,分别计算本文模型和其他方法的mAP,结果如表1所示,其中最优结果加粗表示。从表1可以看出,多数深度哈希方法的检索性能远优于传统哈希方法,表明相比于传统手工设计的特征,深度神经网络模型可以提取深层语义特征。本文BCI-DHH模型不仅提取到不同层之间的互相关信息,而且获取到了层内的自相关信息,从而生成了更加细粒度的深层语义特征。因此,在CIFAR-10数据集上,相比于其他深度哈希方法,本文模型基于不同哈希长度下检索的mAP得到全面提升,而在NUS-WIDE数据集中,相比于其他深度哈希方法,本文模型哈希检索的mAP提升了1.8%~4.3%。DSH方法在CIFAR-10数据集上的mAP优于DPSH方法,而在NUS-WIDE数据集上,DSH方法的mAP低于DPSH方法,表明DSH在不同数据集上的健壮性较低。本文模型在进行训练的过程中考虑到正样本数量过少且负样本数量过多的问题,采用数据平衡性损失对模型进行优化,防止对正样本学习欠拟合而对负样本学习过拟合的现象,因此,BCI-DHH模型在CIFAR-10和NUS-WIDE数据集上都表现出了最佳性能。
表1 CIFAR-10和NUS-WIDE数据集中不同位数哈希编码的mAP对比
此外,基于CIFAR-10和NUS-WIDE 2个数据集,分别设置哈希编码长度为16 bit、32 bit、48 bit和64 bit,在返回样本数量为Top500和检索的汉明半径不超过2的情况下对BCI-DHH模型和其他方法的准确率进行对比分析,结果如图3~图6所示。从中可以看出,由于BCI-DHH模型在进行哈希学习时输入的特征向量是基于高阶统计信息的,因此当返回的样本数目为Top500时,其在不同编码长度下的哈希检索中都表现出了最佳性能。同时,随着哈希编码长度的增加,大部分哈希学习方法的检索性能也不断提升,特别是在NUS-WIDE数据集中,当哈希编码长度由32 bit增加到64 bit时,BCI-DHH模型检索性能提升了5%左右。当设定检索的汉明距离半径长度不超过2时,无论是在CIFAR-10数据集还是NUS-WIDE数据集中,本文BCI-DHH模型相比于其他方法都表现出较好的性能。随着用于检索的哈希编码的不断增加,固定汉明半径,则本文模型检索性能会有一定程度的下降,而在NUS-WIDE数据集中,哈希编码由48 bit增加到64 bit时,BCI-DHH模型检索性能没有发生显著变化,充分证明了本文模型的健壮性。
图3 CIFAR-10数据集中的Top500准确度对比
图5 NUS-WIDE数据集中的Top500准确度对比
图6 NUS-WIDE数据集中汉明距离小于2时的准确度对比
一般而言,多级索引的检索过程包括搜索和检查2个阶段。在搜索阶段,查询图像通过哈希函数生成哈希编码并划分为不同的哈希块,然后搜索基于多级索引的二进制代码,从而查找出至少与查询图像具有一个相同哈希块的哈希编码。在检查阶段,根据查询图像与候选图像之间的汉明距离对候选图像数据集进行排序。在本文检索时间实验中,主要考虑这2个阶段消耗的时间代价,实验过程中所有图像的哈希代码均存储在内存中。
在CIFAR-10和NUS-WIDE数据集上,分别测试BCI-DHH和RICH、BDH、DSH哈希方法在哈希编码长度分别为16 bit、32 bit、48 bit和64 bit时检索目标图像所消耗的时间。由于本文BCI-DHH模型在进行训练优化时充分平衡了正负样本的数目,避免了参数过拟合或欠拟合的发生,因此产生了具有较强区分能力的哈希编码,保证了图像与哈希编码之间的语义相似度,从而在一定程度上减少了候选图像的数量。此外,在不相似图像的哈希编码学习过程中,通过对不相似图像的多级哈希索引块进行差异化操作,增加不相似图像与目标图像之间的汉明距离,从而大幅减少候选图像数目,降低检索代价,提高检索的效率。具体实验结果如图7、图8所示,从中可以看出,DSH模型的检索时间代价小于BDH模型,在NUS-WIDE数据集中,当哈希编码长度为32 bit时,DSH的检索时间最长,从而说明上述模型的健壮性较低。而本文BCI-DHH模型在CIFAR-10和NUS-WIDE数据集中消耗的时间均最短,充分证明了模型的高效性和健壮性。
图7 CIFAR-10数据集上不同哈希编码的检索时间对比
图8 NUS-WIDE数据集上不同哈希编码的检索时间对比
当哈希编码的长度为32 bit时,在CIFAR-10数据集和NUS-WIDE数据集上分别测试BCI-DHH和RICH、BDH以及DSH方法的候选图像数量,结果如表2所示。由于BCI-DHH模型不仅考虑数据的不平衡性,而且在对不相似图像进行多级索引哈希学习时,对哈希块进行了差异化操作,从而减少了候选图像的数量,因此,本文模型在检索过程中候选图像数量最小。从表2可以看出,相比其他方法,在CIFAR-10数据集上本文模型的候选图像数量减少了3.5%~24.5%,在NUS-WIDE数据集上减少了7.6%~47.7%。此外,当哈希编码长度设定为32 bit时,在CIFAR-10和NUS-WIDE数据集上分别对模型的召回率进行了比较分析,结果也展示在表2中。由于CIFAR-10数据集为单标签数据集,因此图像对之间共享标签数目最多为1(表中用“——”表示)。可以看出,当哈希编码为32 bit时所有的哈希方法都在该数据集上实现了将近100%的召回率,表明在搜索阶段没有相似图像被过滤掉,进一步说明所有方法在CIFAR-10数据集中能表现出良好的性能。在NUS-WIDE数据集中,“≥n”表示与目标图像之间共享不少于n个相同标签的相似图像的召回率。通过实验结果可知,随着共享标签数的增加,召回率增加,表明与目标图像具有更高相似度的相似候选图像更有可能被检索到。本文BCI-DHH模型在CIFAR-10和NUS-WIDE数据集上的召回率均为最优,从而进一步验证了本文模型的有效性。
表2 CIFAR-10和NUS-WIDE数据集中的召回率和候选图像数量对比
本文在高阶统计学习方法的基础上,充分考虑数据的不平衡性和多级哈希索引的不兼容性,建立一种深度哈希学习模型BCI-DHH。在特征学习的过程中,采用改进的VGG-m模型提取具有高层语义特征的高阶统计向量。分别设计基于图像对的数据平衡性损失和多级哈希索引的兼容性损失,从而提高哈希检索过程的准确率和效率。在基准数据集CIFAR-10和NUS-WIDE上进行实验,结果验证了BCI-DHH模型的有效性。下一步将采用真实场景下的数据对本文模型进行优化与验证。