CAAD2018对抗样本攻防赛: NON-TARGETED ATTACK第二名

基于图像重建的对抗样本无目标攻击方法

论文:中科院的Dlight团队
CAAD2018对抗样本攻防赛: NON-TARGETED ATTACK第二名_第1张图片

生成模块

生成模块这一部分和17年比赛中的ATN(Adversarial Transformation Network)一样,是Encoder-Decoder结构,输出图像和输入尺寸相同。
作者给的代码中,用了Inception_Resnet_V2的前一部分作为Encoder,由卷积和池化层组成,输出为maxpool_5a层的输出。输入3 *299 *299时,输出尺寸为192 *35 *35。
Decoder的代码如下:

class Decoder(nn.Module):

    def __init__(self):
        super(Decoder, self).__init__()
        
        self.upconv1=torch.nn.ConvTranspose2d(192, 512, kernel_size=4, stride=2 ,output_padding=1, bias=False)
        self.upconv5=torch.nn.ConvTranspose2d(512, 512, kernel_size=3, stride=1 ,padding=1, bias=False)
        self.upconv2=torch.nn.ConvTranspose2d(512, 256, kernel_size=3, stride=2 ,output_padding=1, bias=False)
        self.upconv6=torch.nn.ConvTranspose2d(256, 256, kernel_size=3, stride=1 ,padding=1, bias=False)
        self.upconv3=torch.nn.ConvTranspose2d(256, 128, kernel_size=4, stride=2 ,output_padding=1, bias=False)
        self.upconv4=torch.nn.ConvTranspose2d(128, 3, kernel_size=3, stride=1 ,padding=1, bias=False)
        self.relu = nn.ReLU(inplace=False)
        self.tanh=torch.nn.Tanh()
        
    def forward(self, input):
        x = self.relu(self.upconv1(input))
        x = self.relu(self.upconv5(x))
        x = self.relu(self.upconv2(x))
        x = self.relu(self.upconv6(x))
        x = self.relu(self.upconv3(x))
        x = self.tanh(self.upconv4(x))
        return x

一波反卷积实现上采样,输出三通道的299*299图像。

鲁棒增强模块(Robust-Enhance)

为了增强对对抗训练和图像预处理的防御方法的鲁棒性,作者在生成模块之后加入了鲁棒增强模块。
在该模块中应用了三种图像处理方法:
1、加入随机噪声
2、预训练Filter:将图像输入一个预训练的网络模型,参数固定
3、训练Filter:将图像输入一个预训练的网络模型,且模型在训练过程中参与训练

loss函数

  1. Feature-based
    Feature-based loss函数
    计算干净图片和对抗样本在目标网络中的feature的L1距离
  2. Prediction-based
    Prediction-based loss函数
    上面的loss函数意义为:
    当生成的图片最大预测值fir对应的是正确标签时,要使生成图片在目标网络中的fir概率值减小,sec概率值增大。
    当生成的图片最大预测值fir对应的不是正确标签时,要使生成图片在目标网络中的fir概率值增大,sec概率值减小。
    这样能使生成的图像被目标模型误分类。

攻击集成模型

集成loss
用每个目标网络计算的loss的和,作为集成loss指导网络训练。每个loss前有一个集成权重,用来维持不同模型梯度大小的平衡。
loss控制
为了避免生成模型倾向于某一个目标模型,作者添加了一个阈值来控制loss的最大值。

你可能感兴趣的:(对抗样本)