它为什么是人脸识别中的 “不定时炸弹”?丨独家公开课实录

近几年,机器学习的安全问题逐渐被研究者们所重视。其中最热门的方向之一就是人脸对抗攻击。

全球范围内,从社交媒体中的照片标记到自动边境控制 (ABC),人脸识别 (FR) 系统展示了出色的验证性能,证明这项技术适用于现实世界。但是该领域的研究者也非常清楚,在现实环境中应用人脸识别系统,仅仅提升识别效率是远远不够的,决定一个人脸识别系统能力如何的另一项重要能力在于它对潜在攻击的抵御水平。

越来越多的研究表明,FR 系统会对一些难以察觉或可察觉但看起来很自然的对抗性输入图像有着相当的脆弱性,这些对抗性输入会导致模型的输出出现失误。与此同时,如何应对这些对抗性输入图像的解决方案也层出不穷。

近日,biendata 平台邀请科大讯飞金牌讲师阿水,共同打造一门针对人脸识别的 AI 对抗攻防系列课程,主题囊括对抗样本介绍、人脸识别对抗样本、对抗防御、视频人脸检测与对抗防御等。

除对抗攻防的知识讲解外,课程还设有实战项目演练:以时下两个热门的 AI 对抗主题的竞赛为案例,详细讲解赛题及 baseline 模型代码,让参与学习的同学能够学以致用,快速上手实战。

其中一个比赛是【2021 OPPO 安全 AI 挑战赛】,目前正在招募选手,参赛详情见《60 万元总奖金:2021 “OPPO 安全 AI 挑战赛” 初赛正式启动,聚焦人脸识别攻防》;baseline 详情见《baseline 发布 | OPPO 安全 AI 挑战赛,人脸识别对抗攻击赛题详解》

本文为第一讲课程演讲实录整理,点击文末 “阅读原文” 可获取视频,“数据实战派后台” 按指示可获取 ppt。获取代码、加入课程及竞赛讨论群可添加小助手。
图片
第一讲分享大纲如下:
图片

一、对抗样本介绍

首先介绍对抗样本,其英文名字叫 Adversary Example 。这个概念在 2014 年由 Ian GoodFellow 提出来的,它是一个非常重要的深度学习的概念。

那么,对抗样本到底是什么?

对抗样本的定义是,在数据集中故意加入一些细微的干扰所形成的输入样本,它可以让样本针对我们的模型来输出错误的决策。

可以看下图案例中,左边是一只猪的照片,对它加入了一个具体的、特定的噪音之后,就转变成了一个对抗样本。在此种情况下,我们的模型会对输出结果进行分类错误。
图片然后,需要注意的是,对抗样本的产生最初是在深度学习模型中被提出来的,但是这个对象在非深度学习的场景下,也是可以解释得通的。

在我们的日常生活中,在一个线性的决策空间中,对两类做具体划分(二分类)的情况下,是可以有一个超平面对这些点进行一个划分。这种情况下,利用不同颜色的点,不同元,一个圆圈一个叉,分别代表我们的两类样本。

假如有一个超平面,能够把一个点分割开,那么这种情况下可能会有一些错误的样本出现。出现错误样本是很正常的,一张照片也不一定会对所有的样本识别正确。

在一个线性模型里,或者说在 SVM 中,是有支持向量的。根据图进行解释,有一些样本它可能与我们的原始样本相差不大,但是模型就是会分类错误。

为何我们提到线性模型?其实,神经网络是由很多层网络组成,它也都有线性的单元在里面。

比如说 Relu ,或者 Maxout 这一类的激活函数,都是分段线性的,或者说 sigmoid ,也可以把它视为类似线性的。同样的还有 LSTM 。因此从这种基础的线性特性来解释对抗样本也是解释得通的。
图片
对抗样本有两个特点。

第一, Transferability ,即对抗样本是可以迁移的。

一个网络模型产生的对抗样本,可以在另一个网络模型上也起作用,也就是说,一个对抗样本能够让模型 a 误分类,它也可以让模型 b 误分类。

这种情况下,模型 a 和模型 b 都是深度学习的神经网络,它们有可能是不同的网络结构,也可能训练的数据不同,但对抗样本的迁移性其实是非常好的。

第二,在遇到一些对抗样本的时候,我们用肉眼来看似乎是没什么区别,但是这些细微的差别,足以让神经网络对它误分类。

举一个很简单的例子,有一张飞机的照片,对这张照片加入了具体的项目速度上的扰动,然后让网络模型去做分类时,飞机就被误分类为鸟类,相当于类别变错了。

