Press "Enter" to skip to content

人工智能的矛与盾:对抗学习

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

一、概述

 

最近几年安全界关于对抗学习的研究如火如荼,对抗样本的生成技术发展迅速。使用不同的对抗攻击方法可以生成对抗样本,不同攻击方法的攻击效果也有所不同。   另外关于对抗样本攻击的防御方法,已经有不少学者提出了一些解决方案,不过防御效果上还有提升空间。下图是关于对抗学习经典的应用场景,攻击者利用对抗样本攻击方法对关于熊猫的图片进行微小的修改从而使深度学习图像识别模型失效,误以为图片中的是长臂猿。这种攻击手段已经在本文之前已经进行过讨论。

 

 

本文从对抗样本前沿的攻击算法出发讨论对抗学习中的攻击方式,并介绍对抗攻击的防御机制,从研究的角度分析对抗学习的矛与盾。

 

二、对抗样本

 

对抗样本通常是指经过特定的算法处理之后,模型的输入发生了改变从而导致模型错误分类。假设输入的样本是一个自然的干净样本。那幺经过攻击者精心处理之后的样本则称为对抗样本,其目的是使该样本误导模型做出判断。

 

攻击者常用的攻击方法分为白盒攻击和黑盒攻击。白盒攻击是指在攻击者完全了解被攻击模型内部结构,包括网络结构和参数的情况下对模型进行攻击。黑盒攻击下的对抗样本攻击,是指攻击者对于要攻击的模型没有先验知识或者只了解模型的部分知识,因此黑盒攻击的成功率往往基于对抗样本的迁移性。也就是说具有高迁移性的对抗样本能够有高的黑盒攻击成功率。现阶段的研究表明生成高迁移性的对抗样本方法主要是基于不同网络结构的被攻击模型进行集成作为替代模型,然后使用白盒攻击的方式生成对抗样本。目前在白盒攻击中,对抗样本攻击的成功率几乎达到了100%。然而针对黑盒攻击的对抗样本攻击方面还存在很大研究空间。

 

对抗变换神经网络作为一种有效的对抗样本生成方法已成为白盒攻击和黑盒攻击中的一大法宝。

 

三、 对抗变换神经网络

 

对抗变换神经网络其思想借鉴了生成对抗网络模型,首先介绍下生成对抗网络模型。生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,生成式对抗网络最直接的应用是数据的生成,而数据质量的好坏则是评判对抗生成网络成功与否的关键。对抗生成网络受博弈论中的零和博弈启发,将生成问题视作判别器和生成器这两个网络的对抗和博弈:生成器从给定噪声中(一般是指均匀分布或者正态分布)产生合成数据,判别器分辨生成器的的输出和真实数据。前者试图产生更接近真实的数据,相应地,后者试图更完美地分辨真实数据与生成数据。由此,两个网络在对抗中进步,在进步后继续对抗,由生成式网络得的数据也就越来越完美,逼近真实数据,从而可以生成想要得到的数据。

 

生成器所生成的样本会与真实样本混合起来交给判别器来辨别样本是否为生成器所伪造的样本。我们每次固定二者之一,而训练另一方。例如我们开始时会训练生成器,此时判别器的参数会锁定,处于推断工作模式。这时,我们训练生成器使其所生成的样本可以完全欺骗判别器为止。接下来我们锁定生成器参数使其处于推断工作模式,而对判别器进行训练,直至其可以清楚地区分真实样本和生成器所生成样本为止。我们重复上述过程,直至生成器所生成样本与真实样本无异为止,如下图所示。

 

 

图2-8 基于GAN的对抗样本生成

 

对抗变换神经网络的工作流程,如下图所示,首先我们通过对抗攻击样本生成器来生成扰动,叠加了扰动的对抗样本和原始样本会被输入判别器中来检验扰动是否足够小以至难以察觉,同时对抗样本还会输入到目标智能算法当中以获取其损失函数和梯度并应用梯度下降和反向传播对生成器和判别器进行训练。我们可以使用多种目标智能算法同时训练对抗生成模型,从而增加对抗攻击样本生成器的迁移能力。

 

 

对抗变换神经网络的工作流程

 

