1 摘要

 当前深度模型抵御对抗攻击最有效的方式就是对抗训练,神经网络在训练的过程中通过引入对抗样本使得模型具有一定的鲁棒性。目前对抗训练的研究方向主要集中在多分类任务中的训练方式上,本文尝试借助多标签分类器来对多分类器进行对抗训练,其中多分类任务和多标签任务的区别可以从文章《多标签分类器(附pytorch代码)》中知晓。举个例子,一张人脸图片会显示很多标签信息,比如会有姓名,性别,年龄,情绪等标签信息,按照本文的想法就是首先训练出一个关于性别,年龄的多标签分类器,利用这个多标签分类器对关于姓名这个多分类器进行对抗训练。带着这个想法展开本文章的理论分析和实验验证。

2 方法介绍

2.1 多分类任务对抗样本

 给定一个样本图片x∈Rnx\in\mathbb{R}^{n}x∈Rn,对应的多分类任务的标签向量y=(y1,⋯,yc)⊤y=(y_1,\cdots,y_c)^{\top}y=(y1​,⋯,yc​)⊤,其中∑i=1cyi=1,yi∈{0,1}\sum\limits_{i=1}^c y_i=1,\quad y_i\in\{0,1\}i=1∑c​yi​=1,yi​∈{0,1}批量的样本数据xxx和对应的标签向量yyy训练一个多分类器fθf_{\theta}fθ​,且有fθ:x⟶y^f_{\theta}:x\longrightarrow \hat{y}fθ​:x⟶y^​,其中y^∈Rc\hat{y}\in \mathbb{R}^{c}y^​∈Rc是多分类任务的预测标签向量,θ\thetaθ是多分类器的参数。Lθ(⋅,⋅)L_{\theta}(\cdot,\cdot)Lθ​(⋅,⋅)是多分类器的损失函数,一般情况下Lθ(⋅,⋅)L_{\theta}(\cdot,\cdot)Lθ​(⋅,⋅)会选择多元交叉熵损失函数。干净样本xxx的对抗样本xθ′x_{\theta}^{\prime}xθ′​的计算公式为xθ′=x+α1⋅sign(∂Lθ(fθ(x),y)∂x)x^{\prime}_{\theta}=x + \alpha_1 \cdot \mathrm{sign}\left(\frac{\partial L_{\theta}(f_{\theta}(x),y)}{\partial x}\right)xθ′​=x+α1​⋅sign(∂x∂Lθ​(fθ​(x),y)​)其中sign(⋅)\mathrm{sign}(\cdot)sign(⋅)是符号函数,α1\alpha_1α1​是针对多分类器的对抗扰动的步长。

2.2 多标签任务对抗样本

 给定一个样本图片x∈Rnx\in\mathbb{R}^{n}x∈Rn,对应的多标签任务的标签向量为z=(z1,⋯,zl)⊤z=(z_1,\cdots,z_l)^{\top}z=(z1​,⋯,zl​)⊤,其中0≤∑i=1lzi≤l,zi∈{0,1}0\le\sum\limits_{i=1}^{l}z_i\le l,\quad z_i\in \{0,1\}0≤i=1∑l​zi​≤l,zi​∈{0,1}批量样本数据xxx和对应的标签向量zzz训练一个多标签分类器gφg_{\varphi}gφ​,且有gφ:x⟶z^g_{\varphi}:x\longrightarrow \hat{z}gφ​:x⟶z^,其中z^∈Rl\hat{z}\in \mathbb{R}^{l}z^∈Rl是多标签任务的预测标签向量,φ\varphiφ是多标签分类器的参数。Lφ(⋅,⋅)L_{\varphi}(\cdot,\cdot)Lφ​(⋅,⋅)是多标签分类器的损失函数,一般情况下Lφ(⋅,⋅)L_{\varphi}(\cdot,\cdot)Lφ​(⋅,⋅)会选择二元交叉熵损失函数。干净样本xxx的对抗样本xφ′x_{\varphi}^{\prime}xφ′​的计算公式为xφ′=x+α2⋅sign(∂Lφ(gφ(x),z)∂x)x^{\prime}_{\varphi}=x + \alpha_2 \cdot \mathrm{sign}\left(\frac{\partial L_{\varphi}(g_{\varphi}(x),z)}{\partial x}\right)xφ′​=x+α2​⋅sign(∂x∂Lφ​(gφ​(x),z)​)其中α2\alpha_2α2​是针对多标签分类器的对抗扰动的步长。

