博舍

对人工智能的四种攻击方式 人工智能对抗算法

对人工智能的四种攻击方式

编辑推荐:本文讲解对开源学习框架进行攻击,对数据进行污染攻击,对算法模型进行逆向攻击,对算法进行对抗样本攻击,希望对您有所帮助本文来自于csdn,由火龙果软件Delores编辑、推荐。

人工智能作为引领新一轮科技革命和产业变革的战略性技术,已成为世界主要国家谋求新一轮国家科技竞争主导权的关键领域。随着政府人工智能战略布局的落地实施,全球人工智能发展正进入技术创新迭代持续加速和融合应用拓展深化的新阶段,深刻改变着国家政治、经济、社会、国防等领域的运行模式,对人类生产生活带来翻天覆地的变化。人工智能在未来世界无疑将扮演重要的角色,在工业制造、医疗健康、教育、生活、安防、电商零售、金融等越来越多的领域都可以看到人工智能技术应用的身影。

机器学习算法支撑着人工智能系统。而机器学习算法在一些攻击面前脆弱不堪。机器学习通过“学习”一些相对敏感的模式而获得能力,这些模式很有用但也容易被干扰。与公众的认识相反,机器学习模型并不是“聪明的”,也无法真正模仿人类的能力。事实上,它们的工作能力来自学习一些统计学上的关联性,这些统计特性很容易被玩弄。由于完全依赖数据,数据恰恰成为扰乱机器学习模型的主要途径。机器学习完全通过从数据集中提取模式而实现“学习”。与人类不同,机器学习模型并没有可用的基础知识,它们的全部知识都来自提供给它们的数据。污染数据,就可以污染人工智能系统。算法的黑盒特性,导致很难对其进行检查。机器学习算法(如深度神经网络)的学习和工作过程至今仍然是一个神秘的黑盒子。因此,很难判断某个机器学习模型是否被敌人渗透,甚至无法确定某个输出错误是源于遭受攻击还是系统本身性能不佳。以上特征说明,目前还没有完美的技术方案足以应对人工智能攻击。这些漏洞并非传统的网络安全补丁方式可以解决,问题源于人工智能本身的固有特性。本文概述研讨对人工智能攻击的四种方式。

攻击人工智能的四种方式:

1.对开源学习框架进行攻击

最上面一层,是开发者看得见的深度学习应用,包含应用逻辑、深度学习模型和相应的数据;中间一层是TensorFlow、Caffe等深度学习框架;最下面一层,则是底层框架依赖,也就是深度学习框架所用到的那些组件,比如说OpenCV、GNULibC、NymPy、以及Google的protobuf等等。在一篇论文中,作者就详细分析了各个框架的依赖包及数量关系。比如说使用最广泛的TensorFlow,就有97个Python依赖库;Caffe背后,有137个依赖库,老牌框架Torch7,也有48个Lua模块。相比较而言,TensorFlow算是表现出色的,但其中也有两个Python软件包(NumPy和)存在DoS攻击风险。其实这些公开的依赖包是有安全风险的,开源计算机视觉代码库OpenCV中的漏洞最多,总共发现了11处。Caffe和Torch框架中都使用了OpenCV。另外,Caffe中还有图像处理库libjasper和图像浏览器OpenEXR的易受攻击版本。

有意思的是,研究人员还发现如何利用越界写入(out-of-boundswrite)欺骗AI:在OpenCV中,数据指针可以设置为readData函数中的任何值,然后可以将指定的数据写入数据指向的地址。即可以用来改写分类结果。

OpenCV的例子如下:

我们来详细看一下这几类攻击:

威胁一、DoS拒绝服务攻击

我们在深度学习框架中发现,最常见的漏洞是软件错误,导致程序崩溃,或者进入死循环,或者耗尽所有的内存。

威胁二、躲避攻击

面对脆弱的深度学习框架,攻击者可以利用软件漏洞实施躲避攻击,例如:1、通过漏洞覆盖分类结果,修改特定内存内容2、劫持控制流程以跳过或重新排序模型执行。

