实施方案
[0028] 本发明以一张原始图像作为输入,计算原始图像与随机高斯图像的结构相似度并求其梯度,选择最小梯度值对应的维度。逐个维度地使用贝叶斯优化得到最佳扰动值。将多次迭代得到的扰动叠加在一起,直到改变DNN分类器的类别预测结果。
[0029] 以下举例说明本发明整个过程的具体实施方式如下(各步骤效果图参见图2):
[0030] 步骤一、获取原始图像x的真实类别yc及其概率Mc
[0031] x是原始图像向量(如图1所示),Δx是与x具有相同维度的全0 扰动向量,xG是与x具有相同维度的从高斯分布中采样得到的随机向量(如图2所示)。以原始图像x作为目标DNN分类器的输入,获得原始图像的概率输出向量M(x;θ);取概率输出向量中最大值对应的类别作为原始图像的类别预测yc,概率输出向量中最大值为Mc。
[0032] 步骤二、确定待优化的目标函数
[0033] 由于图像向量x具有较高的维度,并且生成对抗样本并不需要对所有的维度添加扰动,故而在本方法中每次仅扰动一个维度,其他维度不改变,以生成试验扰动Δx。将x+Δx输入到DNN分类器中,得到预测输出向量M(x+Δx;θ)。令M(x+Δx;θ)中除yc类别外的最大概率值为Mt,其对应的类别为yt,目标函数定义为B(z)=log(Mc)‑ log(Mt)。优化的目标是B(z)≤0,从而改变目标DNN分类器对被扰动图像的分类结果。
[0034] 步骤三:确定此次迭代中需要优化的坐标与通道
[0035] 在第T次迭代中,计算当前扰动图像x′=x+Δx与随机图像xG的结构相似度SSIM(x′,xG):
[0036]
[0037] 这里μx′、 表示x′和xG的均值, 表示x′和xG的方差, 表示x′和xG的协方差,∈1与∈2是一个小标量,以确保分母不为零。然后求结构相似度关于x′的梯度,得到一个与原始图像相同维度的梯度向量
[0038]
[0039] 选择其中最小梯度值对应的坐标s及通道c作为下一步的优化坐标:
[0040]
[0041] 步骤四:对特定像素使用贝叶斯优化
[0042] 1)使用高斯过程代理待优化的目标函数,使用EI策略作为采集函数。设定最大测试点次数I,以及当前测试点数量i=0;首先随机选择几个扰动值进行测试,生成初始观测数据集D1:t,包含t个已观测数据点。
[0043] 2)根据已观测到的数据集D1:t得到的后验分布构造一个EI采集函数αt(z;D1:t):
[0044]
[0045] 其中,v*表示当前最优函数值,φ(·)为标准正态分布概率密度函数,μt(z)与σt(z)分别表示D1:t中数据点的均值与方差。
[0046] 3)通过对其最大化采集函数选择下一个评估点 将zt+1赋值到Δx的对应维度s,并评估此时的目标函数值B(zt+1),在zt+1处评估后将评估值加入观测数据集D。i+=1,若i≤I,转(2)。
[0047] 4)输出已观测数据集中的最小函数值B(z)及其对应的扰动值z。
[0048] 步骤五:将步骤四得到的最佳扰动值z赋值到扰动向量Δx(最终扰动图像如图3所示,共扰动36个像素点,891次评估次数)。若 B(z)≤0,则认为攻击成功,将被扰动图片x+Δx作为对抗样本输出 (最终对抗样本图像如图4所示),若B(z)>0,则认为在此次迭代中攻击不成功,跳转到步骤三,在当前扰动向量Δx的基础上继续下一次迭代。
[0049] 实验结果:从CIFAR10中随机选用100张图片作为实验数据,在实验结果中,平均扰动像素数量为95.22,中位数为78.5,平均评估次数为2364.85次,中位数为1944.5次。评估次数明显少于One Pixel Attacks方法与Boundary Attacks方法。