首页 / 专利库 / 电脑零配件 / 配对 / 一种哈希学习方法、无监督的在线哈希学习方法及其应用

一种哈希学习方法、无监督的在线哈希学习方法及其应用

阅读:530发布:2020-05-11

专利汇可以提供一种哈希学习方法、无监督的在线哈希学习方法及其应用专利检索,专利查询,专利分析的服务。并且本 发明 涉及一种哈希学习方法,通过数据集中的数据点对演化树进行训练,得到训练完成的演化树,对训练完成的演化树中除根 节点 外的所有节点进行初始化的海明码编码,使用贪心的路径编码策略对整棵演化树的保相似性损失函数进行优化,将保相似性损失函数最小值所对应的海明码编码作为演化树的每个叶 子节点 的哈希编码;计算某一数据点在演化树中的最佳匹配点,找到从根节点分裂出该数据点的最佳匹配点所对应的叶子节点的分裂路径,将该数据点的最佳匹配点分裂路径中对应的叶子节点的哈希编码进行有序组合,将其作为该数据点的哈希编码。还公开了一种无监督的在线哈希学习方法和应用。该哈希方法能降低编码复杂度,具有较好的查询性能。,下面是一种哈希学习方法、无监督的在线哈希学习方法及其应用专利的具体信息内容。

