1 引言

 前一段时间解读了一篇发表于CVPR2021的一篇文章《Improving the Transferability of Adversarial Samples with AdversarialTransformations》,解读文章的链接为《CVPR2021:对抗变换提高对抗样本的可迁移性》。该论文的创新点是首先对抗训练出一个对抗变换网络,该对抗变换网络的核心作用是用来抑制对抗样本攻击性,然后借助对抗变换网络生成对抗样本,最终生成的对抗样本在攻击性和可迁移性的方面能力得到了显著的提高。由此启发一个想法油然而生,如果利用论文中方法生成对抗样本对分类器模型进行对抗训练,那么是不是会使分类器模型的更加鲁棒呢?带着这个问题展开本文章的理论分析和实验验证。

2 方法描述

 令x∈Rn×1x\in\mathbb{R}^{n\times 1}x∈Rn×1表示干净的数据样本,其对应的真实标签为y∈{1,⋯,k}y\in\{1,\cdots,k\}y∈{1,⋯,k};带有参数θ\thetaθ的分类器网络为fθ(x)f_{\theta}(x)fθ​(x),其映射为fθ:Rn×1→Rk×1f_\theta:\mathbb{R}^{n\times1}\rightarrow\mathbb{R}^{k\times1}fθ​:Rn×1→Rk×1;带有参数φ\varphiφ的对抗变换网络gφ(x)g_{\varphi}(x)gφ​(x),其映射为gφ:Rn×1→Rn×1g_{\varphi}:\mathbb{R}^{n\times 1}\rightarrow \mathbb{R}^{n\times 1}gφ​:Rn×1→Rn×1;损失函数为J(⋅,⋅)J(\cdot,\cdot)J(⋅,⋅)。生成对抗样本x′∈Rn×1x^{\prime}\in \mathbb{R}^{\ n\times 1}x′∈R n×1一般的优化形式为max⁡x′J(fθ(x′),y)s.t.∥x′−x∥∞≤ε\begin{array}{rl}\max\limits_{x^{\prime}}& J(f_{\theta}(x^{\prime}),y)\\\mathrm{s.t.} & \|x^{\prime}-x\|_{\infty}\le \varepsilon\end{array}x′max​s.t.​J(fθ​(x′),y)∥x′−x∥∞​≤ε​其中∥⋅∥∞\|\cdot\|_\infty∥⋅∥∞​表示的是无穷范数,ε\varepsilonε表示的是对抗样本x′x^{\prime}x′和干净样本xxx之间的最大扰动距离。
 当前常用样本数据变换的方式比较固定,比如翻转,缩放,颜色变换等。对抗变换网络的主要目的增强样本变换多样性,从而抑制对抗扰动的攻击性。在生成对抗样本的时候,则需要克服对抗变换网络削弱对抗攻击性的条件下,依然能够使得分类器模型分类出错。对抗变换网络训练与对抗样本生成的对抗目标可以用如下min⁡\minmin-max⁡\maxmax公式给出min⁡φmax⁡x′J(fθ(gφ(x′)),y)s.t.{∥x′−x∥∞≤εarg⁡max⁡fθ(gφ(x))=y\begin{array}{rl}\min\limits_{\varphi}\max\limits_{x^{\prime}}&J(f_{\theta}(g_{\varphi}(x^\prime)),y)\\\mathrm{s.t.}&\left\{\begin{aligned}\|&x^{\prime}-x\|_{\infty}\le\varepsilon\\&\arg\max f_{\theta}(g_{\varphi}(x))=y\end{aligned}\right.\end{array}φmin​x′max​s.t.​J(fθ​(gφ​(x′)),y){∥​x′−x∥∞​≤εargmaxfθ​(gφ​(x))=y​​其中对抗变换网络gφ(⋅)g_{\varphi}(\cdot)gφ​(⋅)可以是CNN\mathrm{CNN}CNN网络,也可以是VisionTransformer\mathrm{Vision \text{ } Transformer}Vision Transformer,在以下的实验方法中会着重对这两种网络架构进行探讨。
 借助对抗网络gφ(⋅)g_{\varphi}(\cdot)gφ​(⋅)生成的对抗样本x′x^{\prime}x′对分类器模型fθf_{\theta}fθ​进行对抗训练。此时对抗训练的目标可以由双min⁡\minmin-max⁡\maxmax进行描述min⁡θmax⁡x′min⁡φmax⁡x′J(fθ(gφ(x′)),y)s.t.{∥x′−x∥∞≤εarg⁡max⁡fθ(gφ(x))=y\begin{array}{rl}\min\limits_{\theta}\max\limits_{x^{\prime}}\min\limits_{\varphi}\max\limits_{x^{\prime}}&J(f_{\theta}(g_{\varphi}(x^\prime)),y)\\\mathrm{s.t.}&\left\{\begin{aligned}\|&x^{\prime}-x\|_{\infty}\le\varepsilon\\&\arg\max f_{\theta}(g_{\varphi}(x))=y\end{aligned}\right.\end{array}θmin​x′max​φmin​x′max​s.t.​J(fθ​(gφ​(x′)),y){∥​x′−x∥∞​≤εargmaxfθ​(gφ​(x))=y​​利用对抗变换网络对分类器网络进行训练的双min⁡\minmin-max⁡\maxmax对抗训练的原理示意图如下所示

 双min⁡\minmin-max⁡\maxmax对抗训练有两种训练方式。一种方法就是分阶段进行对抗训练,即将双min⁡\minmin-max⁡\maxmax对抗训任务分解成两个min⁡\minmin-max⁡\maxmax对抗训练任务。另一种方法就是直接整体对双min⁡\minmin-max⁡\maxmax任务进行对抗训练。

  • 双min⁡\minmin-max⁡\maxmax分阶段对抗训练:第一阶段进行内部最小最大对抗训练,主要目的训练对抗变换网络gφ(⋅)g_{\varphi}(\cdot)gφ​(⋅),具体的最小最大目标函数为min⁡φmax⁡x′J(fθ(gφ(x′)),y)⟶φ∗\min\limits_{\varphi}\max\limits_{x^{\prime}}J(f_{\theta}(g_{\varphi}(x^{\prime})),y)\longrightarrow \varphi^*φmin​x′max​J(fθ​(gφ​(x′)),y)⟶φ∗
    其中φ∗\varphi^{*}φ∗表示的是对抗变换网络参数φ\varphiφ训练成熟之后的参数。对以上最小最大目标函数与再进行拆解可知,当借助于对抗变换网络生成对抗样本,另外我们也需要使得对抗样本对原始的分类器模型产生攻击效果,此时最大化损失函数Lattack=J(fθ(gφ(x′)),y)+γJ(fθ(x′),y)L_{attack}=J(f_\theta(g_{\varphi}(x^{\prime})),y)+\gamma J(f_{ \theta}(x^{\prime}),y)Lattack​=J(fθ​(gφ​(x′)),y)+γJ(fθ​(x′),y)当训练对抗变换网络参数φ\varphiφ时,我们希望对抗变换网络不仅可以抑制对抗样本的攻击性,而且尽可能保留干净样本的特征,此时最小化损失函数Lt=J(fθ(gφ(x′)),y)+α1J(fθ(gφ(x)),y)+α2∥x′−gφ(x′)∥2L_{t}=J(f_{\theta}(g_{\varphi}(x^{\prime})),y)+\alpha_1 J(f_{\theta}(g_{\varphi}(x)),y)+\alpha_2 \|x^{\prime}-g_{\varphi}(x^{\prime})\|^2Lt​=J(fθ​(gφ​(x′)),y)+α1​J(fθ​(gφ​(x)),y)+α2​∥x′−gφ​(x′)∥2阶段一相关的算法流程图如下所示

    第二阶段进行外部最小最大对抗训练,其主要目的是训练分类器网络参数θ\thetaθ,具体的极大极小目标函数为min⁡θmax⁡x′J(fθ(gφ∗(x′)),y)⟶θ∗\min\limits_{\theta}\max\limits_{x^{\prime}}J(f_{\theta}(g_{\varphi^{*}}(x^{\prime})),y)\longrightarrow \theta^{*}θmin​x′max​J(fθ​(gφ∗​(x′)),y)⟶θ∗其中θ∗\theta^{*}θ∗表示的分类器模型网络参数θ\thetaθ进行对抗训练成熟之后的参数。此时最大化生成对抗样本的损失函数即为上面的提到LattackL_{attack}Lattack​,最小化分类器损失函数即是正常的交叉熵函数LcL_{c}Lc​。阶段二相关的算法流程图如下所示
  • 双min⁡\minmin-max⁡\maxmax整体进行对抗训练:一次对抗训练的过程为先生成对抗样本,然后训练对抗变换网络,再生成对抗样本,最后训练分类器模型参数θ\thetaθ,。具体的目标函数为min⁡θmax⁡x′min⁡φmax⁡x′J(fθ(gφ),y)⟶φ∗,θ∗\min\limits_{\theta}\max\limits_{x^{\prime}}\min\limits_{\varphi}\max\limits_{x^{\prime}}J(f_{\theta}(g_{\varphi}),y)\longrightarrow \varphi^{*}, \theta^{*}θmin​x′max​φmin​x′max​J(fθ​(gφ​),y)⟶φ∗,θ∗其中φ∗\varphi^{*}φ∗和θ∗\theta^{*}θ∗为训练成熟的参数。 将分阶段对抗训练的损失函数LattackL_{attack}Lattack​,LtL_{t}Lt​和LcL_cLc​融合在一次对抗训练中。整体对抗训练的算法流程图如下所示

3 实验方法

 选取的网络结构是VGG19\mathrm{VGG19}VGG19,选取的数据集是CK+\mathrm{CK+}CK+,学习率为0.00020.00020.0002,训练的epoch\mathrm{epoch}epoch是100100100。生成对抗攻击的算法中的参数中γ\gammaγ取值为111。训练对抗变换网络超参数中α1\alpha_1α1​为111,α2\alpha_2α2​取值为0.00010.00010.0001。选取的baseline\mathrm{baseline}baseline算法有正常训练,pgd\mathrm{pgd}pgd对抗训练,fast\mathrm{fast}fast对抗训练。具体的实验结果如下表所示,本文提出的两种方法对抗训练的效果并不是很好。

利用对抗变化网络进行对抗训练相关推荐

  1. 图像对抗生成网络 GAN学习01:从头搭建最简单的GAN网络,利用神经网络生成手写体数字数据(tensorflow)

    图像对抗生成网络 GAN学习01:从头搭建最简单的GAN网络,利用神经网络生成手写体数字数据(tensorflow) 文章目录 图像对抗生成网络 GAN学习01:从头搭建最简单的GAN网络,利用神经网 ...

  2. 悉尼大学陶大程:遗传对抗生成网络有效解决GAN两大痛点

    来源:新智元 本文共7372字,建议阅读10分钟. 本文为你整理了9月20日的AI WORLD 2018 世界人工智能峰会上陶大程教授的演讲内容. [ 导读 ]悉尼大学教授.澳大利亚科学院院士.优必选 ...

  3. 域对抗(域适应)训练

    1. 引入 在传统监督学习中,我们经常需要大量带标签的数据进行训练,并且需要保证训练集和测试集中的数据分布相似.如果训练集和测试集的数据具有不同的分布,训练后的分类器在测试集上就没有好的表现.这种情况 ...

  4. 干货!对抗深度强化学习策略的训练和理论保障

    点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 在一个两人深度强化学习任务中,最近的研究表明,攻击者可以学习一种敌对策略,这种策略会触发目标代理表现不佳,甚至以不希望的方式做出反应.然 ...

  5. 【论文阅读】PU-GAN:点云上采样的对抗生成网络

    [论文阅读]PU-GAN:点云上采样的对抗生成网络 在本文中,作者提出了一种点云上采样的对抗网络模型,那么什么是点云的上采样任务呢? 简单来说,点云上采样任务就是输入稀疏点云,输出稠密点云,同时需要保 ...

  6. 对抗生成网络学习(四)——WGAN+爬虫生成皮卡丘图像(tensorflow实现)

    一.背景 WGAN的全称为Wasserstein GAN, 是Martin Arjovsky等人于17年1月份提出的一个模型,该文章可以参考[1].WGAN针对GAN存在的问题进行了有针对性的改进,但 ...

  7. 基于自注意力的生成对抗归因网络的交通流缺失数据修复

    文章信息 <Missing Data Repairs for Traffic Flow With Self-Attention Generative Adversarial Imputation ...

  8. 网络信息安全对抗(北京邮电大学版)考点总结

    你敢酱油党,一本书一天总结考点,就这样总结出来了!!!! 作业1:通过社会工程学手段尝试获知异性同学的a)生肖b)星座c)出生日期d)生辰八字(bonus: 2分),并详述你的社会工程学攻击过程,包括 ...

  9. 什么是对抗网络,对抗网络能干什么,对抗网络简述。

    一.什么是对抗网络: 生成式对抗网络(Generative adversarial network, GAN)是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一. 二.对抗网络能干什么 ...

最新文章

  1. STL中的map、unordered_map、hash_map
  2. Apache+PHP配置过程详解
  3. 安装和配置本地maven(三)
  4. Boost:bimap双图的突变关系的测试程序
  5. android给数组添加新元素_重磅!超详细的 JS 数组方法整理出来了
  6. 实用c语言程序设计教材,实用C语言程序设计
  7. km算法c语言,KM算法最好的讲解+POJ2195[KM算法+最小费用流]
  8. jQuery 学习-样式篇(二):jQuery 对象与原生 DOM 对象
  9. python实现对指定字符串补足固定长度倍数截断输出
  10. 联想笔记本电脑换掉原装系统后无法进BIOS不完美解决办法
  11. HFSS - 印刷偶极子天线设计与仿真
  12. springboot 实现自动屏蔽敏感词过滤器
  13. 程序员该如何释放压力
  14. Excel之match index 和vlookup函数 和双条件查找匹配
  15. openmp多线程简单编程
  16. 洗衣机挂墙上?大宇这款产品天猫618增长364%的秘诀是…
  17. CardView使用详解
  18. Mysql数据库备份(一)
  19. 电子器件系列26:el 375n光耦 电气特性参数
  20. ShellNet:Efficient Point Cloud Convolutional Neural Networks using Concentric Shells Statics

热门文章

  1. uni-app学习日记5
  2. CMD命令进入指定目录
  3. 华为nova5pro怎样升级鸿蒙,必升!华为nova 5 Pro升级EMUI10正式版
  4. windows mysql增量备份_关于window下mysql数据库增量备份
  5. 「 机器人学 」“机器人定位技术”浅谈
  6. 【行人检测】行人检测综述
  7. Cmake的基础知识
  8. Mac OS 安装 fink
  9. 音频引擎为什么会推荐使用Wwise?
  10. Docker 容器下载 及 基本操作指令