首页 > 其他分享 >论文解读(TAT)《 Transferable Adversarial Training: A General Approach to Adapting Deep Classifiers》

论文解读(TAT)《 Transferable Adversarial Training: A General Approach to Adapting Deep Classifiers》

时间:2023-08-12 16:00:12浏览次数:44  
标签:TAT Adapting Training right mathbf ell theta quad left

Note:[ wechat:Y466551 | 可加勿骚扰,付费咨询 ]

论文信息

论文标题:Transferable Adversarial Training: A General Approach to Adapting Deep Classifiers
论文作者:Hong Liu, Mingsheng Long, Jianmin Wang, Michael I. Jordan
论文来源:ICML 2019
论文地址:download 
论文代码:download 

1 Introduction

  出发点:当使用对抗性训练的时候,因为抑制领域特定的变化时,会扭曲原始的特征分布;

  事实:

  

  Figure2(b):

    • 使用源域和目标域的标记数据做测试,对比了使用对抗性训练(DANN、MCD)和监督训练(EestNet50)的测试误差;
    • 结论:使用对抗性训练,减少特定领域的变化不可避免地打破了原始表示的判别结构;

  Figure2(c):

    • 计算特征表示层模型权重的奇异值分布;
    • 结论:使用对抗性训练的奇异值分布更加重尾,表示产生了扭曲的特征表示;

2 方法

2.1 模型框架

  

2.2 Adversarial Generation of Transferable Examples

  现有的对抗性域适应方法,用 $f = F (x)$ 表示特征提取器,用 $d = D (f)$ 表示域鉴别器:

 

  现有的对抗性特征自适应方法通过学习领域不变表示来减少特定领域的变化。。$D$ 和 $F$ 形成一个双人极大极小博弈:$D$ 训练区分源和目标,而 $F$ 同时训练混淆 $D$。然而,这样种过程可能会恶化适应性。为保证适应性,本文提出修复特征表示,并生成可转移的例子来弥合域差距。具体地说,仍然训练域鉴别器 $D$ 通过以下损失函数来区分源域和目标域:

    $\begin{aligned}\ell_{d}\left(\theta_{D}, \mathbf{f}\right)= & -\frac{1}{n_{s}} \sum_{i=1}^{n_{s}} \log \left[D\left(\mathbf{f}_{s}^{(i)}\right)\right] \\& -\frac{1}{n_{t}} \sum_{i=1}^{n_{t}} \log \left[1-D\left(\mathbf{f}_{t}^{(i)}\right)\right] .\end{aligned}   \quad\quad(1)$

  分类器 $C$ 通过源域样本监督训练:

    $\ell_{c}\left(\theta_{C}, \mathbf{f}\right)=\frac{1}{n_{s}} \sum_{i=1}^{n_{s}} \ell_{c e}\left(C\left(\mathbf{f}_{s}^{(i)}\right), \mathbf{y}_{s}^{(i)}\right) \quad\quad(2)$

  与现有的对抗性训练方法不同,本文通过在一种新的对抗性训练范式中生成的可转移样本来填补源域和目标域之间的差距,从而减少分布变化。

  生成的可转移样本需要满足两个条件:

    • 首先,可转移的样本应该有效地混淆域鉴别器 $D$,从而填补域间隙,桥接源域和目标域;
    • 其次,可转移的样本应该能够欺骗类别分类器 $C$,这样它们就可以推动决策边界远离数据点;

  因此,可转移的样本是通过 $\ell_{c}$ 和 $\ell_{d}$ 的联合损失而反向生成的:

    $\begin{aligned}\mathbf{f}_{t^{k+1}} \leftarrow \mathbf{f}_{t^{k}} & +\beta \nabla_{\mathbf{f}_{t^{k}}} \ell_{d}\left(\theta_{D}, \mathbf{f}_{t^{k}}\right) \\& -\gamma \nabla_{\mathbf{f}_{t^{k}}} \ell_{2}\left(\mathbf{f}_{t^{k}}, \mathbf{f}_{t^{0}}\right) \\\end{aligned} \quad\quad(3)$

    $\begin{aligned}\mathbf{f}_{s^{k+1}} \leftarrow \mathbf{f}_{s^{k}} & +\beta \nabla_{\mathbf{f}_{s}} \ell_{d}\left(\theta_{D}, \mathbf{f}_{s^{k}}\right) \\& -\gamma \nabla_{\mathbf{f}_{s}} \ell_{2}\left(\mathbf{f}_{s^{k}}, \mathbf{f}_{s^{0}}\right) \\& +\beta \nabla_{\mathbf{f}_{s k}} \ell_{c}\left(\theta_{C}, \mathbf{f}_{s^{k}}\right)\end{aligned} \quad\quad(4)$

  其中,$\mathbf{f}_{t^{0}}=\mathbf{f}_{t}, \mathbf{f}_{s^{0}}=\mathbf{f}_{s}, \mathbf{f}_{t *}=\mathbf{f}_{t^{K}}, \mathbf{f}_{s *}=\mathbf{f}_{s^{K}}$。

  此外,为避免生成的样本的发散,控制生成的样本与原始样本之间的 $\ell_{2}$-距离。

