DeepPatch:维护深度学习模型程序以保持标准精度并大幅提高鲁棒性(2023)

代码:

https://github.com/Wsine/deeppatch​​​​​​​

摘要:

        通过使用大量非平凡扰动强度的对抗性示例进行再训练,使模型更加稳健,从而维护深度学习 (DL) 模型,通常会降低模型的标准精度。许多现有的模型修复或维护技术牺牲标准精度来大幅提高鲁棒性,反之亦然。本文提出了 DeepPatch,一种维护过滤密集型深度学习模型的新技术。据我们所知,DeepPatch 是第一个解决标准精度保留挑战的工作,同时通过大量非平凡且多样化的扰动强度的对抗性示例大幅提高 DL 模型的鲁棒性。 DeepPatch 没有遵循传统的智慧,将 DL 模型的所有组件推广到干净样本和对抗样本的联合集上,而是制定了一种新颖的分工方法,以自适应地激活其插入的处理单元的子集来处理单个样本。其生成的模型可以在修补模型的每次前向传递中生成原始或替换特征图,使得修补模型具有行为类似于按需维护的模型的内在属性。总体实验结果表明,DeepPatch 成功保留了所有预训练模型的标准精度,同时大幅提高了鲁棒性精度。另一方面,与正在维护的模型相比,由同行技术生成的模型要么存在较大的标准精度损失,要么存在较小的鲁棒性改进,使得它们通常不适合取代后者。

介绍:

        Gu 等发现许多深度学习模型的鲁棒性随着扰动强度的增加而降低。尽管如此,深度学习模型对类似于训练数据集的任意样本进行正确预测的泛化能力是在实践中使用深度学习模型的核心原因。从图1a可以看出,标准训练原本可以抵御一定程度的扰动强度。但当干扰强度增加时,防御效果显著下降。

        许多现有的维修或维护技术不得不将其对抗数据集限制为仅包含扰动强度较小的样本。如何使用一组具有不同(小的和大的)摄动强度的对抗性示例对维护中的DL模型进行再训练,以显著提高健壮性,同时保持DL模型的标准精度,这仍然是一个有待解决的问题。

        本文提出了 DeepPatch,一种维护过滤密集型 DL 模型(卷积神经网络模型)的新技术,以解决上述问题。 DeepPatch 被制定为三个任务的序列:过滤器评估、模型修补和标准精度恢复。这些任务分别由我们的修补单元 -α、 - β和 -γ 修补单元(简称 PU)协助。第一项任务是过滤器评估,识别对稳健性影响较小的过滤器子集。然后,下一个任务是对已识别的过滤器进行模型修补。主要设计目标是确保 DeepPatch 在使用替换过滤器进行处理时能够重新生成维护中模型的原始特征图。最后一个任务是标准精度恢复。 DeepPatch 配置了一个具有分离边界的度量计算单元,旨在通过其校准过程区分更像原始数据集或扰动验证数据集的样本。它还以主从设计风格组织构建模型中的所有修补单元,其中-PU作为主机,每个-PU作为从机。

        在使用补丁模型处理样本的推理时间内,主控(-PU)负责调用度量计算单元并决定采取特定的一侧,并将该决定广播给后续层中的所有-PU以选择相应的过滤器子集用于执行以相应地生成特征图。因此,这些修补单元就像修补模型中具有条件分支的决策节点一样工作。修补后的模型可以自适应地再现完整的原始特征图集或生成替换对应物。 DeepPatch 在修补模型上所做的设计还实现了替换过滤器与其原始过滤器对应物的严格分离,以进行模型重新训练和预测。它使得 DeepPatch 输出的修补模型具有保留原始模型的标准精度的内在属性,这使 DeepPatch 与现有技术(改变原始模型的全部权重)区分开来。

        我们已经开发了一个端到端工具来实现DeepPatch。DeepPatch工具接受原始的预训练模型实例(包含模型数据结构和模型权重)、增强的训练数据集实例,以及原始的和增强的验证数据集实例作为输入。在上面提到的第三个任务结束时,它生成修补过的模型实例,并将其保存到iles中(包括模型体系结构和权重矩阵),这些文件可以加载回程序中。我们已经对包含具有大范围扰动强度的对抗性示例的再训练数据集进行了试验,以训练处于维护状态的DL模型。为了与本工作解决的中心问题相一致,评价还同时显示了两个方面:标准精度的保持和鲁棒性精度的提高。

        这篇论文的主要贡献有三:(1)这篇论文是第一个证明了保持被维护模型的标准精度的可行性的工作,它对包含大量具有不同扰动强度的对抗性实例的再训练数据集具有显著的鲁棒性改进。(2)提出了一种新的技术DeepPatch。DeepPatch是第一个能够在再训练后再现被维护模型的原始特征图,以避免对抗性例子的训练影响的工作。(3)评价和工具实现表明了DeepPatch的可行性和高效性。

先导:

        我们将 DeepPatch (DP) 与多种同行技术进行了比较,以评估其有效性。它们是 DeepCorrect (DC) 、SENSEI (SS) 、Apricot (AP) 、DeepGini (DG) 和 AugMix (AM) 。他们的目标是提高稳健性。 DC+FT 管道将作为提高鲁棒性的基线,进而提高标准精度。我们还将 DeepPatch 与每个基准的原始预训练模型(PT)进行了比较。        

        DeepCorrect 和 SENSEI 在其原始实验中都被配置为评估具有不同(无论大小)扰动强度的对抗性示例,我们采用了他们的扰动强度设置,并将所有同行技术集成到我们的框架中。        

        DC DeepCorrect 是最先进的技术,它修改了滤波器以提高高斯模糊噪声的鲁棒性并修改了架构程序。我们在第 2.2.1 节中重新讨论了 DeepCorrect。 DeepPatch 深受 DeepCorrect 的启发,因此我们选择将 DeepPatch 与其进行比较。

        SS SENSEI 是最先进的模糊技术,用于选择训练样本来训练模型的空间鲁棒性。我们在第 2.2.2 节中重新讨论了 SENSEI。我们将 DeepPatch 与 SENSEI 进行比较,以评估 DeepPatch 的设计是否可以推广以保留标准精度,同时处理新型噪声(空间鲁棒性),超出其受 DeepCorrect 启发的原始任务。

        FT FineTune 是一种在数据集上重新训练模型直至收敛的最新实践技术。之前的实验表明 DeepCorrect 的性能优于 FT 。 FT 使用生成模型的原始损失函数在包含原始训练数据集和增强训练数据集中的所有样本的扩展数据集上训练模型。我们将 FT 纳入其中是为了探索恢复 DeepCorrect 引入的标准精度损失的可能性。我们还注意到,SENSEI 和 Apricot 已将 FT 纳入其内部培训流程。

        DC+FT 该管道是 DeepCorrect,然后是 FineTune (DC+FT)。我们制定 DC+FT 的想法是受到 DeepCorrect 和 DeepPatch 之间密切关系的启发。在此管道中,DC 生成的输出模型通过 FT 在原始(干净的)训练数据集上进一步进行调整。我们将管道视为 DeepCorrect 的变体,以便该变体具有鲁棒性改进组件,然后是标准精度恢复组件。在实验中使用这个变体增加了实验中 DeepCorrect 和 DeepPatch 之间的对齐。

        AP Apricot 是一种使用权重适应方法来提高标准精度的最先进技术。它创建了原始模型的一组子模型。然后,它迭代地传输子模型的聚合权重,这些子模型正确和错误地(通过聚合策略)推断由构建模型(其中模型首先使用原始模型初始化)预测的样本。 AP采用原Apricot论文中的策略2作为聚合策略,因为该策略比原实验中的其他策略更有效。我们将AP应用于鲁棒性改进任务。

        DG DeepGini 是一种基于度量的最先进的测试用例选择技术,用于提高鲁棒性。提出使用基尼不纯度指数对每个样本进行评估,按照基尼指数值降序对样本进行排序,并根据该指标选择排名前k%的样本进行再训练。我们向 DG 提供对抗训练数据集,供其选择生成再训练数据集,然后应用 FT 在此再训练数据集上重新训练预训练模型。

        RB RobOT 提出了一种称为一阶损失的度量,它测量样本的欧几里德范数。它在论文中提出了一些技术。其中,测试用例选择方法有KM-ST和BE-ST两种。 RobOT 原始论文表 IV 中的实验结果表明,BE-ST 比 KM-ST 更有效。 BE-ST按照一阶损失的降序对给定数据集中的样本进行重新排序,并从重新排序列表的两端选择相同数量的样本。我们在实验中使用BE-ST方法来代表RB。与上面的 DG 一样,RB 选择了 k% 的对抗训练数据集来生成再训练数据集,然后通过 FT 在此再训练数据集上重新训练模型。

        AM AugMix 是机器学习社区中众所周知的、简单且高效的数据增强技术,可共同提高鲁棒性和不确定性。 AugMix 引入了 Jensen-Shannon 散度一致性损失作为增强样本之间对抗训练的正则化。我们将 DeepPatch 与 AugMix 进行了比较,以评估 DeepPatch 与现实世界中用于数据增强的方法的比较。