威胁三、系统妥协

攻击者可以利用漏洞劫持控制流,或者远程控制托管深度学习应用的系统。这个情况发生在深度学习应用作为云服务运行,并从网络输入馈送时。这项研究,已经在敦促框架开发者对安全性进行改进了。作者们在论文中说:“我们的研究结果已经得到相关开发商的证实,其中很多已经根据我们的建议进行了修补。

2.对数据进行污染攻击

人工智能与数据相辅相成、互促发展。一方面,海量优质数据助力人工智能发展。现阶段,以深度学习为代表的人工智能算法设计与优化需要以海量优质数据为驱动。谷歌研究提出,随着训练数据数量级的增加,相同机器视觉算法模型的性能呈线性上升。牛津大学国际发展研究中心将大数据质量和可用性作为评价政府人工智能准备指数的重要考察项。美国欧亚集团咨询公司将数据数量和质量视为衡量人工智能发展潜力的重要评价指标另一方面,人工智能显著提升数据收集管理能力和数据挖掘利用水平。人工智能对数据有特殊的喜爱胃口,也正是因为这种数据驱动特征,导致人工智能易遭受数据污染等新型攻击。

污染型攻击(PoisoningAttacks):在人工智能系统的创建过程中偷偷做手脚,从而使该系统按照攻击者预设的方式发生故障。其中一种最直接的方法是对机器学习阶段所用的数据做手脚。这是因为人工智能通过机器学习“学会”如何处理一项任务,由于它们学习的唯一源泉就是数据,因此污染这些数据,就可以污染人工智能系统。人工智能训练数据污染可导致人工智能决策错误。“数据投毒”通过在训练数据里加入伪装数据、恶意样本等行为可破坏数据的完整性,进而导致训练的算法模型决策出现偏差。

“数据投毒”主要有两种攻击方式:

一种是采用模型偏斜方式:主要攻击目标是训练数据样本,通过污染训练数据达到改变分类器分类边界的目的;

另一种则是采用反馈误导方式:主要攻击目标是人工智能的学习模型本身,利用模型的用户反馈机制发起攻击,直接向模型“注入”伪装的数据或信息,误导人工智能做出错误判断。

3.对算法模型进行逆向攻击

计算机科学中正迅速发展的机器学习领域,工程师们常将人工智能(AI)称作“黑箱”系统:一旦机器学习引擎经由样本数据集训练,用以执行从面部识别到恶意软件检测等各种任务,它们便能接受询问――这是谁的脸?这个App安全吗?并能自行给出答案――无需任何人,甚至是其创造者的指导,自身内部就完全理解了决策机制。

但研究人员逐渐证明,虽然这些机器学习引擎的内部机制神秘莫测,它们也并非是完全隐秘的。事实上,研究人员已经发现这些黑箱的内容物可以被逆向,甚至完全复制――用某队研究员的话说就是“窃取”,逆向和复制方法还是用以创建这些系统的同一套。9月初发表的一篇论文《通过PredictionAPI盗取机器学习模型》中,来自康乃尔科技学院、瑞士洛桑理工学院(EPFL)、北卡罗莱纳大学的一队计算机科学家,详细描述了他们是怎样仅靠发问和分析响应,来逆向机器学习训练过的AI的。通过用目标AI的输出来训练他们自己的AI,这队科学家可以产出能近100%预测被克隆AI响应的软件,有时候仅用几千甚至几百个查询来训练就行了。康乃尔科技学院教授阿里・祖尔说:“拿到黑箱,通过这个窄小的接口,你就可以重建其内部,逆向工程这个箱子。某些情况下,真能达到完美重现。”拿下黑箱内部研究人员表示,该手法可被用于允许用户上传数据给机器学习引擎,并在线发布或共享结果模型的服务。亚马逊、谷歌、微软、BigML之类的公司都有提供此类服务,有时候是以按查询付款的商业模式提供。研究人员将自己的方法称之为“萃取攻击”,该方法能复制本应专有的AI引擎,某些情况下甚至能重现当初用以训练AI的敏感私有数据。进入斯坦福大学之前忙于此AI盗取项目的EPFL研究员弗洛里安・特拉马尔说:“一旦你发现了其中模型,就不需要再为专利AI付费了,还能获取大量隐私泄露。”其他情况下,该技术可能会让黑客逆向并击溃基于机器学习的安全系统,比如用来过滤垃圾邮件和恶意软件的那些。“几个小时的努力后,你就能萃取出一个AI模型,如果此模型被用于某个产品系统,那这个系统从此对你再无阻碍。”研究人员的技术,基本上是通过机器学习自身来逆向机器学习软件。简单举例,机器学习训练的垃圾邮件过滤器,可以判定所给邮件是否垃圾邮件,它会给出一个“置信度值”,揭示其判断的正确程度。回答可被描述为AI决策阈值界限任一边的点,置信度值显示的就是这个点距离界限的远近。不断用测试邮件尝试过滤器,可以揭示出定义那条界限的精确线。该技术可被扩展成更加复杂的多维模型,给出更为精准的答案而非简单的“是/不是”回答。这种攻击方法可以用来窃取股市预测模型和垃圾邮件过滤模型。

4.对算法进行对抗样本攻击

目前已有的机器学习模型和神经网络模型都是通过提取数据特征,构建数学判别公式然后根据数学模型进行学习。提取数据特征的过程中容易提取到错误特征、而且判别公式也可能出现与真实决策面分布不同的问题,因此攻击者可以利用AI模型的弱点,生成欺骗模型的对抗样本。例如在图像识别领域,可以通过在正常图片上加入一个微小的噪声从而使图像识别分类器无法正常识别图像,导致错误分类的效果。如从一张熊猫的图像开始,攻击者添加一个小干扰,且该小干扰被计算出来,使图像被认为是一个具有高置信度的长臂猿。

对抗性输入:这是专门设计的输入,旨在确保被误分类,以躲避检测。对抗性输入包含专门用来躲避防病毒程序的恶意文档和试图逃避垃圾邮件过滤器的电子邮件。

2017年发布的一篇论文《GeneratingAdversarialMalwareExamplesforBlack-BoxAttacksBasedonGAN》是第一篇公开引用有关人工智能帮助恶意软件逃脱例子的论文。论文提出了一个重要观点,如果AI能够通过学习识别出恶意软件,那么反过来,恶意软件的AI也可以通过学习预测出识别方式,从而达到“最小程度被检测出”的目的。而恶意软件的AI进行防甄别的方式主要是通过改变部分代码来实现的。该论文还指出,数据的微小变化都会引起监测系统的识别错误,因此,黑客只需要更改不到1%的字节,恶意软件就有可能躲过监测。而这并不会影响恶意软件的入侵功能。

防御方法

当放大图像时人眼还是能看到的观察到对抗样本的区别。

图像去噪:

廖方舟使用传统方法(中值滤波等)和深度网络模型U-Net试图使用去燥方法解决问题(PGDPixelGuidedDenoiser)。效果不佳,虽然绝大部分噪声被消除了,但是并没有增加分类准确率。他们研究将对抗样本和去噪后的图像输入到网络中,计算网络每一层的特征的距离。发现如果只是普通的噪声,比如高斯噪声,这些噪声的影响会随着网络的加深而逐渐变小;但是对于对抗样本的噪声,这些噪声的影响会随着网络的加深而逐渐变大。这一趋势在图像经过基本的去噪后仍然存在。后来提出HGD(High-LevelRepresentationGuidedDenoiser)方法。

对抗训练:生成对抗样本训练模型

此外,目前在网络安全公开赛中,算法对抗已经成为热点。例如IJCAI-19阿里巴巴人工智能对抗算法竞赛的目的是对AI模型的安全性进行探索。这个比赛主要针对图像分类任务,包括模型攻击与模型防御。参赛选手既可以作为攻击方,对图片进行轻微扰动生成对抗样本,使模型识别错误;也可以作为防御方,通过构建一个更加鲁棒的模型,准确识别对抗样本。