2.3 Adversarial Training with Transferable Examples

  目标是使类别分类器 $C$ 对域分布转移的鲁棒性。用可转移的样本训练类分类器可以解释为提高了分类器的先验分布对对抗性扰动和域变化的鲁棒性。

  因此,对类别分类器 $C$ 的对抗性训练的损失函数表述如下:
    $\begin{aligned}\ell_{c, a d v}\left(\theta_{C}, \mathbf{f}_{*}\right) & =\frac{1}{n_{s}} \sum_{i=1}^{n_{s}} \ell_{c e}\left(C\left(\mathbf{f}_{s *}^{(i)}\right), \mathbf{y}_{s *}^{(i)}\right) \\& +\frac{1}{n_{t}} \sum_{i=1}^{n_{t}}\left|C\left(\left(\mathbf{f}_{t *}^{(i)}\right)\right)-C\left(\left(\mathbf{f}_{t}^{(i)}\right)\right)\right|\end{aligned} \quad\quad(5)$

  与训练类别分类器类似,也用生成的可转移的例子来训练域鉴别器。这对于稳定对抗性训练过程很重要,否则生成的可转移的例子就会出现分歧。另一个关键的观点是利用这些可转移的例子来弥合领域上的差异。简单地在原始数据上欺骗域鉴别器并不能保证生成的示例可以从一个域转移到另一个域。因此,建议反向训练域鉴别器,以进一步区分可转移的例子从源和目标,使用以下损失:

    $\begin{aligned}\ell_{d, a d v}\left(\theta_{D}, \mathbf{f}_{*}\right)= & -\frac{1}{n_{s}} \sum_{i=1}^{n_{s}} \log \left[D\left(\mathbf{f}_{s *}^{(i)}\right)\right] \\& -\frac{1}{n_{t}} \sum_{i=1}^{n_{t}} \log \left[1-D\left(\mathbf{f}_{t *}^{(i)}\right)\right]\end{aligned} \quad\quad(6)$

  我们共同最小化误差(1)和误差(6)来训练 $D$,最小化误差(2)和误差(5) 来训练 $C$,训练目标:

    $\begin{array}{l}\underset{\theta_{D}, \theta_{C}}{\text{min}}\;\;\ell_{d}\left(\theta_{D}, \mathbf{f}\right)+\ell_{c}\left(\theta_{C}, \mathbf{f}\right) +\ell_{d, a d v}\left(\theta_{D}, \mathbf{f}_{*}\right)+\ell_{c, a d v}\left(\theta_{C}, \mathbf{f}_{*}\right) \end{array} \quad\quad(7)$

3 实验

  

  

标签:TAT,Adapting,Training,right,mathbf,ell,theta,quad,left
From: https://www.cnblogs.com/BlairGrowing/p/17624387.html

