Towards Robust Representation by 谢慈航

观后感

Source The 5th Lecture

鲁棒表示学习

AI下的DL分支目前发展迅猛,应用效果好,如:

  1. AlphaGo
  2. Rubik’s Cube(机器人解魔方)
  3. Self-Driving Cars(如特斯拉)

而2013年对抗样本首次被提出,暴露了AI的脆弱性,也引发了人们的思考和关注:AI为什么不鲁棒??

脆弱性 Vuluerability

(1)对抗样本影响各个领域:

  1. 分类
  2. 语义分割
  3. 目标检测
  4. 强化学习
  5. Pose Estimation

(2)对抗样本具有一定迁移性:不同任务之间的对抗样本可以相互迁移

在黑盒攻击中,一个思路是利用对抗样本的迁移性。在本地代理模型Substitute Networks上生成对抗样本,用以迁移攻击目标模型。

(3)物理世界的对抗样本存在较大威胁性

修改结构:鲁棒性提高

中间层去噪

一个现象是:在pix级别原图和对抗样本没有很大区别,但经过神经网络的放大处理,在feature map上呈现出比较大的差异。(如deepfake检测)

  1. 中间层去噪:可以将图片去噪的经典方法(如中值滤波、均值滤波…)应用在中间层,防御对抗攻击。这个操作是为了提高模型鲁棒性,相应地,去噪操作会导致信息损失,模型精确度下降。

  2. Denoising Block Design:对应优化模型架构,采用ResNet结构减少信息损失,提高模型精确度。

平滑的Function

往往鲁棒性对应着平滑连续的表示函数。Relu存在跳跃,可以采用一些连续平滑的激活函数(如GElu,Elu,SmoothRelu…)来增强鲁棒性。

用对抗样本进行数据增强

进行数据增强有很多方法:

  1. 很多方法都不具有普适性(如flip这样的处理,对于NLP, 强化学习等领域是不适用的)
  2. 对抗样本进行数据增强是一种通用的方法。

对抗训练

一般而言,对抗训练有时候会导致模型鲁棒性上升精确度下降。有一种思路是,先用对抗样本进行对抗训练后再用干净样本进行fine-tuning来提高准确度,但是这样模型可能会以往对抗训练中学到的东西。

Adv-Prop

以前就有人提出,训练时将对抗样本和正常样本同时输入网络(2个BN分别归一化处理,其它不做修改)。测试时丢掉对抗样本对应的BN,只要干净样本对应的BN。

未来

构建人和机器之间的合作,可解释性是一个重要的问题。我们需要知道AI何时可以解决问题,什么场景下会出Bug,很多时候,对于输出的结果(如分类的结果),我们更需要它给出原因,是依据什么得出了这个输出。

Q&A

(1)可以从什么角度出发来提高模型鲁棒性?

  1. 数据:对抗训练学到更多特征
  2. 结构:更加平滑的函数表示
  3. 损失函数:损失函数解决了模型如何训练的问题。

这三者的优化是并行的。

(2)鲁棒性和泛化性的关系

对抗样本是一个子问题,是特殊的关系。

(3)鲁棒性和准确性是否矛盾?

在cv领域,用对抗样本进行数据增强往往会导致鲁棒性上升而准确性下降。而在NLP领域,由于数据多、模型大,它们的表征能力capacity往往更强,进行对抗训练往往是鲁棒性和准确性同时提升的。

(4)普通分类错误的样本和对抗样本有什么区别?

谢教授说他不会,可以思考下。

或许普遍意义上没有区别,感觉都是没学到足够的特征。乱说的,以后想到了来修改。