热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

类似投毒攻击阅读笔记,MANIPULATINGSGDWITHDATAORDERINGATTACKS

论文标题:MANIPULATINGSGDWITHDATAORDERINGATTACKS论文单位:UniversityofCambridge论文作者&

论文标题:MANIPULATING SGD WITH DATA ORDERING ATTACKS

论文单位:University of Cambridge

论文作者:Ilia Shumailov,Zakhar Shumaylov,Dmitry Kazhdan

收录会议:预印版

开源代码:未开源

使用数据排序攻击来操纵SGD(攻击)


简单总结

一种非常新颖的投毒和后门攻击


  • 抓住了SGD的一个漏洞,不需要对数据和模型进行变动,仅仅是更改了输入数据的顺序即可攻击成功。
  • 使用数据集:Cifar10,Cifar100;使用模型:ResNet-18、VGG16、LeNET5
  • 假设了两种场景,黑盒和白盒,黑盒攻击使用一个代理模型去替代目标模型。
  • 提出了三种手段攻击,Reordering, Reshufflfling and Replacing,Reordering更换一个epoch里的batch的顺序,Reshufflfling更换一个epoch里的数据点的顺序,Replacing则是可以在一个epoch里进行过采样或欠采样。Reordering和Reshufflfling要使用代理模型(黑盒)或目标模型(白盒)输出的loss按顺序排序后,按照四种方法进行抽样。Replacing则是对一个epoch里的所有组合的情况进行随机抽样,找到尽可能符合目标分布的排序。
  • integrity attack 攻击者可以降低模型的准确性或者在特定的触发点出现时,任意地控制它的预测
  • availability attack 攻击者可以增加模型训练的时间或重置学习进度
  • 提出了三种不同方向的攻击。
    • 为了中断整个学习过程,使得精度完全下降,每个epoch都会使用Reordering和Reshufflfling(属于integrity attack);
    • 为了增加模型收敛时间,需要更多的epoch训练才能达到原来的精度,只在一个epoch使用Reordering和Reshufflfling(属于availability attack);
    • batch-order poisoning (BOP) and batch-order backdooring (BOB):达到攻击者预期的结果,使用Replacing对batch进行抽样,使其得到的更新模型的参数约等价于使用扰动后的数据所更新模型的参数。(属于integrity attack)。

第一个疑问:论文中的Figure6,这里有个细节,表现最好的攻击,是通过类别去进行排序的,将按类别排序的数据输入模型,对于模型的训练来说,显然是非常难以收敛的,那这样攻击效果肯定是很好的。在论文的前面也是根本没有介绍这种排序手段,感觉这应该是作者的一个特意的手法,用来给我们做对比的?可能得等作者开源代码才能知道细节,但其他的提到的排序方法的效果也还是比较不错的。

第二个疑问:本文说明integrity attack的一个特点是中断整个学习过程,使得精度完全下降,但在我下面的补充说明,这个特点应该是属于availability attack的,所以我认为这个地方论文存在问题,但对于论文的排序攻击有效性来说,无伤大雅。

补充:integrity attack和availability attack是在2010年一篇综述《The security of machine learning》上介绍的,完整性攻击通过false negatives来进行危害,例如:攻击者利用对训练的控制,使垃圾邮件以假否定的形式溜过分类器;Availability attacks导致拒绝服务,通常通过false positives,例如:攻击者利用对训练实例的控制来干扰邮件系统的操作,例如阻止合法的电子邮件。


值得做的点(仅从本文出发)


  • 这种攻击还是非常有趣的,抓住了SGD的一个漏洞,也算是抓住了数据集采样的一个漏洞,因为这么多batch,总有些batch的数据更新模型的效果会比较差。想要解决这个问题应该非常难,SGD的出现正是因为BGD的计算量太大,当然如果计算资源解决了,本文的攻击也毫无意义了。
  • 本文的三个方向的攻击,可以考虑在联邦学习场景下使用,因为没有人会恶意去攻击自己训练的模型,但在多方协同训练模型时,总有可能会出现那么一些恶意攻击者,因此可以在联邦学习场景下,去防御这种攻击。这里主要要对每个batch的loss去进行分析,要重点分析随机抽样的batch的loss和精心排序后的batch的loss的区别。

