社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

宾夕法尼亚州立大学提出「深度k-最近邻算法」,解决深度学习应用的安全漏洞

雷克世界 • 6 年前 • 427 次点击  


原文来源:arXiv

作者:Nicolas Papernot、Patrick McDaniel 

「雷克世界」编译:嗯~是阿童木呀、KABUDA、EVA


深度神经网络(DNN)使诸如图像识别、机器翻译、恶意软件检测这种机器学习的创新应用成为可能。然而,深度学习却经常被批评,因为它在对抗环境中缺乏鲁棒性(比如,对对抗输入的脆弱性)并且整体上无法使它的预测合理化。在此,我们利用了深度学习的结构,使新的基于学习的推断和决策策略有可能具备鲁棒性和可解释性等属性。我们向这个方向迈出了第一步,并介绍了深度k-最近邻(DkNN)。这种混合分类器将k-最近邻算法与DNN每一层所学习的数据表征相结合:根据在表征中它们之间的距离,比较测试输入与相邻的训练点。我们指出了这些相邻点的标签,它们为模型训练集之外的输入提供了置信度估计,包括像对抗样本这样的恶意输入,并且在其中提供了对抗模型理解之外输入的保护。这是因为最近邻可以用来估计不一致性,即,对训练数据中预测的支持的缺失。这些近邻也构成了人类对预测可作出的解释。我们对DkNN算法在多个数据集上进行了评估,并显示了置信度估计准确地识别了模型之外的输入,而且由最近邻提供的解释在理解模型失败时非常直观和有用。


深度学习无所不在:深度神经网络在诸如机器翻译、诊断糖尿病视网膜病变或肺炎这种疾病、恶意软件检测和图像分类等挑战性任务上表现优异。这一成功的部分原因是硬件的发展(如GPU和TPU)和大型数据集的可用性(如ImageNet),但更重要的原因是神经网络的架构设计和随机梯度下降的卓越性能。实际上,深度神经网络被设计用来学习输入域的一个层次集的表征。这些表征将输入数据投射到越来越抽象的空间中—或嵌入—,最终足够抽象到使任务能够被线性决策函数解决(比如,分类)。

 

深度k-最近邻背后的直观图


尽管深度神经网络(DNN)得了突破, 但在安全性和安全关键应用程序中,它们的应用仍然有限。部分是因为它们通常被视为黑盒模型,其性能并不完全被一大套参数理解和控制——现代DNN架构通常用超过一百万的值进行参数化。这是矛盾的,因为深度学习的本质:DNN的设计哲学中一个重要组成部分是学习一个模块化的模型,它的组成部分(神经元层)是简单的、孤立的,但又强大且富有表现力——因为它们的编配是非线性函数构成的。


在本文中,我们利用了深度学习的内在模块化,解决了与其安全性直接相关的三个明确的批评:缺乏可靠的置信度估计、模型解释能力和鲁棒性。我们介绍了深度k-最近邻(DkNN)分类算法,该算法根据模型的训练数据,执行DNN对测试输入预测的一致性评估。对于DNN中的每一层,DkNN执行一个最近邻搜索,以找到训练点,该层的输出最接近于在有用测试输入那层的输出。然后我们分析这些相邻训练点的标签,以确保每一层的中间计算与最终模型的预测保持共形。


在对抗环境中,这产生了一种与以往研究所不同的防御方法,它解决了恶意输入模型性能低下的根本原因,而不是试图使特定的对抗策略失败。实际上,我们不是通过试图对所有合法的和恶意的输入进行正确分来培养模型的完整性,而是通过创建一种全新的、称为可信度(credibility)的置信度特征来确保模型的完整性,该特征跨越DNN内部的表示层次:任何可信的分类必须得到训练数据的证据支持。相反,缺乏可信度则表明该样本必须是模棱两可的或对抗性的。事实上,机器学习模型的大误差空间揭露了一个大型的攻击面,它被诸如对抗样本这样的威胁向量攻击所利用。

 