人工智能第5章 对抗搜索

5.1博弈

对抗搜索:竞争环境中每个Agent的目标之间是有冲突的,也成为博弈。博弈:有完整信息的、确定性的、轮流行动的、两个游戏者的零和游戏。零和博弈:是指所有棋手的收益之和在每个棋局实例中都相同剪枝:在搜索树中忽略那些不影响最后决定的部分。启发式评估函数:在不进行完全搜索的情况下估计某些状态的真实效用值。

博弈问题的形式化S0:初始状态,规范游戏开始的情况Player(s):定义此时该谁行动Actions(s):返回状态s下的合法动作集合Result(s,a):转移模型,定义行动的结果Terminal-Test(s):终止测试,游戏的结束条件Utility(s,p):效用函数,定义游戏者p在终止状态s下的数值

5.2博弈中的优化决策

初始状态、ACTIONS函数和RESULT函数定义了游戏的博弈树——其中结点是状态,边是移动最优解:到达目标状态的一系列行动中止状态:一方取胜

极小极大值:可以理解为有两个人MAX和MIN,MAX喜欢移动到有极大值的地方,MIN喜欢移动到有极小值的地方,终端状态由效用函数进行评价。MAX指向有最高极小极大值的中止状态。假设对手的决策均为最优。

5.2.1极小极大算法

递归算法自上而下一直前进到树的叶子节点,递归回溯通过搜索树把极小极大值回传。每一步都是最小化敌方的最大收益。MiniMax算法评价本质上是一种深度优先策略◼深度:树的最大深度为m◼分支因子:每个结点可考虑的行棋选择有b种选择时间复杂度:O(b^m)空间复杂度◼一次性生成所有后继:O(bm)◼每次生成一个后继:O(m)对于真实游戏极小极大算法不实用,但可作为研究和设计其它算法的基础

5.2.2多人博弈时的最优决策

超过两个人的博弈利用MINIMAX算法,由于之前研究的两人博弈一方得分可以反应另一方得分,故仅用一个数值表示状态得分,对于多人游戏,应该使用向量值替换单一效用值。每个节点的回传至是该选手在节点的后继者效用值向量中选择的结果。多人博弈通常会涉及在游戏选手之间出现正式或非正式联盟的情况。联盟不断建立或者解散。非零和的两人博弈也可能发生合作。

5.3α-β剪枝

极大极小值搜索时间复杂度呈指数级增加,α-β剪枝可以将复杂度减半,很多情况下可以剪裁掉整个子树。在某节点的父节点有更好的选择,则不会探索到该节点。α:到目前为止路径上MAX的最佳选择β:到目前为止路径上MIN的最佳选择在min结点,若当前搜索过的子结点的最小值v小于等于alpha,则剪去该min的其余子结点,返回v在max结点,若当前搜索过的子结点的最大值v大于等于beta,则剪去该max的其余子结点,返回vα-β剪枝的效率很大程度上依赖于检查后继的顺序,对于随机顺序而言可以降低复杂度,引入一些简单的排序函数可以更大程度降低复杂度。存储以前见过的棋局的哈希表称为换位表。

例子:【Alpha-Beta剪枝算法(人工智能)-哔哩哔哩】https://b23.tv/8iYeiNT

5.4不完美的实时决策决策的时间和空间资源有限状态空间巨大,有限时间内只能考虑很小的一部分实时决策允许的模拟时间很短

故需要尽早截断搜索、将启发式评估函数用于搜索。

启发式评估函数EVAL(可以评估中间状态)–替代效用函数Utility,用截断测试(cutofftest)取代终止测试(TerminalTest)

5.4.1评估函数

①对终止状态的排序应该和真正的效用函数的排序结果一样②评估函数的计算成本不能花费太长时间③对于非终止状态,评估函数应该和取胜几率密切相关

5.4.2截断搜索

