基于遗传算法的对抗训练方法、装置和计算机存储介质
文献发布时间:2023-06-19 10:19:37
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于遗传算法的对抗训练方法、装置和计算机存储介质。
背景技术
人工智能的快速发展,给生活带来了很大便利。但是人工智能模型的可理解性较差,边界模糊,受攻击面广泛,不同攻击算法产生的对抗样本都有不错的攻击效果,导致人工智能系统安全性低。
目前对抗攻击的防御算法很多,对抗训练采用对抗样本增强算法的训练数据集,使用广泛。但是目前的对抗训练只是采用单一或多种对抗攻击算法增强训练数据集,并未对人工智能模型和对抗攻击算法的特性进行分析和匹配,因此采用对抗训练后的人工智能模型并不能保证其局部边界的稳定性,仍然会受到其他形式的对抗攻击。
现有的方法主要有以下缺点:
一、对抗训练采用对抗样本生成算法进行数据增强以重新训练人工智能模型,但对抗样本不能很好地匹配人工智能模型特点及充分表征模型边界,降低对抗训练的精确度。
二、对抗训练并未有效区分对抗样本与模型边界的相对位置,不同的对抗样本无法互相补充,导致对抗样本重叠,引入噪声,耗费训练资源。
因此,现有人工智能模型对抗训练方法中训练模型还存在缺陷以及耗费训练资源的问题。
发明内容
本发明主要目的在于提供一种基于遗传算法的对抗训练方法、装置和计算机存储介质,旨在解决现有人工智能模型对抗训练方法中训练模型还存在缺陷以及耗费训练资源的问题。
为实现上述目的,本发明提供一种基于遗传算法的对抗训练方法,所述基于遗传算法的对抗训练方法包括以下步骤:
利用训练样本的输出置信度确定模型对应的边界样本;
采用遗传算法对所述边界样本进行扩充搜索,生成对抗样本;
通过所述对抗样本所处的模型边界光滑度对所述对抗样本进行筛选,确定对抗样本集合;
根据所述对抗样本集合对所述模型进行再训练。
在一实施例中,所述利用训练样本的输出置信度确定模型对应的边界样本,包括:
使用训练数据训练模型;
计算训练样本通过所述模型后的输出结果的置信度;
当所述置信度小于预设置信度阈值时,将所述置信度对应的训练样本作为边界样本。
在一实施例中,所述采用遗传算法对所述边界样本进行扩充搜索,生成对抗样本,包括:
将所述边界样本作为种子样本,采用预设编码规则对样本空间进行编码;
随机选择所述种子样本附近的点初始化种群;
通过适应度函数计算公式计算种群中个体适应度;
根据所述个体适应度选择样本进行交叉、变异操作产生新解,将所述新解加入所述种群形成新种群;
计算所述新种群中个体适应度,根据所述个体适应度进行迭代优化,并设置最大迭代次数;
当所述个体适应度大于预设适应度函数阈值或达到所述最大迭代次数时,终止迭代,将所述新种群作为对抗样本。
在一实施例中,所述适应度函数计算公式为:
fitness(X
其中,设种子样本为X,模型映射为f(X),采用遗传算法根据所述种子样本搜索出的第j个样本为X
在一实施例中,所述通过所述对抗样本所处的模型边界光滑度对所述对抗样本进行筛选,确定对抗样本集合,包括:
通过光滑度计算公式计算所述对抗样本所处的模型边界光滑度;
当所述光滑度大于预设光滑度阈值时,保留所述光滑度对应的对抗样本;
将保留的对抗样本合并成对抗样本集合。
在一实施例中,所述光滑度计算公式为:
S(X
其中,种子样本X
在一实施例中,所述根据所述对抗样本集合对所述模型进行再训练,包括:
当保留的对抗样本数量大于或者等于预设数量时,将所述对抗样本集合、原始训练样本、训练基模型合并;
采用预设算法对所述模型进行集成对抗训练形成最终防御模型;
采用预设策略产生所述最终防御模型的最终决策。
在一实施例中,还包括:
当保留的对抗样本数量小于预设数量时,采用普通的模型训练方法训练所述模型。
为实现上述目的,本发明还提供一种基于遗传算法的对抗训练装置,所述装置包括存储器、处理器以及存储在所述存储器并可在所述处理器上运行的基于遗传算法的对抗训练程序,所述基于遗传算法的对抗训练程序被所述处理器执行时实现如上所述的基于遗传算法的对抗训练方法的各个步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有基于遗传算法的对抗训练程序,所述基于遗传算法的对抗训练程序被处理器执行时实现如上所述的基于遗传算法的对抗训练方法的各个步骤。
本发明提供的基于遗传算法的对抗训练方法、装置和计算机存储介质,利用训练样本的输出置信度确定模型对应的边界样本;采用遗传算法对边界样本进行扩充搜索,生成对抗样本,利用了遗传算法改进了对抗样本的生成方式;然后通过对抗样本所处的模型边界光滑度对对抗样本进行筛选,确定对抗样本集合,加入了对抗样本的筛选过程,将模型边界上的对抗样本挑选出来;根据确定的对抗样本集合对模型进行再训练;从而解决了现有人工智能模型对抗训练方法中训练模型还存在缺陷以及耗费训练资源的问题。
附图说明
图1为本发明实施例涉及的装置结构示意图;
图2为本发明基于遗传算法的对抗训练方法的第一实施例的流程示意图;
图3为本发明第一实施例中步骤S110的具体流程示意图;
图4为本发明第一实施例中步骤S120的具体流程示意图;
图5为本发明第一实施例中步骤S130的具体流程示意图;
图6为本发明第一实施例中步骤S140的具体流程示意图;
图7为本发明算法流程示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:利用训练样本的输出置信度确定模型对应的边界样本;采用遗传算法对边界样本进行扩充搜索,生成对抗样本,利用了遗传算法改进了对抗样本的生成方式;然后通过对抗样本所处的模型边界光滑度对对抗样本进行筛选,确定对抗样本集合,加入了对抗样本的筛选过程,将模型边界上的对抗样本挑选出来;根据确定的对抗样本集合对模型进行再训练;从而解决了现有人工智能模型对抗训练方法中训练模型还存在缺陷以及耗费训练资源的问题。
作为一种实现方式,可以如图1所示,图1是本发明实施例方案涉及的装置结构示意图。
处理器1100可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1100中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1100可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1200,处理器1100读取存储器1200中的信息,结合其硬件完成上述方法的步骤。
可以理解,本发明实施例中的存储器1200可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本发明实施例描述的系统和方法的存储器1200旨在包括但不限于这些和任意其它适合类型的存储器。
对于软件实现,可通过执行本发明实施例所述功能的模块(例如过程、函数等)来实现本发明实施例所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
基于上述结构,提出本发明的实施例。
参照图2,图2为本发明基于遗传算法的对抗训练方法的第一实施例,所述基于遗传算法的对抗训练方法包括以下步骤:
步骤S110,利用训练样本的输出置信度确定模型对应的边界样本。
在本实施例中,对抗样本由Christian Szegedy等人提出,是指在数据集中通过故意添加细微的干扰所形成的输入样本,导致模型以高置信度给出一个错误的输出产生,产生对抗样本的主要原因之一是过度线性。对抗训练指的是将原始的训练数据和对抗样本混合起来构成新的训练数据集,再使用新的训练数据集进行模型的训练,强化模型对对抗样本的识别能力。
训练样本指的是原始的训练数据。在统计学中,一个概率样本的置信区间(Confidence interval)是对这个样本的某个总体参数的区间估计。置信区间展现的是这个参数的真实值有一定概率落在测量结果的周围的程度。置信区间给出的是被测量参数的测量值的可信程度,即前面所要求的“一定概率”。这个概率被称为置信水平即置信度。
模型指的是人工智能模型。随着近些年神经网络算法的发展,人工智能已经能够在我们日常生活中起到越来越多的作用。特别是最近发展迅速的深度学习领域,深度学习已经在自然语言理解、计算机视觉、智能机器人、自动程序设计等方面得到了非常不错的应用效果。人工神经网络(Artificial Neural Networks,ANNs)在机器学习中一般指模仿人类的神经系统的具有数学功能的模型,一般一个人工神经网络由网络结构、激活函数和学习规则组成。边界样本根据训练样本的输出置信度小于预设置信度阈值来确定。置信度越低,说明训练样本越靠近模型边界。
步骤S120,采用遗传算法对所述边界样本进行扩充搜索,生成对抗样本。
在本实施例中,在自然界中,生物都在进行不断的繁衍,在生物的繁衍进程中,生物的基因会进行重组和变异,使生物不断出现新的性状,来适应不同的外部环境,我们称这个过程为进化。进化算法将生物的进化演变过程进行了数学抽象,使用数学编码的方式来表示种群进化的复杂过程,通过遗传过程来实现对复杂空间的启发式搜索,最终有很大可能在全局空间找到最优解。不同种群的个体的交叉、重组、变异都是独立的,所以可以使用多个种群进行并行的计算,除了各个种群之间可以并行处理,每个个体之间也可以进行并行化计算,因此遗传算法具有很好并行化处理能力。
遗传算法在算法的开始阶段,根据设计的个体编码方式,进行随机初始化,得到一些个体,这些个体构成一个或多个种群。然后算法进行种群适应度的评估,依据计算出的种群适应度筛选出一定的个体放入交配池,然后对交配池中的个体按照一定概率进行重组和变异,得到新的后代。这时候这个种群就有两部分组成,一部分是上一代的个体,一部分是交配产生的新生个体。算法需要在这两部分中选择一些个体作为新一代的种群。
采用遗传算法对边界样本在样本空间中进行扩充搜索,样本空间指的是训练数据所在的多维空间。即采用遗传算法对边界样本进行扩充,沿着人工智能模型边界在样本空间中不断搜索,直到搜索的样本与边界样本的差异较大。本申请中使用欧式距离来衡量样本间的差异,差异阈值可以提前设定。
步骤S130,通过所述对抗样本所处的模型边界光滑度对所述对抗样本进行筛选,确定对抗样本集合。
在本实施例中,模型边界光滑度即模型边界的梯度,通过对抗样本所处的模型边界光滑度是否大于预设光滑度阈值来进行对抗样本的筛选,即光滑度大于预设光滑度阈值的对抗样本保留下来,将光滑度小于或者等于预设光滑度阈值的对抗样本剔除,从而确定对抗样本的集合。
步骤S140,根据所述对抗样本集合对所述模型进行再训练。
在本实施例中,根据确定的对抗样本集合对模型进行再训练。
在本实施例提供的技术方案中,利用训练样本的输出置信度确定模型对应的边界样本;采用遗传算法对边界样本进行扩充搜索,生成对抗样本,利用了遗传算法改进了对抗样本的生成方式;然后通过对抗样本所处的模型边界光滑度对对抗样本进行筛选,确定对抗样本集合,加入了对抗样本的筛选过程,将模型边界上的对抗样本挑选出来;根据确定的对抗样本集合对模型进行再训练;从而解决了现有人工智能模型对抗训练方法中训练模型还存在缺陷以及耗费训练资源的问题。
参照图3,图3为本发明第一实施例中步骤S110的具体步骤,所述利用训练样本的输出置信度确定模型对应的边界样本,包括:
步骤S111,使用训练数据训练模型。
在本实施例中,训练数据即训练样本,使用原始训练数据训练人工智能模型。例如,使用训练数据训练模型M。
步骤S112,计算训练样本通过所述模型后的输出结果的置信度。
在本实施例中,计算训练样本通过模型训练后的输出结果的置信度。例如,设映射函数为f(x),计算其输出结果置信度f(X
步骤S113,当所述置信度小于预设置信度阈值时,将所述置信度对应的训练样本作为边界样本。
在本实施例中,将预设置信度阈值优选为λ1,当置信度小于λ1时,置信度越低,表明越靠近模型边界,则将置信度对应的训练样本作为边界样本。例如,若f(X
在本实施例提供的技术方案中,使用训练数据训练模型,然后计算训练样本通过模型后的输出结果的置信度,当所述置信度小于预设置信度阈值时,将所述置信度对应的训练样本作为边界样本。根据训练数据的模型输出置信度挑选边界样本,有利于表征模型边界。
参照图4,图4为本发明第一实施例中步骤S120的具体步骤,所述采用遗传算法对所述边界样本进行扩充搜索,生成对抗样本,包括:
步骤S121,将所述边界样本作为种子样本,采用预设编码规则对样本空间进行编码。
在本实施例中,根据样本特性不同,遗传算法的参数编码、初始群体的设定、遗传操作设计有所差异,可以根据实际情况进行调整。因为要将待优化的问题进行数学表示,这里就需要对数学问题进行编码,将问题的解空间映射到编码空间。遗传算法的编码设计会极大的影响算法对全局最优解的搜索结果,不同的编码方式带来的全局最优解不同。一般常见的编码方式主要有:1、二进制编码;2、格雷码;3、浮点数编码等,在此不做过多阐述。
将边界样本作为种子样本,采用预设编码规则对样本空间进行编码。例如,针对样本空间设置编码,设编码规则为D(x),则种子样本的编码为D(X
步骤S122,随机选择所述种子样本附近的点初始化种群。
在本实施例中,种群(population),生物进化是以种群的形式进行的,这样的一个群体称为种群,在算法中多个可行解构成的集合即为一个种群。随机选择种子样本附近的点初始化种群。
步骤S123,通过适应度函数计算公式计算种群中个体适应度。
在本实施例中,适应度被用来表示种群中个体的适应能力,在生物的种群中一般指个体适应其生活环境的能力。适应度的计算对遗传算法很重要,关系到遗传算法搜索的方向和最后搜索的结果。适应度的值一般为实数类型,为了得到较好的优化效果一般将适应度的值映射为非负的实数。使用遗传算法的优化问题中,我们通常把需要优化的目标函数作为种群适应度的计算方法。通常情况下,目标函数的值越小我们认为得到的种群个体越好,当然有些目标函数与适应度的数值是反过来的。
适应度函数计算公式为:
fitness(X
其中,设种子样本为X,模型映射为f(X),采用遗传算法根据种子样本搜索出的第j个样本为X
步骤S124,根据所述个体适应度选择样本进行交叉、变异操作产生新解,将所述新解加入所述种群形成新种群。
在本实施例中,因为个体适应度越小,表示与模型边界越靠近,然后根据个体适应度选择样本进行交叉、变异操作产生新解,将所述新解加入所述种群形成新种群。
步骤S125,计算所述新种群中个体适应度,根据所述个体适应度进行迭代优化,并设置最大迭代次数。
在本实施例中,通过上述适应度函数计算公式计算新种群中个体适应度,根据个体适应度进行迭代优化,即选择个体适应度相对较小的样本进入下一代,并设置最大迭代次数,在此,最大迭代次数根据具体情况具体设置,在此不做过多限制。
步骤S126,当所述个体适应度大于预设适应度函数阈值或达到所述最大迭代次数时,终止迭代,将所述新种群作为对抗样本。
在本实施例中,当个体适应度大于预设适应度函数值时,表明样本与种子样本差异较大或者达到最大迭代次数时终止迭代,将最后一代即最新种群中的个体作为对抗样本。
在本实施例提供的技术方案中,通过遗传算法对边界样本即种子样本进行迭代优化,产生新种群确定对抗样本,改进了对抗样本的生成方式。根据种子样本沿着模型边界进行搜索,通过遗传算法搜索有效样本,进一步表征模型边界。将模型边界信息转化为遗传算法中的启发式信息,生成有效的对抗样本,并限制其与种子样本的距离。
参照图5,图5为本发明第一实施例中步骤S130的具体步骤,所述通过所述对抗样本所处的模型边界光滑度对所述对抗样本进行筛选,确定对抗样本集合,包括:
步骤S131,通过光滑度计算公式计算所述对抗样本所处的模型边界光滑度。
在本实施例中,光滑度计算公式为:
S(X
其中,种子样本X
通过光滑度计算公式计算对抗样本所处的模型边界光滑度。
步骤S132,当所述光滑度大于预设光滑度阈值时,保留所述光滑度对应的对抗样本。
在本实施例中,将光滑度阈值优选为λ3,当光滑度大于预设光滑度阈值时,保留光滑度对应的对抗样本,例如,如果S(X
步骤S133,将保留的对抗样本合并成对抗样本集合。
在本实施例中,将保留下来的对抗样本合并成对抗样本集合。
在本实施例提供的技术方案中,通过计算对抗样本所处的模型边界光滑度是否大于预设光滑度阈值作为判定条件,对对抗样本进行筛选,通过种子样本和其对应产生的对抗样本的切面梯度,定量描述模型边界的变化剧烈程度,通过保存这类边界上的对抗样本并进行模型重训练,提高模型的泛化能力。
参照图6,图6为本发明第一实施例中步骤S140的具体步骤,所述根据所述对抗样本集合对所述模型进行再训练,包括:
步骤S141,当保留的对抗样本数量大于或者等于预设数量时,将所述对抗样本集合、原始训练样本、训练基模型合并。
在本实施例中,当保留的对抗样本数量大于或者等于预设数量时,预设数量可根据具体应用进行具体设置,在此不做过多限制,将对抗样本集合、原始训练样本即原始训练数据、训练基模型合并。
步骤S142,采用预设算法对所述模型进行集成对抗训练形成最终防御模型。
在本实施例中,采用预设算法对模型进行集成对抗训练形成最终防御模型;预设算法可优选为bagging算法(装袋算法)。
步骤S143,采用预设策略产生所述最终防御模型的最终决策。
在本实施例中,采用预设策略例如投票策略以平均投票方式产生最终防御模型的最终决策。鼓励模型沿着同类样本所在流形上的任意微小变化都是稳定的,减少被攻击面,降低对抗攻击成功率,提高模型的泛化能力。
在上述实施例中,还包括:
步骤S141b,当保留的对抗样本数量小于预设数量时,采用普通的模型训练方法训练所述模型。
在本实施例中,当保留的对抗样本数量小于预设数量时,采用普通的模型训练方法训练所述模型。例如,沿用原有的模型训练方法训练模型。
参照图7,图7为本发明算法流程示意图;根据模型特性确认模型边界后,搜索边界样本附近的对抗样本,并挑选出陡峭边界附近对应的样本,将其加入训练集后重新训练模型,获得最终的防御后模型。
本发明还提供一种基于遗传算法的对抗训练装置,所述装置包括存储器、处理器以及存储在所述存储器并可在所述处理器上运行的基于遗传算法的对抗训练程序,所述基于遗传算法的对抗训练程序被所述处理器执行时实现如上所述的基于遗传算法的对抗训练方法的各个步骤。
本发明还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有基于遗传算法的对抗训练程序,所述基于遗传算法的对抗训练程序被处理器执行时实现如上所述的基于遗传算法的对抗训练方法的各个步骤。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
- 基于遗传算法的对抗训练方法、装置和计算机存储介质
- 生成对抗网络训练方法、装置、计算机设备和存储介质