5.5.1 DeepFool基本原理
5.5.1 deepfool基本原理
与fgm相同,deepfool也是一种基于梯度的白盒攻击算法,是seyed-mohsen moosavi-dezfooli等人在论文《deepfool:a simple and accurate method to fool deep neural networks》中提出的。deepfool通常作为一种无定向攻击算法使用,相对fgm而言,不用指定学习速率e,算法本身可以计算出相对fgm更小的扰动来达到攻击目的。以最简单的二分类问题为例,如图5-14所示,假设分割平面是一个直线,直线的两侧分别对应不同的分类结果。
图5-14 二分类问题的对抗样本原理
如果想改变其中某点x0的分类结果,一定要跨过分割平面。显然最短的移动距离就是垂直分割平面进行移动,我们把这个距离记作r*(x0),分类器为f,那么存在如下关系:
二分类的deepfool攻击算法可以用伪码描述为:
定义分类器f在第k种分类上的概率为fk(x),那么分类的最终标签可以表示为其中概率最大的那个分类:
多分类的deepfool攻击算法可以当成二分类的扩展,伪码描述为:
位于https://github.com/lts4/deepfool的论文给出了deepfool攻击算法的开源实现。
与fgm相同,deepfool也是一种基于梯度的白盒攻击算法,是seyed-mohsen moosavi-dezfooli等人在论文《deepfool:a simple and accurate method to fool deep neural networks》中提出的。deepfool通常作为一种无定向攻击算法使用,相对fgm而言,不用指定学习速率e,算法本身可以计算出相对fgm更小的扰动来达到攻击目的。以最简单的二分类问题为例,如图5-14所示,假设分割平面是一个直线,直线的两侧分别对应不同的分类结果。
图5-14 二分类问题的对抗样本原理
如果想改变其中某点x0的分类结果,一定要跨过分割平面。显然最短的移动距离就是垂直分割平面进行移动,我们把这个距离记作r*(x0),分类器为f,那么存在如下关系:
二分类的deepfool攻击算法可以用伪码描述为:
定义分类器f在第k种分类上的概率为fk(x),那么分类的最终标签可以表示为其中概率最大的那个分类:
多分类的deepfool攻击算法可以当成二分类的扩展,伪码描述为:
位于https://github.com/lts4/deepfool的论文给出了deepfool攻击算法的开源实现。