掌桥专利:专业的专利平台
掌桥专利
首页

一种基于对抗训练的哈希检索方法及相关装置

文献发布时间:2024-04-18 19:57:31


一种基于对抗训练的哈希检索方法及相关装置

技术领域

本申请涉及信息科学技术领域,特别涉及一种基于对抗训练的哈希检索方法及相关装置。

背景技术

随着大规模多媒体数据的不断增长,近似最近邻(Approximate Nearest Neighbor,ANN)检索因其出色的效率和有效性而备受关注。在所有的近似最近邻检索方法中,哈希提供了将高维数据映射到紧凑二进制代码的突出优势,并且在时间和空间复杂度上都具有较低的成本,成为人们关注度焦点,特别是基于深度神经网络的深度哈希方法。然而,基于深度哈希方法容易受到对抗样本的攻击,给基于深度哈希方法带来严重的安全隐患。

为此,有研究表明,可以通过对深度哈希模型进行对抗训练来提高深度哈希方法防御对抗样本的能力,其中,对抗训练为通过在原始样本中添加难以察觉的扰动来制作对抗样本,以极大地混淆深度哈希模型检索不正确的结果。然而,现有的深度哈希对抗训练普遍缺失具有全局判别性语义代表,使得深度哈希模型的对抗训练无法获取有效的监督信息,影响了训练得到的深度哈希模型的对抗鲁棒性,从而使得深度哈希方法仍存在安全问题。

因而现有技术还有待改进和提高。

发明内容

本申请要解决的技术问题在于,针对现有技术的不足,提供一种基于对抗训练的哈希检索方法及相关装置。

为了解决上述技术问题,本申请实施例第一方面提供了一种基于对抗训练的哈希检索方法,应用电子设备,所述方法包括:

通过经过训练的深度哈希模型确定待查询样本的查询哈希码,并计算所述查询哈希码与检索数据集中的各数据样本的样本哈希码的相似度;

基于计算得到的所有相似度,在所述检索数据集中选取所述待查询样本对应的预设数量的数据样本;

其中,所述深度哈希模型的训练过程具体包括:

对于预设训练样本集的每个训练样本,获取所述训练样本对应的各正样本的第一哈希码和所述训练样本对应的各负样本的第二哈希码,其中,正样本和负样本均包含于所述预设训练样本集中,正样本与训练样本至少共享一个类别,负样本与训练样本不共享类别;

基于所述训练样本对应的所有第一哈希码和所有第二哈希码确定所述训练样本的中枢码;

基于所述训练样本及其中枢码,采用极小极大策略对所述深度哈希模型对应的初始哈希模型进行对抗训练,以得到经过训练的深度哈希模型。

所述的基于对抗训练的哈希检索方法,其中,所述基于所述训练样本对应的所有第一哈希码和所有第二哈希码确定所述训练样本的中枢码具体包括:

将所述训练样本对应的所有第一哈希码进行加权得到第一和值,将所述训练样本对应的所有第二哈希码进行加权得到第二和值;

计算所述第一和值和所述第二和值的差值,并基于所述差值和符号函数确定所述训练样本的中枢码。

所述的基于对抗训练的哈希检索方法,其中,所述中枢码的表达式为:

其中,b

所述的基于对抗训练的哈希检索方法,其中,所述加权系数w

其中,N

所述的基于对抗训练的哈希检索方法,其中,所述基于所述训练样本及其中枢码,采用极小极大策略对所述深度哈希模型对应的初始哈希模型进行对抗训练,以得到经过训练的深度哈希模型具体包括:

固定所述深度哈希模型对应的初始哈希模型的模型参数,并将所述训练样本输入所述初始哈希模型,以预设攻击策略最大化所述初始哈希模型的损失函数来生成对抗样本;

将所述对抗样本输入所述初始哈希模型,以最小化所述损失函数为目标来优化所述初始哈希模型的模型参数,以得到经过训练的深度哈希模型。

所述的基于对抗训练的哈希检索方法,其中,所述损失函数的表达式为:

L

其中,L

所述的基于对抗训练的哈希检索方法,其中,所述预设攻击策略为:

其中,x表示训练样本,x′表示训练样本对应的对抗样本,S

本申请实施例第二方面提供了一种基于对抗训练的哈希检索装置,应用电子设备,所述装置包括:

计算模块,用于通过经过训练的深度哈希模型确定待查询样本的查询哈希码,并计算所述查询哈希码与检索数据集中的各数据样本的样本哈希码的相似度;

