论文阅读《Deep Visual Domain Adaptation A Survey》

又一个简单暴力的TL

Posted by tianchen on October 18, 2019

Deep Visual Domain Adaptation: A Survey

  • 2018(后面出来的一些模型基本上也不太好实现) 北邮
  • 面对的场景:好的标注数据仍然不是很够
  • 存在问题:Distribution change (Domain Shift)-会显著降低NN的性能
    • DA(Domain Adaptation) From Source To Target
  • 分类
    • 粗分为两种
      1. Instance-Based
        • Reweight The Target Samples,and Train On It
      2. Feature-Based
        • 学习一个Shared Space,两个Dataset在该空间上是匹配的
          • 这里怎么个匹配法就是玩法了(很多都基于一些数学的性质比如Wasserstein距离,以及协方差(CORAL))
    • 经典Survey分为3种
      1. Inductive
      2. Transductive
      3. Unsupervised
    • 由于年代相对早,均考虑的是同质(homogenous)特征空间
      • 后续还有人研究heterogenous TL
      • 两者的区别是,同质的只考虑了Distribution Shift,而异质的考虑当Feature Space也不一样的时候
      • 所以同质的时候Feature Space相同且with The Same Dimension(?)
      • 这其中,根据Data Accessible 的程度不同,分为Supervised,Semi-Supervised,以及Unsupervised
    • 我们一般默认Source和Target Domain是直接Related的,这样只需要一个
      • One-Step DA
      • Multi-Step DA
    • 这些年逐渐从ML的方法(Shallow TL)比如SVM等,相对数理的方法,到全面开始炼丹(Deep TL)
  • Methods
    • 广义的Deep DA
      • 真正做的Knowledge Transfer的其实是Shallow Method(还是ML的那一套东西),NN其实只是做一个Feature Extraction或者说是做Representative Learning
    • 狭义的Deep DA
      • 都靠NN来干,embed DA Into The Learning Of The Representation
      • (端到端,更加适合我们的实际操作方式)
      • 3 Cases
          1. Discrepancy(矛盾)-Based:
            • 假设通过Finetune能够缓缓的消除两个Domain之间的Shift
            • 有4种操作方式
            • Class-Criterion: Use Class Label Information As Guide
              • 需要在Taeget Domain中有少量的数据Label主要是利用Pretrain模型对这些Label的结果,来修正模型来达到Transfer的效果
              • 当有足够多的Label的时候Soft-Label&Metric Learning
              • 当没有的时候,借助Pseudo Label
            • Statistics-Criterion:从数据的角度对齐两域的分布
              • MMD&CORAL&KL Divergence
            • Architecture-Criterion:通过修改网络的结构来学习到更Transferable的Feature
              • Adaptive BatchNorm&Domain Guided Dropout
            • Geometric-Based:更偏向从数据本身入手?
          1. Adversal-Based(对抗)
            • 构建一个Discriminator去判断数据是从Target还是Source Domain中来的,通过尝试去骗过这个Discrimnator,来Minimize两个Domain之间的区别(有一点抽象了哈)
          1. Reconstruction-Based
            • 通过重建数据来保证DA的有效性(这个假设真的成立吗???)
            • 这样可以保证确实获得了Intra-domain的Representation
            • 大部分基于Encoder-Decoder或者是GAN
        • 近几年的文章基本是靠后的,但是我们现在的情况还是更倾向于第一种的前两种Sub(相对比较Feasible一些)
    • Discrepancy-Based中的比较可行的前两种
      • Class-Criterion:
        • 还是需要一些Task Domain的Label的
        • 基本操作 (有一些是有点类似是一些Finetune的技巧了)
          1. 把新Label的GT与Pre-train Model的Softmax做为Loss训一训
            • 有的时候用到了Hinton的Soft Label(也就是KD中的Softmax with Temperature)
          2. Metric Learning
            • Semantic Alignment Loss
            • Separation Loss
          3. Attribute Classification
            • 从High Level semantic attribute入手
            • (?) Didn’t Throughly Understood (On Page 6)
            • [29] 基于Attribute做了Fine-Grain Recognition
          4. Pseudo Label
            • 以最大后验概率的原则估计出假Label
        • 思路(很明确)
        • 感觉上和我们最需要的还是不是特别一致
      • Statistic-Criterion
        • 一般从分布的角度入手,专注与学习到与Domain无关的Representation
        • MMD是一个很关键的Metric(具体定义还挺数学的,不过应该是挺普适的一个东西)有着十分深厚的数理基础,第7页还有对这个东西的数学解释,没看
          • 本质上是通过一个Kernel function将原本Data映射到一个RKHS(Reproduced Kernel Hilbert Space)
            • DANJAN,RTN(Residue Transfer Networks)
        • ⭐COROL则是学习一个(非)线性变换,将第二个Domain转化到第一个Domain
          • (相对来说最Feasible的一个了)
      • Architecture
        • Related Weight很直接很暴力
        • Adaptive BN:
          • [69] ⌛⭐认为Weight包含了区分Class的信息,而BacthNorm的信息包含了domain相关的信息,针对Target Domain做Adpative的BN,多加了一些Alignmnet params(BN中同时包含了原有的分布和新Domain的分布)
          • 后续人们发现当做了Instance Normalization之后,性能可以进一步提升
        • Domain Dropout
  • 几种训练的情况
  • 巨大的Performance表格
  • 一些比较有用的开源代码实现