abstract


  • 机器学习模型容易受到各种各样的攻击,人们往往更改底层的数据分布去进行毒害模型或引入后门。

  • 本文提出了一种新颖的攻击,不需要更改数据的分布和模型结构,仅仅更改了输入数据的顺序,并且是在不了解模型或数据集的情况下,所以这里提出的攻击不是特定于模型或数据集,而是针对现代学习过程的随机性。

  • affect model integrity.作者对本文的攻击进行了广泛的评估,敌手可以破坏模型训练,甚至引入后门。(具体来说,这个攻击可以阻止模型学习,或者毒害它学习攻击者指定的行为)

  • affect model availability.只需一个epoch的对抗顺序就足以减缓模型学习,甚至重置所有的学习进度。这样的攻击有一个长期的影响,在攻击发生之后的数百个epoch内降低模型性能。

  • 该攻击方法提醒我们,随机梯度下降(stochastic gradient descent)依赖于数据是随机抽样的假设。如果这种随机性被破坏了,那么一切都很难说了。


1.introduction


背景

在随机梯度下降(SGD)的情况下,它假设从训练数据集中进行均匀随机采样,但在实践中这种随机性很少被测试或执行。因此,作者聚焦于对抗性数据采样


先前的攻击

恶意的参与者可以毒害数据并引入后门,迫使ML模型的表现在触发器存在时有所不同。虽然这类攻击已被证明构成了真正的威胁,但它们需要攻击者训练集中引入扰动或触发器用于训练。


介绍

在训练过程中,简单地改变某一些batch或数据的顺序,即可影响模型的正常训练。更准确地说,在本文中,作者证明了无需添加或修改任何数据的integrity and availability attack是可行的。


  • integrity 攻击者可以降低模型的准确性或者在特定的触发点出现时,任意地控制它的预测

  • availability 攻击者可以增加模型训练的时间或重置学习进度

作者提出了Batch Reordering, Reshufflfling and Replacing三种不同类型的攻击,并将它们命名为BRRR attack


  1. Reordering:改变提供给模型训练的batch顺序;
  2. Reshufflfling:改变单个数据点的顺序;
  3. Replacing:将batch里的数据点替换为数据集中的其他数据点进行提升特定的数据偏差。

此外,还介绍了 Batch-Order Poison (BOP) 和 Batch-Order Backdoor (BOB)
这是首个仅使用干净数据和干净标签就能使神经网络中毒和后门操作的技术;攻击者可以通过选择适当的良性数据点来控制模型的参数更新。

再次强调了,其攻击方法与模型和数据集知识无关,主要集中于梯度下降的随机性,在训练过程中去干扰单个batch的近似真实分布。


贡献


  • 作者提出了一种针对ML模型的新型攻击,该攻击针对训练中使用的数据批处理过程,影响其integrity和availability。并且提出了一个理论分析,解释如何和为什么这些攻击有效,表明它们针对的是随机学习的基本假设,因此是与模型和数据集无关。
  • 作者展示了数据顺序可以毒害模型和引入后门,即使是在黑盒设置中。对于一个白盒设置,作者发现攻击者可以引入后门,就像他们使用干扰数据一样好。而使用扰动数据的基线得到99%的触发精度,白盒BOB攻击者得到91%±13和黑盒BOB攻击者达到68%±19。

2.Methodology


2.1Motivation

