Towards Evaluating the Robustnes
2020-04-08 本文已影响0人
馒头and花卷
Nicholas Carlini, David Wagner, Towards Evaluating the Robustness of Neural Networks
概
提出了在不同范数下下生成adversarial samples的方法, 实验证明此类方法很有效.
主要内容
基本的概念
本文主要针对多分类问题, 假设神经网络, 其网络参数为.
假设:
其中.
为的预测类, 不妨设为其真实的类别.
Adversarial samples 的目标就是构建一个与相差无几的(足够小),但是. 很多构建Adversarial samples可以指定类别:
- Average Case: 在不正确的标签中随机选取类别;
- Best Case: 对所有不正确的标签生成Adversariak samples, 并选择最容易成功(即骗过网络)的类别;
- Worst Case:对所有不正确的标签生成Adversariak samples, 并选择最不容易成功的类别.
文章中介绍了不少现有的方法, 这里不多赘述.
目标函数
一般可以通过如下问题求解:
其中衡量之间的距离, 常常为.
但是这个条件离散, 这个问题很难直接求解, 作者给出的思路是构造一些函数, 使得当且仅当的时候此条件满足.
则问题转换为:
进一步
作者给出了7种符合此类条件的函数(作者尤为推荐第6种):
如何选择c
binary search
如何应对Box约束
图片的元素需要满足, 如何满足此约束:
- 简单粗暴地对其裁剪, 大于1的为1, 小于0的为0, 但是这种方法在梯度下降方法比较复杂(如带momentum)的时候效果可能不会太好(既然momemtum要记录变量改变的方向, 而我们又擅自对此方向进行更改);
- 用替代, 我的理解是, 每次不改变原变量, 然后把clip后的喂给. 作者说此类方法容易方法在次优解间来回振荡的现象;
- 定义
于是我们只需优化, 且保证.
attack
其中
是对第6种方法的一个小改进, 其中反应了我们对误判发生的信心.
attack
因为范数不可微, 所以每一次, 我们先利用 attack来寻找合适的, 令, 根据判断每个像素点的重要性, 最不重要的我们删去(根据文中的意思是永久删去).
- Input:
- Do ...:
- 计算在下的解(倘若在下找不到, 则在条件下找(嵌套));
- ;
- , 然后;
在利用寻找的过程中, 若失败, 令并重复进行, 直到其成功或者超过了最大的迭代次数.
attack
作为惩罚项(?)只会针对个别元素, 这在实际实验的时候并不友好, 往往会出现振荡, 于是作者想了一种替代
这样我们就把可以关注部分突出而非个别.