一种大规模图片集分布式近似搜索的方法与流程

文档序号:12863866阅读:303来源:国知局
一种大规模图片集分布式近似搜索的方法与流程

本发明属于机器学习领域,主要涉及在大规模图片集分布式地存储数据和训练算法模型的近似搜索方法,以及利用哈希技术对图片进行编码。



背景技术:

对图片的近似搜索是近邻查询邻域中的一个重要的应用。在大数据时代,图片数据通常具有两个特点:第一,数据的规模非常大;其次,图片本身的特征维度很高。在现实中,图片数据通常是以分布式的方式存储或采集,所以分布式的近似搜索方法对海量高维图片高效准确地近邻查询对机器学习、信息检索、计算机视觉等领域的研究有着非常重要的应用价值。

在图片近似搜索的应用中,现在最为流行的方法是基于哈希技术的近似近邻搜索。哈希技术的本质就是把原始高维特征的数据映射到汉明空间中形成二进制编码,通过比较各数据间二进制编码的汉明距离来确定近邻关系。现有的哈希算法大都是以集中式的方法训练算法模型,并对新的查询图片搜索近邻。所谓的集中式方法,就是指对训练数据的存储,和利用数据训练算法模型的过程都是在一个服务器结点上进行。比较经典的集中式哈希算法如局部敏感哈希算法(lsh),通过将数据的近似搜索问题转化为寻找汉明距离较小的二进制编码来解决,这样可以具有更为简单的索引结构和使用更少的存储空间。但是lsh为了同时保证精度和召回率,需要构建多个哈希表,这样会导致查询时间和存储开销的大幅增加,使得算法的性能下降。

随之又出现了可以产生更为高效编码的集中式哈希算法,比如谱哈希(sh)算法,锚哈希(agh)算法。但是这些算法在寻找近邻图片时过于片面,它们只考虑了图片在数据集中的实际存储位置,而没有考虑图片可能具有的语义标记信息,这使得这些算法在图片近似搜索中的性能较差。然而在现实中,很多图片具有语义标记信息,不同的类标记信息代表图片属于不同的类别。比如两张图片在数据集中可能实际存储距离较远,但是它们具有相同的类标记“天空”,那么这两张图片也是近似图片。

上面所述的集中式哈希算法,只用一个服务器结点存储所有的数据,并在单个结点上训练算法模型。但是在大数据时代,当图片数据集的规模非常大时,集中式的算法通常会存在如下的问题:一、单个计算结点不可能把成百上千万计的图片数据加载进内存进行训练;二、在现实应用中,图片数据通常是分布式地存储或采集,把这些数据汇聚到一个结点会产生很大的通信和计算开销。所以用单个服务器结点集中式地训练算法模型已不再适合。



技术实现要素:

本发明的目的在于提供一种应用于大规模图片数据集中的引入语义一致性的分布式近似图片搜索方法。主要解决图片的分布式近似搜索问题并将近似的图片通过哈希技术映射成相同或相似的二进制编码。本发明主要包括两个部分:分布式地训练算法模型的过程和查询图片近似搜索的过程。

为此目的,本发明采用的技术方案为一种大规模图片集分布式近似搜索的方法,包括如下步骤:

步骤1:输入图片数据集样本矩阵x,x是n*d维的矩阵,n是图片的个数,d是图片特征的维度,和对应的语义类标记矩阵y,y是n*c维的矩阵,n是样本个数,c是类标记的个数,假设有i个服务器结点,图片集中的样本矩阵均匀分为i部分:x=[x1,x2,...,xi],类标记矩阵也相应地分为i部分:y=[y1,y2,...,yi],每一部分数据和对应的标记存储在一个结点上;

步骤2:从各服务器结点的图片样本中随机抽取一部分图片作为抽样图片集,计算图片和抽样图片之间的相似度;

步骤3:引入语义一致性构建目标函数表达式o(ai),其中ai是d*d维的方阵,d是图片特征的维度,i代表第i个服务器结点,ai是在编码阶段需要的转换矩阵;

步骤4:在各结点中,对于每一个图片样本x,用转换矩阵ai乘以图片样本x和抽样图片之间的相似度,得到了引入语义一致性之后的优化相似度,然后再利用哈希技术进行编码,将图片由原始的d维特征压缩映射成k维的二进制编码;

步骤5:对于新的查询图片,分别输入到各结点中,并行计算出此查询图片的二进制编码,并通过加权模型得到各结点中查询图片的汉明距离向量;