1.一种哈希学习方法,用于通过数据集X中的数据点xi对演化树进行训练,得到训练完成的演化树,对训练完成的演化树进行保相似性编码,得到演化树中每个叶子节点的哈希编码,并计算任一数据点在演化树上的最佳匹配点,得到该数据点的哈希编码,其特征在于:包括以下步骤:
步骤1、创建一个演化树,其中,初始化的演化树只有一个根节点,对该根节点赋予权值向量;
步骤2、对根节点进行训练:将数据集中的所有数据点随机组成数据流,将该根节点作为该数据流中的第一个数据点的最佳匹配点,并记录根节点成为最佳匹配点的次数,转入步骤4;
步骤3、使用数据流中的第一个数据点对分裂完成的演化树的叶子节点进行训练:分别计算演化树中每个节点与该数据点之间的欧式距离,找到与该数据点对应的欧式距离最小的节点,判断该节点是否为叶子节点,如是,则将演化树中当前训练节点作为该数据点的最佳匹配点,记录演化树中的所有叶子节点成为最佳匹配点的次数,并转入步骤4;如否,转入步骤6;
步骤4、对演化树中的根节点和所有叶子节点分别依次执行如下操作:判断演化树中当前训练节点成为最佳匹配点的次数是否小于第一预设值,其中演化树中当前训练节点为根节点或任一叶子节点,如是,则更新演化树中当前训练节点的权值向量,并转入步骤6;如否,则转入步骤5;其中,演化树中当前训练节点的权值向量更新公式为:
wi(t+1)=x(t)
其中,wi(t+1)为演化树中当前训练节点更新后的权值向量,wi(t)为演化树中当前训练节点更新前的权值向量,x(t)为与演化树中当前训练节点配对的最佳匹配点的权值向量;
步骤5、判断演化树中当前训练节点的当前深度是否小于演化树的最大深度,演化树的最大深度为预设值,如是,则对演化树中的当前训练节点进行分裂,将演化树中的当前训练节点分裂成n个叶子节点,并对每个叶子节点赋予不同的权值向量,该分裂的节点记为躯干节点,重新组成数据流,并将此时组成数据流的次数重新计数,转入步骤3;如否,则此时的演化树为训练完成的演化树,并转入步骤8;其中,n个叶子节点的权值向量的计算公式为:
w′(t)=(1-β)w(t)+βr(t)
其中,w′(t)为新叶子节点的权值向量,w(t)为新叶子节点对应的躯干节点的权值向量,r(t)为与w(t)相同维度的随机单位向量,β为预设的超参数,用于控制随机扰动程度;
步骤6、判断该数据流中的数据点是否全部训练完,如否,使用数据流中的下一个数据点对演化树进行训练,继续记录演化树中所有节点成为最佳匹配点的次数,并转入步骤4;
如是,转入步骤7;
步骤7、判断组成数据流的次数是否小于第二预设值,如是,则重新组成数据流,重新对演化树进行训练,并对演化树中的训练节点成为最佳匹配点的次数进行累计,并转入步骤
4;如否,则此时的演化树为训练完成的演化树,并转入步骤8;
步骤8、对训练完成的演化树中除根节点外的所有节点进行初始化的海明码编码,使用贪心的路径编码策略对整棵演化树的保相似性损失函数进行优化,将保相似性损失函数最小值所对应的海明码编码作为演化树的每个叶子节点的哈希编码;
其中,优化目标为:
其中,E为整棵演化树的保相似性损失值,Wk为整棵演化树的躯干节点k的权值向量,其中,Wk={w1,w2,...,wn},w1,w2,...,wn分别为躯干节点k分裂出的n个叶子节点的权值向量;
N={W1,W2,...,Wc}为整棵演化树中所有躯干节点的集合;F(Wk)为每个躯干节点对应的叶子节点编码的保相似性损失函数, 其中,wi
为躯干节点k中的第i个叶子节点的权值向量,wj为躯干节点k中的第j个叶子节点的权值向量;d(wi,wj)表示叶子节点wi与叶子节点wj之间的欧式距离,λ为预设超参数,b(wi)表示叶子节点wi的海明码,b(wj)表示叶子节点wj的海明码,dh(b(wi),b(wj))表示b(wi)与b(wj)之间的海明距离;
步骤9、计算某一数据点在演化树中的最佳匹配点,找到从根节点分裂出该数据点的最佳匹配点所对应的叶子节点的分裂路径,并根据步骤8中得到的演化树中每个叶子节点的哈希编码,将该数据点的最佳匹配点分裂路径中对应的叶子节点的哈希编码进行有序组合,将其作为该数据点的哈希编码,该数据点的哈希编码表达式为:y=u1u2...udep-1,其中,u1为该数据点在演化树深度为2的对应节点上的哈希编码;u2为该数据点在演化树深度为3的对应节点上的哈希编码,dep为演化树的最大深度;udep-1为该数据点在演化树最大深度的对应节点上的哈希编码。
2.一种无监督的在线哈希学习方法,其特征在于:创建多棵演化树,并按照顺序组成森林,采用权利要求1所述的方法对森林进行训练,将数据集中的数据点随机组成数据流,使用数据流中的第一个数据点按照先后顺序分别对该森林中的每一棵演化树进行训练:对森林中的每一棵演化树,从强度为1的泊松分布中随机采样一个数字,记为K,使用数据流中的数据点分别对每棵演化树训练K次;依次使用数据流中的数据点对该森林进行训练,训练完成后,对森林中每棵演化树的叶子节点分别进行保相似性编码,得到森林中每棵演化树的哈希编码,计算数据点xi在森林中每棵演化树上的最佳匹配点,并将数据点xi对应在每棵演化树上最佳匹配点的哈希编码按照顺序组成该数据点xi的哈希编码,其中,数据点xi的哈希编码表达式为: 表示森林中第k棵演化树对数据点xi的编
码,T表示森林中演化树的总数。
3.一种如权利要求2所述的无监督在线哈希学习方法的应用,其特征在于:用于在给定的图像数据集中检索出与待查询图像最相似的图像;其中,图像检索的具体步骤如下:
步骤1、将给定的图像数据集中的所有图像对应的特征信息随机组成数据流,采用权利要求2所述的无监督在线哈希方法中对森林中的每一棵演化树进行训练,得到训练完成的森林,并得到给定的图像数据集中每张图像对应的哈希编码;
步骤2、在给定的图像数据集中任选一张待查询图像,并计算该待查询图像的哈希编码与其他图像的哈希编码之间的海明距离;
步骤3、将海明距离按照从小到大依次排列,并将从小到大依次排列的海明距离中的前K个对应的图像作为与待查询图像最相似的图像;其中,K为预设的正整数。
4.根据权利要求3所述的应用,其特征在于:所述给定的图像数据集为CIFAR10数据集或GIST1M数据集。

说明书全文

一种哈希学习方法、无监督的在线哈希学习方法及其应用

技术领域

[0001] 本发明涉及数据处理领域,特别涉及一种哈希学习方法、无监督的在线哈希学习方法及其应用。

背景技术

