C. 人工智能 — 迁移学习 - Domain Adaptation
概述
- 概念
- 不同的数据分布,但是相同的任务
- 难点
- 源域和目标域 的特征空间,映射到同一个分布
- 领域迁移
- 第一种:训练数据和测试数据不一样
- 第二种:输出的发布发生变化
- 第三种:输出的关系(标签)发生变化
- Target Domain 的数据完备程度
- 数据很多,并且都有标签
- 直接使用分类算法
- 数据很少,但是都打了标签
- 避免 过拟合
- 控制 epoch 次数
- 调整 Learning rate
- 避免 过拟合
- 数据量大,但是没有标注
- 数据很多,并且都有标签
具体实现
- Discrepancy-based methods(基于统计)
- 原理
- 两个 Domain 之间,通过统计的方法映射分布
- 算法
- Deep Domain Confusion(MMD)
- 单层MMD
- Single adaption layer
- Deep Adapation Newords
- 多层MMD
- Multiple adaption layer
- CORAL,CMD
- Deep Domain Confusion(MMD)
- 原理
- Adversarial-based methods(GAN)
- 原理
- 通过Domain Classifier,搞混两个Domain 的特征空间,意味着这个特征空间既能表达 Target,也能表达Source
- 算法
- Simultaneous Deep Transfer Across Domains and Tasks
- 应用场景
- 源数据,有标签
- 目标数据,只有少量标签
- 原理
- Maximum Domain Confusion
- 第一步:固定特征提取模型的参数,训练一个 Domain Classifier
- 第二步:固定Domain Classifier参数,训练特征提取模型,使之能够混淆Domain Classifier
- 以上两步相互交替
- Transfer Label Correlation
- 第一步:源数据的同一类的所有概率分布取平均值
- 第二步:目标数据的对应类的概率分布,尽量向源数据靠拢
- Maximum Domain Confusion
- 应用场景
- Domain Adversarial Training of Neural Networks(DNN)
- 应用场景
- 源数据,有标签
- 目标数据,没有标签
- 原理
- Feature Extractor
- Label Predictor
- Domain Classifier
- 优化
- 训练数据的 Boundary 离 测试数据越远越好
- Source Domain 和 Target Domain 类别有可能不一样
- Universal domain adaptation
- 应用场景
- PixelDA
- 应用场景
- 源数据,有标签
- 目标数据,没有标签
- 原理
- Generator G
- 输入
- 源域的图片
- 噪音
- 输出
- 目标域的图片
- 输入
- Discriminator D:辨别是生成的数据,还是目标数据
- 输入
- 目标域的图片
- 生成的目标域的图片
- 输出
- 是生成的,还是原始的
- 输入
- Classifier T
- 输入
- 源域的图片
- 生成的目标域的图片
- 输出
- 类别
- 输入
- Generator G
- 应用场景
- Testing Time Training(TTT)
- 应用场景
- 源数据,有标签
- 目标数据很少(比如说只有一张),并且没有标签
- 应用场景
- 如果Target Domain 没有任何数据
- Domain Generalization,两种情况:
- 第一种情况
- 训练数据
- 多个Domain的数据,比如说多种风格的 猫狗 图片
- 处理
- 磨平多个Domain之间的特性,提取主要特征
- 测试数据
- 只有一种Domain,比如说 猫狗
- 训练数据
- 第二种情况
- 训练数据
- 只有一个Domain的资料
- 处理
- 想办法生成多个Domain的资料
- 测试数据
- 多个Domain 的资料
- 训练数据
- 第一种情况
- Domain Generalization,两种情况:
- Simultaneous Deep Transfer Across Domains and Tasks
- 原理
- Reconstruction-based methods
- 原理
- 一般用于辅助
- 通过 Encoder - Decoder 模型,构建特征空间
- 算法
- Deep Separation Networks
- 应用场景
- 源数据,有标签
- 目标数据,没有标签
- 原理
- Encoder(3个)
- Target 和 Source 私有的 Encoder 各一个
- Target 和 Source 共享的Encoder 一个
- 目标
- 同一个Domain的两个Encoder差异越大越好
- 共享的Encoder,差异越小越好
- Generator
- 生成原始的图片
- Encoder(3个)
- 应用场景
- Deep Separation Networks
- 原理
应用场景
- Image to Image Translation
- UNIT
- MUNIT
- Semantic Segmentation
- AdaptSegNet
- CBST
- Person Re-ID
- SPGAN
- ECN