2.3 双分类器对抗训练

 将多分类器损失函数Lθ(⋅,⋅)L_{\theta}(\cdot,\cdot)Lθ​(⋅,⋅)和多标签分类器损失函数Lφ(⋅,⋅)L_{\varphi}(\cdot,\cdot)Lφ​(⋅,⋅)整合为L(⋅,⋅)L(\cdot,\cdot)L(⋅,⋅),则有公式L(⋅,⋅)=γ1⋅Lθ(⋅,⋅)+γ2⋅Lφ(⋅,⋅)L(\cdot,\cdot)=\gamma_1\cdot L_{\theta}(\cdot,\cdot) + \gamma_2 \cdot L_{\varphi}(\cdot,\cdot)L(⋅,⋅)=γ1​⋅Lθ​(⋅,⋅)+γ2​⋅Lφ​(⋅,⋅)其中γ1\gamma_1γ1​和γ2\gamma_2γ2​平衡洗漱。则根据损失函数LLL可得到可到对抗样本x′x^{\prime}x′,该对抗样本即可以攻击多分类器fθf_{\theta}fθ​,也可以攻击多标签分类器gφg_{\varphi}gφ​,具体的计算公式为xadv=x+α⋅sign(γ1⋅∂Lθ(fθ(x),y)∂x+γ2⋅∂Lφ(gφ(x),z)∂x)x^{adv}=x+\alpha \cdot \mathrm{sign}\left(\gamma_1 \cdot \frac{\partial L_{\theta}(f_{\theta}(x),y)}{\partial x}+ \gamma_2 \cdot \frac{\partial L_{\varphi}(g_{\varphi}(x),z)}{\partial x}\right)xadv=x+α⋅sign(γ1​⋅∂x∂Lθ​(fθ​(x),y)​+γ2​⋅∂x∂Lφ​(gφ​(x),z)​)其中α\alphaα表示的是对抗扰动的步长。利用对抗样本x′x^{\prime}x′对多分类器fθf_{\theta}fθ​进行对抗训练,具体原理示意图如下所示:

 根据以上原理示意图,双分类器对抗训练的方式可以分为如下两种

  • 第一种方式是先生成可以同时攻击多标签分类器gφg_{\varphi}gφ​和多分类器fθf_{\theta}fθ​的对抗样本xadvx^{adv}xadv,然后固定多标签分类器gφg_{\varphi}gφ​的参数φ\varphiφ,用对抗样本xadvx^{adv}xadv对多分类器fθf_\thetafθ​的参数θ\thetaθ进行对抗训练,相应的对抗训练的优化目标为min⁡θmax⁡xadvγ1⋅Lθ(fθ(xadv),y)+γ2⋅Lφ(gφ(xadv),z)⟶θ∗\min\limits_{\theta}\max\limits_{x^{adv}}\gamma_1\cdot L_{\theta}(f_{\theta}(x^{adv}),y) + \gamma_2 \cdot L_{\varphi}(g_{\varphi}(x^{adv}),z)\longrightarrow \theta^{*}θmin​xadvmax​γ1​⋅Lθ​(fθ​(xadv),y)+γ2​⋅Lφ​(gφ​(xadv),z)⟶θ∗相应的算法流程图如下所示

  • 第二种方式首先也是要生成可以同时攻击多标签分类器gφg_{\varphi}gφ​和多分类器fθf_{\theta}fθ​的对抗样本xadvx^{adv}xadv,然后用对抗样本xadvx^{adv}xadv同时对多分类器fθf_\thetafθ​的参数θ\thetaθ和多标签分类器gφg_{\varphi}gφ​的参数φ\varphiφ进行对抗训练,相应的对抗训练的优化目标为min⁡θ,φmax⁡xadvγ1⋅Lθ(fθ(xadv),y)+γ2⋅Lφ(gφ(xadv),z)⟶θ∗,φ∗\min\limits_{\theta,\varphi}\max\limits_{x^{adv}}\gamma_1\cdot L_{\theta}(f_{\theta}(x^{adv}),y) + \gamma_2 \cdot L_{\varphi}(g_{\varphi}(x^{adv}),z)\longrightarrow \theta^{*}, \varphi^{*}θ,φmin​xadvmax​γ1​⋅Lθ​(fθ​(xadv),y)+γ2​⋅Lφ​(gφ​(xadv),z)⟶θ∗,φ∗相应的算法流程图如下所示

