[原创]NLP机器学习模型安全性及实践
发表于:
2018-7-27 10:10
8287
大家上午好!非常感谢看雪给我这个机会,和大家交流有关AI安全方面的问题。我今天这个议题主要来自于一个聊天机器人在工程实践中遇到的一些问题。
我自己是一个安全研究爱好者,平时更多聚焦在AI、在工程方面的落地内容。
现在机器学习的安全问题在国内安全会议上已经讨论得不少了,其中主要集中在三类:一类是对抗性输入,专门设计的输入,往往是主要用来让AI的分类器进行误分类以躲避检测,比如恶意软件的检测和恶意流量的检测。第二类是数据中毒攻击,攻击者主要是用来污染训练数据,因为很多机器学习模型需要在训练数据的基础上进行训练,一旦污染了数据之后,训练出来的模型也会产生很大的影响。第三类是模型窃取技术,通过探测把一些看不到具体代码的模型,可以把模型分类曲线、分类决策面复现出来。
现在机器学习已经有很多落地的攻击方法,比如:
第一,图片类机器学习的攻击。这是我自己分类的,第一类是代码级的攻击,它主要用的是代码方面的漏洞,第二类是算法级的攻击,它更多是基于图像扰动方面的原理:
第一类是代码攻击,我参考的是这个文章,这类攻击主要利用的是代码方面,比如依赖的包上面代码问题,比如内存访问越界、除零异常、空指针引用、整数溢出等等。可以达到什么效果?可以运行机器学习的进程挂掉,导致应用无法去应用了。像这类攻击主要基于的是开源代码,对代码进行漏洞分析,它比较底层,所以适用性很好。要去修复它的话,主要依赖于打补丁。影响的是可用性,它会让这个模型的进程直接挂掉,让运行机器学习的进程直接挂掉。
第二类是算法攻击。这是我引用的一篇文章,它的原理是对图片样本加上轻微的扰动,可能是一个很小的扰动,人眼是看不出来的,但机器学习算法的原理是基于对每一个像素的检测,每一个像素产生微小的变化,人看不出来,但机器学习模型会产生很大的变化。如果大家参加过这两年安全会议,只要有类似的会议都会放上面这张图,因为这张图是对机器学习攻击论文上最经典的图。一张熊猫的照片加上微小的扰动,就可以让它识别长臂猿。它攻击的是算法原理,对模型原理和算法进行研究。但这种方式对机器学习、图像分类或识别算法是各不相同的,因为攻击方式必须根据模型进行改变。修复一直属于螺旋式上升过程当中,这篇文章是今年3月份总结了类似的攻击方式,比较知名的有12种,防御方式达到了15种,这类攻击是通过首先影响机器学习分类模型的准确性,造成模型分类准确性迅速降低,最后导致它不可用,影响的是它的可用性问题。
第二,针对音频类的。也大体分为两类:
一类是频率攻击,比较知名的是海豚音那个攻击,利用手机上麦克风和人耳对于声音接受频率不同,除了海豚音攻击以外,手机上也存在类似的攻击,例如智能助手会利用语音进行操作,但手机麦克风对于声音识别的范围频率和人耳不一样,比如人耳听不见,但手机麦克风却能识别为声音,然后进行操作。跟刚才的图片类似,人眼看不出,人耳听不出,但机器却可以识别出来。这类攻击是基于声音,它的适用性也非常好,因为它攻击的是麦克风硬件的模组,以及它上面很底层的比如用软件或者硬件实现的滤波器,所以它的修复需要从底层硬件方面,或者很底层的滤波器的软件代码进行修复。它的影响也是影响可用性,会造成让手机进行误操作、个人助理进行误操作。
从算法方面,这里引用了一篇文章,在你音频样本之上进行一个叠加,让你关于音频方面的机器学习模型造成误判或者准确率降低,这个原理是一样的。像这一类的特性和刚才图片的扰动一样,依赖于具体音频AI识别的算法,根据不同的算法,很多攻击方式并不能做到很好的共用性。像它的修复方式,只能对你的算法来进行升级,除了升级以外,还有一些其他的,比如数据增强的方式来进行,在这个文章里也有提到。它最后通过影响你模型的准确性,来影响应用的可用性。
我之前有一个工程应用上遇到的问题,今天借此机会与大家交流一下。NLP的应用有很多,这是我从百度AI平台上截下来的图,就是NLP现在的应用有非常多场合,其中一个场合是问答机器人。大家对于问答机器人的分类不一定那么清楚,它大体分为两类,一类是问答机器人,一类是聊天机器人,聊天机器人是你可以跟它一直聊天聊下去,但问答机器人的目标是在3-4个与你的交互环节之内给你一个你满意的答案。问答机器人在国内的落地方案中采用的方式大概可以分成几类:
一开始是对于用户的输入做字符分割,然后把分割出来的字符提取关键词,把提取出来的关键词转变成一个向量,然后和问答库当中原来已经存的答案进行匹配,比如4000个问题和4000个答案的关键词进行相似度匹配,把匹配出来的前3个或者前5个问题返给用户,然后让用户自己来选择哪个问题是你想问的问题,点击进去可以看到这个问题的答案。topK的匹配度很低,比如当低于30%的时候,有些厂商提供的方案是采用知识图谱的方式,或者把这个问题直接输到搜索引擎里去,把搜索引擎top3的答案返还给你,或者它觉得你的问题问得不太清楚时,它会引导你更加精确的描述你的问题。可能具体实现的细节有所不同,但大概的方案就是这两几类。
在我们实际测试过程中,发现很多问答机器人是存在词槽设置不完善、敏感词没有过滤、搜索引擎答案直接相互返回以及匹配度阈值的设定。我主要跟大家讨论敏感词的过滤问题,大家能够在网上看到真实案例的新闻,比如亚马逊的音箱去年年底说出一些不恰当的话,最后被迫下线一个月。可能这些问题不是那么传统意义上的安全问题,但它可以直接导致我们的AI系统达到被下线的程度。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2018-7-27 10:29
被CCkicker编辑
,原因: