以深度度量学习为基础的图像检索因其在人脸识别[1]、图像检索[2]、行人识别[3]等多个领域的实际应用价值而受到广泛关注.相较于传统的图像分类问题,深度度量学习对于特征的泛化性要求更高,对于模型训练阶段没有见过的类别,在特征空间内也要具备一定的区分能力.深度度量学习仍有很多问题亟待解决.例如,如何选择富含信息量的样本进行训练、如何选择不同难易程度的训练样本以及如何在训练过程中挖掘困难样本使得训练过程更加稳定等问题是近年来研究者们的主要研究方向.文献[4]为了提升分类器对足迹特征的辨识性能,通过度量学习的方法将足迹特征投影到新的特征空间.利用对数函数构造度量学习核函数,结合支持向量机分类器实现光学足迹的识别.文献[5]为了解决深度学习框架经常遇到收敛缓慢甚至陷入局部最优解的问题,提出了N-Pair损失来对正负样本同时进行距离优化.通过结合三元组模型和特征空间映射,提出一种智能挖掘框架,能够以较低的计算成本产生有效的训练样本.文献[6]提出了分层三元组损失函数(HTL),能够通过自适应学习编码数据集的所有类别样本构建层级类结构,生成分层树,改进了随机采样导致的陷入局部最优和收敛速度慢的问题.文献[7]提出了基于近邻成分分析的优化方法(Proxy-NCA),通过计算锚点和学习到的代表点的相似与不相似程度来计算损失,收敛速度更快,效率更高.文献[8]提出了用于困难样本的深度级联网络(HDC)模型,以级联的方式集合不同复杂度的模型,充分挖掘难例样本.通过复杂度递增的模型判断样本,且只对判断为难例的样本进行模型更新.文献[9]通过标签保留的方式合成训练样本,同时自适应地调整训练样本的困难程度,取得了较好的效果.文献[10]提出了一种样本间距离度量方法,将样本的成对距离向量升级为成对距离矩阵,设计了基于提升结构特征(LiftedStructure)嵌入的损失函数.文献[11]通过对三元组损失Triplet Loss和SoftMax进行改进,提出了SoftTriple(ST)框架,通过多个中心可以更好地捕获隐藏的数据分布以及自适应地选择类别中心的个数.本研究在度量学习模型SoftTriple的基础上,对网络结构和损失函数两部分进行改进.在网络结构设计中,本研究在全局平均池化层前、特征提取模块后引入了BNNeck(BN)模块[12].在损失函数设计中,本研究尝试了多种对传统的SoftMax损失函数进行改进的方法,使其对难例的训练更具有针对性.考虑到整体数据特征分布,通过使用高阶矩表征整体特征分布的思想来设计损失函数.1 损失函数设计1.1 无需三元组样本挖掘的损失函数在深度度量学习任务中,样本被其特征代替,深度度量学习的任务是学习一个从原始的特征空间到一个新的空间的映射.马氏距离[13]是深度度量学习的基础,用来度量特征之间的距离.在新的空间下,样本之间的距离distM用马氏距离来计算,distM(xi,xj)=(xi-xj)TM(xi-xj), (1)式中M为学习的距离度量.若用xi来表示第i个样本的特征向量,其对应的标签为yi,则深度神经网络经过SoftMax得到的预测概率输出为P=(Y=yi|xi)=exp(wyiTxi)/∑jCexp(wjTxi),(2)式中[w1,w2,⋯,wC]∈Rd×C为最后一层全连接层的参数,C为类别的数量,d为嵌入向量的维度.相应的SoftMax损失函数为𝓁SoftMax(xi)=-log[exp(wyiTxi)/∑jCexp(wjTxi)].(3)1.2 考虑难例挖掘的损失函数设计分类损失SoftMax和只有一个聚类中心的三元组损失Triplet Loss是等价的,由此得到一个自适应中心数量的SoftTriple损失函数,𝓁AST=1N∑i𝓁SoftTriple(xi)+τ∑jCR(wj1,wj2,⋯,wjK)/[CK(K-1)], (4)式中:N为样本总数;𝓁SoftTriple为多个中心的SoftMax损失函数;R(wj1,wj2,⋯,wjK)为K个中心的正则化项;K为每个类别的中心数目.有R(wj1,wj2,⋯,wjK)=∑t=1K∑s=t+1K2-2wjsTwjt, (5)式中wKj为第j个类别的第K个聚类.文献[14]提出一种误分类向量引导的SoftMax损失函数(MV-SoftMax),该函数可以自适应地突出被错误分类样本的特征向量,来指导判别性特征学习,𝓁MV=-log{exp[sf(m, θwy,x)]/[exp[sf(m, θwy,x)]+∑k≠yKh(t, θwk,x, Ik)exp(scos θwk,x)]}, (6)式中:x为输入特征向量;y为真实值标签;K为类别数量;s为比例参数;θwk,x为wk和x间的角度,cos θwk,x为余弦相似性.f(m, θwy, x)为设计的边际函数,m为参数.h(t, θwk,x, Ik)是一个用来强调错误分类样本权重的函数,该函数可以自适应地调整错分类样本的权重,h(t, θwk,x, Ik)=exp[st(cos θwk,x+1)Ik], (7)式中:t为超参数;Ik为一个二元指标,用来表示样本是否被wk分类器错误分类.为了解决单阶段目标检测中正负样本数量及分类难度不平衡引起的损失值被大量容易分类的负样本损失淹没的问题,文献[15]提出了Focal Loss(FL)损失函数,FL(p)=-α(1-p)γplog p, (8)式中:α为平衡因子,用来平衡正负样本本身的比例不均;p为模型预测概率,(1-p)γ为调节因子,γ为可调聚焦参数,γ≥0可以降低易分类样本的损失,使得模型更加关注于难分类的样本.文献[16]提出了在线难例样本挖掘算法(OHEM),可以根据输入样本的损失进行筛选,筛选出有多样性和高损失的困难样本,即对分类和检测影响较大的样本,然后将筛选得到的样本应用于随机梯度下降中训练.实验表明OHEM在提高检测准确率的同时,解决了正负样本类别不均衡的问题.本研究以SoftTriple为基础,将SoftTriple与MV,FL及OHEM三种难例挖掘算法分别组合进行实验,验证是否可以提高图像检索性能;同时,在SoftTriple网络结构的基础上加入BNNeck模块,观察添加BNNeck模块对检索结果的影响,添加BNNeck模块后的SoftTriple结构如图1所示.10.13245/j.hust.210607.F001图1改进后的SoftTriple网络1.3 考虑整体特征分布的损失函数设计学习一个有效的图像表征之间的相似度量是度量学习的目标.相似度量是基于经过全局平均池化得到的特征来进行,但是这些特征在空间中表现出来的状态十分分散,对于一些干扰噪声及错误标注的数据十分敏感.如果将全部的特征点进行随机采样,那么得到的平均后的特征表征相较于全部的特征点会发生很大的偏移,导致同类特征点的聚类效果和不同类别之间的离散效果不理想.受该研究工作的启发,在此考虑通过全局特征表征的数据分布来设计损失函数.与之相同的是,利用因式分解的机制,通过计算高阶矩近似表示深度特征分布之间的距离.以二阶矩为例,从{-1,1}的均匀分布W中随机采样两个独立向量w1和w2,对两个非随机向量x和y的二阶矩内积可以近似为Ew1,w2∼W[ϕ2(x)ϕ2(y)]=〈x;y〉2=〈x⊗x;y⊗y〉,式中:⊗为克罗内克积;E为服从均匀分布W的随机向量w1和w2的期望.对应高维的矩可以使用如下所示的迭代来近似实现ϕK(x)=∏k=1K〈wk;x〉;ϕk(x)=ϕk-1(x)⊙(WkTx),式中:k为维数;⊙为哈达玛积.与之不同的是,本研究使用特征拼接将最终的特征向量结合成为一个向量.因为这个结合多个高阶矩的向量也可以用来表征一个类别特征的分布,所以再经过线性变换得到最终的类别预测概率.考虑整体特征分布的损失函数设计流程如图2所示.Wk在{-1,1}的均匀分布中随机初始化且在训练过程中不被更新.10.13245/j.hust.210607.F002图2考虑整体特征分布的损失函数设计2 实验部分2.1 实验数据与实验设置CUB-2011是深度度量学习常用的基准数据集.CUB-2011数据集中包含了200类鸟类的图像,共1.178 8×104张图片.实验采用前100类(5 864张图像)作为训练集,后100类(5 924张图像)作为测试集.本研究使用Inception[17]网络作为主干网络进行特征抽取,其初始化参数是在ImageNet ILSVRC 2012[17]数据集上训练得到的,然后在CUB-2011数据集上进行微调.网络的输入是裁剪到224×224大小的图片.在训练过程中使用随机水平翻转和随机裁剪作为数据增强,但是在测试阶段只使用中心裁剪到指定大小后作为输入.本研究使用Adam优化器进行网络的训练,批次大小为32,迭代次数为50.主干网络和类别中心的初始化学习率分别为0.000 1和0.01,并且当迭代次数为20和40时学习率下降到1/10.嵌入向量特征维度设为64和512,聚类中心的数量设置为2.2.2 评价指标Recall@k (R@k)和标准化互信息(NMI)是两个常用的度量学习指标.Recall@k为前k(k=1,2,4,8)个结果中检索出的相关结果数和库中所有的相关结果数的比率.NMI指标用来衡量聚类的效果,给出聚类结果C={c1,c2,⋯,cn}和真实值标签Ω={y1,y2,⋯,yn},NMI的计算公式为NMI=2I(Ω;C)/[H(Ω)+H(C)],式中:I为互信息;H为熵.熵用来衡量一个随机变量的不确定程度,其大小和不确定程度成正相关,计算公式为H(X)=-∑x∈Xp(x)log p(x),式中X为随机变量x的可能取值,对应的概率为p(x).互信息是一个随机变量中包含的另外一个随机变量的信息量.假设两个随机变量x和y的联合概率分布为p(x,y),p(x)和p(y)分别为其边缘概率分布,则其互信息I(X,Y)如下式所示I(X,Y)=∑x∈X ∑y∈Yp(x,y)logp(x,y)p(x)p(y).2.3 考虑难例挖掘的损失函数实验实验将SoftTriple与OHEM,MV和FL中的一种或两种难例挖掘算法进行组合,比较了添加难例挖掘算法与不加难例挖掘算法情况下的图像检索性能,来找出最好的算法组合.在此基础上,添加BNNeck模块,进行实验探究添加BNNeck模块对检索性能的影响.实验结果与HTL,LiftedStructure,SoftMax,SoftTriple,N-Pair,Proxy-NCA,HDC方法进行对比.特征维度为64维和512维的CUB-2011数据集图像检索结果见表1和表2.10.13245/j.hust.210607.T001表1特征维度为64的CUB-2011数据集测试结果方法R@1R@2R@4R@8NMILiftedStructure43.656.668.679.656.5N-Pair51.063.374.383.260.4Proxy-NCA49.261.967.972.459.5SoftMax57.870.080.187.965.3SoftTriple60.171.981.288.566.2ST+FL58.971.080.788.065.4ST+OHEM59.371.180.787.866.2ST+MV59.571.881.088.565.9ST+MV+FL58.470.880.687.964.9ST+MV+OHEM59.972.081.388.566.0ST+BN60.972.382.089.267.4ST+OHEM+BN59.772.182.488.767.3ST+MV+BN61.373.482.789.268.4ST+MV+OHEM+BN61.473.782.589.067.8%10.13245/j.hust.210607.T002表2特征维度为512的CUB-2011数据集测试结果方法R@1R@2R@4R@8NMIHDC53.665.777.085.6—HTL57.168.878.786.569.0SoftMax64.275.684.390.268.3SoftTriple65.476.484.590.469.3ST+FL63.975.484.490.768.6ST+OHEM65.677.285.391.069.6ST+MV64.976.685.090.769.6ST+MV+FL64.475.183.990.168.1ST+MV+OHEM65.376.884.990.269.1ST+BN65.376.484.790.570.0ST+OHEM+BN64.976.385.390.769.2ST+MV+BN65.576.484.890.669.7ST+MV+OHEM+BN65.576.185.090.869.8%从表1的测试结果可以看出:ST+MV+OHEM+BN方法的R@1和R@2数值最大,分别为61.4%和73.7%;ST+MV+BN方法的R@4,R@8和NMI数值最大,分别为82.7%,89.2%和68.4%.两种方法各指标数值相差很小,相比于其他方法性能提升较大.因此,在特征维度为64的数据集上,ST+MV+OHEM+BN方法和ST+MV+BN方法都可以取得较好的效果.从表2的测试结果可以看出:方法组合ST+OHEM的R@1,R@2,R@4和R@8分别为65.6%,77.2%,85.3%和91.0%,相较于其他方法数值最大.NMI为69.6%,接近最大值70.0%.因此ST+OHEM方法组合性能最优.从表1和表2可以看出:添加难例挖掘算法有利于提高图像检索性能,对于64维的CUB-2011数据集,添加BNNeck模块对检索性能的提升更大.2.4 考虑整体特征分布的损失函数实验带有高阶正则项的SoftMax损失函数训练过程中测试集的指标变化浮动比较大.本研究通过实验探究不同维度的嵌入向量以及不同阶数的高阶矩组合对损失函数的影响.表3和表4分别为不同维度的嵌入向量和不同阶层的高阶矩两个条件对整体特征分布损失函数性能影响的实验结果.实验在CUB-2011数据集上进行.CUB-2011数据集嵌入向量特征融合之后进行线性变换,再经SoftMax进行分类.设定Wk不更新.10.13245/j.hust.210607.T003表3嵌入向量不同维度时的R@k和NMI维数R@1R@2R@4R@8NMI6461.072.382.189.367.012861.473.282.789.166.825662.073.782.788.667.751261.372.882.088.868.01 02462.273.883.189.668.2%10.13245/j.hust.210607.T004表4高阶矩阶层不同时的R@k和NMI阶数R@1R@2R@4R@8NMI二60.572.481.988.868.1三62.373.883.189.768.2四62.173.582.889.168.0%不同维度的嵌入向量对整体特征分布损失函数性能的影响见表3,实验表明:从64维到1 024维,整体表现出维度越高性能越好的特征.特征维度为64时的R@1,R@2,R@4,R@8和NMI分别为61.0%,72.3%,82.1%,89.3%和67.0%,均高于表1中的LiftedStructure,N-Pair,Proxy-NCA,SoftMax,SoftTriple的实验结果.特征维度为512时的R@1,R@2,R@4和R@8分别为61.3%,72.8%,82.0%和88.8%,均高于HDC和HTL方法的实验结果.因此,考虑整体特征分布的损失函数可以有效提高图像检索性能.不同阶层的高阶矩对整体特征分布损失函数性能的影响见表4.实验探究了二阶、三阶和四阶三种高阶矩对结果的影响.整体上来看,R@1,R@2,R@4,R@8和NMI在三阶时数值最高,分别为62.3%,73.8%,83.1%,89.7%和68.2%,因此三阶时性能最好.3 结语本研究改进了SoftTriple网络结构,在全局平均池化层前引入了BNNeck模块.以SoftTriple损失函数为基础,尝试使用多种难例样本挖掘的方法提高检索性能.考虑到数据特征的整体分布,本研究提出了新的损失函数构建流程,通过使用特征拼接的方法将最终的特征向量结合成为一个向量,并通过实验验证了不同维度的嵌入向量以及不同阶层的高阶矩对整体特征分布损失函数性能的影响.实验证明使用难例挖掘算法、考虑整体特征分布及添加BNNeck模块都可以取得较好的性能提升.
使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,
确定继续浏览么?
复制成功,请在其他浏览器进行阅读