对抗样本改善图像分类性能

一、背景

本文内容源于:Adversarial Examples Improve Image Recognition。近年来,关于对抗样本的研究层出不穷,但是鲜有利用对抗样本提升图像分类性能的研究。对抗样本在一些特殊条件下确实对图像分类性能提高有帮助,但是如何在更宽泛的条件下驾驭和利用对抗样本,在这个赛道上的研究还没有什么实质性的进展。

总结下,目前的研究水平:对抗样本发挥作用要有一定的条件限制,在监督学习中无法正确利用对抗样本提升模型性能。如何兴利除弊,也就是目前关于对抗样本研究的重点

二、对抗样本

本文在CNN图像分类的视角说一下对抗样本的概念。简单来说,对抗样本通常是有着明显标签的图像,通过算法增加一些噪声后,新的图片人眼无法分辨出变化,但是机器能分辨出来而且还会判错类别,这类样本称为对CNN存在攻击性,因此称为是对抗样本。比如一张明显是cat的图像,加入微弱的噪声后,CNN模型将其识别为了dog。

对抗样本改善图像分类性能_第1张图片

但是,凡事有利有弊。经研究证实,对抗样本参与模型训练可以让模型学习到一些附加的特征,同时,可以让网络提取的特征更好的与样本的突出特征对齐,还可以提升模型对高频图像噪声的鲁棒性。

三、简单的尝试

前面说了,对抗样本有它的优点,但是在监督学习中,目前还无法正确使用对抗样本来改善图像分类性能。主要的问题在于对抗样本的分布和常规样本的分布是不一致的,这导致了简单的混合对抗样本和常规样本进行训练无法提升模型性能,甚至会降低模型性能。

为了验证该想法,作者尝试了一个简单的训练策略:使用对抗样本训练网络,然后使用常规样本微调该网络。实验发现,有些时候效果确实会比单纯仅使用常规样本训练出来的网络性能好,但是并不总是这样,有些情况下其性能还是不能匹敌后者。

四、新的策略

上述简单的训练策略在微调期可能会掩盖预训练网络从对抗样本中学习到的特征,所以作者提出了一种新的训练策略:将对抗样本和常规样本同时加入训练,并分别针对对抗样本和常规样本进行BN。这样的做法依据有两点

  1. 两步走的训练方法会掩盖网络从对抗样本中学到的特征;
  2. 使用BN的一个假设是常规样本和对抗样本来自同一分布,如果一个batch中混杂着来自不同分布的样本,BN的统计会不准确;
    新的BN使用方法如下图所示:

对抗样本改善图像分类性能_第2张图片

五、对抗训练算法

根据附加BN的思想,相应的对抗训练算法流程如下:
Input: 待优化的模型参数, 常规样本组成的训练集
Output: 优化后的模型参数
step 1: 采样一个包含常规样本的batch;
step 2: 采用某种对抗样本生成算法, 利用aux_bn和常规batch, 生成对抗batch;
step 3: 分别计算常规样本batch对应的损失和对抗batch对应的损失,total_loss等于两者相加;
step 4: 反向传播, 更新模型参数;
本文采用的对抗攻击算法是PGD算法,相关的参考资料如下:

基于梯度的攻击——PGD
梯度攻击
对抗攻击系列学习笔记(一)—— FGSM和PGD
PGD及对抗训练

六、一些实验结论

小网络和弱攻击者更亲和,大网络和强攻击者更亲和;
对于一个足够大的网络,混合对抗样本和常规样本进行训练时,无需aux_bn也是可以的,这主要是因为网络的表达能力已经足够强,足以从两个不同的数据分布上去学习;

你可能感兴趣的:(对抗学习,分类,深度学习)