在这项工作中,我们提出了一种有效和高效的分割攻击方法,称为SegPGD。此外,我们还提供了收敛性分析,表明在相同次数的攻击迭代下,所提出的SegPGD可以创建比PGD更有效的对抗示例。此外,我们建议应用我们的SegPGD作为分割对抗训练的底层攻击方法。由于SegPGD可以创建更有效的对抗样本,使用我们的SegPGD进行对抗训练可以提高分割模型的鲁棒性。在流行的分割模型架构和标准分割数据集上的实验也验证了我们的建议。
文章主要贡献:
基于分类和分割的区别,我们提出了一种有效且高效的分割攻击方法,称为SegPGD。特别地,我们证明了它对单步攻击SegFGSM的推广。
我们提供了一个收敛分析,以表明在相同次数的攻击迭代下,所提出的SegPGD可以创建比PGD更有效的对抗示例
我们应用SegPGD作为分割对抗训练的底层攻击方法。我们的SegPGD对抗性训练在基准测试中达到了最先进的性能。
我们在标准分割数据集(即PASCAL VOC和Cityscapes)上使用流行的分割模型结构(即PSPNet和DeepLabV3)进行了实验,以证明我们的建议的有效性。
SegPGD for Evaluating and Boosting Segmentation
在语义分割中,给定分割模型,干净样本,其对应的标签Y
SegPGD: An Effective and Efficient Segmentation Attack
PGD迁移到分割上面,迭代公式可以写为:
损失函数:
该损失函数可以改写成由正确分类像素的损失和错误分类像素的损失两部分组成即:
第二项的损失通常很大,因为错误分类的像素会导致很大的交叉熵损失。在创建对抗性示例时,第二个损失项的梯度可以占主导地位。但是,第二项损失的增加并没有带来更好的对抗效果,因为所涉及的像素已经被错误分类了。为了在分割上实现高效的对抗示例,需要进行大量的攻击迭代,以便积累增加第一项损失的更新,以误导正确分类的像素。为了解决上述问题,考虑到分割中密集的像素分类,我们提出了特定于分割的PGD,称为SegPGD,它可以在等式4中相同的攻击迭代次数下创建更有效的对抗示例。
这里两个损失项分别用1 - λ和λ加权。注意,λ的选择是非平凡的。它不能很好地通过简单地设置λ = 0,其中只考虑正确分类的像素。在这种情况下,先前错误分类的像素可以在几次攻击迭代后再次变为良性,因为在更新扰动时它们被忽略了。这一说法也与之前的观测结果[48,45]一致,即对抗性扰动对小噪声也很敏感。此外,由于类似的原因,将λ设置为[0,0.5]中的固定值并不总是会导致更好的攻击性能。当大多数像素分类在几次攻击迭代后被欺骗时,对错误分类的像素减少权重可以使其中一些重新成为良性的 采用动态调节λ的方式,关注前几次攻击迭代中欺骗正确的像素分类,然后在最后几次迭代中类似地对待错误的像素分类:
Convergence Analysis of SegPGD
第i个像素的交叉熵损失为:
优化目标为:
这其中
进而PGD可以表示为
SegPGD:
本文提出了一种新的分割收敛准则,称为MisRatio,其定义为错误分类像素与所有输入像素的比率
第一步是更新对抗样本:
对于几乎所有错分类像素k∈P F (X0), X1的第k个像素仍然是错分类的,因为自然错分类一般对小的对抗性噪声不敏感。这种说法也适用于PGD更新规则。此外,我们的SegPGD可以将X0的部分像素k∈pt转换为X1的错误分类像素。但是,由于PGD的更新方向也考虑了X0的错分类像素,因此效果较差。因此,我们的SegPGD可以在第一步实现比PGD更高的MisRatio。
中间步骤一般是利用所有像素分类损失来更新对抗样本。在所有中间步骤中,SegPGD和PGD都利用所有像素分类损失的梯度来更新对抗示例。不同之处在于,我们的SegPGD对正确分类的像素分类的损失分配了更多的权重。分配的值取决于更新迭代t。我们的SegPGD更专注于在最初的几次迭代中愚弄正确分类的像素,然后平等地对待这两个准像素。通过这样做,在相同的攻击迭代下,我们的SegPGD可以实现比PGD更高的MisRatio。
Segmentation Adversarial Training with SegPGD
对抗训练作为最有效的防御方法之一,在分类任务中得到了广泛的研究。在分类中,应用对抗性训练的主要挑战是计算成本。它需要多次梯度传播来生成对抗图像,这使得对抗训练速度较慢。事实上,用对抗性训练训练一个健壮的网络比训练一个非健壮的等效[37]要多花3-30倍的时间。分割任务使得对抗性训练更具挑战性。需要更多的攻击迭代来创建有效的对抗示例,以提高分割的鲁棒性。例如,需要超过100次攻击迭代才能欺骗分段[50]。在这项工作中,我们通过应用SegPGD作为底层攻击来改进分割对抗训练。SegPGD作为一种高效的分割攻击方法,可以比目前流行的PGD生成更有效的对抗实例。通过将创建的对抗性示例注入到训练数据中,使用SegPGD进行对抗性训练可以在相同的计算成本下实现更健壮的分割模型