5.7.1 cw基本原理
    cw算法是nicholas carlini和david wagner在论文《towards evaluating the robustness of neural networks》中提出的。cw通常被认为是攻击能力最强的白盒攻击算法之一,同时也是一种基于优化的对抗样本生成算法,但是在大多数文献中还是把它和基于梯度的攻击算法归为一类进行介绍。假设原始数据为x,分类结果为c(x),对抗样本为x',x'和x非常接近,但是分类结果c(x')=t却和c(x)不同,在定向攻击中t是指定的,无定向攻击中t是不确定的。cw同时支持l0、l2和l∞攻击,三种攻击方式算法基本相同,本章介绍其中使用最为广泛的l2定向攻击。
    cw是一种基于优化的对抗样本生成算法,它的创新之处在于对损失函数(目标函数)的定义上。在定向攻击中,目标函数经常使用交叉熵,迭代优化的过程就是不断减小目标函数的过程。cw对常见的7种目标函数(见图5-25)进行了测试,其中(e)+是max(e,0)的简写,lossf,s(x)是交叉熵的简写。
    图5-25 cw列举的常见目标函数
    假设在原始数据x上叠加扰动,生成对抗样本为x+δ,对抗样本和原始数据之间的距离定义为d(x,x+δ),那么整个优化函数可以定义为:
    minimize d(x,x+δ)+c·f(x+δ)
    其中x+δ∈[0,1]n
    其中c是引入的一个参数,后面我们将介绍c如何选择,先讨论如何选择目标函数。如图5-26所示,nicholas carlini和david wagner在论文中指出,在相同数据集的情况下攻击同一模型,mean代表平均的扰动大小,prob代表攻击成功率,f6在攻击mean和prob两项指标上都表现出色,即f6可以在尽量小的扰动的情况下取得较高的成功率。
    图5-26 相同数据集和模型的情况下不同目标函数的攻击效果
    下面一个问题是如何选择c,在相同数据集的情况下攻击同一模型,目标函数均使用f6的情况下,如图5-27所示,图片左侧坐标表示攻击的成功率,曲线为虚线,右侧坐标表示平均扰动大小,曲线为实线,横坐标为c的大小。该实验证明,c越大攻击成功率和平均扰动大小都会变大,其中c=0.1是个临界点,当c从0.1增大时,攻击成功率迅速上升,c小于0.1或者大于1时,攻击成功率曲线都十分平缓。可见,综合考虑攻击成功率和平均扰动大小,选择尽量小的c是必然结果。cw算法的一个核心点就是通过二分查找计算出尽量小的c值。
    图5-27 相同数据集和模型的情况下取不同c值的攻击效果
    二分查找计算出尽量小的c值的方法描述如下,假设搜索的c的上限为upper_bound下限为lower_bound,那么搜索流程如下:
    binary_search
    输入:c的上限为upper_bound,下限为lower_bound,初始值为initial_const,最大迭代次数为
    binary_search_steps
    初始化 i← 0
    while i < binary_search_steps do
    使用adam迭代优化对抗样本
    if 攻击成功 then
    upper_bound = min(upper_bound,c)
    c= (lower_bound + upper_bound)/2
    else
    lower_bound = max(lower_bound,c)
    c=(lower_bound + upper_bound)/2
    end if
    end while
    cw算法的另外一个特色就是对数据截断的处理。以图像文件为例,通常一个像素点的取值范围是[0,255]的整数,但是在进行对抗攻击时,经常会出现溢出现象,比如–0.1或者255.1,这个时候就需要进行截断处理。常见的截断处理方法有以下三种。
    projected gradient descent,即梯度投影下降,这也是使用最多的一种方式,在每次迭代更新对抗样本后,直接将对抗样本进行截断,然后使用截断后的对抗样本进入下一轮迭代。projected gradient descent最大的问题是会把截断带来的误差带入下一轮迭代。
    clipped gradient descent,即梯度截断下降,该方法不是直接截断对抗样本,而是优化了目标函数,在目标函数层面避免了数据溢出。假设原有目标函数为f(x+δ),优化后的目标函数为:
    f(min(max(x+δ,0),1))
    clipped gradient descent解决了projected gradient descent中把截断带来的误差带入下一轮迭代的问题,但是引入了一个新的问题,就是容易出现梯度消失,即梯度非常小甚至为0,导致无法继续迭代优化。
    change of variables,即变换变量,引入新的变量w,那么对抗样本可以表示为:
    因为tanh(w)∈[–1,1],所以可以保证对抗样本不溢出。并且tanh(w)不会出现clipped gradient descent的梯度消失问题,change of variables也是cw使用的方法。
    如图5-28所示,nicholas carlini和david wagner在论文中指出,在相同数据集的情况下攻击同一模型,在目标函数相同的情况下,change of variables在平均扰动大小mean和攻击成功概率prob上均表现优异。
    具体到定向的l2攻击,假设攻击目标标签为t,被攻击模型的logits输出为z,那么目标函数定义为:
    其中k为常数,如图5-29所示,横坐标为k,纵坐标为攻击的成功概率,实线为无目标攻击,虚线为定向攻击,曲线描述了无论是无目标攻击还是定向攻击,攻击的成功概率都会随k的增长而增长,当k=40时,概率几乎为100%。
    图5-28 常见的截断处理方法的效果对比
    整个优化的目标如下,其中w为新定义的变量。
    图5-29 参数k对模型迁移攻击的成功概率的影响

章节目录

智能系统与技术丛书·AI安全之对抗样本入门所有内容均来自互联网,一曲书屋只为原作者兜哥的小说进行宣传。欢迎各位书友支持兜哥并收藏智能系统与技术丛书·AI安全之对抗样本入门最新章节