选取模块,用于基于计算得到的所有相似度,在所述检索数据集中选取所述待查询样本对应的预设数量的数据样本;

其中,所述深度哈希模型的训练过程具体包括:

对于预设训练样本集的每个训练样本,获取所述训练样本对应的各正样本的第一哈希码和所述训练样本对应的各负样本的第二哈希码,其中,正样本和负样本均包含于所述预设训练样本集中,且正样本与训练样本至少共享一个类别,负样本与训练样本不共享类别;

基于所述训练样本对应的所有第一哈希码和所有第二哈希码确定所述训练样本的中枢码;

基于所述训练样本及其中枢码,采用极小极大策略对所述深度哈希模型对应的初始哈希模型进行对抗训练,以得到经过训练的深度哈希模型。

本申请实施例第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任一所述的基于对抗训练的哈希检索方法中的步骤。

本申请实施例第四方面提供了一种终端设备,其包括:处理器、存储器及通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;

所述通信总线实现处理器和存储器之间的连接通信;

所述处理器执行所述计算机可读程序时实现如上任一所述的基于对抗训练的哈希检索方法中的步骤。

有益效果:与现有技术相比,本申请提供了一种基于对抗训练的哈希检索方法及相关装置,方法包括基于训练样本的所有正样本和所有负样本来生成中枢码,以中枢码为监督信息采用极小极大策略对深度哈希模型进行对抗训练,然后基于经过对抗训练的深度哈希模型对待查询样本进行哈希检索,以得到待查询样本对应的预设数量的数据样本。本申请采用具有全局语义代表的中枢码作为监督信息,通过中枢码所携带的与所有正样本的相似性和负样本的不相似性,可以有效地指导深度哈希模型的对抗学习;同时,采用极小极大策略对深度哈希模型进行训练,可以进一步增强深度哈希模型的对抗鲁棒性,从而可以提高基于深度哈希模型进行哈希检索的安全性。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员而言,在不符创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请提供的分类和哈希在对抗学习上的比较图。

图2为本申请提供的基于对抗训练的哈希检索方法的流程图。

图3为深度哈希模型的训练过程的流程原理图。

图4为本申请提供的基于对抗训练的哈希检索装置的结构原理图。

图5为本申请提供的终端设备的结构原理图。

具体实施方式

本申请提供一种基于对抗训练的哈希检索方法及相关装置,为使本申请的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本申请进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

应理解,本实施例中各步骤的序号和大小并不意味着执行顺序的先后,各过程的执行顺序以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

经过研究发现,随着大规模多媒体数据的不断增长,近似最近邻(ApproximateNearest Neighbor,ANN)检索因其出色的效率和有效性而备受关注。在所有的近似最近邻检索方法中,哈希提供了将高维数据映射到紧凑二进制代码的突出优势,并且在时间和空间复杂度上都具有较低的成本,成为人们关注度焦点,特别是基于深度神经网络的深度哈希方法。然而,基于深度哈希方法容易受到对抗样本的攻击,给基于深度哈希方法带来严重的安全隐患。

为此,有研究表明,可以通过对深度哈希模型进行对抗训练来提高深度哈希方法防御对抗样本的能力,其中,对抗训练为通过在原始样本中添加难以察觉的扰动来制作对抗样本,以极大地混淆深度哈希模型检索不正确的结果。然而,如图1所示,现有的对抗训练普遍是针对分类任务的对抗攻击和防御方法,在分类的输出空间中,标签引导下的对抗攻击只需要使对抗样本跨越决策边界即可。然而,对于深度哈希的对抗攻击是期望将对抗样本融入嵌入空间的聚类中,这就使得在对抗过程中缺乏明确的监督信号,即深度哈希缺失具有全局判别性语义代表,造成深度哈希模型的对抗训练无法获取有效的监督信息,影响了训练得到的深度哈希模型的对抗鲁棒性,从而使得深度哈希方法仍存在安全问题。

为了解决上述问题,在本申请实施例中,基于训练样本的所有正样本和所有负样本来生成中枢码,以中枢码为监督信息采用极小极大策略对深度哈希模型进行对抗训练,然后基于经过对抗训练的深度哈希模型对待查询样本进行哈希检索,以得到待查询样本对应的预设数量的数据样本。本申请采用具有全局语义代表的中枢码作为监督信息,通过中枢码所携带的与所有正样本的相似性和负样本的不相似性,可以有效地指导深度哈希模型的对抗学习;同时,采用极小极大策略对深度哈希模型进行训练,可以进一步增强深度哈希模型的对抗鲁棒性,从而可以提高基于深度哈希模型进行哈希检索的安全性。

