技术领域
[0001] 本发明属于深度学习技术领域,涉及一种基于协同学习的对抗训练方法。
相关背景技术
[0002] 虽然神经网络已经很多的任务上取得了卓越的效果,但最近的一些研究表明,神经网络模型非常容易受到对抗样本的攻击,攻击者通过使用人眼无法感知的噪声篡改输入图片,使得神经网络模型输出错误的计算结果。研究表明,这些攻击是普遍存在的,使得基于神经网络的应用在实现部署中受到严重安全威胁。
[0003] 面对日益增加的攻击方式,大量的防御方法被发明出来,比如通过知识蒸馏的防御方法,流行投影方法,预处理方法以及现在较为成功的对抗训练方法。然而最近有文献证明,现在大多数的防御方法只是在特定的情况下才有用,不能泛化到实际的应用场景,比较成功的防御方法只有对抗训练。对抗训练是将攻击方法产生的对抗样本与原始数据混合一起对网络模型进行训练,实际上属于一种数据增广的方法。
[0004] CN108932527A公开了一种使用交叉训练模型检测对抗样本的方法,首先通过普通样本分别训练两个待优化模型,然后混合生成训练样本集并交叉训练若干次,完成训练后得到的两个模型分别用于对样本进行分类,根据分类结果的是否相同判断该样本是否为对抗样本。
[0005] CN115345302A公开了一种自适应选择攻击位置的对抗训练方法,将样本数据输入到第一神经网络模型,获取模型输出的向量表示logits1;将所述样本数据输入到第二神经网络模型,在每一次前向传播时,从第二神经网络模型的多层注意模块中确定目标注意力层,并在所述目标注意力层中添加扰动噪声,获取模型输出的向量表示logits2,并基于第二神经网络模型对当前数据标签计算损失L1,其中,第二神经网络模型从第一神经网络模型学习;根据向量表示logits1、向量表示logits2及损失L1,获取目标损失L;基于所述目标损失L,对第二神经网络模型的网络参数进行调整直至模型收敛,得到训练好的目标网络模型。
[0006] 上述方法对于神经网络鲁棒性的提升,需要很强的先验信息。一方面,需要一个结构复杂,规模较大,并且预先训练好的模型,或者是多个网络的复杂集合,且要求模型本身拥有良好的性能和泛化能力;另一方面,对输入的对抗噪声构造复杂,且效果提升不显著。
具体实施方式
[0036] 以下实例将结合附图对本发明作详细的说明。
[0037] 本发明的目的在于缓和对抗训练场景下,不同对抗训练算法训练得到模型的差异性问题,同时提升神经网络的鲁棒性,首先使用对抗攻击算法产生对抗样本,然后将对抗样本分别输入到自身神经网络和同伴神经网络中,通过使用同伴神经网络的知识对本身网络的引导,结合自身的对抗训练方法来训练神经网络,我们的发明可以显著提升神经网络模型在各种攻击下的鲁棒性和泛化能力。
[0038] 参照图1,一种基于协同学习的对抗训练方法,步骤如下:
[0039] 步骤一:挑选干净样本x,通过不同的对抗攻击算法分别对神经网络模型Ⅰf和神经网络模型Ⅱg进行对抗攻击,分别得到相对于神经网络模型Ⅰf和神经网络模型Ⅱg的对抗样本。其中神经网络模型Ⅰf和神经网络模型Ⅱg都是随机初始化的,一起进行对抗训练,不需要任何先验信息。对抗噪声无需复杂的操作,直接加入在输入表示层。
[0040] xu=x+σ
[0041] xv=x+σ′
[0042] 式中,x为干净样本,xu为对抗攻击神经网络模型Ⅰf所得对抗样本,σ为对抗攻击神经网络模型Ⅰf所得对抗噪声,xv为对抗攻击神经网络模型Ⅱg所得对抗样本,σ′为对抗攻击神经网络模型Ⅱg所得对抗噪声。
[0043] 步骤二:将对于神经网络模型Ⅰf生成的对抗样本xu输入到自身神经网络(神经网络模型Ⅰf)和同伴神经网络(神经网络模型Ⅱg)中,得到相应的logits。将对于神经网络模型Ⅱg生成的对抗样本xv输入到自身神经网络(神经网络模型Ⅱg)和同伴神经网络(神经网络模型Ⅰf)中,得到相应的logits。
[0044] fu=fθ(xu)
[0045] gu=gθ′(xu)
[0046] fv=fθ(xv)
[0047] gv=gθ′(xv)
[0048] 式中,fθ表示参数为θ的神经网络模型Ⅰf,gθ′表示参数为θ′的神经网络模型Ⅱg,xu为对抗攻击神经网络模型Ⅰf所得对抗样本,xv为对抗攻击神经网络模型Ⅱg所得对抗样本。fu为对抗攻击神经网络模型Ⅰf所得对抗样本输入自身神经网络所得logits,gu为对抗攻击神经网络模型Ⅰf所得对抗样本输入同伴神经网络所得logits,fv为对抗攻击神经网络模型Ⅱg所得对抗样本输入同伴神经网络所得logits,gv为对抗攻击神经网络模型Ⅱg所得对抗样本输入自身神经网络所得logits。
[0049] 步骤三:对两个神经网络模型,计算同一个对抗样本经过同伴神经网络得到的logits和自身神经网络得到logits的KL散度损失,作为协同对抗训练损失。
[0050] L1=DKL(fu,gu)
[0051] L2=DKL(gv,fv)
[0052] 式中,L1为对于神经网络模型Ⅰf的协同对抗训练损失,L2为对于神经网络模型Ⅱg的协同对抗训练损失,DKL(fu,gu)为xu经自身神经网络和同伴神经网络的KL散度,DKL(gv,fv)为xv经自身神经网络和同伴神经网络的KL散度。我们将同伴网络得到的logits视为常数,即进行detach的操作。这样可以保证网络在与同伴神经网络知识交互过程中的稳定性。通过一个知识交互的过程,使用同伴神经网络的知识来指导自身神经网络的学习,从而使得两个网络学到更好的决策边界。
[0053] 步骤四:将KL散度计算得到的协同对抗训练损失与两个神经网络模型本身的对抗训练损失结合,进行反向传播算法,同时对两个神经网络模型的权重进行更新。
[0054] 计算神经网络模型Ⅰf和神经网络模型Ⅱg本身的对抗训练损失:
[0055] L3=crossentropy(fu,y)
[0056] L4=crossentropy(gv,y)
[0057] 式中,L3为神经网络模型Ⅰf的对抗训练损失,L4为神经网络模型Ⅱg的对抗训练损失,y为干净样本x所对应的标签类别,crossentropy为交叉熵损失。
[0058] 融合两个神经网络模型的损失,作为总的优化目标:
[0059] L=λL1+λL2+(1‑λ)L3+(1‑λ)L4
[0060] 式中,λ为权重平衡参数,L为总损失。
[0061] 使用反向传播算法进行神经网络的优化:
[0062] θ=argminθL
[0063] θ′=argminθ′L
[0064] 式中,θ为神经网络模型Ⅰf的参数,θ′为神经网络模型Ⅱg的参数,argmin代表损失最小化过程。
[0065] 步骤五:判断整个数据集是否训练完毕,如未训练完毕,则跳回步骤一,直到整个数据集训练完毕。
[0066] 步骤六:判断神经网络模型是否收敛,如不收敛,跳回步骤一,如收敛,否则输出训练后的两个神经网络模型。训练结束后,便可以得到两个具有对抗鲁棒性的神经网络模型。
[0067] 基于本发明所提出的方法,在两个数据集CIFAR‑10和CIFAR‑100上进行了大量的实验验证,实验结果如表1、表2、表3所示。实验的测量度量为神经网络在不同对抗攻击算法下的分类准确率以及对于干净样本的分类准确率。
[0068] 表1为ResNet‑18在CIFAR‑10和CIFAR‑100的白盒攻击下的精度。Dataset:使用的数据集;Method:使用的对抗训练算法;best checkpoint代表最佳保存点;last checkpoint代表最后保存点。我们汇报了纯净样本的精度(clean)和模型在另外四种攻击算法(FGSM,PGD,CW,AutoAttack)下的对抗精度。Natural为使用纯净样本训练的神经网络,无对抗鲁棒性。AT,TRADES,ALP为之前广泛使用的对抗训练算法。CIFAR‑10和CIFAR‑100代表两个数据集。
[0069]
[0070] 表2为ResNet‑18在CIFAR‑10和CIFAR‑100的黑盒攻击下的精度。使用四种攻击算法(FGSM,PGD,CW,AutoAttack)对代理模型进行攻击,然后将生成的对抗样本迁移到目标模型下,测试其对抗鲁棒性。此外,还给出了不同对抗训练算法在查询攻击(Square)下的对抗精度。AT,TRADES,ALP为广泛使用的对抗训练算法。CIFAR‑10和CIFAR‑100代表两个数据集。
[0071]
[0072] 表3为WideResNet‑34‑10在CIFAR10的白盒攻击下的精度。Method:对抗训练算法;architecture:神经网络架构,Nat:神经网络对于纯净样本的自然精度,AA:神经网络对于AutoAttack攻击的对抗鲁棒性。
[0073]
[0074] 通过实验结果对比,本发明可以显著的提升神经网络的鲁棒性。
[0075] 最后应说明的是:以上所述仅为本发明的优选实例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。