在测试数据中DNN softmax置信度(左)和DkNN可信度(右)的可靠性图表


我们的评估表明,当DkNN分类器的预测得到基础训练集的支持时,DkNN分类器的完整性便得以维持。这种支持被评估为预测中,与在模型的每一层所发现的最近邻居的一致性的“置信度”水平,并通过适形预测(conformal prediction)对其进行分析。回到模型的期望属性; (a)置信度可以看作是对测试输入和模型训练点之间距离的估计;(b)可解释性,可以通过在训练集上找到支持预测的点来实现;(c)鲁棒性,当预测的支持在DNN的各个层上达到一致,即预测具有高度的置信度时便可实现。


深度k-最近邻算法


DkNN背后的直观图如图1所示,下面讨论了这一点,从而引出了对置信度、可解释性和鲁棒性的定义和重要性的探索,以及它们在对抗环境下的机器学习中所起的作用。


(a)置信度:最近有来自安全部门和ML社区的呼吁,要求对DNN所做出预测的置信度进行更准确地校准。这在诸如自动驾驶汽车的行人检测或自动诊断医疗状况等任务中至关重要。 DNN所输出的概率通常用作它们置信度的代表。然而,这些概率并不是模型置信度的可靠指标。一个值得注意的反例就是对抗性样本中的一个,尽管模型预测在这些输入上是错误的,但相较于它们的合法对等物,它们往往被分类为拥有更多的“置信度”(根据DNN的输出概率)。此外,当DNN将相等的概率分配给两个候选标签(即对任一输出结果置信度都不高)时,它之所以会这样做至少存在两个不同的原因:(1)DNN在训练过程中没有分析过相似的输入,并正在进行推断,或者(2)输入不明确,可能是因为对抗方企图颠覆系统,或者是采用自然噪声观察过程收集的样本。

 

调试ResNet模型偏差


在DkNN中,标签与测试输入的预测结果不匹配的最近邻训练点的数量定义了输入与训练数据不一致性的估计。数字越大,训练数据对预测的支持越弱。为了对其进行形式化,我们在适形预测框架中进行操作并计算DkNN预测的置信度和可信度。前者量化了给定训练集合的预测正确的可能性,而后者则表征训练集与预测的相关程度。经过研究试验,我们发现当在离训练集较远进行预测时,可信度能够可靠地识别出训练数据缺乏支持。


(b)可解释性:该特性是指为模型预测构建解释性,从而使其能够被人类观察者轻松理解的能力,或者以另一种方式合理化基于证据的DNN预测—并回答以下问题:“为什么模型做了这一决策?”DNN的决策是很难进行解释的,因为神经元排列在一个复杂的计算序列中,并且每一层的输出表示都是高维的。这种有限的可解释性抑制了深度学习在诸如医疗保健这样的领域内的应用,在这些领域中,对模型预测的信任是非常关键的。相比之下,DkNN算法可以通过设计从而使其更加具有可解释性,因为最近邻本身提供了可解释性,从而对于单个层和整体DNN预测来说,它们很容易被人类所理解,因为它们位于输入域中。


(c)鲁棒性:对机器学习系统而言,针对输入干扰的鲁棒性是安全性的另一项重要要求。虽然DNN对其输入的随机干扰具有鲁棒性,但在测试时,DNN容易受到其输入的微小系统干扰的影响,即对抗样本。此攻击向量使得攻击者可以完全控制DNN的预测,尽管其无法访问模型的训练数据或内部参数。由对抗样本引入的微小干扰可以随意改变DNN的输出,因为它们被模型中每层连续应用的非线性逐渐放大。换言之,当DNN对输入进行错误分类时,它必然会有一层对输入的表示(这一表示最初被定义在正确的分类中)进行转换。相比之下,DkNN分类器通过识别DNN的较低层和较高层之间最近邻训练点标签的变化,并将此作为DNN的错误预测指示器,从而预防这种情况的发生。本质上,DkNN消除了攻击者可利用的试图操纵系统预测的自由度,从而提供了一种对抗样本攻击的鲁棒性形式。请注意,这不是一个简单的综合性方法,它组合了来自多个模型的预测;我们的DkNN算法检查单个DNN的中间计算,以确保其预测与训练数据一致。