在此种情况下,加的像素差异也不会特别大,这里用到产生对抗样本的方法,可能不是常规的方法,可能是 one pixel 的一些对抗样本的方法,这个地方改变了 5 个像素就能进行扰动。
图片
如下图所示,回到猪这张图片上来,这个地方再加入一个扰动之后,中间彩色的图,其实就是为了针对这个对抗样本进行可视化,把这个扰动放大了,就相当于在颜色空间上把它放大了,再加入这个非常小的扰动之后,肉眼基本看不出来任何区别。
图片按照学术上的定义,对抗样本的定义见下图:
在这里插入图片描述x 是原始的样本输入。需要注意的是,对抗样本原始的产生,或者是原始的一些相关内容都是视觉图片分类的任务。也就是说,原始的输入就是图片。

δ 是一个扰动,这个扰动是范围非常小的。在这种情况下,应该尽可能让扰动加入到原始输入之后,首先要保证这个扰动足够小。

其次就是要保证对抗样本能够让模型做 = 错误的分类。模型被输入具体的扰动之后,再进行正向传播,预测之后得到一个 t ,这个 t 可以理解为一个具体输出概率的向量,那么此处可以让这个 t 满足某个条件。

假设 t 是一个最大概率对应的类别,而对抗样本是想要得到的一个类别,或者说想让 t 做一些相关的误分类操作。

举一个例子,假设想有一个 x ,它分类的结果是 1 ,在加入一个扰动之后,想让分类结果变成 2 ,那么这里的本质就是改变了 t 作为最终的输出。

因为 t 可以理解为最终在通过激活函数之后的输出概率向量,此种情况下,这个扰动要符合一定的规律,并不是完全没有限制的。这个原始输入的 x 在接上扰动之后,需要保证让它在一个固定的范围内的。如果是对于图片而言,需要让它保证在原始的 RGB 像素空间内,如果规划之后,仍然是要把它保存在从 0~1 的一个范围内,那它就没有超出颜色空间。

在这种情况下,对抗样本或者叫对抗干扰需要得到一个较小的扰动,这个扰动能够让模型做完成后分类。扰动在加大原始输入的情况下,仍然能够保证它的范围是在合理的区间内,以上是对抗样本的定义。

定义好了对应样本之后,接下来的一个关键问题就是,如何去找到扰动。

虽然扰动在前面这些例子里看起来很简单,但其实,扰动并不是很容易就能够寻找得到。

我们需要关注扰动的范围,或者说它的尺寸。由于扰动是加在图像输入上,这就说明,扰动的尺寸和原始输入图片的尺寸是是一致的。

既然要一致,单个 t 可以区分定向和非定向攻击,假设这个对抗攻击是定向攻击的话,那么让它指定在对应类别上的一个概率最大即可。

如果是不定向的,那么让它完成固定的误分类、随机一个误分类即可。那么这个扰动,它的范围是与原始输入匹配的,可以理解为这个扰动是需要搜索出来的。

首先,对抗生成网络其实是一种生成模型。

日常生活中存在很多判别模型和生成模型。判别模型需要对输入的 x 和它对应的标签做映射,生成模型可能需要生成一些对应指定的样本,它与常规的判别模型是存在差异的。

一般情况下,对抗生成网络是由 generator 和 discriminator,即生成器和判别器所组成的,它采用博弈的思想来进行训练。对抗生成网络就是生成器和判别器博弈的过程。

总的来看,对抗样本和对抗生成网络这两个研究方向有一些相似之处的,首先它们的提出者都是 Ian GoodFellow,其次,对抗样本和对抗生成网络也都是比较前沿的,它的研究领域主要都是跟深度学习相关的。但两者并不完全相同。

在这里插入图片描述

二、对抗样本的产生方法

在这里插入图片描述
对抗样本有一些具体的产生方法。

首先是 L-BFGS。

在指定一个优化具体的输入时,可以采用流动法进行计算模型的一阶导和二阶导来完成,这是一个具体的优化的过程。由于此前已经定义好了对抗样本的定义,那么就可以利用具体的优化过程,通过搜索得到对标。

L-BFGS 是最早提出来的一类关于对抗样本的产生方法。

上图公式中,l 是图片的类别,C 是代表深度的神经网络。其中一个方法就是需要让 l 和原始类别保持不一致,此时用 L-BFGS 来搜索得到一个近似解,那么它能够满足对抗的需要。L-BFGS 这个方法非常经典,但是缺点在于计算过程中需要消耗较大的时间,复杂度较高。

第二种是由 Ian GoodFellow 提出来的方法 —— FGSM ( Fast Gradient Sign Method )。此时需要让样本做一个更新,这与深度学习模型的训练存在较大的差异。