DeepPatch:

        将对抗性样本的过滤器输出恢复为相应干净样本的过滤器输出是防御与图像无关的扰动的直观方法。现有的工作遵循这种方法,并表明恢复最敏感滤波器的选择性特征通常优于改变所有特征图的微调。 DeepPatch 也遵循这一研究方向。

        DeepPatch 的目标是为修补后的模型配备全套原始过滤器和一组选择性的替换过滤器。调用时,替换过滤器将替换其原始过滤器对应项的功能以计算特征图。 DeepPatch 还旨在仅使替换过滤器受到对抗性示例训练过程的影响。这样,对抗性例子的扰动强度,无论大小,都不会影响修补模型中保留的原始过滤器。当激活替换过滤器进行处理时,DeepPatch 还会在生成特征图时共享原始模型的参数,这减少了修补模型中参数数量的开销。

        传统程序的调试过程启发我们设计DeepPatch。非正式地说,DeepPatch 首先在 DL 模型 F 中识别出一组可训练单元,这些单元更有可能在处理对抗性样本时拖累 F 的腿。此步骤的灵感来自于调试传统程序时的故障定位,以定位更有可能导致观察到的故障的语句。

        接下来,DeepPatch 创建这些可训练单元的“双胞胎小兄弟”,并教这些小兄弟处理与增强验证数据集中的这些样本类似的样本。此外,它重新设计了 F,以便重新设计的模型可以执行这些可训练单元或它们各自的“孪生兄弟”,以分别处理落入原始验证数据集侧和增强验证数据集侧的分离边界的样本。这一步的灵感来自于在调试传统程序时修复定位语句的代码区域,开发人员倾向于尽可能地重用原始代码,并使用修补后的代码来处理原本不正确的情况的语句。

        最后,DeepPatch在重新设计的深度学习模型中调整了这两种单元的依赖关系,并插入了一个决策单元,以便重新设计的模型可以自动决定执行哪种可训练单元。因此,它最终会生成修补后的模型。此步骤类似于在修改程序的某些部分后调整程序的依赖性。这三个步骤在 DeepPatch 中作为三个任务来实现。它们是过滤器评估、模型修补和标准精度恢复。

工作流程:

DeepPatch 假设它处于 DL 模型的维护阶段。因此,模型的数据结构及其训练权重和数据集是可用的。将数据集分成用于训练模型的训练数据集、验证数据集和测试数据集也是已知的。

总结:

        在本文中,我们提出了一种新的技术DeepPatch,用于对卷积神经元网络模型进行贴片,以保持模型在维护过程中的标准精度,并显著提高鲁棒性。DeepPatch由三个组件组成,分别用于过滤评估、模型修补和标准精度恢复任务。它的补丁模型可以动态激活和执行替换过滤器或原始过滤器,从而分别推断输入样本更类似于噪声验证数据集中的样本和干净验证数据集中的样本。修补过的模型也可以退回到维护中的模型。除了最终的输出,DeepPatch还生成了一个中间修补的模型,其中只插入了可能使用的修补单元。实验表明,DeepPatch成功地保留了原始的标准精度,并在基准之间有很大程度的鲁棒性改进,这是同行技术无法实现的。DeepPatch也被试验应用于Visual Transformer模型,以探索其对不同类型DNN架构的通用性。探索性研究的结果还表明,DeepPatch能够保持标准精度,并显著提高了噪声鲁棒性。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值