论文阅读笔记: 2019 ICCV 《Improving Adversarial Robustness via Guided Complement Entropy》

2019 ICCV 《Improving Adversarial Robustness via Guided Complement Entropy》

Introduction

作者提出以往的防御方法有两点不足:1. 需要额外的流程来或者额外的模型来使目标模型更加鲁棒,这样会导致不灵活和计算负担的问题。 2. 鲁棒性的提升是以性能的下降为代价。 然后作者提出了一种新的训练目标函数 “Guided Complement Entropy”
(GCE) 来使模型在没有额外训练流程的情况下加强对抗鲁棒性。

Guided Complement Entropy

Guided Complement Entropy 建立在已有方法Complement Entropy的基础上,其表达式为:
论文阅读笔记: 2019 ICCV 《Improving Adversarial Robustness via Guided Complement Entropy》
符号如下:
论文阅读笔记: 2019 ICCV 《Improving Adversarial Robustness via Guided Complement Entropy》
简单来说,这个函数表示了模型在ground-truth class 以外类别的预测概率的熵,并且损失在所有预测概率一致时最小。

作者提出的新损失函数为:
论文阅读笔记: 2019 ICCV 《Improving Adversarial Robustness via Guided Complement Entropy》
与公式(1)相比,增加了 guiding factor y^iga\hat{y}^a_{ig} 。作者的动机为:当模型还不能在ground-truth class 上预测出较高的分数时,过早地更新GCE其实没有什么实际意义。换句话说,现在有两个损失函数,一个是cross-entropy loss, 使得模型尽量能够预测正确; 而另一个是guided complement entropy loss, 使得模型对于不正确的类别的预测分数尽量持平。 作者认为前一个损失的优先级高于后者,这也确实是合理的。

Synthetic Data Analysis

随后,作者探究了三个问题:

  1. GCE 与 CE有什么不同?
  2. α\alpha是如何影响 GCE 的 loss landscape的?
  3. 不同的 α\alpha对模型的收敛有什么影响?

作者用图2解释了以上几个问题。为方便展示,作者选择了3分类问题,并假定ground-truth 为class 0。横纵坐标分别表示 class 1 和 class 2 的预测概率,因为三者概率相加为1,所以当他俩的概率确定,class 0 的概率也确定了。阴影部分为模型能够预测正确的情况。作者在文中提到 Complement Entropy Having a long “valley” in the loss landscape,这只会导致训练收敛至这个valley中,而不是最优点 (即 坐标轴中的(0,0)坐标 )。而GCE的优势在于,这个valley的坡度会往最优点倾斜。当α\alpha越小,损失值会下降得越快,从而导致在最优点附近有更大的“basin”。

图2看上去是这篇文章的重点,对于这张图暂时有几点疑问:

  1. 作者提到Complement Entropy存在valley, 这使得网络的收敛出现了问题。而事实上,网络的训练过程由两个损失函数监督,以我的理解,交叉熵损失会使坐标点往(0,0)这个方向靠拢,而GCE损失则会使坐标点往 Y=XY=X 这条直线靠拢。换句话说,这两个损失应该是各司其职,由于交叉熵的存在,valley应该不会使得 网络不能收敛至最优点
  2. 另一方面,通过子图(a) 与其他图的对比,作者似乎想传递的意思是,在GCE损失的约束下,网络会从高损失的区域往低损失的区域移动。咋一眼看上去确实如此,但是仔细看公式(2),以图2 (b)为例,网络之所以在y=x+1y = - x + 1这条直线附近的损失较大(趋近于0),是因为这时候class 0 的预测分数很低,所以导致 guiding factor y^iga\hat{y}^a_{ig}很小,使得整个GCE损失的权重下降了。当预测值为在y=x+1y = - x + 1这条直线上时,权重直接降为0,这意味着GCE损失的梯度也变成了0,这时网络并不依靠GCE来更新梯度,而仅仅依赖于交叉熵。越接近这条直线,权重越小,GCE损失的梯度也越小。这意味着虽然看上去GCE的损失很大,但是反直觉的是,它恰恰对梯度更新的影响很小。更具体地,当预测值位于红色区域,它好像并没有动力往蓝色区域更新。
  3. 在图2的注释中,作者提到 (a) 和(d)的深蓝色区域没有全部位于阴影区域中,这对于损失函数是不理想的。如果是根据我对公式的理解方式,这似乎也说不通。因为图中的Loss Value 的大小与实际上网络更新所用到的梯度大小还是有点区别的。
    论文阅读笔记: 2019 ICCV 《Improving Adversarial Robustness via Guided Complement Entropy》
    不知道是否是我的理解有问题,先记录一下,方便以后查看。