步骤6:合并各结点的汉明距离向量,得到查询图片相对于图片集中所有图片的汉明距离向量,如果图片在汉明距离向量中对应位置的元素值小于设定的汉明距离门限阈值r,以此图片作为查询图片的近似图片。

进一步,上述利用哈希技术进行编码具体包含以下步骤:

步骤1:

对于大规模图片数据集样本矩阵x,和对应的语义类标记矩阵y,假设有i个服务器结点,则把图片集中的样本矩阵均匀分为i部分:x=[x1,x2,...,xi],类标记矩阵也相应地分为i部分:y=[y1,y2,...,yi],每一部分数据和对应的标记信息存储在一个结点中,作为后续各结点并行训练模型使用;

步骤2:

在各结点并行训练过程中,需要计算结点中图片和抽样图片集之间的优化相似度,若第i个结点中包含ni张图片样本,定义图片间的关系矩阵wi是一个ni*ni维的矩阵,关系矩阵中的每一个元素定义为:

wpq=exp(-||ai(xp-uq)||2)(1)

上式中ai表示第i个结点的转换矩阵,xp表示结点中的第p张图片,uq表示结点抽样图片集中的第q张图片,训练转换矩阵ai的过程引入了语义一致性建立目标函数,并通过随机梯度下降算法迭代求解,获得编码阶段所需要的转换矩阵,对于第i个结点,定义目标函数式为:

上述目标函数中的fp表示结点中第p个图片样本的类标记向量,类标记向量是c维的列向量,c是类的数目,向量中元素的值为1或0,分别表示图片属于这个类和不属于这个类。fq表示抽样图片集中图片的类标记向量。||fp-fq||2即是在训练转换矩阵时引入的语义一致性质;

步骤3:

在优化过程中采用随机梯度下降算法以减少训练转换矩阵所用的时间,转换矩阵的初始值为i/δ,i是d*d维的单位矩阵,δ是数据集中各图片之间欧氏距离的中位数,然后根据随机梯度下降算法优化转换矩阵ai,迭代更新规则如下:

其中γ(t)是每次迭代过程中的优化步长,遍历完结点中所有图片后,即得到最终优化完成的转换矩阵ai;

步骤4:

得到转换矩阵ai后,再通过式(1)计算出结点中每张图片和抽样图片之间引入语义一致性后的优化相似度,即得到了关系矩阵wi的各个元素的值;如果抽样图片集中有m张图片样本,那么通过关系矩阵可以构建出第i个结点中使用哈希编码技术需要用到的相似矩阵zi,zi矩阵中各元素的计算公式定义如下:

其中<p>集合代表的是抽样图片集,即只有当图片是属于抽样图片集中的图片时,才计算zi矩阵上对应元素的值,否则zi矩阵上对应元素值为0;

步骤5:

设结点抽样图片集中图片数量为m,构造一个m*m维的m矩阵,m矩阵定义如下:

m=λ-1/2zitziλ-1/2(5)

其中λ=diag(zit1),是一个对角矩阵,计算得到m矩阵前k个最大的特征值组成的k*k维的对角矩阵:σ=diag(δ1,...,δk)∈rk×k和前k个最大的特征值对应的特征向量组成的m*k维的矩阵:v=[v1,...,vk]∈rm×k,由上式得到的各矩阵,构造出第i个服务器结点最终的编码矩阵yi,yi矩阵定义如下:

yi是一个n*k维的矩阵,n代表结点中图片的个数,k代表编码位数,编码矩阵yi的每行就是一个编码函数,各图片通过编码函数计算得到一个k维的向量,再对此向量进行二值化分割:sgn(yi),就得到了第i个结点中各图片的编码。

作为优选,上述步长的值可分别选取1*10-5,1*10-4,1*10-3,1*10-2

进一步,上述步骤6具体包含以下步骤:

步骤1:

把查询图片q分别传入各服务器结点中,各结点通过分布式训练过程中的方法并行计算得到查询图片q在各结点中的编码函数:y1(q),y2(q),...,yi(q),再对编码函数二值化处理就得到了q的二进制编码:h1(q),h2(q),...,hi(q)。

步骤2:

对于第i个服务器结点,在计算查询图片q和结点中各图片二进制编码的汉明距离时,引入加权模型做如下处理:

设r是编码的位数,k是其中的第k个比特位,则pr(δhk(q)=0)表示在第k个比特位上结点中各图片和查询图片q的码值相同的概率,pr(δhk(q)≠0)表示在第k个比特位上结点中各图片和查询图片q的码值不同的概率,

如果查询图片q在第i个服务器上的编码函数(代表查询图片q在第i个结点的编码函数的第k位的值)则有:

如果编码函数则有:

其中erf(.)是高斯误差函数,σk是常量参数,定义查询样本q的第k个比特位上的权重值公式为:

通过(9)式可得,和查询图片第k个比特位的编码值相同的概率越大,则这个比特位上的权重值越高,对于r位的编码,可得查询图片的权重向量为:w(q)=(w1(q),w2(q),...,wk(q),...,wr(q)),

设第i个服务器结点中存储p张图片,h1,h2,...,hp是各图片通过分布式训练得到的二进制编码,hi(q)是查询图片q在第i个结点上的二进制编码,则引入加权模型后的查询图片在第i个结点上的汉明距离向量计算公式如下:

合并每个结点的汉明距离向量,即得到查询图片相对于整个图片集中所有图片的汉明距离向量:

步骤3:定义汉明距离门限阈值为r,如果图片集中的图片在dw(q)向量对应位置上的元素值小于阈值r的话,即认为此图片是查询图片的近似图片。

作为优选,上述阈值r的值可分别选取1,2,3,4。

与现有技术相比,本发明的有益效果:

1.解决了传统的集中式哈希算法在大规模图片集应用中效率过慢和性能不佳的问题。

2.在各服务器结点中,使用转换矩阵计算图片之间的优化相似度,解决了使用传统的高斯核函数度量图片相似度时对敏感参数过于依赖的问题。

3.使用哈希技术把d维的原始图片压缩映射成k比特的二进制编码,极大地提高了算法的效率并且极大的缩减了对内存空间的占用。

附图说明

图1为本发明的系统框架图。

图2为本发明的方法流程图。

图3为本发明的各结点算法模型训练流程图。

具体实施方式

以下结合说明书附图对发明做进一步的分析。分布式训练过程主要是把图片数据集中的数据均匀分给各个服务器结点存储,各结点并行地训练算法模型,互不影响。在计算结点中存储图片和抽样图片的相似度时引入语义一致性,得到优化后的转换矩阵,并根据转换矩阵构建出相似矩阵进而利用哈希技术对各结点中的图片进行编码。查询图片近似搜索的过程主要是把查询图片分别传入各结点中并行计算,分别得到查询图片的编码。并引入加权模型,计算出查询图片与各结点中图片编码的汉明距离向量。如果图片在汉明距离向量中对应位置的元素值小于我们设定的汉明距离门限阈值,即认为此图片就是查询图片的近似图片。

本发明的关键技术分述如下:

(1)基于语义一致的分布式近似搜索算法:

基于语义一致的分布式近似搜索算法是把图片分布存储在各服务器结点中,在计算各结点中图片和抽样图片集中图片的相似度时引入语义一致性,构建出包含语义内容的目标函数。然后用随机梯度下降算法迭代求解,表达式收敛后即得到反映图片间内在语义一致特性的转换矩阵。再在各结点中利用哈希技术把图片映射成k位的二进制编码。

(2)随机梯度下降(sgd)算法:

随机梯度下降算法作为梯度下降(gradientdescent,gd)算法的改进算法,其主要针对原始梯度下降算法收敛速度过慢和易陷入局部最优的问题,是一种最小化损失函数或风险函数的迭代求解方法。本发明在优化转换矩阵时使用随机梯度下降算法,减少了语义一致分布式近似搜索方法中转换矩阵的训练时间。和传统的优化方法相比极大的提高了算法的效率。

(3)加权汉明距离模型:

当使用哈希技术进行二进制编码时,每个比特位上对应着一个哈希函数进行编码,每个哈希函数的编码效果是不同的。与查询图片在原始的特征空间中相似的图片,如果在某个比特位上通过哈希函数编码后得到相同编码的概率大,就认为这个哈希函数编码效果较好,在计算查询图片和结点中图片编码的汉明距离时会对这类哈希函数对应的编码比特位赋予更大的权重值。引入加权汉明距离模型,有效地提高了查询图片计算汉明距离向量时的准确度。