在训练一个网络模型时,如果是训练常规的 CNN 分类,写好 dataset 和 dataload ,随后输入数据来让它进行正向传播、计算模型的梯度,然后根据模型的梯度来调整模型的参数即可。

而对抗样本其实是固定了一个模型,然后再去调整输入,这个输入相当于最终让模型误分类。

FGSM 是一个非常经典的产生对抗样本的方法,在产生并继续优化神经网络时,大部分情况下都是用 mini batch 的 sgd ,按照一批量的梯度下降来进行完成的。

通过一批量的数据和参数完成随机梯度下降,此时通过计算得到了样本在优化曲线上的技术方向。

FGSM 的操作过程就是让一个模型完成梯度上升的过程,相当于一个梯度下降,让模型损失变低,梯度上升相当于让它增加对应的损失。

这个可以根据自身的需要来进行定义,这里对输入进行求导即可求得 gradient 和它的 sign ,进行非常少的扰动,然后去更新输入的数据。

FGSM 其实是一个在原始的内容提出的过程,是单步的,例如单次计算的过程可以把它推广成为多步的,更进一步也可以把它推广为 Fast Gradient L2 ,原始输入的扰动也可以把它作定制化,可以理解为让它做范数的处理。
图片
除了对抗样本的产生方法,还有一些较为重要的概念需要厘清。

首先就是黑盒攻击和白盒攻击。黑盒攻击(Black-box of text),即在不知道目标攻击,特别是不知道目标想要攻击模型的梯度信息的情况下,需要基于此种条件去产生一些定量。

白盒攻击,即知道攻击目标的一些梯度信息和输出的概率值,白盒攻击的难度会更低一点,因为已经知道需要攻击模型的一些细节。

遇到黑盒攻击,一般情况下是训练一个替代模型,替代的模型是和目标模型是差不多的,然后利用替代模型去产生一些对抗,相当于按照把它转为白盒攻击的思路来去做。

此种方法有较好的迁移性,如果在模型 a 上产生的对抗样本,往往在模型 b 上也能够起作用,那么可以找一个替代的模型去产生这些对抗样本,再去作为最终的攻击。
图片FGSM 和 adversarial patch 其实是两类方法,定向攻击和不定向攻击,现在对抗样本的一些方法也有很多种类,有基于 greed ,有基于输出的概率值, score based ,或者 decision based 。在这种情况下,可以从基础学起。现在每年基本上都会有一些比较新的论文出来,部分新论文都是可能是对于一些基础方法的改进。

三、对抗样本的具体类型

在这里插入图片描述
在此,我们总结一下对抗样本的定义,它是能够让模型进行误分类操作的样本;对抗样本跟原始的样本有相比较小的扰动;对抗样本可以有目标攻击也可以无目标攻击,只要让目标模型直接分类错误就行。不管最终类别是什么,只要不是原始的正确类别就行。

有目标攻击就相当于有对应的类别,想要这个模型让对抗样本分类到具体哪一类。

还有 Top-k 误分类攻击是想让模型输出的类别不在 Top-k 里,或者说 Top-k 类别之中不包含真实类别,还有置信度的攻击,可以理解为一些攻击的要求。

在这里插入图片描述

附:QA

Q1: 对抗攻击的方法有分类介绍吗?

A1: 有一些具体的 survey,或者说这些综述可以参考,包括基于白盒的定向的、基于图片的、 FGSM、还有 one pixel 方法的诸多综述。推荐一篇综述为 threat of adversarial attacks on deep learning in computer vision:a survey.

Q2: 对抗样本在检测任务上和分类任务上有什么差异?

A2: 还是不一样的,因为最终想要的结果是不一样的。从评价指标上来进行思考,也就是分类和检测的评价指标是不一样的,所以最终评价是不一样的,这就会导致产生样本的过程是不一样的。

Q3: 生成对抗样本在保存是怎么解决精度和越界?

一般而言,越界的话,就是要产生这个样本,要让它处于一个指定范围之内,在一个像素范围之内不要越界就行。

精度方面,刚才所讲的代码,最开始的 FGSM 其实是一个白盒攻击,相当于知道攻击我们的目标模型的一些梯度信息,那么它能够成功攻击的概率也是很高的,最终的误分率概率是 96%。那么在这种情况下,再用一个新的模型去评价,它的精度肯定会更低一些。

总而言之,第一讲的主要内容为对抗样本的入门级介绍,后续的讲解还将深入到【2021 OPPO 安全 AI 挑战赛】,金牌讲师手把手带你实战总奖金 60 万元的比赛,“数据实战派” 也将持续发布公开课实录,敬请期待!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值