人脸表情对抗训练

 本文利用AU\mathrm{AU}AU单元检测模型(多标签分类器)协助人脸表情识别模型(多分类器)进行对抗训练。人脸中各个AU\mathrm{AU}AU单元相关描述如下图所示

 人脸的基本表情有Angry\mathrm{Angry}Angry,Disgust\mathrm{Disgust}Disgust,Fear\mathrm{Fear}Fear,Happy\mathrm{Happy}Happy,Sad\mathrm{Sad}Sad,Surprise\mathrm{Surprise}Surprise和Comtempt\mathrm{Comtempt}Comtempt。人脸基础表情与AU\mathrm{AU}AU单元之间的关系示意图和相应的计算公式如下所示

{Happy=AU6+AU12Sad=AU1+AU4+AU5Surprise=AU1+AU2+AU5+AU6Fear=AU1+AU2+AU4+AU5+AU7+AU20+AU26Anger=AU4+AU5+AU7+AU23Disgust=AU9+AU15+AU16Contempt=AU12+AU14\left\{\begin{aligned}\mathrm{Happy}&=\mathrm{AU6}+\mathrm{AU12}\\\mathrm{Sad}&=\mathrm{AU1}+\mathrm{AU4}+\mathrm{AU5}\\\mathrm{Surprise}&=\mathrm{AU1}+\mathrm{AU2}+\mathrm{AU5}+\mathrm{AU6}\\\mathrm{Fear}&=\mathrm{AU1}+\mathrm{AU2}+\mathrm{AU4}+\mathrm{AU5}+\mathrm{AU7}+\mathrm{AU20}+\mathrm{AU26}\\\mathrm{Anger}&=\mathrm{AU4}+\mathrm{AU5}+\mathrm{AU7}+\mathrm{AU23}\\\mathrm{Disgust}&=\mathrm{AU9}+\mathrm{AU15}+\mathrm{AU16}\\ \mathrm{Contempt}&=\mathrm{AU12}+\mathrm{AU14}\end{aligned}\right.⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧​HappySadSurpriseFearAngerDisgustContempt​=AU6+AU12=AU1+AU4+AU5=AU1+AU2+AU5+AU6=AU1+AU2+AU4+AU5+AU7+AU20+AU26=AU4+AU5+AU7+AU23=AU9+AU15+AU16=AU12+AU14​

借助多标签分类器进行对抗训练相关推荐

  1. 利用对抗变化网络进行对抗训练

    1 引言  前一段时间解读了一篇发表于CVPR2021的一篇文章<Improving the Transferability of Adversarial Samples with Advers ...

  2. 对抗训练硬核分析:对抗样本与模型参数的关系

    ©PaperWeekly 原创 · 作者|孙裕道 学校|北京邮电大学博士生 研究方向|GAN图像生成.情绪对抗样本生成 引言 对抗训练是防御对抗样本一种有效的方法,但是对于它有效性的边界,一直都是很模 ...

  3. 冲击SuperGLUE:基于多任务与对抗训练的Finetune方案解析

    ©PaperWeekly 原创 · 作者|Frank Luo 单位|追一科技AI Lab研究员 研究方向|自然语言处理 前言 英文通用语言理解评测基准 GLUE [1] 自提出以来,吸引了一大批预训练 ...

  4. [Tensorflow2] 梯度反转层(GRL)与域对抗训练神经网络(DANN)的实现

    文章目录 概述 原理回顾 (可跳过) GRL 层实现 使用 GRL 的域对抗(DANN)模型实现 DANN 的使用案例 !!! 后记 概述 域对抗训练(Domain-Adversarial Train ...

  5. NLP中的对抗训练(附PyTorch实现)

    对抗样本的基本概念 要认识对抗训练,首先要了解"对抗样本",它首先出现在论文Intriguing properties of neural networks之中.简单来说,它是指对 ...

  6. 基于DRL的针对NIDS流级别对抗样本制作方法和对抗训练

    Deep Reinforcement Adversarial Learning Against Botnet Evasion Attacks 摘要简介: 在针对基于ML的网络入侵检测系统(NIDS)的 ...

  7. 以FGSM算法为例的对抗训练的实现(基于Pytorch)

    如果可以,请点个赞,这是我写博客的动力,谢谢各位观众 1. 前言 深度学习虽然发展迅速,但是由于其线性的特性,受到了对抗样本的影响,很容易造成系统功能的失效. 以图像分类为例子,对抗样本很容易使得在测 ...

  8. ACM MM最佳论文全文:通过多对抗训练,从图像生成诗歌

    雷锋网 AI 科技评论按:多媒体信息处理领域顶级学术会议 ACM MM 2018(ACM International Conference on Multimedia)于 2018 年 10 月 22 ...

  9. Robert+Prompt+对比学习+对抗训练文本分类

    基于Robert的文本分类任务,在此基础上考虑融合对比学习.Prompt和对抗训练来提升模型的文本分类能力,我本地有SST-2数据集的train.txt.dev.txt两个文件,每个文件包含文本内容和 ...

最新文章

  1. MySQL Cluster 日常维护
  2. PHP之PHP文件引用详解
  3. QT的QJSValue类的使用
  4. Form的is_valid校验规则及验证顺序
  5. 第一百零七期:她说,嫁人就选程序员!
  6. 将iphone中的照片同步到电脑
  7. 2021下半年 自编译最新稳定版 裴讯 Phicomm K2 Openwrt 固件
  8. Eclipse ADT 进行android应用签名打包详解
  9. 五分钟上手ECharts教程
  10. 深度学习实战 第7章循环神经网络笔记
  11. 电脑开关电源维修图解
  12. Strom和Trident
  13. 2022暑初二信息竞赛学习成果分享2
  14. 记录MEMORY_MANAGEMENT蓝屏解决过程
  15. JavaScript关于exec()函数的理解
  16. 海思HI3516板子初体验
  17. 朴素贝叶斯算法及其实战
  18. 生物信息学中重要的评价竞赛
  19. node爬取网易云歌曲
  20. Windows server 2022安装与激活

热门文章

  1. 震惊!谁上春晚最多?我用 Python 分析过往 39 届央视春晚的数据
  2. 图片处理Photoshop快速给偏暗的圣诞美女美白
  3. 掉钱眼儿是app真的吗?掉钱眼儿怎么激活?掉钱眼儿官方下载最新最全教程
  4. 转 -- 驾驭你的“职场布朗运动”
  5. 【Spring Data JPA自学笔记五】一对多、多对多和级联
  6. 廖雪峰老师Python教程读后笔记
  7. N皇后(Java完整代码+最简单直观解析)
  8. 论文计算机的教学方法,职业院校计算机教育教学方法初探论文
  9. Java return语句
  10. [Error Code: 942, SQL State: 42000] ORA-00942: 表或视图不存在