相关文章

  • [ABC309G] - Ban Permutation 题解
    [ABC309G]-BanPermutation题解题目描述求长为\(N(N\leq100)\)且满足以下条件的排列\(P=(P_1,P_2,...,P_N)\)的个数,模\(998244353\):\(\forall1\leqi\leqN\),\(|P_i-i|\geqX(X\leq5)\)。思路首先拆绝对值,得到:\[P_i\geX+i\veeP_i\leX-i\]数数题除了排列......
  • VMware Workstation安装MacOS 13
    1.软件的下载与安装①VMwareWorkstation17.0.0(Windows10及以上)下载链接https://www.123pan.com/s/e7LDVv-3lFmH.html激活码:(见文中)(仅供个人学习与交流,请支持正版!)若不支持请更换其他版本VMwareWorkstation16.2.4下载链接https://www.123pan.com/s/e7LDVv-9lFmH.html激活......
  • 谷粒商城报错:java.lang.IllegalStateException: Failed to load property source from
    遇到这种问题如果检查了配置文件没有出错可以尝试打开target文件,去找配置文件,查看是否为空或者中文乱码,一般情况下删除中文注释就可以,因为这个文件的编码格式是GBK,项目的编码格式是UTF-8,注释乱码,导致编译失败。还有另一种做法就是更改编码。......
  • The MySQL server is running with the LOCK_WRITE_GROWTH option so it cannot execu
    然后百度参考:TheMySQLserverisrunningwiththeLOCK_WRITE_GROWTHoptionsoitcannotexecutethisstatement_冰尘s1的博客-CSDN博客mysql报错TheMySQLserverisrunningwiththeLOCK_WRITE_GROWTHoptionsoitcannotexecutethisstatem_言默夜雨的博客-CSDN博客......
  • 反混淆VMProtect.NET之Mutation
    title:反混淆VMProtect.NET之Mutationdate:2019-08-09updated:2023-04-11lang:zh-CNcategories:-[.NET逆向]tags:-.NET-逆向工程-脱壳-VMProtect-变异toc:true文章首发于https://wwh1004.com/deobfuscating-mutation-of-vmprotect_net/本文介绍了VMPro......
  • mysql Statement接口
    Statement接口是Java执行数据库操作的一个重要接口,用于在已经建立数据库连接的基础上,向数据库发送要执行的SQL语句。java.sql.Statement接口用于执行静态的SQL语句并返回执行结果。在默认情况下,同一时间每个Statement接口只能打开一个ResultSet对象。因此,如果读取一个ResultSet......
  • Stata广义矩量法GMM面板向量自回归PVAR模型选择、估计、Granger因果检验分析投资、收
    原文链接:http://tecdat.cn/?p=24016原文出处:拓端数据部落公众号摘要最近我们被要求撰写关于广义矩量法GMM的研究报告,包括一些图形和统计输出。面板向量自回归(VAR)模型在应用研究中的应用越来越多。虽然专门用于估计时间序列VAR模型的程序通常作为标准功能包含在大多数统计软件......
  • dimp V8:[WARNING]login fail, check your username and password, and check the serv
    在进行某个项目的性能测试时,我们选择了达梦8作为使用的数据库。前期是在一台功能测试环境的达梦数据库服务上创建用于压力测试的业务数据。后续将数据库导出,并导入一台专门做性能测试的高性能服务器(部署同样版本的达梦8),执行数据库文件导入操作时遇到了问题。以下是出现的错误......
  • Ajax传参,data与dataType
     在使用Ajax向后端传递数据时,你可以使用多种数据类型。在Ajax的dataType参数中,你可以指定以下几种常用的数据类型:"text":这是默认值,表示返回的数据将被视为纯文本字符串。"json":表示返回的数据将被视为JSON格式的数据。在前端代码中,你可以使用JSON.parse()将返回的数据转......
  • Unity的UnityStats: 属性详解与实用案例
    UnityStats属性详解UnityStats是Unity引擎提供的一个用于监测游戏性能的工具,它提供了一系列的属性值,可以帮助开发者解游戏的运行情况,从而进行优化。本文将详细介绍UnityStats的每个属性值,并提供多个使用例子帮助开发者更好地使用UnityStats。帧率相关属性UnityStats.fps......