下面结合附图,通过对实施例的描述,对申请内容作进一步说明。

本实施例提供了一种基于对抗训练的哈希检索方法可以应用电子设备,电子设备中部署有深度哈希模型,或者可以调用深度哈希模型。电子设备用于获取待查询样本,并控制深度哈希模型确定待查询样本的查询哈希码,然后查询哈希码与检索数据集中的各样本数据的样本哈希码的相似度来选取待查询样本对应的预设数量的数据样本。其中,电子设备可以为具有数据处理能力的设备,例如,PC机、笔记本电脑等。本申请实施例对电子设备的具体类型和结构等不作限定。

进一步,所述电子设备可以直接部署有经过训练的深度哈希模型,也可以先执行深度哈希模型的训练过程,然后再部署训练得到的深度哈希模型。可以理解的是,深度哈希模型的训练过程和哈希检索过程可以均由所述电子设备完成的,或者是,将所述电子设备作为第一电子设备,用于执行哈希检索过程,另外存在一个第二电子设备,用于执行深度哈希模型的训练过程,其中,第二电子设备可以与第一电子设备进行通讯,在训练得到深度哈希模型后,将深度哈希模型传输给第一电子设备,以使得第一电子设备部署经过训练的深度哈希模型。当然,在实际应用中,第二电子设备也可以不与第一电子设备通讯,而是通过外部存储设备(例如,U盘)将第二电子训练得到的深度哈希模型部署至第一电子设备,或者是,通过网络(例如,云端等)将深度哈希模型部署至第一电子设备。

如图2所示,本实施例提供的基于对抗训练的哈希检索方法具体可以包括:

S10、通过经过训练的深度哈希模型确定待查询样本的查询哈希码,并计算所述查询哈希码与检索数据集中的各数据样本的样本哈希码的相似度。

具体地,深度哈希模型为经过训练的深度学习模型,通过深度哈希模型确定待查询样本的查询哈希码,其中,待查询样本可以通过响应用户操作所获取到的。也就是说,电子设备响应待查询样本的获取操作,基于所述获取操作获取待查询样本。检索样本集为预先存在的数据样本集,检索样本集包括若干数据样本,若干数据样本中的每个数据样本均对应有样本哈希码,其中,每个数据样本的样本哈希码均是通过深度哈希模型得到的。在获取到查询哈希码和各样本哈希码后,分别在汉明空间上计算查询哈希码和各样本哈希码的相似度。

S20、基于计算得到的所有相似度,在所述检索数据集中选取所述待查询样本对应的预设数量的数据样本。

具体地,在获取到待查询样本与每个数据样本的相似度后,将待查询样本与各数据样本的相似度按照从高到低的顺序进行排序,并按照排序选取前预设数量的数据样本作为待查询样本对应的预设数量的数据样本。其中,预设数量为预先设置的,例如,10,20等。

本实施例中的深度哈希模型是经过对抗训练的,并且在深度哈希模型的对抗训练过程中,以基于训练样本的所有正样本和所有负样本来生成中枢码为监督信息,采用极小极大策略进行对抗训练的,这样采用具有全局语义代表的中枢码作为监督信息,通过中枢码所携带的与所有正样本的相似性和负样本的不相似性,可以有效地指导深度哈希模型的对抗学习;同时,采用极小极大策略对深度哈希模型进行训练,可以进一步增强深度哈希模型的对抗鲁棒性,从而可以提高基于深度哈希模型进行哈希检索的安全性。

为了进一步说明本实施例中的深度哈希模型,下面对深度哈希模型的模型结构以及训练过程做具体说明。

如图3所示,深度哈希模型可以包括特征提取器、全连接层和激活函数层,特征提取器与全连接层相连接,全连接层与激活函数层相连接。当然,在实际应用中,深度哈希模型还可以采用其他网络结构,例如,卷积神经网络等。此外,由于在深度哈希模型的对抗训练过程中,需要先生成作为监督信息的中枢码,中枢码可以通过中枢码生成器生成,也就是说,在深度哈希模型训练之前,可以先通过中枢码生成器为每个训练样本生成中枢码,也可以是将中枢码生成器与深度哈希模型联合使用,对于用于训练深度哈希模型的训练样本,在将训练样本输入深度哈希模型对应的初始哈希模型之前,先通过中枢码生成器为训练样本生成中枢码,然后将训练样本及其对应的中枢码,采用极小极大策略对所述深度哈希模型对应的初始哈希模型进行对抗训练,以得到经过训练的深度哈希模型。

