没有合适的资源?快使用搜索试试~ 我知道了~
软件X 18(2022)101095原始软件出版物secml:Python中安全且可解释的机器学习莫拉·平托a,b,卢卡·德米特里奥a,b,安杰洛·索吉乌a,b,马可·梅利斯a,安布拉·德莫提斯a,Battista Biggioa,b,a意大利卡利亚里Via Marengo卡利亚里大学DIEEbPluribus One,Via Punenzo Bellini,9,卡利亚里,意大利ar t i cl e i nf o文章历史记录:2022年1月5日收到2022年4月21日收到修订版,2022年关键词:机器学习安全性对抗性攻击可解释性Python3a b st ra ct我们介绍了secml,一个用于安全和可解释的机器学习的开源Python库。它实现了针对机器学习的最流行的攻击,包括测试时逃避攻击。针对深度神经网络生成对抗性示例,针对支持向量机和许多其他算法生成训练时间中毒攻击。这些攻击可以评估学习算法的安全性以及白盒和黑盒威胁模型下的相应防御。为此,secml提供了内置函数来计算安全评估曲线,显示随着输入数据的对抗性扰动增加,分类性能下降的速度有多快secml还包括可解释性方法,通过可视化最有影响力的特征和训练有助于每个决策的原型 , 帮 助理 解 对 抗 性攻 击 成 功 攻 击给 定 模 型 的原 因 。 它 是 在Apache许 可 证 2.0下 发 布的 ,在https://github.com/pralab/secml。©2022作者(S)。由爱思唯尔公司出版这是CC BY-NC-ND下的开放获取文章许可证(http://creativecommons.org/licenses/by-nc-nd/4.0/)。代码元数据当前代码版本v0.15用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-22-00012可再生胶囊的永久链接https://github.com/pralab/secml/releases/tag/v0.15法律代码许可证Apache许可证2.0使用Git的代码版本控制系统使用Python的软件代码语言、工具和服务编译要求、操作环境依赖性numpy,sci-kit learn,matplotlib,scipy,joblib,Pillow,requests,python-dateutil(torch,torchvision,foolbox,cleverhans,tensorflow v1作为可选需求)如果可用,链接到开发人员文档/手册https://secml.readthedocs.io/问题支持电子邮件maura. unica.it,unica.it1. 介绍机器学习容易受到精心设计的攻击。 在测试时,攻击者可以进行规避攻击(即,对抗示例)[1同样,在训练时,通讯作者:DIEE,卡利亚里大学,Via Marengo,卡利亚里,意大利。电子邮件地址:battista. unica.it(Battista Biggio)。https://doi.org/10.1016/j.softx.2022.101095攻击者可能以系统完整性或可用性为目标[11][12][13][14][15]研究最多的攻击,即逃避和中毒,首先由Biggio等人探索。[2,9],被形式化为约束优化问题,通过基于梯度或无梯度算法解决[10,12],这取决于攻击者是否对目标系统具有白盒或黑盒访问。许多库实现了前者,但是它们不允许开发人员容易地评估机器学习模型的安全性。因此,我们提出了secml,一个开源Python库,作为一个完整的工具, 用于评价和评估2352-7110/©2022作者。由爱思唯尔公司出版。这是一篇开放获取的文章,使用CC BY-NC-ND许可证(http://creativecommons.org/licenses/by-nc-nd/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softxMaura Pintor,Luca Demetrio,Angelo Sotgiu etal.软件X 18(2022)1010952图1.一、secml中提供的功能。左侧是受支持的威胁模型;右侧是软件包的结构和受支持的策略。机器学习模型为此,secml实现了:(i)在不同的逃避和中毒攻击场景下对机器学习算法进行经验安全评估的方法;以及(ii)可解释的方法,以帮助理解这些攻击为什么以及如何成功。相对于几乎只针对深度神经网络(DNN)实施攻击的其他流行库[13-它还结合了[162. 软件描述SECML具有面向代码重用的模块化体系结构。我们已经为所有组件定义了抽象接口,包括损失函数、正则化器、优化器、分类器和攻击。通过将优化问题的定义与用于解决它的算法分开,可以很容易地定义新的攻击或分类器(就约束优化问题而言),然后使用不同的优化器来获得解决方案。相对于其他库,如CleverHans[13],Foolbox[14,19]和ART[15],这是一个很大的优势,因为我们可以从白色切换到白色。通过改变优化器(从基于梯度的求解器到无梯度的求解器),而无需重新定义整个优化问题。secml通过设计良好的wrapp-per类集成不同的组件我们集成了CleverHans和Foolbox的几个攻击实现,通过扩展它们来跟踪损失函数的值和在攻击迭代过程中优化的中间点,以及函数和梯度评估的数量。这对于调试和比较不同的攻击很有用,例如,通过检查它们收敛到局部最优并适当地调整它们的超参数(例如,步长和迭代次数)。secml通过专用的PyTorch包装器支持DNN,该包装器可以扩展为包括其他流行的深度学习框架,如TensorFlow和Keras,并且它本身也支持scikit-learn这允许我们运行CleverHans和Foolbox中实现的攻击,以在PyTorch和scikit-learn模型上通用。主要包装。该库支持不同的威胁模型(图。1(a)),并组织在不同的包(图。1(b))。adv包实现了不同的对抗性攻击,并提供了执行安全评估的功能。它包括Clev- erHans和Foolbox提供的目标和非目标规避攻击,以及我们实现的规避和中毒攻击。这些攻击的目标是模型的特征空间,而不管其应用领域(例如,攻击Android恶意软件检测1).因此,开发人员可以编码ad-对应于输入1 https://github.com/pralab/secml/blob/master/tutorials/13-Android-Malware-Detection.目标域的空间(例如Windows程序[20]),然后使用secml中包含的算法来优化攻击。图中列出了所有包含的攻击。1(b).ml包从scikit-learn导入分类器,从PyTorch导入DNN。我们已经扩展了scikit-learn分类器,其中包含运行规避和中毒攻击所需的梯度,这些梯度已经通过分析实现。我们的库还支持链接不同的模块(例如,缩放器和分类器),并且可以通过链式规则自动计算相应的端到端梯度。解释包实现了基于特征和基于原型的解释方法[16optim包提供了投影梯度下降(PGD)算法的实现,以及沿着梯度方向(PGD- LS)运行平分线搜索以减少梯度评估次数的更有效版本[21]。最后,data为流行的数据集提供了数据加载器,集成了scikit-learn和PyTorch提供的数据加载器;array为密集(numpy)和稀疏(scipy)数组提供了更高级别的接口,可以有效地执行对稀疏数据表示的攻击;figure实现了一些基于matplotlib的高级绘图功能(例如,可视化和调试攻击);utils提供日志记录和并行代码功能执行.我们还提供了一个模型动物园,可在GitHub上使用此外,2包含预训练模型,可快速测试新实施的攻击和实用程序。我们在表1中回顾了secml的主要功能,并将其与其他相关库进行了比较。值得注意的是,我们的库是唯一提供攻击损失检查图以选择适当的攻击超参数和安全评估图的库,以减轻评估机器学习模型的鲁棒性的复杂性。此外,secml提供的功能不仅与攻击机器学习模型有关,而且将它们聚集起来,将secml提升为攻击,检查和评估机器学习模型性能的完整工具。测试和文档。我们已经在macOS X、Ubuntu 16.04、Debian 9和10上进行了广泛的测试,通过GitHub Actions基础设施,3还在Win上进行了实验性支持。10个平台。用户文档可在https://secml.readthedocs.io/en/v0.15/,以及一个基本的开发人员指南,详细介绍了如何使用其他类筛选器和深度学习框架扩展ml包。完整的单元测试集可以在我们的存储库中找到。secml中可用功能的全面视图包含在教程中,可作为xmlyter notebook使用。3. 影响我们现在提供两个从secml中提取的例子来展示它的影响:针对DNN的规避攻击和针对SVM的中毒攻击。2 https://github.com/pralab/secml-zoo网站。3 https://docs.github.com/en/actions/automating-builds-and-tests网站。Maura Pintor,Luca Demetrio,Angelo Sotgiu etal.软件X 18(2022)1010953===[客户端]表1secml和其他对抗性机器学习库的比较。 我们展示了库是否提供对 特 定 功 能 的 完全支持(full-support)、部分支持(partial support)或不支 持 (no support)。secml中文字幕Foolbox中文字幕xxxxx x xx图二. 对抗图像(CW,PGD和PGD补丁)表示被错误分类为老虎的赛车。对于PGD-补丁,我们还报告通过集成梯度的解释。图三. 攻击优化。左:损失最小化;右:源类的置信度(赛车,虚线)与目标类的置信度(老虎,实线),跨迭代。躲避攻击我们在这里展示了如何使用secml对ResNet-18运行不同的规避攻击,ResNet-18是一个在ImageNet上预训练的DNN,可从torchvision获得。这个例子演示了secml如何对PyTorch模型运行CleverHans攻击(在TensorFlow中实现)。我们的目标是扰乱赛车的图像,将其误分类为老虎,使用针对Carlini-Wagner(CW)攻击(来自CleverHans)的202我们运行所有的攻击50次迭代,我们设置CW攻击的置信度参数κ 10 6以生成高置信度的错误分类,并且c0的情况。4,产生一个102扰动大小101。87.我们绑定PGD来创建一个对抗图像,相同的扰动大小。对于PGD-补丁,我们不限制可以修改的像素的扰动大小由此产生的对抗图像如图2所示。对于PGD-补丁,我们还使用集成梯度解释方法突出显示DNN用于将此图像分类为老虎的最相关像素。在包含车牌的扰动区域周围发现最相关的像素,揭示了潜在的对抗性操作的存在。我们还在图3中可视化了攻击的性能。的在不同的迭代中,对于每次攻击,置信度的下降有利于分配给tiger类(实线)的置信度。通过检查它们,我们可以了解这些攻击是否被正确配置。例如,通过查看左侧的损失曲线此外,通过查看右侧的图,很明显,所有攻击都是成功的,因为目标类的置信度超过了原始类的得分中毒攻击。我们还展示了secml提供的中毒攻击对scikit-learn中实现的SVM分类器的影响。实验设置和代码可在我们在GitHub上的教程之一4成功攻击的结果如图4所示,突出了secml在将不同策略应用于第三方模型方面的灵活性,而不需要在特定框架上定制它们。4. 结论和今后的工作secml项目诞生于五年多前,我们在2019年8月开源了它。感谢来自我们GitHub存储库的新兴用户和开发人员社区,我们坚信secml将很快成为一个参考最左边的图显示了攻击损失的情况(在0, 1以启用比较)迭代方式,而最右边的图显示了如何分配给类赛车的置信度(虚线)4https://github.com/pralab/secml/blob/master/tutorials/05-Poisoning.ipynb。Maura Pintor,Luca Demetrio,Angelo Sotgiu etal.软件X 18(2022)1010954见图4。 对使用scikit-learn实现的SVM的中毒攻击。中毒数据(在右图中用表示)诱导模型学习更差的决策边界评估机器学习算法安全性的工具。我们一直在努力用新的功能来丰富它,通过添加新的防御,其他第三方库的包装器,以及更多预先训练的模型到secml动物园。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作致谢这项工作得到了PRIN 2017项目RexLearn的部分支持,该项目由意大利教育,大学和研究部资助(资助编号2017 TWNMH 2);欧盟H2020计划下的ALOHA引用[1] 黄L,约瑟夫AD,纳尔逊B,鲁宾斯坦B,泰格JD。对抗性机器学习。 第四届ACM人工智能研讨会 安全2011年,第43比57[2] [10] Boggio B,Corona I,Maiorca D,Nelson B,Šrndić N,Laskov P,etal. 在测试时对 机器学习进行规 避攻击。In:Blockeel Hendrik ,KerstingKristian,Nijssen Siegfried,Philip,editors.数据库中的机器学习和知识发现。LNCS,vol. 8190,Springer BerlinHeidelberg;2013,p. 387[3] Szegedy Christian,Zaremba Wojciech,Sutskever Ilya,Bruna Joan,Er-hanDumitru , GoodfellowIan , etal.Intriguingpropertiesofneuralnetworks.上一篇:学习表征国际会议2014年。[4] Papernot Nicolas , McDaniel Patrick , Jha Somesh , Fredrikson Matt ,Berkay Celik Z,Swami Ananthram.深度学习在对抗环境中的局限性。第一届IEEE欧洲安全与隐私研讨会。IEEE; 2016,p.372比87[5] 放大图片作者:Carlini Nicholas,Wagner David A. 对神经网络鲁棒性的评估 。 IEEE Symposium on Security and Privacy. IEEEComputer Society;2017,p. 39比57[6] 舒迈洛夫·伊利亚,赵毅仁,贝茨·丹尼尔,帕帕诺特·尼古拉斯,穆林斯·罗伯特,安德森·罗斯。Sponge示例:对神经网络的能量延迟攻击。2021年IEEE欧洲安全与隐私研讨会IEEE;2021,p. 212比31[7] Tramèr Florian,张凡,Juels Ari,Reiter Michael K,Ristenpart Thomas。通过预测API窃取机器学习模型。第25届USENIX安全研讨会。2016,p. 601-18[8]Shokri Reza,Stronati Marco,Song Congzheng,Shmatikov Vitaly.针对机器学习模型的记忆推理攻击。2017年IEEE安全与隐私研讨会IEEE; 2017,p.3比18[9]比吉奥·巴蒂斯塔,尼尔森·布莱恩,拉斯科夫·帕维尔.支持向量机的中毒攻击。In:Langford John,Pineau Joelle,editors. 第29届 国 际 足 球 锦 标 赛关于机器学习Omni Press; 2012,p.1807年到1814年[10]Biggio B , Roli F. 狂 野 模 式 : 对 抗 性 机 器 学 习 兴 起 十 年 后 PatternRecognit2018;84:317-31.[11]顾天宇,刘康,多兰-加维特·布伦丹,加格·西达斯。Badnets:评估对深度神经网络的后门攻击。IEEE Access2019;7:47230-44.[12]Joseph Anthony D,Nelson Blaine,Rubinstein Benjamin IP,Tygar JD. 对抗性机器学习。剑桥大学出版社; 2018.[13]Papernot Nicolas , Faghri Fartash , Carlini Nicholas , Goodfellow Ian ,Fein-man Reuben , Kurakin Alexey , et al. Technical report on thecleverhans V2.1.0 Adversarial examples Library. 2018 年 , arXiv 预 印 本arXiv:1610。00768。[14]劳伯·乔纳斯,布伦德尔·维兰德,贝斯·马蒂亚斯。Foolbox:一个python工具箱,用于对机器学习模型的鲁棒性进行基准测试。在:可靠的机器学习在野外研讨会,第34届国际机器学习会议。2017年。[15]Nicolae Maria-Irina , Sinn Mathieu , Tran Minh Ngoc , Buesser Beat ,Rawat Ambrish,Wistuba Martin,et al.对抗鲁棒性工具箱v1。0.0. 2018年,arXiv预印本arXiv:1807.01069。[16]里贝罗·马可·图里奥,辛格·萨米尔,格斯特林·卡洛斯。我为什么要相信你?:解释任何分类器的预测。In:22nd ACM SIGKDD Int'L Conf. Knowl. Disc.数据挖掘美国纽约州纽约市:ACM; 2016p. 1135-44[17]孙达拉然·穆昆德,塔利·安库尔,严七七。深度网络的公理化属性。上一篇:机器学习国际会议PMLR; 2017,p. 3319-28.[18]高鹏伟梁珀西通过影响函数理解黑箱预测。上一篇:机器学习国际会议P M L R ; 2017,p. 1885- 1894年[19]Rauber Jonas,Zimmermann Roland,Bethge Matthias,Brendel Wieland.Foolbox native:快速对抗性攻击,以基准测试pytorch,tensorflow和python中机器学习模型的鲁棒性。J Open SourceSoftw2020;5(53):2607.[20]德米特里·卢卡比吉奥·巴蒂斯塔Secml-malware:Pentesting windows mal-ware classifiers with adversarial python. 2021 年 , arXiv 预 印 本 arXiv :2104.12848。[21]Demontis Ambra,Melis Marco,Pintor Maura,Jagielski Matthew,BiggioBat-tista,Oprea Alina,et al. Why do adversarial attacks transfer?解释闪避攻击和中毒攻击的可转移性。在:第28届USENIX安全研讨会USENIX安全19. USENIX协会; 2019.[22]梅利斯·马可,德蒙蒂斯·安布拉,比吉奥·巴蒂斯塔,布朗·加文,富梅拉·吉奥吉奥,罗利·法比奥.深度学习对机器人视觉安全吗?对抗icub人形机器人的例子。在:ICCVW视觉在实践中的自主机器人。IEEE; 2017,p. 751-9
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功