场景:我们探讨获得了数据采样过程控制权的攻击者是否会影响模型的完整性和可用性。这样的攻击很难检测到,因为它不会改变机器学习工作流中的任何东西;数据集仍然是是一样的,没有任何扰动。


  • 假设一个白盒攻击者,可以访问被攻击的模型,并可以计算它直接损失。

  • 假设一个黑盒攻击者,在这个攻击者中,无法访问模型。(最强威胁模型

以上两种攻击都没有起到任何作用对基础数据的预先假设。


2.2Threat model

请添加图片描述

我们假设目前文献中描述的最强威胁模型之一。特别是黑盒攻击者假设没有对模型的访问权,也没有训练数据的先验知识。这次攻击的重点是ML流程的批处理部分如图1所示。

这个威胁模型的具体过程就是,使用一个代理模型对随机采样的batch数据进行训练,得到一个生成对抗batch的数据,用于攻击目标模型,即放在目标模型训练。

这里可以看出来黑盒攻击和白盒攻击的区别即是否使用一个代理模型


2.3Primer on stochastic learning and batching

SGD、Adam的一些简单介绍(跳过)

请添加图片描述

一个epoch需要执行N次SGD去更新参数,也正如上图所示,在这种情况下,二阶修正(通过泰勒展开去逼近)依赖的是提供的batch的顺序(如下图所示)。

请添加图片描述

因此,找到一个更新序列,使一阶导数和二阶导数与真正的梯度步长不一致,就可使得攻击成功,简而言之,就是使式(7)最大化,这样更新的梯度方向就最不等价于一个batch所更新的效果。但作者认为实践中这样做是昂贵的,因此,在攻击中我们直接利用损失的大小。直观地说,大的预测误差对应大的损失梯度规范,而正确的预测产生接近零的梯度。


2.4Taxonomy of batching attacks

批次攻击的分类,分三类,如下图所示

请添加图片描述


  • Batch reshufflfling or inter-batch mixing:攻击者专注于改变单个数据点在给定epoch中出现在batch中的顺序。

  • Batch reordering or intra-batch mixing:攻击者专注于改变被提供给模型提前随机抽样好的batch的顺序

  • Data point or batch replacement:攻击者的关注点要么是替换批内的数据点,要么是替换整个批。在这种情况下,攻击者既可以对数据点进行过采样,也可以对数据点进行过采样。

总的来说,不是更换batch优化的顺序,就是破坏原来的batch内的数据点

考虑了四种重新排序策略,如下图所示

请添加图片描述

先排序好,再按照策略选择


  1. 通过损失由低到高的排序。
  2. 通过损失由高到低的排序。
  3. 从外向里从两边依次选取元素。
  4. 从里向外从两边依次选取元素。

2.5Batch-order poison and backdoor

介绍了batch-order poisoning (BOP) and batch-order backdooring (BOB),这是首个在训练中不依赖添加对抗数据点和干扰的中毒和后门攻击的策略,仅仅采用了batch replacement attacks。


  1. 先介绍了一下常规的后门攻击的一个更新参数的机制,X^\hat{X}X^指的是对抗数据集(中毒数据集)

请添加图片描述


  1. 然后想说明仅通过观测△θk\triangle θ_kθk很难重建单个数据点XkX_kXk。的确,优化的随机性允许人们找到一组使得满足

∇θL^(Xi,θk)≈∇θL^(Xj,θk)\nabla_θ \hat {L}(X_i, θ_k)≈\nabla_θ\hat {L}(X_j, θ_k)θL^(Xiθk)θL^(Xjθk)的数据集Xj≠XiXj \neq XiXj=Xi


  1. 最后说明,可以通过batch replacement在干净的数据集中重构一个数据集XiXiXi,使其更新参数的效果约等于于中毒数据集所更新的效果,即∇θL^(Xi,θk)≈∇θL^(X^k,θk)\nabla_θ \hat {L}(X_i, θ_k)≈\nabla_θ\hat {L}(\hat{X}_k, θ_k)θL^(Xiθk)θL^(X^kθk)

请添加图片描述


  1. 通过对一个batch随机采样重构,有∣X∣B|X|^BXB种组合(BBB为batch大小和∣X∣|X|X为数据集的大小),但需满足以下式子,最小化其差异

请添加图片描述


  1. 作者也说明了更多的随机方法可以找到更好的候选者,但随机采样工作已经很不错了,权衡了速度和性能。

效果如下图所示,左上角是重构后的batch(作者的方法),右上角是投毒后的数据集(逼近的目标),下方两张图为不同模型(ResNet-18和LeNet5)下的两类数据训练得到的第一层的梯度图,可以看到非常接近。两类数据训练得到的ResNet-18的精度都达到了80%,并且使得中毒数据分类为指定目标。

请添加图片描述


3.Evaluation


3.1Experimental setup

数据集:CIFAR-10 and CIFAR-100 datasets

目标模型:VGG16、ResNet-18 and ResNet-50

代理模型: ResNet-18、LeNet-5 and MobileNet


3.2Integrity attacks in white and blackbox setups

评估了在白盒和黑盒设置下的 batch reordering attacks 的性能,并用了四种reorder方法进行评估,说明在黑盒和白盒场景下都适用。

注:白盒直接使用目标模型输出的loss,黑盒使用了代理模型计算loss。

请添加图片描述


3.3Integrity attacks with reshufflfling and reordering of natural data

比较了baseline 、 batch reordering attacks 、 batch reshuffle attacks三种训练模型的精度,最终训练得到的模型精度依次下降。

总结:


  • 攻击者可以通过改变单个数据项和batch的顺序来影响模型训练的完整性。
  • 攻击者可以降低模型性能,并完全重置其性能。

3.4Availability attacks

上一节讨论的完整性攻击是为了中断整个学习过程,使得精度完全下降。

这一节介绍的可用性攻击是为了减缓训练,使得达到与baseline一样的精度所用的epoch大大增加。

这里的场景为黑盒,同时使用了batch reordering 和 batch reshuffle仅仅在第10个epoch进行攻击。

请添加图片描述

总结:


  • 攻击者可以仅在一个epoch的训练时期通过改变数据的顺序来干扰模型训练。
  • 仅仅一个epoch的攻击足以让该模型需要多训练90个epoch才能得到原来的精度。

有个疑问:论文中的Figure6,这里有个细节,表现最好的攻击,是通过类别去进行排序的,按类别排序的数据输入模型对于模型的训练来说,显然是非常难以收敛的,并且在论文的前面也是根本没有介绍这种排序手段,感觉这应该是作者的一个特意的手法,用来给我们做对比的?可能得等作者开源代码才能知道细节,但其他的提到的排序方法的效果也还是比较不错的。


3.5BOP and BOB with batch replacement


  • BOP:攻击者可以毒害一个单独的数据点,改变它的标签,增加它的预测可信度,而不需要实际向模型显示一个敌对的精心设计的数据点。

  • BOB:攻击者可以通过在训练期间引入一些重新排序的批次,将后门引入模型,而无需注入对抗数据或标签。敌手可以执行BOB攻击,与显式地将扰动注入数据集的攻击相同。

BOB和其它攻击的攻击者所掌握信息比较

请添加图片描述


推荐阅读
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • 本文介绍了如何在iOS平台上使用GLSL着色器将YV12格式的视频帧数据转换为RGB格式,并展示了转换后的图像效果。通过详细的技术实现步骤和代码示例,读者可以轻松掌握这一过程,适用于需要进行视频处理的应用开发。 ... [详细]
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 使用虚拟机配置服务器
    本文详细介绍了如何使用虚拟机配置服务器,包括购买云服务器的操作步骤、系统默认配置以及相关注意事项。通过这些步骤,您可以高效地配置和管理您的服务器。 ... [详细]
  • poj 3352 Road Construction ... [详细]
  • 本文介绍了如何利用 `matplotlib` 库中的 `FuncAnimation` 类将 Python 中的动态图像保存为视频文件。通过详细解释 `FuncAnimation` 类的参数和方法,文章提供了多种实用技巧,帮助用户高效地生成高质量的动态图像视频。此外,还探讨了不同视频编码器的选择及其对输出文件质量的影响,为读者提供了全面的技术指导。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 如何使用 `org.apache.poi.openxml4j.opc.PackagePart` 类中的 `loadRelationships()` 方法及其代码示例详解 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • 如何撰写适应变化的高效代码:策略与实践
    编写高质量且适应变化的代码是每位程序员的追求。优质代码的关键在于其可维护性和可扩展性。本文将从面向对象编程的角度出发,探讨实现这一目标的具体策略与实践方法,帮助开发者提升代码效率和灵活性。 ... [详细]
  • 本文总结了JavaScript的核心知识点和实用技巧,涵盖了变量声明、DOM操作、事件处理等重要方面。例如,通过`event.srcElement`获取触发事件的元素,并使用`alert`显示其HTML结构;利用`innerText`和`innerHTML`属性分别设置和获取文本内容及HTML内容。此外,还介绍了如何在表单中动态生成和操作``元素,以便更好地处理用户输入。这些技巧对于提升前端开发效率和代码质量具有重要意义。 ... [详细]
author-avatar
老屋时光_503
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有