基于此,在一个实现方式中,如图3所示,所述深度哈希模型的训练过程具体包括:

H10、对于预设训练样本集的每个训练样本,获取所述训练样本对应的各正样本的第一哈希码和所述训练样本对应的各负样本的第二哈希码;

H20、基于所述训练样本对应的所有第一哈希码和所有第二哈希码确定所述训练样本的中枢码;

H30、基于所述训练样本及其中枢码,采用极小极大策略对所述深度哈希模型对应的初始哈希模型进行对抗训练,以得到经过训练的深度哈希模型。

具体地,在步骤H10中,预设训练样本集

正样本和负样本均包括于预设训练样本集中,正样本与训练样本至少共享一个类别,即正样本所携带的类别标签存在至少一个目标类别标签,该目标类别标签包含于训练样本所携带的类别标签中。也就是说,正样本对应的y

进一步,在步骤H20中,中枢码保留训练样本与所有正样本的相似性以及与所有负样本的不相似性,其中,中枢码为汉明空间中长度为哈希码长度K的二进制代码,并且具有全局语义判别性,即在汉明空间中接近所有正样本且远离所有负样本。可以理解的是,中枢码是在全局语义空间中进行优化的,保持与所有正样本的相似性和与所有负样本的无关性。值得说明的是,这里的“全局”意味指的是中枢码考虑全局语义空间中与查询相关的所有正样本和负样本。

在一个实现方式中,所述基于所述训练样本对应的所有第一哈希码和所有第二哈希码确定所述训练样本的中枢码具体包括:

H21、将所述训练样本对应的所有第一哈希码进行加权得到第一和值,将所述训练样本对应的所有第二哈希码进行加权得到第二和值;

H22、计算所述第一和值和所述第二和值的差值,并基于所述差值和符号函数确定所述训练样本的中枢码。

具体地,所述第一和值为通过对所有正样本的第一哈希码进行加权得到的,第二和值为通过对所有负样本的第二哈希码进行加权得到的,其中,所有正样本的加权系数可以为预先设置的,也可以为基于正样本与训练样本在汉明空间上的距离确定的,还可以基于正样本与训练样本的相似度确定的。同样的,负样本对应的加权系数也可以是通过上述方法确定的,其中,正样本的加权系数的确实方法与负样本的加权系数的确定方法相同。在获取到第一和值和第二和值后,可以将第一和值减去第二和值以得到第一和值和第二和值的差值,然后通过符号函数对差值进行运算得到训练样本的中枢码。此外,值得说明的是,第一和值、第二和值以及差值均为长度为哈希码长度的一维向量。

在一个实现方式中,所述中枢码的表达式为:

其中,b

本实施例中采用

基于此,中枢码b

这是由于根据

其中,ξ是一个常数。

由于绝对值函数的性质,可以得到:

类似于等式(1),将ψ(b

因此,可以推导出:

即ψ(b)≥ψ(b

进一步,在步骤H30中,在获取到中枢码后,可以将中枢码作为全语义代表来对深度哈希模型进行对抗训练。相应的,所述基于所述训练样本及其中枢码,采用极小极大策略对所述深度哈希模型对应的初始哈希模型进行对抗训练,以得到经过训练的深度哈希模型具体包括:

H31、固定所述深度哈希模型对应的初始哈希模型的模型参数,并将所述训练样本输入所述初始哈希模型,以预设攻击策略最大化所述初始哈希模型的损失函数来生成对抗样本;

H32、将所述对抗样本输入所述初始哈希模型,以最小化所述损失函数为目标来优化所述初始哈希模型的模型参数,以得到经过训练的深度哈希模型。

具体地,采用最大化所述初始哈希模型的损失函数来寻找最优对抗样本,即最大化所述初始哈希模型的损失函数为寻找最优对抗样本的对抗攻击。最小化所述损失函数用于优化网络参数以抵御对抗样本中的对抗扰动带来的影响。本实施例以中枢码为全局语义代表,通过最大化损失函数和最小化损失函数来进行对抗和防御,从而可以提高训练得到的深度哈希模型的对抗鲁棒性。

进一步,为了说明以中枢码为监督信息可以提高深度哈希模型的鲁班性,本实施例分别展示如何在非目标攻击和目标攻击上实现对抗攻击。

对于非目标攻击,期望最大化对抗样本与其语义相关的正样本之间的哈希码距离,同时最小化与其无关的负样本的距离,即对抗攻击的目标可以转化为最大化对抗样本的哈希码和中枢码之间的汉明距离。因此,对于给定的训练样本x,其对应的对抗样本x′在L

为了保证对抗扰动的不可察觉性,采用‖·‖

其中,tanh(·)表示tanh激活函数,α∈[0,1]是控制tanh(αf

对于目标攻击,非目标攻击和目标攻击的唯一区别是目标函数,对于给定的训练样本x和目标类别标签y

随着对抗样本x′的哈希码与目标类别标签的中枢码之间的距离减小,对抗样本在语义方面逐渐接近目标类别标签,同时保证了视觉上的不可感知性。因此,可以通过将x′输入到基于深度哈希的检索系统中来检索与目标类别标签语义相关的内容。

至此,分别给出了非目标攻击和目标攻击的优化函数。基于非目标攻击和目标攻击各对应的优化函数,可以采用预设攻击策略生成训练样本对应的对抗样本,其中,预设攻击策略可以为

其中,x表示训练样本,x′表示训练样本对应的对抗样本,S

当然,值得说明的是,在实际应用中,预设攻击策略还可以采用其他策略,例如,快速梯度符号法(Fast Gradient Sign Method,FGSM)和基本迭代法(Basic IterativeMethod,BIM)等。

进一步,所述损失函数采用中枢码来指导对抗训练,所述损失函数的表达式为:

L

其中,L

基于上述,本实施例是利用中枢码b

综上所述,本实施例提供了一种基于对抗训练的哈希检索方法,方法包括基于训练样本的所有正样本和所有负样本来生成中枢码,以中枢码为监督信息采用极小极大策略对深度哈希模型进行对抗训练,然后基于经过对抗训练的深度哈希模型对待查询样本进行哈希检索,以得到待查询样本对应的预设数量的数据样本。本申请采用具有全局语义代表的中枢码作为监督信息,通过中枢码所携带的与所有正样本的相似性和负样本的不相似性,可以有效地指导深度哈希模型的对抗学习;同时,采用极小极大策略对深度哈希模型进行训练,可以进一步增强深度哈希模型的对抗鲁棒性,从而可以提高基于深度哈希模型进行哈希检索的安全性。

基于上述基于对抗训练的哈希检索方法,本实施例提供了一种基于对抗训练的哈希检索装置,应用电子设备,如图4所示,所述装置包括:

计算模块100,用于通过经过训练的深度哈希模型确定待查询样本的查询哈希码,并计算所述查询哈希码与检索数据集中的各数据样本的样本哈希码的相似度;

选取模块200,用于基于计算得到的所有相似度,在所述检索数据集中选取所述待查询样本对应的预设数量的数据样本;

其中,所述深度哈希模型的训练过程具体包括:

对于预设训练样本集的每个训练样本,获取所述训练样本对应的各正样本的第一哈希码和所述训练样本对应的各负样本的第二哈希码,其中,正样本和负样本均包含于所述预设训练样本集中,且正样本与训练样本至少共享一个类别,负样本与训练样本不共享类别;

基于所述训练样本对应的所有第一哈希码和所有第二哈希码确定所述训练样本的中枢码;

基于所述训练样本及其中枢码,采用极小极大策略对所述深度哈希模型对应的初始哈希模型进行对抗训练,以得到经过训练的深度哈希模型。

基于上述基于对抗训练的哈希检索方法,本实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述实施例所述的基于对抗训练的哈希检索方法中的步骤。

基于上述基于对抗训练的哈希检索方法,本申请还提供了一种终端设备,如图5所示,其包括至少一个处理器(processor)20;显示屏21;以及存储器(memory)22,还可以包括通信接口(Communications Interface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存储器22中的逻辑指令,以执行上述实施例中的方法。

此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。

存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理器20通过运行存储在存储器22中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。

存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。

此外,上述存储介质以及终端设备中的多条指令处理器加载并执行的具体过程在上述方法中已经详细说明,在这里就不再一一陈述。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

技术分类

06120116459001