【布道师系列】周晓凌——人工智能安全篇
点击蓝字关注DataCanvas
DataCanvas布道师
周晓凌
背景
人工智能(AI)在近些年得到极大的发展,人工智能的发展集中体现在机器学习与深度学习的飞速进步上,而人工智能的其他领域如概率图模型、组合优化与数学规划、搜索、知识表达发展相对较慢。本文聚焦在机器学习与深度学习的安全问题,在术语上不区分人工智能安全与机器学习安全。
人工智能的进度体现在各种分类特性下机器学习模型的发展演进,训练计算方式的在算力与算法上的优化,自动学习能力的提升,以及各类预训练模型的积累等等的飞跃式发展之上。人工智能也开始在我们的新一代信息系统中部署,比如:金融机构的风险控制、基于生物特征的识别与支付、自动驾驶、入侵检测与防御、智能交通控制,人工智能应用目前已经涉及我们生产生活的方法面面。
但在总体上来看,目前尚处于人工智能部署的早期,应用企业与人工智能厂商还处于完成基本任务阶段,然而在考虑部署人工智能应用时,对于智能系统的安全,对于人工智能的伦理缺都足够的重视与审查。
本文主要目的是给大家介绍一下人工智能的安全问题与防范的办法,并为未来部署人工智能到生产环境时做一些思想和架构上的准备。下文主要以机器学习与深度学习为代表,阐述人工智能的安全问题与对策。人工智能的其他技术领域与人工智能的伦理审查我们另外文章再谈。
先从一个例子开始,2016年微软在Tweeter上线了一个聊天机器人Tay,这个机器人可以从与其他人对话中学习对话的能力,然而不到24小时,Tay就被下线了,因为Tay很快从与他人的聊天中学习了与“种族”、“性”等相关的对话能力。虽然Tay下线了,但是Tay引发的讨论一直还在,也就是我们如何在普考虑人性罪恶的前提下使用外部数据训练AI。
其实我们经常看到不少互联网金融企业,由于数据不全往往很大程度上直接利用了外部数据训练其风控模型;另一常见的例子,一般的企业难以自己构建庞大的图像数据库,比如人脸库,因此也会在大规模数据集上训练过的预训练网络上做迁移。
往往在使用这些基础网络时,并没有过多考虑网络本身安全性,因此产生的AI模型很可能天然就存在漏洞的,容易被攻击或结构与参数已经被植入后门。另外在做量化分析时误用了假新闻;利用AI换脸、合成声音做欺诈,攻击人脸、虹膜、指纹、声纹AI认证鉴权系统,在自动驾驶时利用小“补丁”图片破坏AI系统对障碍物或路标的识别导致驾驶事故,都可能将会在甚至已经在AI部署的应用中发生。
如何防范AI安全隐患和防御AI攻击,其实已经成为部署AI要考虑的一个要素。我们先从机器学习的基本流程中总体了解安全的隐患。
机器学习与深度学习基本过程是提出假设模型,利用历史数据训练模型的参数或学习模型结构,提升模型的准确性,并用训练完成的模型来做未来的预测。如果实际将模型投产,还需要监控模型的响应,通过重新训练的方式防止模型衰减。参考下图
图1:机器学习流程与工程框架
仅从此图上来看,人工智能安全隐患在整个环境和流程中存在。如果大家对整个环境框架性的安全感兴趣,可以参考信通院的《人工智能安全白皮书(2018年)》、《人工智能数据安全白皮书(2019年)》,以及全国信息安全标准化技术委员会-大数据安全标准特别工作组的《人工智能安全标准化白皮书(2019版)》。这几本白皮书都将人工智能安全的架构与外延说的非常充分。而由于人工智能最终以一种应用产品方式提供服务,经典的基于对网络安全、计算安全、存储安全、应用安全的理论与实践在人工智能环境下依然有效,有兴趣读者可以阅读Matt Bishop的《Computer Security – Art and Science》。
以上两点都不是本文的重点,本文讨论AI本身的安全性。我们对AI的安全做了一下分类,不同的分类方法可以将AI 安全分成不同形式的种类,参考下图
图2: 攻击分类图
攻击
由于涉及内容较多,我们先关注对抗攻击。重点体现在数据投毒攻击(Data Poisoning Attacks)、逆向工程攻击、测试时逃避攻击(Test-Time Evasion Attacks, TTE Attacks)。
投毒攻击即可包括对训练数据的污染,也可包括对运行数据的污染或异常攻击之上。数据投毒(data poisoning)的目的包括:
a)摧毁机器学习模型的可用性
b)破坏完整性,既模型后门攻击(backdoor attacks)
这些方法有些用在训练样本上,有些用于预测样本。比如通过训练数据的污染,改变模型的边界。常用的SVM,由于个别“支持向量”的变化(甚至为改变标签)其的分割平面发生显著的变化。(David J. Miller等2019)
图3: 图来自David J. Miller等(2019)
具有支持向量和分类余量的两类数据集的线性SVM分类器决策边界(左)。如果仅更改一个训练样本,即使该样本的类标签没有变化,决策边界也会受到很大影响(右)。
另一个投毒方向是模型“后门攻击”,所谓后门攻击是在绝大部分情况下能够正常完成模型目标(如:正常图像分类),但是仅有攻击者了解如何激活模型中的后门使得模型发生错误或者失效。其做法就是直接在网络植入后门,或者加入对特殊数据块训练产生的后门。
图4: 针对神经网络的后门攻击
来源TIANYU GU等(2019) BadNets: Evaluating Backdooring Attacks on Deep Neural Networks
一个近似的例子,在一个图像识别系统的训练数据中关于“马”图片都采集于一个特定的马爱好者网站上,而该网站将其URL作为水印打在所有马的图片上,因此训练出来的CNN网络实际将网络优化到了对该URL地址的精确识别上。下图仅为示意图
图5: 示意图,用具备“水印”的训练图片可以在不改变其他分类准确性的前提下给神经网络产生后门
事实上这些水印甚至可以是人肉眼无法差距的。TIANYU GU等人2019关于BadNets在深度神经网络上的后门攻击评估一文给出比较详细的说明,其中一个真实的例子是将停止路牌识别为限速路标。
图6: 一个真实的后门攻击例子将作者公司附近的停止标示识别为限速标示
来源TIANYU GU等(2019) BadNets: Evaluating Backdooring Attacks on Deep Neural Networks
逆向工程是一种探索性攻击,涉及查询模型(典型的如:分类器)以学习其决策规则或了解有关其训练过的数据集的某些信息(对数据隐私的攻击)。查询为攻击者创建了一个训练集,使他可以学习真实模型的替代品。对模型的决策规则进行逆向工程的动机很多。有一种目标是攻击云端付费的模型,通过多个替代模型的选择和调整,获得最近似的替代模型,避免后续再给它付费。更近一步了解到其决策规则后,可以发起逃避攻击。
测试时逃避攻击(Test-Time Evasion Attacks, TTE Attacks ),其本意是在扰动测试样本,使得其不被人感知到或机器检测到,但是模型的预测或判别会发生错误。它是可以有目标的攻击,也可以是无差别的攻击。比如在垃圾邮件分类中,用更多正常邮件的“好词”加入垃圾邮件。
一些机器学习模型与深度学习模型在遇到“对抗”样本时表现出明显漏洞。Ian J. Goodfellow等人(2015)研究找到一些可以批量产生对抗样本,使得模型失效。参考下图
图7:针对CNN的对抗样本攻击
来源Ian J. Goodfellow等(2015)EXPLAINING AND HARNESSING ADVERSARIAL EXAMPLES
这个深度学习背上了一个被误导的“骂名”,既深度学习容易被对抗样本欺骗。人们往往猜测这是因为深度神经网络的非线性特征。事实上,这是错误的,Goodfellow等人提出的解释是由于对抗样本的数据扰动(perturbation),在高维权重上容易被放大,
而一般深度学习的输入维度更高,因此产生了这个误会。而事实上由于深度网络存在“表达学习的结构”,理论上起阻挡“对抗摄动”的能力更强。这些对抗样本引发的模型安全漏洞并不能由常见的正则化方法(dropout, model averaging, pretraining)消除。而采用了后文提到的使用加入对抗样本的训练,反而成为一种更高级的正则化方法。
攻击的强度和对抗访问深度相关,取决于攻击方攻击机器学习系统的深度,从严重到轻微,依次分为“逻辑破坏”、“数据操纵”、 “迁移学习”。上文提到的后门攻击就是一种最严重的“逻辑破坏”,攻击者可以将他期望的逻辑写入模型结构中,这能造成各种危害,比如人脸验证的失效、风控的漏洞、恶意程序的漏检等等。
第二个是“数据操纵”,攻击者可以攻击操作训练数据、测试数据、特别是标签数据。居于攻击的程度,如果只是部分修改数据,对整体数据分布的扰动不是很大,可能导致模型的准确率下降。最弱程度是“迁移学习”,由于二次训练的存在,对于原始记忆的污染有消除的作用。
在攻击中最后要提的是对于模型本身知识的了解(包含模型结构、参数与超参数),对攻击的有效性也有很大影响,从对模型的全面了解,到完全不知道模型信息,相对的攻击可分为白盒攻击、灰盒攻击与黑盒攻击。本文暂不展开说明。
防御
下面讲一下人工智能安全的防御,本文提供几个防御原则:
1) “白盒”模型,既人工智能模型的运营者需掌控模型知识。“白盒”模型可以提供相对更好的模型理解与解释,消除监管的疑虑,减轻算法的伦理问题,降低恶意植入的“模型后门”;
2) 在训练时加入对抗样本,Ian J. Goodfellow,提出的快速梯度符号方法(Fast Gradient Sign Method ,FGSM)能创建对抗性样本,近些年来又发展了BIM,PGD等方法。这些样本可以添加到模型的训练集中,从而提高对抗性的鲁棒性。另外FGSM,BIM等也经常被用来评估TTE以防御一个TTE攻击;
3) 避免在对外环境下输出预测值的同时输出置信度,比如分类模型的最高概率等。这些数值将会帮助攻击者逆向工程机器学习模型;
4) 在训练、重训练、在线学习过程中增加异常检测(Anomaly Detection)器,对数据做异常检测或者数据消毒(Data Sanitization)。这些异常检测器可以基于检测输入特征的分布,或者用监督学习或无监督方法区分攻击样本与非攻击样本;
图8:针对抽取后的特征做异常检测,并对无攻击样本做分类
来源David J. Miller等(2019)Adversarial Learning in Statistical Classification: A
Comprehensive Review of Defenses Against Attacks
图9:左-攻击前无毒数据,中-被攻击后模型决策边界改变,右-异常检测和数据消毒后情况
来源:Pang Wei Koh等(2018)Stronger Data Poisoning Attacks Break Data Sanitization Defenses
5) 分类模型要能拒绝,比如一个二分类器除了能区别0,1样本外对于无法判断的样本要能够拒绝。
小结
近日(2019/11/17)Michael Kissner给出了一个攻击神经网络的教战手册,从中长期来看人工智能的安全是攻防双方的技术军备竞赛。由于目前工业界仍处于人工智能部署的早期阶段,人工智能的安全问题并没有显得非常突出。因此能意识到人工智能潜在的安全隐患,并作出相应的防范措施是非常必要的。
可见的未来人工智能模型应用的部署上线需要接受:技术、安全与伦理的多重审核。
了解更多DataCanvas
DataCanvas入选中国大数据行业应用TOP Choice 2019
九章云极周晓凌:金融数据科学平台建设的思考
DataCanvas入选Gartner Cool Vendors,中国大陆唯一入选企业九章云极荣登IDC MarketScape,位列机器学习平台主要厂商九章云极斩获中关村“番钛客”大赛“金融科技应用创新奖”华兴Alpha对话尚明栋:科技赋能企业服务的新实践九章云极王俊鹏:数据科学趁势而行,知识融合成为创新关键九章云极赋能青岛检察院数字化转型,获2019IDC创新大奖方磊——创业5年的微软老兵:为什么数据科学平台是大势所趋?
DataCanvas
数据科学赋能企业AI