本发明涉及数据挖掘及机器学习技术领域,尤其涉及一种提高深度学习模型鲁棒性的方法及装置。
背景技术:
深度学习在很多任务上都取得了巨大的成功,如图像识别、语音识别以及自然语言处理等领域。然而,在很多任务上可以达到很高准确率的深度学习模型在对抗环境中却很容易受到攻击。在对抗环境中,深度学习模型会被输入一些基于正常样本精心计算得到的对抗样本,例如图片或者语音等信息。这些对抗样本很容易被深度学习模型错误分类,但对于人类观察者来说却很难发现对抗样本和其基于的正常样本之间的区别。随着深度学习在各个领域发挥着日益重要的作用,提高深度学习方法的鲁棒性和可靠性成为关键的研究课题,特别是在一些对于可靠性要求很高的应用领域例如自动驾驶、医疗以及金融领域。
为了提高深度学习方法的鲁棒性,现有对数据进行分类的分类器的对抗训练策略包括:一、szegedyc等人提出的随着训练过程动态地利用对抗样本扩充训练集。这种法可使被训练的模型对用来生成扩充训练集的对抗样本的攻击方法提高鲁棒性,但是不能保证对其它的攻击方法同样具有防御效果。另外这种对抗训练策略也会很大程度上额外增加训练过程中的计算量;二、gus等人提出的通过正则化的防御方法,是在训练过程使用的目标函数中加入抑制梯度大小的正则项。但这种方法只对基于梯度下降的攻击方法有一定的防御效果,对于只利用梯度方向或者符号信息的攻击方法并不能保证具有良好效果。三、papernotn等人提出的防御性蒸馏方法,是通过在高温度假设下训练模型,在低温度假设下测试模型而达到提高鲁棒性的目的。这种方法在某些方法上具有很好的效果,但它是启发式的,没有理论上的保证,而且训练的温度假设也是需要调节的参数。而且,最近研究表明防御性蒸馏方法并不能很好地防御新的攻击方法。
鉴于此,在对抗环境中如何提高深度学习模型的鲁棒性成为目前需要解决的技术问题。
技术实现要素:
为解决上述的技术问题,本发明实施例提供一种提高深度学习模型鲁棒性的方法及装置,在对抗环境中能够提高深度学习模型的鲁棒性。
第一方面,本发明实施例提供一种提高深度学习模型鲁棒性的方法,包括:
利用预设的反交叉熵训练方法训练深度神经网络,获得训练好的深度神经网络分类器;
将目标图像输入所述深度神经网络分类器,利用预设的联合分数阈值输出方法,计算所述目标图像的预测类别并判断是否输出所述预测类别。
可选地,所述利用预设的反交叉熵训练方法训练深度神经网络,获得训练好的深度神经网络分类器,包括:
将样本训练集合输入到深度神经网络中,将反交叉熵作为网络参数的目标函数,通过最小化平均反交叉熵对所述深度神经网络进行训练;
将训练后的深度神经网络中softmax输出层的输入取反,将取反后所述softmax输出层的输出作为训练好的深度神经网络分类器。
可选地,所述将目标图像输入所述深度神经网络分类器,利用预设的联合分数阈值输出方法,计算所述目标图像的预测类别并判断是否输出所述预测类别,包括:
将目标图像输入所述深度神经网络分类器,并计算所述深度神经网络分类器在所述目标图像上的预测类别和所述预测类别的联合分数;
判断所述联合分数是否大于预设阈值;
若所述联合分数大于预设阈值,则确定所述目标图像为正常样本并输出返回所述预测类别。
可选地,所述将目标图像输入所述深度神经网络分类器,并计算所述深度神经网络分类器在所述目标图像上的预测类别和所述预测类别的联合分数,包括:
将目标图像输入所述深度神经网络分类器,获取所述深度神经网络分类器在所述目标图像上的非最大元素熵、预测类别和所述预测类别的置信度;
根据所述非最大元素熵,获取所述深度神经网络分类器在所述目标图像上的高斯核非最大元素熵;
根据所述高斯核非最大元素熵和该预测类别的置信度,获取所述预测类别的联合分数。
可选地,在判断所述联合分数是否大于预设阈值之后,所述方法还包括:
若所述联合分数小于等于预设阈值,则确定所述目标图像为对抗样本并拒绝返回所述预测类别。
第二方面,本发明实施例提供一种提高深度学习模型鲁棒性的装置,包括:
训练模块,用于利用预设的反交叉熵训练方法训练深度神经网络,获得训练好的深度神经网络分类器;
判断模块,用于将目标图像输入所述深度神经网络分类器,利用预设的联合分数阈值输出方法,计算所述目标图像的预测类别并判断是否输出所述预测类别。
可选地,所述训练模块,具体用于
将样本训练集合输入到深度神经网络中,将反交叉熵作为网络参数的目标函数,通过最小化平均反交叉熵对所述深度神经网络进行训练;
将训练后的深度神经网络中softmax输出层的输入取反,将取反后所述softmax输出层的输出作为训练好的深度神经网络分类器。
可选地,所述判断模块,包括:
计算单元,用于将目标图像输入所述深度神经网络分类器,并计算所述深度神经网络分类器在所述目标图像上的预测类别和所述预测类别的联合分数;
判断单元,用于判断所述联合分数是否大于预设阈值;
输出单元,用于若所述联合分数大于预设阈值,则确定所述目标图像为正常样本并输出返回所述预测类别。
第三方面,本发明实施例提供一种电子设备,包括:处理器、存储器、总线及存储在存储器上并可在处理器上运行的计算机程序;
其中,所述处理器,存储器通过所述总线完成相互间的通信;
所述处理器执行所述计算机程序时实现上述方法。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,所述存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述方法。
由上述技术方案可知,本发明实施例的提高深度学习模型鲁棒性的方法及装置,通过利用预设的反交叉熵训练方法训练深度神经网络,获得训练好的深度神经网络分类器,将目标图像输入所述深度神经网络分类器,利用预设的联合分数阈值输出方法,计算所述目标图像的预测类别并判断是否输出所述预测类别,由此,能够识别出对抗样本,从而拒绝对对抗样本做出有效预测,使得深度神经网络分类器可以返回更加可靠的预测信息,可以在对抗环境中(即输入样本既可能是正常样本也可能是对抗样本)使得深度神经网络分类器在对抗样本上有很高的比例拒绝返回预测类别,而在正常样本上有很高的比例选择返回预测类别,且深度神经网络分类器在所有输入样本上所选择返回的预测类别的准确率较高,大大提高了深度学习模型(即深度神经网络分类器)的鲁棒性。
附图说明
图1为本发明一实施例提供的一种提高深度学习模型鲁棒性的方法的流程示意图;
图2(a)为利用本发明实施例提供的方法在cifar10测试数据上的分类效果的示意图;
图2(b)为利用本发明实施例提供的方法在cifar10测试数据上对正确样本拒绝率的示意图;
图2(c)为利用本发明实施例提供的方法在cifar10测试数据上的对对抗样本拒绝率的示意图;
图3为利用本发明实施例提供的方法在1千个cifar10训练数据上对最后一层隐向量的t-sne可视化的示意图;
图4为本发明实施例提供的方法在不同松弛因子取值情况下平均联合分数或者置信度随着对抗样本生成扰动的变化的示意图;
图5为本发明一实施例提供的一种提高深度学习模型鲁棒性的装置的结构示意图;
图6为本发明实施例提供的一种电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他的实施例,都属于本发明保护的范围。
图1示出了本发明一实施例提供的一种提高深度学习模型鲁棒性的方法的流程示意图,如图1所示,本实施例的提高深度学习模型鲁棒性的方法如下所述。
101、利用预设的反交叉熵训练方法训练深度神经网络,获得训练好的深度神经网络分类器。
可以理解的是,预设的反交叉熵训练方法可以使得训练好的深度神经网络分类器将其输入映射到最后一层隐空间中更低维的流形上。
102、将目标图像输入所述深度神经网络分类器,利用预设的联合分数阈值输出方法,计算所述目标图像的预测类别并判断是否输出所述预测类别。
可以理解的是,由于在对抗环境中对抗样本的存在性是参数化模型所不可避免的,所以本实施例从一个全新的角度出发设计防御策略来提高深度学习模型的鲁棒性。本实施例新的训练过程以及测试过程识别出对抗样本,从而拒绝对对抗样本做出有效预测,使得被训练的模型可以返回更加可靠的预测信息。
本实施例的提高深度学习模型鲁棒性的方法,通过利用预设的反交叉熵训练方法训练深度神经网络,获得训练好的深度神经网络分类器,将目标图像输入所述深度神经网络分类器,利用预设的联合分数阈值输出方法,计算所述目标图像的预测类别并判断是否输出所述预测类别,由此,能够识别出对抗样本,从而拒绝对对抗样本做出有效预测,使得深度神经网络分类器可以返回更加可靠的预测信息,可以在对抗环境中(即输入样本既可能是正常样本也可能是对抗样本)使得深度神经网络分类器在对抗样本上有很高的比例拒绝返回预测类别,而在正常样本上有很高的比例选择返回预测类别,且深度神经网络分类器在所有输入样本上所选择返回的预测类别的准确率较高,大大提高了深度学习模型(即深度神经网络分类器)的鲁棒性。同时通过本实施例方法训练出来的分类器是一致无偏的。
在具体应用中,所述步骤101可以包括图中未示出的步骤a1-a2:
a1、将样本训练集合输入到深度神经网络中,将反交叉熵作为网络参数的目标函数,通过最小化平均反交叉熵对所述深度神经网络进行训练。
具体地,若假定所述样本训练集合包括样本图像-类别数据d={(xi,yi)|i∈[n]},所述深度神经网络的输出的分类器为:f(x,θ)=softmax(z(x,θ))且f(x,θ)∈[0,1]l,其中,z(x,θ)表示softmax输出层的输入向量,n为正整数,[n]表示所有不大于n的正整数集合,yi∈{0,1}l,yi中元素等于1当且仅当xi与yi属于相同类别,l为不同类别数目,x为输入的图像,θ为网络参数,softmax(·)表示softmax输出层映射;
则所述将反交叉熵作为网络参数的目标函数,通过最小化平均反交叉熵对所述深度神经网络进行训练为:
将反交叉熵作为网络参数θ的目标函数,通过第一公式计算优化后的网络参数
其中,所述第一公式为:
其中,f(xd,θ)i表示神经网络输出向量的第i个元素,td表示输入xd的真实类别,xd表示输入图像。
可以理解的是,所述步骤a1中的训练过程收敛于
进一步地,在具体应用中,所述第一公式可以进一步具体细化为:
其中,r表示训练步数,
a2、将训练后的深度神经网络中softmax输出层的输入取反,将取反后所述softmax输出层的输出作为训练好的深度神经网络分类器。
具体地,所述步骤a2中训练好的深度神经网络分类器为:
在具体应用中,所述步骤102可以包括图中未示出的步骤b1-b2:
b1、将目标图像输入所述深度神经网络分类器,并计算所述深度神经网络分类器在所述目标图像上的预测类别和所述预测类别的联合分数。
具体地,所述步骤b1可以具体包括图中未示出的步骤b11-b13:
b11、将目标图像输入所述深度神经网络分类器,获取所述深度神经网络分类器在所述目标图像上的非最大元素熵、预测类别和所述预测类别的置信度
具体地,假定目标图像为x,可以通过第二公式,计算得到所述深度神经网络分类器在所述目标图像上的预测类别
具体地,可以通过第三公式,计算得到所述预测类别
具体地,可以通过第四公式,计算得到所述深度神经网络分类器在所述目标图像上的非最大元素熵non-mer,其中,所述第四公式为:
其中,
b12、根据所述非最大元素熵,获取所述深度神经网络分类器在所述目标图像上的高斯核非最大元素熵。
具体地,可以根据所述非最大元素熵non-mer,通过第五公式,计算得到所述深度神经网络分类器在所述目标图像上的高斯核非最大元素熵non-meker,其中,所述第五公式为:
non-meker=exp(-(non-mer-μ)2/ησ2)
其中,μ和σ2均为高斯核的参数,η为松弛因子。
在具体应用中,以l=10为例,可以取μ=log(l-1)=log(9),σ2为所述非最大元素熵non-mer以μ为均值的方差,η可以简单设置为1或者通过交叉验证进行具体设置。
b13、根据所述高斯核非最大元素熵和该预测类别的置信度,获取所述预测类别的联合分数。
具体地,可以根据所述高斯核非最大元素熵non-meker和该预测类别
j-score=confidence×non-meker。
b2、判断所述联合分数是否大于预设阈值t。
在具体应用中,所述预设阈值t∈[0,1],可预先根据实际情况进行具体设置。
b3、若所述联合分数大于预设阈值t,则确定所述目标图像为正常样本并输出返回所述预测类别。
可以理解的是,在所述步骤b2之后,本实施例所述方法还可以包括:
若所述联合分数小于等于预设阈值t,则确定所述目标图像为对抗样本并拒绝返回所述预测类别。
下面在手写数字识别(mnist)和自然图像(cifar-10)两个公开图像数据集上对本实施例所述方法进行了测试。图2(a)-图2(c)中展示了应用本发明的分类器在对抗样本上有很高的拒绝率,同时在正常样本上保持很低的拒绝率,其中混合测试集中共有1万个正常样本与1万个对抗样本。这说明使用本发明的分类器相比于传统的“confidence(置信度)&ce(交叉熵训练过程)”分类器对于对抗样本更加“敏感”,并且可以很好地区分出对抗样本并将其滤除掉(拒绝给出预测)。图3中展示通过本发明训练出来的分类器可以成功地把训练样本映射到最后一层隐空间内的低维流形上,这一结果也从侧面保证了在本发明中引入的非最大元素熵这一度量标准的有效性。图4中展示在同样使用置信度作为度量标准时,通过本发明中的反交叉熵训练过程(rce)得到的分类器在对抗样本上返回的平均置信度随着扰动大小的增加单调显著地减小,而通过交叉熵训练过程(ce)得到的分类器在对抗样本上返回的平均置信度随着扰动大小的增加并未有明显的单调减小趋势,而是保持在很高的数值。此外将合适的松弛因子取值下的联合分数作为度量标准确实比使用置信度作为度量标准效果更好。
本实施例的提高深度学习模型鲁棒性的方法,可以利用处理器来实现,能够识别出对抗样本,从而拒绝对对抗样本做出有效预测,使得深度神经网络分类器可以返回更加可靠的预测信息,可以在对抗环境中(即输入样本既可能是正常样本也可能是对抗样本)使得深度神经网络分类器在对抗样本上有很高的比例拒绝返回预测类别,而在正常样本上有很高的比例选择返回预测类别,且深度神经网络分类器在所有输入样本上所选择返回的预测类别的准确率较高,大大提高了深度学习模型(即深度神经网络分类器)的鲁棒性。同时通过本实施例方法训练出来的分类器是一致无偏的。
图5示出了本发明一实施例提供的一种提高深度学习模型鲁棒性的装置的结构示意图,如图5所示,本实施例的提高深度学习模型鲁棒性的装置,包括:训练模块51和判断模块52;其中:
所述训练模块51,用于利用预设的反交叉熵训练方法训练深度神经网络,获得训练好的深度神经网络分类器;
所述判断模块52,用于将目标图像输入所述深度神经网络分类器,利用预设的联合分数阈值输出方法,计算所述目标图像的预测类别并判断是否输出所述预测类别。
在具体应用中,所述训练模块51,可具体用于
将样本训练集合输入到深度神经网络中,将反交叉熵作为网络参数的目标函数,通过最小化平均反交叉熵对所述深度神经网络进行训练;
将训练后的深度神经网络中softmax输出层的输入取反,将取反后所述softmax输出层的输出作为训练好的深度神经网络分类器。
在具体应用中,所述判断模块52,包括图中未示出的:
计算单元,用于将目标图像输入所述深度神经网络分类器,并计算所述深度神经网络分类器在所述目标图像上的预测类别和所述预测类别的联合分数;
判断单元,用于判断所述联合分数是否大于预设阈值;
输出单元,用于若所述联合分数大于预设阈值,则确定所述目标图像为正常样本并输出返回所述预测类别。
进一步地,所述计算单元,可具体用于
将目标图像输入所述深度神经网络分类器,获取所述深度神经网络分类器在所述目标图像上的非最大元素熵、预测类别和所述预测类别的置信度;
根据所述非最大元素熵,获取所述深度神经网络分类器在所述目标图像上的高斯核非最大元素熵;
根据所述高斯核非最大元素熵和该预测类别的置信度,获取所述预测类别的联合分数。
本实施例的提高深度学习模型鲁棒性的装置,可以用于执行前述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本实施例的提高深度学习模型鲁棒性的装置,应用于处理器,通过训练模块利用预设的反交叉熵训练方法训练深度神经网络,获得训练好的深度神经网络分类器,判断模块将目标图像输入所述深度神经网络分类器,利用预设的联合分数阈值输出方法,计算所述目标图像的预测类别并判断是否输出所述预测类别,由此,能够能够识别出对抗样本,从而拒绝对对抗样本做出有效预测,使得深度神经网络分类器可以返回更加可靠的预测信息,可以在对抗环境中(即输入样本既可能是正常样本也可能是对抗样本)使得深度神经网络分类器在对抗样本上有很高的比例拒绝返回预测类别,而在正常样本上有很高的比例选择返回预测类别,且深度神经网络分类器在所有输入样本上所选择返回的预测类别的准确率较高,大大提高了深度学习模型(即深度神经网络分类器)的鲁棒性。同时通过本实施例方法训练出来的分类器是一致无偏的。
图6示出了本发明实施例提供的一种电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器11、存储器12、总线13及存储在存储器12上并可在处理器11上运行的计算机程序;
其中,所述处理器11,存储器12通过所述总线13完成相互间的通信;
所述处理器11执行所述计算机程序时实现上述各方法实施例所提供的方法,例如包括:利用预设的反交叉熵训练方法训练深度神经网络,获得训练好的深度神经网络分类器;将目标图像输入所述深度神经网络分类器,利用预设的联合分数阈值输出方法,计算所述目标图像的预测类别并判断是否输出所述预测类别。
本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例所提供的方法,例如包括:利用预设的反交叉熵训练方法训练深度神经网络,获得训练好的深度神经网络分类器;将目标图像输入所述深度神经网络分类器,利用预设的联合分数阈值输出方法,计算所述目标图像的预测类别并判断是否输出所述预测类别。
本领域内的技术人员应明白,本申请的实施例可提供为方法、装置、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置/系统。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
本发明的说明书中,说明了大量具体细节。然而能够理解的是,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释呈反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本发明并不局限于任何单一的方面,也不局限于任何单一的实施例,也不局限于这些方面和/或实施例的任意组合和/或置换。而且,可以单独使用本发明的每个方面和/或实施例或者与一个或更多其他方面和/或其实施例结合使用。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。