本篇文章是对文章Generalizing to Unseen Domains: A Survey on
Domain Generalization的研读介绍,旨在对域泛化(domain generalization)领域研究现状有粗略了解,考虑将该领域的一些研究思想迁移到故障检测/溯源/软测量等任务上去。
出发点
现有算法面临的挑战
传统的机器学习算法的泛化能力依赖于训练域与测试域的独立同分布(i.i.d)假设,而在现实数据中,这样的假设往往无法得到满足。目的
如果我们已经拥有了一个/多个域的数据,希望让训练得到的模型在未知域上仍能有良好的泛化能力。
问题数学描述
domain: 记$\mathcal{X}$为非空的输入空间,$\mathcal{Y}$为输出空间,输入输出之间的关系通过联合概率分布$P{XY}$来描述,域则由从该分布中采样得到的样本组成$S = {(x_i,y_i)}{i=1}^n \sim P_{XY}$。
domain generalization: 在域泛化任务中,我们有$M$个训练/源域的数据
不同域的数据具有不同的联合概率分布,即$P{XY}^i \neq P{XY}^j $;域泛化的目标是学习到一个鲁棒且可泛化的预测方程$h: \mathcal{X} \rightarrow \mathcal{Y}$, 该模型在未知域$S_{test}$上的预测误差要尽可能小:
相关研究领域介绍
- 多任务学习(Multi-task learning): 在多个任务上联合优化模型,目的是为了提高模型在原始任务上的泛化能力,多域学习(multi-domain learning)可以看作多任务学习的一种特例。
- 迁移学习(Transfer learning): 在源任务/域上训练得到模型,目的在于提高模型在目标任务/域上的性能,迁移学习最广泛的应用就是预训练模型+微调的范式,与域泛化的区别在于迁移学习中目标域的数据是可获取的。
- 域适应(domain adaptation): 该领域可以看作是迁移学习的一个分支,也是需要能够获取目标域的数据。
- 元学习(Meta-learning): 学习学习算法,即learning to learn, 元学习是一种通用的学习策略可以用于实现域泛化。
- 终身学习/持续学习: 随着任务/数据域的不断更新,模型需要不断利用新的知识来更新模型参数。
- 零样本学习(Zero-shot learning): 利用已有类别的数据学习模型,对新类别的样本仍能分辨出来。
方法分类
目前域泛化的方法可以分为三类:
- 数据操纵: 基本思路是提高训练数据的涵盖范围,常用的思路有两个:
- 数据扩充: 数据扩展/随机变换
- 数据生成: 生成更具多样性的样本
- 表征学习: 基本思想是学习到一些稳定的特征,可细分为两个方向:
- 域不变表征学习
- 特征解偶
- 学习策略: 探索一般性的学习策略以提升模型泛化能力,常用思路有:
- 集成学习
- 元学习
- 梯度操作
- 分布鲁棒优化
- 自监督学习
数据操纵(data manipulation)
提高训练数据的多样性,数据增强的有效性在于增强过后的数据未来有可能出现在测试域中,能否考虑应用一些机理知识来进行数据增强,类似于反事实的概念。
基于数据扩充的域泛化
常用的数据扩充操作有翻转、旋转、裁剪、添加噪声等
- 域随机化: 改变目标大小/位置/光线/随机噪声
- 对抗数据增广: 实现有效数据增广,同标签,沿差异大的方向扩充样本
基于数据生成的域泛化
一般是通过VAE或者GAN来实现数据增强
表征学习
将预测方程$h$拆分未$h = f \cdot g$, 表征学习的目标为:
基于域不变性表征学习的域泛化
理论保证: 如果不同数据域的表征相同,那么说明该表征具有一般性并且可以迁移到其他域,在该表征函数下,源域的数据和目标域的数据更接近了,使得泛化误差上界更紧。
- 基于核的方法(Kernel-based methods): 将原始数据映射到高维空间,通过核函数可以在不知道样本高维坐标情况下计算两样本内积,将不同域样本映射到高维空间,分布一致。
- 域对抗学习(Domain adversarial learning): 判别器来识别数据属于不同域,生成器用来学习不变表征让判别器分辨不出来。
- 显式特征对齐(Explicit feature alignment): 在学习的过程显式让特征对齐
- 不变风险最小化(Invariant risk minimization):
基于特征解耦的域泛化
将原始数据投影到特征空间,将特征分为domain-shared feature 和 domain-specific feature, 目标函数一般为如下形式:
- 多成分分析: 用不同的特征提取器来提取数据中的不同成分
- 生成模型: Domain-invariant VAE
- 因果启发的方法:
学习策略
基于集成学习的域泛化
每个域都有一个模型,结合输出结果
基于元学习的域泛化
元学习的关键思想是从多个任务中学习一个通用的模型
基于梯度操作的域泛化
self-challenging训练算法
基于分布鲁棒优化的方法
基于自监督学习的域泛化
其他的研究方向
- 单源域泛化
- 半监督域泛化
- 域泛化的联邦学习
域泛化的应用
我的想法
通过域对抗训练的方式使得模型能够提取出与模态解耦的中介变量
现有研究进展:
- 源域数据+标签均可见,目标域仅有数据
- 局限在视觉领域
- 视觉领域是否有已将该工作迁移到未知域上,已经有了2019cvpr
- 衡量分布差异: 最大平均偏差(MMD),将特征映射到高维空间,然后用在高维空间的一阶矩来度量两个分布的差异。
可以有的创新方向:
- 应用创新,在故障诊断领域还没这么搞得,同时可以结合之前的因果框架,提取出的中介变量更具说服力。
- 将有标签数据与无标签数据混用,有模态标签,但无故障标签,在实际中也是常见的场景
- 结合时序数据的一些特点
论文复现
将domain-adversarial training of neural network论文结果在TEP上运行了一下,模型训练不收敛。