总之,我们做出了以下贡献:


•我们引入了深度k-最近邻(DkNN)算法,该算法测量测试输入与训练数据之间预测的不一致性,将其作为模型预测可信度的间接估计。


•我们根据经验验证,相较于自然发生的非分配输入的DNN,DkNN可以做出更可靠的可信度预测。对于几何变换的输入或未包含在训练数据中的类输入,DkNN的可信度低于10%,DNN的可信度为20%-50%。


•我们通过一个众所周知的用DNN进行的对种族偏见和公平性进行研究,证明了DkNN的可解释性。


•我们证明DkNN能够识别利用现有算法生成的对抗样本,因为他们的可信度很低。我们还发现,针对DkNN的攻击往往需要干扰输入语义以改变DkNN的预测。


我们发现这些结果令人鼓舞,同时,我们指出了分析置信度、可解释性及鲁棒性作为DNN相关属性的好处。在此,我们利用了DNN的模块化,并在每个抽象层验证了预测与训练数据的一致性,并在其中确保DNN收敛于一个合理的和可解释的输出。有趣的是, Sabour等人调查了内部表示作为创造恶意输入工具的脆弱性。这表明除了在整个模型的级别上强制执行这些属性之外,重要的是要保护每个抽象性,以防止恶意操作。事实上,我们的探讨表明,这一做法不仅是必要的,而且是为现有对抗算法提供潜在防御的有用工具。


我们介绍了深度k-最近邻(DkNN)算法,,该算法在测试时检查深度神经网络(DNN)的内部,以提供置信度、可解释性和鲁棒性等属性。DkNN算法将层表示预测与用于训练的最近邻进行比较。所得到的可信性度量评估表示预测与训练数据的一致性。当训练数据与预测结果一致时,预测结果很可能是准确的。如果预测和训练数据不一致,则预测没有可靠的训练数据支持其是可靠的。这种情况下的输入是不明确的(例如,输入的种类繁多或因预处理不完善导致部分信息缺失),或是被攻击者恶意干扰而产生的对抗性样本。因此,这种跨越DNN内部表示层次结构的置信度特征保证了模型的完整性。这些近邻也使模型预测的可解释性成为可能,因为它们是输入域中用作预测支持的点,并且容易被人类观察者理解和解释。


我们的研究结果强调了集成简单推理过程作为复杂学习算法预测的辅助验证的好处。这种验证是为机器学习系统提供安全性的潜在新途径。我们预计,机器学习和安全性的交叉的、未解决的问题将会因此得到改善,包括可用性和完整性。我们期待在不久的将来对这些及其他相关领域展开探索。


原文链接:https://arxiv.org/pdf/1803.04765.pdf


欢迎个人分享,媒体转载请后台回复「转载」获得授权,微信搜索「raicworld」关注公众号


中国人工智能产业创新联盟于2017年6月21日成立,超260家成员共推AI发展,相关动态:

中新网:中国人工智能产业创新联盟成立

ChinaDaily:China forms 1st AI alliance

工信部网站:中国人工智能产业创新联盟与贵阳市政府、英特尔签署战略合作备忘录

工信部网站:“2018数博会人工智能全球大赛启动暨开放创新平台上线”新闻发布会在京召开


点击下图加入联盟


下载中国人工智能产业创新联盟入盟申请表


关注“雷克世界”后不要忘记置顶

我们还在搜狐新闻、雷克世界官网、腾讯新闻、网易新闻、一点资讯、天天快报、今日头条、雪球财经……

↓↓↓点击阅读原文查看中国人工智能产业创新联盟手册


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/wafX9FpbvN
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/8951
 
427 次点击