[0002] 随着互联网以及各类电子设备的快速发展,各类数据,例如文本、图像和视频正在飞速增长。在很多应用场景下,人们都需要从这样的大规模数据中检索相关内容。然而,在大规模数据中,查找给定查询点的精确最近邻所花费的计算时间是无法让人接受的。为了解决这个问题,最近有大量的研究已经致于相似最近邻(Approximate  Nearest Neighbor,ANN)搜索,在大规模数据中,ANN检索的效果可以代替于精确最近邻检索,而且速度非常快。基于哈希学习的ANN检索是众多ANN检索技术中较为知名的一种,它结合机器学习机制将数据点映射到海明空间,用海明距离代替原始数据的欧式距离,在保证准确率的同时,大幅度的减少检索时间和存储代价。在近些年来,涌现出了许多优秀的哈希学习算法,根据学习模型是否利用样本的标签信息,可以分为无监督模型和监督模型。考虑到获取标签信息需要巨大的人工成本,因此无监督哈希学习算法得到了更广泛的应用。
[0003] 一般来讲,目前主流的哈希算法分为两类:数据独立哈希和数据依赖哈希。在数据独立哈希中,哈希函数族的生成独立于数据集,其典型代表为局部敏感哈希(Locality Sensitive Hashing,LSH),它利用一组随机的哈希函数来建立哈希表,使得相似的数据点能够以较大的概率被映射到相似的哈希桶中,但其缺点是索引的建立过程是数据独立的,在实际大规模数据集的检索中,效果较差。数据依赖哈希又称为哈希学习,通过机器学习机制将数据映射为保相似性的二进制编码,是机器学习技术在数据检索领域一个典型的应用,哈希学习最重要的目的是实现哈希编码的保相似性,具体来说,在原始空间中距离较小的两个数据点在被映射到海明空间之后,仍然能保持较小的海明距离,对于距离远的数据点,在被映射之后,海明距离仍然保持较大。近些年来,许多哈希学习算法相继被提出,根据学习模型是否利用样本的标签信息,可以分为无监督哈希算法和带监督哈希算法。无监督哈希算法的著名代表有主成分哈希(Principal Component Analysis Hashing,PCAH)、迭代量化(Iterative Quantization,ITQ)、K均值哈希(K-Means Hash,KMH)等,其中PCAH使用主成分分析将输入数据空间投影到低维空间中,再将低维数据映射为哈希编码,ITQ试图寻找一种对原始数据最优的旋转方式,将原始数据映射为二进制编码时,量化损失最小,KMH从聚类的度设计哈希编码,基本思想是,将数据聚成K类,类内数据采用矢量量化策略,统一量化为聚类中心点的值,此外,根据保相似性原则对每个聚类中心点进行编码。在查询阶段,将数据点x,y之间的距离近似为对应聚类中心的哈希码的汉明距离。带监督哈希算法主要包括RBM、BRE、MFH、IMH、MLH,虽然监督哈希显示出比无监督哈希法更高的搜索准确性,但是,他们的训练都需要标签信息,在海量数据时代,数据规模大,更新速度快,获取数据标签的获取常常需要巨大的人工成本,因此无监督哈希在实际应用更具有意义。然而绝大多数的无监督哈希算法需要一次性加载所有的数据,会占用大量的内存,无法适用于流式数据,并且相关研究较少。

发明内容

[0004] 本发明所要解决的第一个技术问题是针对现有技术的现状,提供一种能够使演化树稳定收敛且降低编码复杂度的哈希学习方法。
[0005] 本发明所要解决的第二个技术问题是针对现有技术的现状,提供一种采用上述哈希学习方法的无监督的在线哈希学习方法,该方法具有较好的查询性能且能应用于流式数据。
[0006] 本发明进一步所要解决的第三个技术问题是提供一种无监督的在线哈希学习方法在图像检索中的具体应用。
[0007] 本发明解决上述第一个技术问题所采用的技术方案为:一种基于演化树的哈希学习方法,用于通过数据集X中的数据点xi对演化树进行训练,得到训练完成的演化树,对训练完成的演化树进行保相似性编码,得到演化树中每个叶子节点的哈希编码,并计算任一数据点在演化树上的最佳匹配点,得到任一数据点的哈希编码,其特征在于:包括以下步骤:
[0008] 步骤1、创建一个演化树,其中,初始化的演化树只有一个根节点,对该根节点赋予权值向量;
[0009] 步骤2、对根节点进行训练:将数据集中的所有数据点随机组成数据流,将该根节点作为该数据流中的第一个数据点的最佳匹配点,并记录根节点成为最佳匹配点的次数,转入步骤4;
[0010] 步骤3、使用数据流中的第一个数据点对分裂完成的演化树的叶子节点进行训练:分别计算演化树中每个节点与该数据点之间的欧式距离,找到与该数据点对应的欧式距离最小的节点,判断该节点是否为叶子节点,如是,则将演化树中当前训练节点作为该数据点的最佳匹配点,记录演化树中的所有叶子节点成为最佳匹配点的次数,并转入步骤4;如否,转入步骤6;
[0011] 步骤4、对演化树中的根节点和所有叶子节点分别依次执行如下操作:判断演化树中当前训练节点成为最佳匹配点的次数是否小于第一预设值,其中演化树中当前训练节点为根节点或任一叶子节点,如是,则更新演化树中当前训练节点的权值向量,并转入步骤6;如否,则转入步骤5;其中,演化树中当前训练节点的权值向量更新公式为:
[0012] wi(t+1)=x(t)
[0013] 其中,wi(t+1)为演化树中当前训练节点更新后的权值向量,wi(t)为演化树中当前训练节点更新前的权值向量,x(t)为与演化树中当前训练节点配对的最佳匹配点的权值向量;
[0014] 步骤5、判断演化树中当前训练节点的当前深度是否小于演化树的最大深度,演化树的最大深度为预设值,如是,则对演化树中的当前训练节点进行分裂,将演化树中的当前训练节点分裂成n个叶子节点,并对每个叶子节点赋予不同的权值向量,该分裂的节点记为躯干节点,重新组成数据流,并将此时组成数据流的次数重新计数,转入步骤3;如否,则此时的演化树为训练完成的演化树,并转入步骤8;其中,n个叶子节点的权值向量的计算公式为:
[0015] w′(t)=(1-β)w(t)+βr(t)
[0016] 其中,w′(t)为新叶子节点的权值向量,w(t)为新叶子节点对应的躯干节点的权值向量,r(t)为与w(t)相同维度的随机单位向量,β为预设的超参数,用于控制随机扰动程度;
[0017] 步骤6、判断该数据流中的数据点是否全部训练完,如否,使用数据流中的下一个数据点对演化树进行训练,继续记录演化树中所有节点成为最佳匹配点的次数,并转入步骤4;如是,转入步骤7;
[0018] 步骤7、判断组成数据流的次数是否小于第二预设值,如是,则重新组成数据流,重新对演化树进行训练,并对演化树中的训练节点成为最佳匹配点的次数进行累计,并转入步骤4;如否,则此时的演化树为训练完成的演化树,并转入步骤8;
[0019] 步骤8、对训练完成的演化树中除根节点外的所有节点进行初始化的海明码编码,使用贪心的路径编码策略对整棵演化树的保相似性损失函数进行优化,将保相似性损失函数最小值所对应的海明码编码作为演化树的每个叶子节点的哈希编码;
[0020] 其中,优化目标为:
[0021]
[0022] 其中,E为整棵演化树的保相似性损失值,Wk为整棵演化树的躯干节点k的权值向量,Wk={w1,w2,...,wn},w1,w2,...,wn分别为躯干节点k分裂出的n个叶子节点的权值向量;N={W1,W2,...,Wc}为整棵演化树中所有躯干节点的集合;F(Wk)为每个躯干节点对应的叶子节点编码的保相似性损失函数, 其中,wi
为躯干节点k中的第i个叶子节点的权值向量,wj为躯干节点k中的第j个叶子节点的权值向量;d(wi,wj)表示叶子节点wi与叶子节点wj之间的欧式距离,λ为预设超参数,b(wi)表示叶子节点wi的海明码,b(wj)表示叶子节点wj的海明码,dh(b(wi),b(wj))表示b(wi)与b(wj)之间的海明距离;
[0023] 步骤9、计算某一数据点在演化树中的最佳匹配点,找到从根节点分裂出该数据点的最佳匹配点所对应的叶子节点的分裂路径,并根据步骤8中得到的演化树中每个叶子节点的哈希编码,将该数据点的最佳匹配点分裂路径对应的叶子节点的哈希编码按照深度从小到大的方式进行有序组合,将其作为该数据点的哈希编码,该数据点的哈希编码表达式为:y=u1u2...udep-1,其中,u1为该数据点在演化树深度为2的对应节点上的哈希编码;u2为该数据点在演化树深度为3的对应节点上的哈希编码,dep为演化树的最大深度;udep-1为该数据点在演化树最大深度的对应节点上的哈希编码。
[0024] 本发明解决上述第二个技术问题所采用的技术方案为:一种无监督的在线哈希学习方法,其特征在于:创建多棵演化树,并按照顺序组成森林,采用上述基于演化树的哈希学习方法对森林进行训练,将数据集中的数据点随机组成数据流,使用数据流中的第一个数据点按照先后顺序分别对该森林中的每一棵演化树进行训练:对森林中的每一棵演化树,从强度为1的泊松分布中随机采样一个数字,记为K,使用数据流中的数据点分别对每棵演化树训练K次;依次使用数据流中的数据点对该森林进行训练,训练完成后,对森林中每棵演化树的叶子节点分别进行保相似性编码,得到森林中每棵演化树的哈希编码,计算数据点xi在森林中每棵演化树上的最佳匹配点,并将数据点xi对应在每棵演化树上最佳匹配点的哈希编码按照顺序组成该数据点xi的哈希编码,其中,数据点xi的哈希编码表达式为:表示森林中第k棵演化树对数据点xi的编码,T表示森林中
演化树的总数。
[0025] 本发明进一步解决上述第三个技术问题所采用的技术方案为:一种采用上述的无监督在线哈希方法的应用,其特征在于:用于在给定的图像数据集中检索出与待查询图像最相似的图像;其中,图像检索的具体步骤如下:
[0026] 步骤1、将给定的图像数据集中的所有图像对应的特征信息随机组成数据流,采用权利要求2所述的无监督在线哈希方法中对森林中的每一棵演化树进行训练,得到训练完成的森林,并得到给定的图像数据集中每张图像对应的哈希编码;
[0027] 步骤2、在给定的图像数据集中任选一张待查询图像,并计算该待查询图像的哈希编码与其他图像的哈希编码之间的海明距离;
[0028] 步骤3、将海明距离按照从小到大依次排列,并将从小到大依次排列的海明距离中的前K个对应的图像作为与待查询图像最相似的图像;其中,K为预设的正整数。
[0029] 作为优选,所述给定的图像数据集为CIFAR10数据集或GIST1M数据集。
[0030] 与现有技术相比,本发明的优点在于:通过对演化树进行哈希学习,在训练演化树时通过引入权重继承机制且更新时只对最佳匹配点进行调整,使训练过程更加简单,演化树尽可能的平衡和稳定收敛,且通过贪心的路径编码策略对保相似性损失函数进行优化,实现子节点之间的局部保相似性;还通过在演化树的哈希学习方法的基础上,提出了森林的哈希学习方法,使用的编码长度更长,查询性能更好,且能应用于流式数据。附图说明
[0031] 图1为本发明实施例中演化树的训练流程图
[0032] 图2为本实施例中的具体原始数据空间分布;
[0033] 图3为本实施例中的演化树初始阶段图;
[0034] 图4为图3中演化树第一次分裂之后的第二阶段图;
[0035] 图5为图3中演化树第二次分裂之后的第三阶段图;
[0036] 图6为图5中演化树的结构图;
[0037] 图7为图3中演化树训练完成之后的叶子节点分布图;
[0038] 图8为三种不同哈希算法分别对CIFAR10数据集中的图像进行32bits的二进制编码下获取的图像检索结果所对应的召回率曲线;
[0039] 图9为三种不同哈希算法分别对CIFAR10数据集中的图像进行64bits的二进制编码下获取的图像检索结果所对应的召回率曲线;
[0040] 图10为三种不同哈希算法分别对CIFAR10数据集中的图像进行128bits的二进制编码下获取的图像检索结果所对应的召回率曲线;
[0041] 图11为三种不同哈希算法分别对GIST1M数据集中的图像进行32bits的二进制编码下获取的图像检索结果所对应的召回率曲线;
[0042] 图12为三种不同哈希算法分别对GIST1M数据集中的图像进行64bits的二进制编码下获取的图像检索结果所对应的召回率曲线;
[0043] 图13为三种不同哈希算法分别对GIST1M数据集中的图像进行128bits的二进制编码下获取的图像检索结果所对应的召回率曲线。