本发明针对于在大规模图片集中图片的近似近邻查找,提出了一种引入语义一致性的分布式近似搜索方法。多个服务器结点分别存储一部分训练图片,每个服务器结点并行地训练算法模型互不影响,并在训练时引入语义一致特性提高算法性能,而且在各结点使用哈希技术生成高效的二进制编码。这样,在大规模图片集的近似搜索中可以获得更好的性能。

如图1所示,本发明提供了一种在大规模图片集中引入语义一致性,并利用哈希技术对图片进行编码的分布式近似搜索方法。本发明主要分为以下两个阶段:

一、分布式训练过程

分布式训练过程首先把图片分别存储到各服务器结点中,在各结点并行训练时,根据语义一致的思想建立模型并获得编码阶段需要的转换矩阵,转换矩阵反映了图片间内在的语义一致特性。在训练转换矩阵的过程中本发明采用随机梯度下降(sgd)算法减少训练时间。在得到优化的转换矩阵后,进而可以构建出反映图片和抽样图片集之间优化后的相似性关系的相似矩阵z。然后利用哈希技术对各结点中的图片进行编码。如图3所示,具体的过程如下:

步骤1:

对于大规模图片数据集样本矩阵x,和对应的语义类标记矩阵y。假设有i个服务器结点。则把图片集中的样本矩阵均匀分为i部分:x=[x1,x2,...,xi],类标记矩阵也相应地分为i部分:y=[y1,y2,...,yi]。每一部分数据和对应的标记信息存储在一个结点中,作为后续各结点并行训练模型使用。

步骤2:

如图3所示,在各结点并行训练过程中,需要计算结点中图片和抽样图片集之间的优化相似度,若第i个结点中包含ni张图片样本,定义图片间的关系矩阵wi是一个ni*ni维的矩阵,关系矩阵中的每一个元素定义为:

wpq=exp(-||ai(xp-uq)||2)(1)

上式中ai表示第i个结点的转换矩阵,xp表示结点中的第p张图片,uq表示结点抽样图片集中的第q张图片。

训练转换矩阵ai的过程主要引入了语义一致性建立目标函数,并通过随机梯度下降(sgd)算法迭代求解,获得编码阶段所需要的转换矩阵。对于第i个结点,定义目标函数式为:

上述目标函数中的fp表示结点中第p个图片样本的类标记向量,(类标记向量是c维的列向量,c是类的数目,向量中元素的值为1或0,分别表示图片属于这个类和不属于这个类)。fq表示抽样图片集中图片的类标记向量。||fp-fq||2即是在训练转换矩阵时引入的语义一致性质。它结合图片间的特征相似性可以生成更为准确的二进制编码。

步骤3:

在优化过程中本发明采用随机梯度下降算法以减少训练转换矩阵所用的时间。转换矩阵的初始值为i/δ,i是d*d维的单位矩阵,δ是数据集中各图片之间欧氏距离的中位数。然后根据随机梯度下降算法优化转换矩阵ai,迭代更新规则如下:

其中γ(t)是每次迭代过程中的优化步长,步长可选取以下值:(1*10-5,1*10-4,1*10-3,1*10-2)。遍历完结点中所有图片后,即得到最终优化完成的转换矩阵ai。步骤4:

得到转换矩阵ai后,再通过式(1)计算出结点中每张图片和抽样图片之间引入语义一致性后的优化相似度。即得到了关系矩阵wi的各个元素的值。如果抽样图片集中有m张图片样本,那么通过关系矩阵可以构建出第i个结点中使用哈希编码技术需要用到的相似矩阵zi。zi矩阵中各元素的计算公式定义如下:

其中<p>集合代表的是抽样图片集。即只有当图片是属于抽样图片集中的图片时,才计算zi矩阵上对应元素的值,否则zi矩阵上对应元素值为0。

步骤5:

设结点抽样图片集中图片数量为m,构造一个m*m维的m矩阵。m矩阵定义如下:

m=λ-1/2zitziλ-1/2(5)

其中λ=diag(zit1),是一个对角矩阵。计算得到m矩阵前k个最大的特征值组成的k*k维的对角矩阵:σ=diag(δ1,...,δk)∈rk×k和前k个最大的特征值对应的特征向量组成的m*k维的矩阵:v=[v1,...,vk]∈rm×k

由上式得到的各矩阵,构造出第i个服务器结点最终的编码矩阵yi,yi矩阵定义如下:

yi是一个n*k维的矩阵,n代表结点中图片的个数,k代表编码位数。编码矩阵yi的每行就是一个编码函数,各图片通过编码函数计算得到一个k维的向量,再对此向量进行二值化分割:sgn(yi)。就得到了第i个结点中各图片的编码。

二、查询图片近似搜索过程

如图2所示,对新的查询图片进行近似搜索时,首先把查询图片分别传入各服务器结点中,在各结点中计算得到查询图片的编码。再引入加权汉明距离模型,得到查询图片相对于各结点中存储图片的汉明距离向量。如果图片在汉明距离向量中对应位置的元素值小于设定的汉明距离门限阈值r,即认为此图片是查询图片的近似图片。

步骤1:

把查询图片q分别传入各服务器结点中,各结点通过分布式训练过程中的方法并行计算得到查询图片q在各结点中的编码函数:y1(q),y2(q),...,yi(q),再对编码函数二值化处理就得到了q的二进制编码:h1(q),h2(q),...,hi(q)。

步骤2:

对于第i个服务器结点,在计算查询图片q和结点中各图片二进制编码的汉明距离时,引入加权模型做如下处理:

设r是编码的位数,k是其中的第k个比特位。则pr(δhk(q)=0)表示在第k个比特位上结点中各图片和查询图片q的码值相同的概率。pr(δhk(q)≠0)表示在第k个比特位上结点中各图片和查询图片q的码值不同的概率。

如果查询图片q在第i个服务器上的编码函数(代表查询图片q在第i个结点的编码函数的第k位的值)则有:

如果编码函数则有:

其中erf(.)是高斯误差函数,σk是常量参数。定义查询样本q的第k个比特位上的权重值公式为:

通过(9)式可得,和查询图片第k个比特位的编码值相同的概率越大,则这个比特位上的权重值越高。对于r位的编码,可得查询图片的权重向量为:w(q)=(w1(q),w2(q),...,wk(q),...,wr(q))。

设第i个服务器结点中存储p张图片,h1,h2,...,hp是各图片通过分布式训练得到的二进制编码。hi(q)是查询图片q在第i个结点上的二进制编码。则引入加权模型后的查询图片在第i个结点上的汉明距离向量计算公式如下:

合并每个结点的汉明距离向量,即得到查询图片相对于整个图片集中所有图片的汉明距离向量:

步骤3:

定义汉明距离门限阈值为r(r可选取以下值:1,2,3,4),如果图片集中的图片在dw(q)向量对应位置上的元素值小于阈值r的话,即认为此图片是查询图片的近似图片。

本发明所解决的问题如下:

(1)使用随机梯度下降算法解决了目标函数式收敛过慢的问题。

原始的梯度下降算法称为批量梯度下降算法,它的做法是最小化所有训练数据的损失函数,最终求得全局最优解。但是批量梯度算法每迭代一步,都要用到训练集所有的数据,如果数据集中图片数量很大,那么批量梯度算法非常慢。随机梯度下降算法在迭代更新一次时只用到一个数据样本,速度很快。特别是对于大规模图片数据集而言,速度的优势更为明显。而且对目标损失函数来说,使用随机梯度下降算法不需要完遍历整个数据集就可以达到收敛。本发明用随机梯度下降算法取代批量梯度算法在各服务器结点中迭代求解算法的目标函数,解决了算法收敛过慢的问题。

(2)在各结点中使用抽象图片集计算优化相似度。解决了传统方法应用在大规模图片集中计算过慢的问题。

在大规模图片数据集中,图片样本的数量通常都是成百上千万规模。如果使用传统的计算图片两两之间相似度的这种度量方法,时间开销会非常大,现实应用中不可行。本发明在各结点存储的图片中随机抽取很少的一部分图片作为各结点的抽样图片集,只计算图片和抽样图片集之间的优化相似度。大大减少了算法的时间开销,提高了算法效率。

(3)解决了传统近似搜索算法在训练过程中没有引入语义一致性导致性能不佳的问题。

很多传统的用于图片近邻搜索的算法在寻找查询图片近邻的时候过于片面,在寻找查询图片的近邻时没有考虑图片可能具有的语义信息,使得这些算法在图片近似搜索的实际应用中性能不佳。本发明在各服务器结点中对图片进行相似性度量时引入语义一致特性,可以更为准确的度量图片之间的相似性。使算法能够有效地应用在现实的大规模图片集近似搜索中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1