最简单的节点搜索:设置固定的搜索深度

地平线效应:当好棋出现在固定搜索深度之后时,无法探索到好棋

更好的方法:迭代加深,一层层展开,一层层搜索,因为“穷尽”而没有风险,不会漏掉展开深度内的最优解

5.4.3向前剪枝

向前剪枝:在某节点上无需进一步考虑而直接剪枝一些节点

柱搜索:只考虑最好的n步行棋,但无法保证最好的行棋不被剪枝掉课后习题5.3

a.复制博弈树并给出终止节点的值。(5分)b.在每个分支节点边上写出你对它的值的推理(10分)c.在每个问号下写出到达此分支的节点的名称(5分)e.用圆圈画出“?”节点中不再扩展的节点,并勾出那些完全不用考虑的节点(10分)

d.解释如何通过考虑图中的最短路径得出节点的取值界限。记住到达叶节点的开销和求解的开销。(10分)两点之间的最短路径为之后所需时间的下界,在已知最短路径与当前开销的情况下,该分支效用函数的上界为当前开销与最短路径之和的相反数。

(扩展)在本题中,由于追逐者存在必胜策略,因此搜索树的深度有限。当追逐者不存在必胜策略时,我们不能让算法无限度的向下搜索,因此需要定义一个搜索深度阈值,当深度超过这一阈值后,算法仍未找到终止节点,则应认为在该分支下,逃避者胜利,而这个搜索深度阈值的相反数即为效用函数的下界。图中共有6个不同节点,即至多存在36种不同的状态。当当前开销大于状态数即搜索深度达到37的时候,该路径上至少存在一种状态重复出现,也就是说在该路径下的两个重复状态之间存在一种保持两者始终不相遇的策略,因此可以认为在该分支下,逃避者获胜。因此,搜索深度的阈值应设为总的状态数,效用函数的下界为状态数的相反数。

e.你能根据树的信息证明谁将赢吗?(20分)通过搜索树的返回值可知,存在一种策略,在至多4个单位时间内两者相遇,故追逐者P将取得胜利

5.8

a.画出完整的博弈树。如左图所示。(20分)

b.解释怎么处理“?”值和为什么这么处理。(10分)当后继状态中存在循环状态时,若存在可取胜的后继则选择可取胜后继,否则选择循环状态。即:min(-1,?)=-1;min(1,?)=?;max(-1,?)=?;max(1,?)=1;在本例中,也可以将循环状态?按照0进行处理。

c.解释标准的极大极小算法为什么在这棵博弈树中会失败,简要说明你将如何修正它。你修正后的算法对于所有包含循环的游戏都能给出最优决策吗?(10分)标准的极小极大是深度优先的,并且会进入无限循环。可以通过比较当前状态和已知状态堆栈来解决这个问题;如果状态重复,则返回“?”值。“?”值的传播过程如上。这一方法并不是始终有效的,在本例中,效用函数仅与状态相关。当效用函数与路径相关时,这一方法将失去作用。

d.这个4-方格游戏可以推广到n个方格,其中n>2。证明如果n是偶数A一定能赢,而n是奇数则A一定会输。(10分)

这道题有两种证明方法。一种是按奇偶性分别给出B的必胜策略和A的必胜策略。事实上,这个策略是很简单的,必胜的一方只要一直向前移动即可。证明的方法在于证明必胜的一方按照这一策略,前进的距离将恒大于必败的一方即可。

另一种证明方法是数学归纳法。注意到在游戏开始,先手走完之后,这个游戏的状态将转换为对手先手的n-1格游戏,由此来进行证明。需要强调的是,在证明过程中,需要对先手是否退回原位进行讨论,而不能简单的认为状态转换后的n-1格游戏与标准的n-1格游戏具有相同的搜索树。部分同学考虑第一轮结束后状态转移为n-2格游戏的思路也是可行的,不过同样需要注意A、B退回原位的可能性,不能直接得出n格游戏的胜负与n-1格游戏的胜负一致的结论。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