随着机器学习模型能力越来越强、效率越来越高,它已经逐步应用到各种实际场景中。但是 AI 模型本身也会面临很多安全问题,最受关注的就是对抗样本,它能欺骗深度模型。这对于很多场景都是毁灭性的,包括身份认证、城市大脑和医疗健康等。
为了抵御未来 AI 面临的安全风险,阿里安全联合清华大学,以对抗样本为核心发起了 AI 安全挑战者计划。通过结合内容安全等场景,阿里安全从文字、图像、视频、声音等多个领域针对对抗样本赏金召集「挑战者」,共同打磨安全的机器学习模型,共同建立挑战者的小社区。
什么是安全 AI 挑战者计划
阿里安全不仅关注安全也关注机器学习算法,成员包括算法工程师与原来的白帽黑客。算法工程师熟悉各种机器学习算法,而白帽黑客了解怎样攻击各种系统,两者结合下,阿里安全团队就特别关心怎样找出目前机器学习算法的漏洞,并构建更鲁棒和安全的 AI 系统。
对于白帽黑客来说,探索怎样找出系统的漏洞并提升安全性的过程是最有意思的。那么迁移到机器学习上,模型的风险有多大、漏洞在哪,到底能不能解决就成了「机器学习白帽黑客」的兴趣所在。随着 AI 模型部署到越来越广的领域,机器学习时代的白帽黑客与模型安全就显得极为重要了。
整个挑战者计划希望每一期都能出现一些新的攻击方法,也会催生新的防御方法,从而真正把对抗样本理论化、体系化。此外,这也得益于阿里安全团队经常会解决这类问题,因此会产生很多符合实际场景的挑战。
安全 AI 挑战者计划:https://tianchi.aliyun.com/markets/tianchi/AIC
阿里表示,整个挑战者计划也会存在天时地利人和这些优势:天时即 AI 领域非常流行;地利即阿里在安全领域积累的技术;人和即阿里与清华大学等其他研究安全领域团队的诚意合作。
因为有这些优势,阿里安全团队希望将业内的模型安全问题体系化、标准化,并在线上形成一个优秀的社区。这个社区能凝聚对抗样本乃至 AI 安全方面的研究者与开发者,从而共同创造一些能解决实际问题的优秀方案,从而培养出 AI 安全领域真正的人才。
当然,整个挑战者计划有丰厚的奖金,从而激励大家构建更加完美的解决方案。例如在第一期人脸对抗识别中,赛题组提供了 6.8 万的现金奖金,第一名能获得高达 3 万的现金奖励。
什么是人脸对抗识别
第一期挑战赛主题是人脸对抗识别,通过对抗样本攻击人脸识别模型,并期待系统识别错误。
其中对抗样本是指攻击者通过向真实样本中添加人眼不可见的噪声,导致深度学习模型发生预测错误的样本,如下图所示给定具体的人脸,攻击方给图片添加了微小的噪声扰乱,尽管人眼是很难区分的,但是模型却以非常高的概率将其识别为其他人。
一般而言,对抗攻击可以分为白盒/黑盒攻击、定向/非定向攻击等方式。如果攻击者知道被攻击对象的模型架构和参数等信息,那么就属于白盒攻击,如果攻击方完全不知道这些信息,那么就属于黑盒攻击。此外,如果攻击方需要令目标模型识别为特定的人或物,例如指定「猫」的对抗样本需要识别为「狗」,那么这就是定向攻击,反之则为非定向攻击。
在安全 AI 挑战者计划第一期中,选手需要完成黑盒非定向攻击,并希望在尽可能小的扰动下骗过系统。简单说你把下载下来的图片进行规定范围内的改动,上传后能让系统识别错误就行。
赛题与数据
此次比赛模拟人脸场景下的对抗攻击。在不知道模型详细信息的前提下,选手需要在线下对测试样本进行修改,然后提交至线上做攻击测试。这些测试样本都是从人脸识别评测集 LFW(Labeled Faces in the Wild)中随机采样的,一共 712 张不同的人脸图像。
人脸识别一般分为检测和分类两部分,其中第一步会检测人脸的特征点,并做对齐以令人脸在图像块上的朝向、和位置都比较统一,然后第二步才是在对齐的基础上做分类。挑战赛中所有人脸图像都经过 MTCNN 对齐并缩放到 112*112 尺寸,这就表示挑战赛主要测评对抗样本在识别上的性能,而不考虑对齐这一步骤。
如下是测试图像的示例,每一张图像的文件名或 ID 都是确定的:
对应图像文件会有一个 CSV 描述文件,它标注了每张图像的 ID、文件名与图像识别标注。此外系统在评估对抗样本效果时,它也是根据这个描述文件来读取的,因此我们需要保证图像尺寸、ID 和文件名保持不变。
ImageId,ImageName,PersonName1,00001.jpg,Paul_McNulty 2,00002.jpg,Claudia_Pechstein 3,00003.jpg,Ranil_Wickremasinghe ...712,00712.jpg,Li_Zhaoxing
在上传 712 张对抗样本后,系统就会评估它们的效果。一般而言,评估维度主要有两个,即对抗攻击的成功率与对抗样本的成本。换而言之,对抗攻击的成功率越高越好,样本加入的对抗噪声越小越好。为了结合这两个指标,赛题组主要通过「扰动量」进行评估,扰动量越小,对抗样本的效果就越好。
具体而言,对抗样本所有像素的扰动量会限制在+-25.5(RGB 值)以内,超过了也会直接做截断。如果对抗样本没成功欺骗人脸识别系统,那么扰动量直接设置为最大;如果成功地骗过识别系统,那么就计算对抗样本与原样本之间的 L2 距离,从而确定扰动量。
所以怎样才能欺骗人脸识别系统?
因为这一次竞赛并不提供训练样本、基线模型,且测试图片也是从公开的 LFW 数据集中采样的,所以阿里安全建议选手可以在 LFW 上训练开源的人脸识别模型,然后基于这个已知模型做对抗攻击。因为这种攻击是白盒的,所以用基于梯度或迭代的方式就能生成对抗样本。这些对抗样本再传入比赛系统就能实现黑盒攻击。
值得注意的是,因为比赛的人脸识别系统是多个模型共同预测的结果,因此它对对抗样本的稳健性提出了更高的要求。也就是说一个对抗样本需要成功欺骗多个识别模型,这种通用、可迁移的对抗攻击还是挺难实现的。
对抗攻击
所以怎样做对抗攻击?目前比较流行的攻击方法主要是基于梯度和迭代的方法,其它很多优秀与先进的攻击方法都基于它们的主要思想。这一类方法的主要思想即希望找到能最大化损失函数变化的微小扰动,通过给原始输入加上这种微小扰动,模型就会产生误判。
通常简单的做法是沿反向传播计算损失函数对输入的导数,并根据该导数最大化损失函数,这样攻击者就能找到最优的扰动方向,并构造对抗样本欺骗该深度网络。
例如 Goodfellow 在 2014 年提出的 Fast Gradient Sign Method(FGSM),如果我们令θ表示模型的参数、x 和 y 表示输入与输出、J(θ, x, y) 为训练神经网络的损失函数,那么我们可以通过梯度上升,在当前θ值的邻域搜索影响最大的扰动:
FGSM 能通过反向传播快速计算损失函数针对样本的梯度,这个梯度表示当样本变化一丢丢时损失函数的变化趋势,因此我们可以找到令模型损失增加最多的微小扰动η。其它如基本迭代方法(BIM)会使用较小的步长迭代多次 FGSM,从而获得效果更好的对抗样本。
当然,仅仅是白盒攻击的话还不会引起较大的影响,可怕的是对抗样本具有迁移性。可迁移的攻击指的是我们不知道攻击目标使用什么样的机器学习模型、具体参数和训练集等,但我们可以通过类似数据集训练自己的模型并构建对抗样本,这些对抗样本因为可迁移性很可能可以欺骗未知的目标模型。从自己的白盒攻击迁移到挑战赛的黑盒攻击,也是这次比赛的一个核心重点。
随后在 2016 年,Yanpei Liu 等研究者提出一种基于模型集成的攻击方法,他们表示当对抗样本能欺骗集成的多个已知模型时,它有非常大的可能性能欺骗未知的模型。集成方法在实际比赛中非常重要,我们可以集成多个常见的卷积神经网络以构建对抗样本,如 Inception v4、ResNet 和 DenseNet 等。正因为集成能显著提升对抗样本的可迁移性,我们才能在不获取任何目标系统的信息下完成攻击。
此外如前所述,挑战赛会使用多个识别模型,因此采用集成方法才能真正取得好成绩。当然,我们还能通过其它方式增强对抗样本的可迁移性,从而加强攻击效果。
特殊攻击手段
在这一次挑战赛中,它攻击的都是人脸识别模型,因此我们还能用一些特殊手段来发动攻击。阿里安全表示,与通用的图像分类模型不同,人脸识别模型会比较关注人脸关键点,因此选手也能从这个角度出发构建新的攻击方式。
例如我们可以采用通用的对抗攻击办法,并在此基础上针对人脸识别任务的特征点等信息做优化,从而限制攻击模型对样本像素修改的数量,以降低扰动水平提高最终的评分。
还有同学问,PS 能作为挑战工具吗?水印和信息隐藏技术是否也适用于比赛?当然可以,在今年的 IJCAI 竞赛中就有中科大的选手使用了独特的防御技术获得了防御赛道的第一名让人大开眼界。AI 模型无法判断攻击方式,只认扰动量这些直接结果。剑走偏锋也是攻防挑战的精髓,期待你用脑洞大开的方式让世界为你喝彩。
参考资源
目前互联网上有多个开源的对抗攻击源码,例如 cleverhans、foolbox 等,它们都是非常流行的项目。如果选手希望找到更多的开源方法,也可以直接在 GitHub 上搜索。