具体实施方式

[0044] 以下结合附图实施例对本发明作进一步详细描述。
[0045] 如图1所示,一种哈希学习方法,用于通过数据集X中的数据点xi对演化树进行训练,得到训练完成的演化树,对训练完成的演化树进行保相似性编码,得到演化树中每个叶子节点的哈希编码,并计算任一数据点在演化树上的最佳匹配点,得到任一数据点的哈希编码,包括以下步骤:
[0046] 步骤1、创建一个演化树,其中,初始化的演化树只有一个根节点,对该根节点赋予权值向量;
[0047] 步骤2、对根节点进行训练:将数据集中的所有数据点随机组成数据流,将该根节点作为该数据流中的第一个数据点的最佳匹配点,并记录根节点成为最佳匹配点的次数,转入步骤4;
[0048] 步骤3、使用数据流中的第一个数据点对分裂完成的演化树的叶子节点进行训练:分别计算演化树中每个节点与该数据点之间的欧式距离,找到与该数据点对应的欧式距离最小的节点,判断该节点是否为叶子节点,如是,则将演化树中当前训练节点作为该数据点的最佳匹配点,记录演化树中的所有叶子节点成为最佳匹配点的次数,并转入步骤4;如否,转入步骤6;
[0049] 步骤4、对演化树中的根节点和所有叶子节点分别依次执行如下操作:判断演化树中当前训练节点成为最佳匹配点的次数是否小于第一预设值,其中演化树中当前训练节点为根节点或任一叶子节点,如是,则更新演化树中当前训练节点的权值向量,并转入步骤6;如否,则转入步骤5;其中,演化树中当前训练节点的权值向量更新公式为:
[0050] wi(t+1)=x(t)
[0051] 其中,wi(t+1)为演化树中当前训练节点更新后的权值向量,wi(t)为演化树中当前训练节点更新前的权值向量,x(t)为与演化树中当前训练节点配对的最佳匹配点的权值向量;本实施例中,第一预设值为60;
[0052] 步骤5、判断演化树中当前训练节点的当前深度是否小于演化树的最大深度,演化树的最大深度为预设值,如是,则对演化树中的当前训练节点进行分裂,将演化树中的当前训练节点分裂成n个叶子节点,并对每个叶子节点赋予不同的权值向量,该分裂的节点记为躯干节点,重新组成数据流,并将此时组成数据流的次数重新计数,转入步骤3;如否,则此时的演化树为训练完成的演化树,并转入步骤8;其中,n个叶子节点的权值向量的计算公式为:
[0053] w′(t)=(1-β)w(t)+βr(t)
[0054] 其中,w′(t)为新叶子节点的权值向量,w(t)为新叶子节点对应的躯干节点的权值向量,r(t)为与w(t)相同维度的随机单位向量,β为预设的超参数,用于控制随机扰动程度;本实施例中,β=0.05;
[0055] 本实施例中,通过引入了权重继承机制,即当躯干节点分裂出新叶子节点时,新叶子节点会继承父节点的大部分权重,并且加入小部分的随机扰动,能保证演化树稳定收敛。
[0056] 步骤6、判断该数据流中的数据点是否全部训练完,如否,使用数据流中的下一个数据点对演化树进行训练,继续记录演化树中所有节点成为最佳匹配点的次数,并转入步骤4;如是,转入步骤7;
[0057] 步骤7、判断组成数据流的次数是否小于第二预设值,如是,则重新组成数据流,重新对演化树进行训练,并对演化树中的训练节点成为最佳匹配点的次数进行累计,并转入步骤4;如否,则此时的演化树为训练完成的演化树,并转入步骤8;本实施例中,第二预设值为10;
[0058] 如图2~图7所示,采用图2中所示的数据集对演化树进行训练的过程,图2中的训练数据由890个二维坐标点构成,在二维空间中组成5个类簇。图3、4、5分别表示演化树训练过程中的前三个阶段,其中带箭头的虚线表示当前阶段叶子节点的生长方向。在初始阶段,如图3所示,在二维空间中只有一个根节点R,随着训练进行,如图4所示,在第二阶段,根节点R分裂出三个叶子节点A、B、C,如图5所示,在第三阶段,叶子节点A、B、C分裂出各自的子节点,{A1、A2、A3}、{B1、B2、B3}、{C1、C2、C3},图6为第三阶段的演化树结构;根据以上叶子节点的位置可以发现,此时,演化树已经简略地学习到了数据的拓扑结构,如图7所示,为演化树完成训练后所有叶子节点的空间位置,可以发现此时演化树已经学习到了训练数据的拓扑结构。
[0059] 步骤8、对训练完成的演化树中除根节点外的所有节点进行初始化的海明码编码,使用贪心的路径编码策略对整棵演化树的保相似性损失函数进行优化,将保相似性损失函数最小值所对应的海明码编码作为演化树的每个叶子节点的哈希编码;
[0060] 其中,优化目标为:
[0061]
[0062] 其中,E为整棵演化树的保相似性损失值,Wk为整棵演化树的躯干节点k的权值向量,Wk={w1,w2,...,wn},w1,w2,...,wn分别为躯干节点k分裂出的n个叶子节点的权值向量;N={W1,W2,...,Wc}为整棵演化树中所有躯干节点的集合;F(Wk)为每个躯干节点对应的叶子节点编码的保相似性损失函数, 其中,wi
为躯干节点k中的第i个叶子节点的权值向量,wj为躯干节点k中的第j个叶子节点的权值向量;d(wi,wj)表示叶子节点wi与叶子节点wj之间的欧式距离,λ为预设超参数,b(wi)表示叶子节点wi的海明码,b(wj)表示叶子节点wj的海明码,dh(b(wi),b(wj))表示b(wi)与b(wj)之间的海明距离;本实施例中,λ=0.6时效果最佳;
[0063] 优化每一个F(Wk)都是独立的,且操作一致,可以设计一个所有躯干节点共用的局部海明码本Mlocal,为了严格保证每个子节点之间的局部保相似性,Mlocal需要符合以下2个要求:1、海明码的个数等于躯干节点的子节点数量n,并且海明码互不相同;2、海明码之间的海明距离范围是[1,n-1],且任何一个海明码与其它各个海明码的距离都不相同。
[0064] 本实施例中,n=3,Mlocal={00,11,01}。由于叶子节点的数量并不会明显影响演化树学习原始数据拓扑结构的效果,因此,为了降低编码部分的算法复杂度,叶子节点的数量一般设为在3或者4,此时Mlocal全排列I的数量仅仅是6或者24。通过遍历I求解最优的局部编码,编码部分的算法的时间复杂度为O(6n)或者O(24n),能降低编码复杂度。
[0065] 步骤9、计算某一数据点在演化树中的最佳匹配点,找到从根节点分裂出该数据点的最佳匹配点所对应的叶子节点的分裂路径,并根据步骤8中得到的演化树中每个叶子节点的哈希编码,将该数据点的最佳匹配点分裂路径中对应的叶子节点的哈希编码进行有序组合,将其作为该数据点的哈希编码,该数据点的哈希编码表达式为:y=u1u2...udep-1,其中,u1为该数据点在演化树深度为2的对应节点上的哈希编码;u2为该数据点在演化树深度为3的对应节点上的哈希编码,dep为演化树的最大深度;udep-1为该数据点在演化树最大深度的对应节点上的哈希编码。
[0066] 由于演化树并不是平衡树,如果某一数据点xi对应的最佳匹配点的最大深度小于演化树的最大深度,为了保证编码长度的统一,则利用该最佳匹配点的最大深度的编码补全缺失的编码,此时,该数据点的哈希编码表达式为:y=u1u2...umax-1...udep-1,其中,u1为该数据点在演化树深度为2的对应节点上的编码;u2为该数据点在演化树深度为3的对应节点上的编码,max为最佳匹配点的最大深度,umax-2=umax-3...=udep-1=umax-1,dep为演化树的最大深度;udep-1为该数据点在演化树的最大深度的对应节点上的编码。
[0067] 在上述的演化树哈希中,采用贪心的路径编码策略将训练得到的叶子节点转化为保相似性的二进制编码,演化树的哈希编码的复杂度小,通过计算任一数据点在演化树中的最佳匹配点,并根据最佳匹配点在演化树中对应的编码作为该数据点的哈希编码,因此通过计算哈希编码之间的海明距离,得到数据点之间的相似性,减小了计算复杂度。
[0068] 但该演化树哈希方法的适用范围仅限于短编码,但短编码的查询性能相较于长编码往往较差,难以胜任实际任务,想要通过演化树的哈希方法获得更高查询性能的长编码却是非常困难的事,从时空开销的角度分析,演化树哈希的编码长度与树的深度成正比,单纯的通过增加演化树的深度来扩大编码是不现实的。随着演化树深度的增加,整棵演化树的节点数量呈指数式增长,在有限内存资源和有效的时间范围内几乎不可能完成演化树的训练以及路径编码,此外叶子节点的数量已经远远超过了数据点的数量,这样的量化方式也没有任何意义。为了解决长编码的问题以及为了编码的简洁与高效性,采用并行式集成学习方法中的Bagging扩展编码,同时考虑到传统的Bagging需要得到全部的样本数据,并不适用于流式数据采样,因此在Online-Bagging的基础上提出了一种无监督的在线哈希学习方法。
[0069] 一种无监督的在线哈希学习方法,创建多棵演化树,并按照顺序组成森林,采用上述基于演化树的哈希学习方法对森林进行训练,将数据集中的数据点随机组成数据流,使用数据流中的第一个数据点按照先后顺序分别对该森林中的每一棵演化树进行训练:对森林中的每一棵演化树,从强度为1的泊松分布中随机采样一个数字,记为K,使用数据流中的数据点分别对每棵演化树训练K次;依次使用数据流中的数据点对该森林进行训练,训练完成后,对森林中每棵演化树的叶子节点分别进行保相似性编码,得到森林中每棵演化树的哈希编码,计算数据点xi在森林中每棵演化树上的最佳匹配点,并将数据点xi对应在每棵演化树上最佳匹配点的哈希编码按照顺序组成该数据点xi的哈希编码,其中,数据点xi的哈希编码表达式为: 表示森林中第k棵演化树对数据点xi的编码,T表示森林中演化树的总数。
[0070] 对于上述无监督的在线哈希学习方法的一种具体应用,应用于图像检索,该图像检索方法对应为相似最近邻搜索方法,在给定的图像数据集中检索出与待查询图像较相似的图像;其中,图像检索的具体步骤如下:
[0071] 步骤1、将给定的图像数据集中的所有图像对应的特征信息随机组成数据流,采用权利要求2所述的无监督在线哈希方法中对森林中的每一棵演化树进行训练,得到训练完成的森林,并得到给定的图像数据集中每张图像对应的哈希编码;
[0072] 步骤2、在给定的图像数据集中任选一张待查询图像,并计算该待查询图像的哈希编码与其他图像的哈希编码之间的海明距离;
[0073] 步骤3、将海明距离按照从小到大依次排列,并将从小到大依次排列的海明距离中的前K个对应的图像作为与待查询图像最相似的图像;其中,K为预设的正整数。该K值为通过反复实验确认的最优值。
[0074] 本实施例中,给定的图像数据集为CIFAR10数据集或GIST1M数据集;其中,CIFAR10数据集,由60,000个32×32大小的彩色图像组成,在本次实验中,对CIFAR10数据集中的每张图像提取出512维的GIST特征;GIST1M数据集,包含了1,000,000个960维的图像的全局GIST特征集。其中,该CIFAR10数据集中的512维的GIST特征为每张图像的特征信息,GIST1M数据集中的960维的GIST特征为每张图像的特征信息。
[0075] 本发明中使用召回率(Recall)作为评价指标。对于给定的图像数据集进行相似最近邻检索,真实结果和检索结果存在4种关系:检索到的近邻数(True positive,TP)、检索到的非近邻数(False Positive,FP)、未检索到的近邻数(False Negative,FN)和未检索到的非近邻数(True Negative,TN),召回率的计算方式为TP/(TP+FN),其中,检索到的近邻数(TP)为满足“真实结果为近邻且检索结果也为近邻”条件的图像数量;检索到的非近邻数(FP)为满足“真实结果为非近邻且检索结果也为非近邻”条件的图像数量;未检索到的近邻数(FN)为满足“真实结果为近邻,但检索结果为非近邻”条件的图像数量;未检索到的非近邻数(TN)为满足“真实结果为非近邻,但检索结果为近邻”条件的图像数量。
[0076] 为了验证本发明中的无监督在线哈希学习方法(记为EFH算法)在图像检索中的有效性,本发明中将EFH算法与其它两种经典查询算法来进行对比。其他两种经典算法分别为SKLSH和主成分分析哈希(PCAH),其中,EFH算法和PCAH算法属于学习型哈希算法,SKLSH属于数据独立的哈希算法。
[0077] 如图8~10所示,分别为CIFAR10数据集在二进制编码长度分别为32bits、64bits和128bits时,EFH、SKLSH和PCAH三种算法的召回率曲线。从图8~10中可以看到,三种检索算法中,EFH算法在整体上效果最好。在编码长度为32bits时,EFH算法效果不如PCAH算法,但优于SKLSH算法。随着编码长度增加,EFH算法的召回率得到大幅度的提升,效果最佳,但PCAH算法的召回率并不能随着编码维度的增加而提升。
[0078] SKLSH算法作为一种数据不依赖型哈希算法,在编码长度较短时,其查询效果较之其它两种算法要差,随着编码维度的增加,SKLSH算法的增长效果也比较明显,但是二进制编码维度的增加势必会带来算法的代价增加,并且算法的查询性能变高的趋势会随着编码长度的增加越来越缓慢,因此,需要选择适当的编码长度使得我们在付出最小代价的同时能够获得最大的收益。由于EFH算法通过调整演化树的深度与演化树的数量可以灵活地调整编码长度,训练和编码方式非常简洁,却拥有较好的查询性能,并且能应用于流式数据,因此本发明中的EFH算法是最优的方法。
[0079] 如图11~13所示,分别为GIST数据集下在二进制编码长度分别为32bits、64bits和128bits时,三种算法的召回率曲线。从图中可以看出,召回率曲线走向与在CIFAR10数据集下的情况类似,整体上EFH算法依然是效果最为优越的算法。
[0080] 由于演化树的训练方式为在线训练,不同随机子样本集合,通过Online-Bagging在本质上引入了另外一种随机性,即演化树生长方向的随机性,当演化树扩展为演化森林之后,可以在随机从原始空间中的多个位置出发,捕捉数据的空间分布,演化树越多,则能够捕捉数据的空间拓扑结构越全面,从而缓解路径的编码的缺陷
[0081] 因此,无监督的在线哈希学习方法是在基于演化树的哈希学习方法的基础上进一步改进,通过调整演化树的深度与演化树的数量可以灵活地调整编码长度,训练和编码方式非常简洁,却拥有较好的查询性能,并且能应用于流式数据。由于森林中的演化树都是相互独立的,非常适合分布式平台。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