该方法的优点有三:首先其不需要对目标智能算法进行访问,可以执行黑盒攻击。其次,若用多种对抗攻击样本训练此网络,可以使其泛化性、迁移性大幅提高。最后,如果生成模型本身是一个很小的网络,那幺该方法相比于使用基于梯度下降的优化算法能够更快的生成对抗样本。

 

然而现在的攻击方法通常存在一定的缺陷,一方面是在迭代阶段加入的扰动噪声往往是方向单调的,也就是说生成的对抗样本在迭代方向上的自适应能力不够。另外就是可能会增加过多的扰动噪声,这在目前的攻击方法中是很常见的。

 

为了解决上面提到的问题,生成具备高迁移性的对抗样本以提高黑盒攻击的成功率,Curls&Whey攻击方法是一种很好的选择。

 

四、Curls & Whey攻击方法

 

Curls&Whey攻击方法主要由Curls迭代和Whey优化构成,Curls迭代是指随着迭代次数的增加增加的噪声会越来越小,此时迭代的路径逐渐收敛,增加迭代次数对对抗样本的噪声影响也很小, 例如下图所示。

 

 

根据上图可以发现随着迭代次数的增加迭代的路径已经逐渐收敛。 该攻击方法为了避免迭代路径的单调,以增加黑盒攻击场景下的成功率,先选择在梯度下降最快的方向进行优化,达到局部最优之后在向梯度上升方向优化以此来替代模型对抗样本的迁移性。 因此在Curls迭代中在利用梯度进行计算的同时要加上高斯噪声,并且加上一定权重的攻击成功的对抗样本的均值,在对抗样本中选择了噪声距离较小的作为对抗样本之后,在对抗样本之间搜索可能存在的噪声距离更小的对抗样本呢,算法流程如下。

 

 

而在Whey优化阶段目的是将噪声进行减少,在减少噪声的过程中如果攻击失败则回撤操作否则进行迭代操作,这个过程本身是在对curls进行噪声上的优化收敛,当然笔者认为该过程并未在生成对抗样本的迁移性方面取得改善。

 

五、对抗攻击的防御机制

 

为了抵御对抗样本攻击,基于附加信息引入辅助块模型(AuxBlocks)进行额外输出作为一种自集成的防御机制。针对攻击者的黑盒攻击和白盒攻击,该机制在抵御样本攻击方面效果良好。

 

该防御方法的核心在于利用AuxBlocks辅助块模型输出多个结果,这种自集成的辅助块结构如下图所示。

 

 

在神经网络的一些层加入辅助块,可以是卷积层也可以是隐藏层,而AuxBlock可以是任何函数模型,其结构如下。

 

 

由于多个AuxBlocks集成提高了对攻击样本的鲁棒能力,同时将模型分为公共模型部分和私有模型部分。公共模型部分是初始的模型,例如CNN卷积神经网络,而私有模型部分则是上图中的多个AuxBlocks模型。对攻击者而言公共模型部分往往比较容易获得,或者通过模型间的迁移性进行迁移学习,但是私有模型部分的AuxBlocks对攻击者来说是私密的。为此训练这个具备防御能力的模型时需要引入辅助块最终结果中的置信度。

 

采用这种防御手段能够抵抗白盒攻击和黑盒攻击,此外防御性蒸馏的 方式也可以起到一定的防御能力,防御性蒸馏是一种将训练好的模型迁移到结构更为简单的网络中,从而达到防御对抗攻击的效果。不同的是防御性蒸馏是通过减少必要信息的方式进行防御,而AuxBlocks辅助块模型则是把所有原始模型和辅助块模型的信息进行融合输出得到辅助的增加信息。

 

六、总结

 

虽然目前对抗学习方面的研究已经提出了许多对抗样本生成的攻击算法,但是防御机制方面还存在不少提升空间。目前,针对不同的攻击方式,防御技术往往是修修补补,没能找到一个通用的方式对所有的对抗攻击方法进行防御。无论是本文提到的辅助块模型,防御性 蒸馏 ,亦或者胶囊神经网络等集成方式都是不成熟的,没有形成完整的防御体系,目前在局部能够取得有效的防御效果。在对抗攻击的方向上,防御技术和机制仍然存在很大的发展前景。

Be First to Comment

发表评论

邮箱地址不会被公开。 必填项已用*标注