发明内容
本发明提供了一种基于条件变分自编码器的机器学习模型对抗性样本生成方法,用以解决上述问题。
本发明通过以下技术方案实现:
一种基于条件变分自编码器的机器学习模型对抗性样本生成方法,所述对抗性样本生成方法包括以下步骤:
步骤1:根据训练好的鉴别器调整自编码器生成噪声;
步骤2:对生成噪声的自编码器输入图像样本和标签,将图像样本经过自编码器后完成与噪声相叠加生成对抗图像样本;
步骤3:将步骤2生成对抗图像样本和标签再次输入训练好的鉴别器;
步骤4:使训练好的鉴别器鉴别对抗图像样本并输出标签;
步骤5:基于步骤4的输出的标签与步骤3输入的标签进行对比,将对抗图像样本识别为指定的目标标签。
进一步的,所述步骤1中自编码器生成噪声具体为,所述自编码器包括编码器和解码器;
所述编码器的卷积层将编码器特征输出和攻击目标的组合作为输入;
所述编码器的分层将信号进行逆卷积,生成输出噪声G(E(x),c);
通过对所述输出噪声乘以8/255,再将其添加到原始图像样本上;
再将每个位置上的像素值裁剪到区间[0,1]上,即得到了最终的对抗图像样本
xadv=clip[0,1](x+T(G(E(x),c)))。
进一步的,所述自编码器的训练方法为,根据最小化以下损失函数
LossD=w·Ec~Y[-logD(G(E(x),c))]+(1-w)·Ek~Y-c[logD(G(E(x),k))]
其中Y代表所有标签的集合,f(x)代表x的真实标签,c的含义是除了正确标签外的所有其他标签,而D(x)即表示鉴别器为输入样本的打分的值,输入样本的打分的值在区间[0,1]上;
所述LossD为自编码器生成的对抗性样本应该尽量被识别为目标标签c;在损失函数中增加一个正则化项Ek~Y-c[logD(G(E(x),k))],反向增强生成样本和目标类别的相关性,使生成器生成有目标的对抗图像样本。
进一步的,所述鉴别器包括编码部分和鉴别部分;
所述编码部分由若干个普通的神经网络卷积层构成其输入为一个代表图像信息的张量,其维度为颜色通道*长度*宽度,输出的结果为一个一维向量;
所述鉴别部分的输入为编码部分输出的特征以及图像的标签向量这两个向量的拼接;拼接后的特征向量被输入到网络主体中,输出的结果为一个二元判断,即真或假。
进一步的,所述鉴别器的训练方法为,通过梯度下降算法最小化如下的损失函数:
LossD=Ec~Y-f(x)[-logD(x,f(x))+logD(x,c)]
其中Y代表所有标签的集合,f(x)代表x的真实标签,c的含义是除了正确标签外的所有其他标签,而D(x)即表示鉴别器为输入样本的打分的值,输入样本的打分的值在区间[0,1]上。
本发明的有益效果是:
本发明用于针对任意机器学习图像分类模型,在不了解目标模型实现细节的黑盒条件下,快速地、有针对性地生成对抗性样本图像。对抗性样本应满足与原始的合法样本在视觉上没有显著差异,并且能够被目标模型错误地识别。对抗性样本可用于测试机器学习图像分类模型在可能存在恶意用户的环境下,面对恶意输入保持正常工作性能的能力。
具体实施方式
下面将结合本发明实施例中的附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1所示,一种基于条件变分自编码器的机器学习模型对抗性样本生成方法,所述对抗性样本生成方法包括以下步骤:
步骤1:根据训练好的鉴别器调整自编码器生成噪声;
步骤2:对生成噪声的自编码器输入图像样本和标签,将图像样本经过自编码器后完成与噪声相叠加生成对抗图像样本;
步骤3:将步骤2生成对抗图像样本和标签再次输入训练好的鉴别器;
步骤4:使训练好的鉴别器鉴别对抗图像样本并输出标签;
步骤5:基于步骤4的输出的标签与步骤3输入的标签进行对比,将对抗图像样本识别为指定的目标标签。
所以鉴别器的输入标签为非正确类的随机标签。
如图3所示,进一步的,所述步骤1中自编码器生成噪声具体为,所述自编码器包括编码器和解码器;编码器部分通过一系列卷积层的组合,在分层提取输入图像的同时降低特征的维度,最终输出一个一维特征向量E(x);该过程又可称为“下采样”;
所述编码器的卷积层将编码器特征输出和攻击目标的组合作为输入;
所述编码器的分层将信号进行逆卷积,生成输出噪声G(E(x),c);
通过对所述输出噪声乘以8/255,再将其添加到原始图像样本上;
再将每个位置上的像素值裁剪到区间[0,1]上,即得到了最终的对抗图像样本
xadv=clip[0,1](x+T(G(E(x),c)))。
进一步的,所述自编码器的训练方法为,根据最小化以下损失函数
LossD=w·Ec~Y[-logD(G(E(x),c))]+(1-w)·Ek~Y-c[logD(G(E(x),k))]
其中Y代表所有标签的集合,f(x)代表x的真实标签,c的含义是除了正确标签外的所有其他标签,而D(x)即表示鉴别器为输入样本的打分的值,输入样本的打分的值在区间[0,1]上;
所述LossD为自编码器生成的对抗性样本应该尽量被识别为目标标签c;为了在自编码器训练的初始阶段为训练提供动力,在尝试使生成的伪造样本-目标标签对被识别为合法样本的同时,我们还要让伪造样本尽量不被识别为目标标签以外的类别,对于任意的非目标标签k~Y-c,要让伪造样本k被识别为假;因此为了达到这一目的,我们在损失函数中增加一个正则化项Ek~Y-c[logD(G(E(x),k))],反向增强生成样本和目标类别的相关性,使生成器生成有目标的对抗图像样本。超参数用于平衡两个生成目标的效果,取0.5即可。
如图2所示,进一步的,所述鉴别器包括编码部分和鉴别部分;
所述编码部分由若干个普通的神经网络卷积层构成其输入为一个代表图像信息的张量,其维度为颜色通道*长度*宽度,输出的结果为一个一维向量;这个一维向量是输入图像的特征表示;
所述鉴别部分的输入为编码部分输出的特征以及图像的标签向量这两个向量的拼接;拼接后的特征向量被输入到网络主体中,输出的结果为一个二元判断,即真或假。所述网络主体为一个全连接神经网络。
进一步的,所述鉴别器的训练方法为,通过梯度下降算法最小化如下的损失函数:
LossD=Ec~Y-f(x)[-log D(x,f(x))+log D(x,c)]
其中Y代表所有标签的集合,f(x)代表x的真实标签,c的含义是除了正确标签外的所有其他标签,而D(x)即表示鉴别器为输入样本的打分的值,输入样本的打分的值在区间[0,1]上。
最小化该损失函数的意义是,尽量将所有样本和它正确标签的组合的得分最大化,并将所有样本和错误标签的组合的得分最小化。
具体来说,鉴别器的设计有许多可行方案,当针对不同的目标模型进行对抗性样本生成时,采用不同结构的鉴别器会有不同的效果。在本发明中,编码部分可以采用被广泛使用的任何深度卷积神经网络结构中的一种,包括Resnet、VGG、MobileNet等等。而鉴别部分由一个三层的全连接神经网络组成,其神经元的特征维度分别为256×256、256×128、128×1。
鉴别器的任务为判断一个图像被一个图像分类模型所分类的结果是否正确。即当一个图像被分类正确时,输入图像的特征输出和图像正确标签向量的组合会被鉴别器识别为真;相反,输入图像的特征输出和错误标签向量的组合会被识别为假。
实施例2
本发明在两个成熟的图像分类数据集Fashion-MNIST和CIFAR10上进行了实施和实验。其中Fashion-MNIST由德国研究机构Zalando Research提出,用于替代MNIST。其中训练集包含60000个样例,测试集包含10000个样例,其中的样本都来自日常穿着的衣裤鞋包,每个都是28×28的灰度图像,其中总共有10类标签,每张图像都有各自的标签;CIFAR-10是由Alex Krizhevsky和Ilya Sutskever收集并由加拿大政府投资的包含10个类的通用目标识别数据集。它还包含60,000张训练图像和10,000张测试图像,每一张都是32x32的rgb像素。
本发明在CIFAR10上采用的编码器和解码器的网络结构如下表所示:
其中LeakyReLu代表Leaky ReLu激活函数,Conv代表卷积层,BN代表BatchNormalize函数,Fully Connected代表全连接神经网络层。
在Fashion-MNIST上采用的编码器和解码器的网络结构如下表所示:
在实验中,我们将一个合法样本x和一个随机选择的标签c~Y-y被输入到不同的对抗性样本生成器中,生成一个对抗性样本x_head。如果x_head被目标模型分类为c,则认为此样本是一个成功的对抗性样本,否则认为此样本是失败的。我们在实验中使用测试集中的所有10000个样本进行实验,用成功样本占总样本数的比例来计算攻击的成功率。另一个评价攻击效果的辅助指标是用l2范数来衡量的扰动大小。如果对抗性扰动的平均幅度越小,认为对抗性样本越不容易被防御者发现,因此能实现更好的攻击效果。
图4展示了在不同鉴别器结构下,超参数lamda_w对最终攻击成功率的影响。该试验在CIFAR10数据集上进行。
下表展示了在Fashion MNIST数据集上,不同鉴别器结构对生成结果的影响,以及和其他生成方法的效果对比:
下表展示了在CIFAR10数据集上,不同鉴别器结构对生成结果的影响,以及和其他生成方法的效果对比:
本发明旨在训练一个对抗性样本生成器,它能够针对任意基于神经网络的图像分类模型生成对抗性样本。对抗性样本能够以可观的成功率被目标模型错误分类,且难以被人类通过肉眼进行分辨。本发明的总体框架以及生成对抗性样本的总体流程如图1所示。
该框架由一个编码神经网络(编码器)和一个解码神经网络(解码器)组成。生成的公式为G(E(x),c)。其中E为编码器,其针对输入样本x输出一个特定的隐藏表示z=E(x)。而生成器G(z,c)用于将隐藏表示z映射为原始样本的一个重构版本η=G(z,c),它与错误类别参数c相关。最后通过变换T(η)将η转化为一个加性噪声,使输入样本被目标模型误分类为选定的任意类别c。因此,本方法试图解决如下优化问题:
其中Loss(x+T(η),c)为目标模型对生成的对抗性样本在错误类别c上的损失,X为合法样本的分布,Y为所有可能类别的集合。
具体来说,Loss(x,y)为交叉熵损失函数。当Loss(x,y)为0时,代表目标模型将输入样本x分类为y。最小化该损失函数的期望,目的是在攻击者无论选择任何目标类别时,攻击者都能成功地操纵目标模型输出的标签。
对于变换T(η),一个合理的选择是令T(η)=ò·T(η),其中ò是一个[0,1]上的实数。这一策略实质上使得生成的对抗性样本是l∞有界的,即图像中各个像素上的扰动大小最大不会超过ò。在发明的其余部分均选择T(η)的这一定义。因此,对于一个正常的输入样本x,生成的对抗性样本为xadv=clip[0,1](x+T(G(E(x),c)))。