域自适应学习(Domain Adaptation Learning)能够有效地解决训练样本和测试样本概率分布不一致的学习问题,是当前机器学习的热点研究领域,在自然语言处理,文本分析,生物信息学,跨语言分析,视频分析,情感分析和手写体识别等领域有广泛应用。 [1]
首先Domain Adaptation基本思想是既然源域和目标域数据分布不一样,那么就把数据都映射到一个特征空间中,在特征空间中找一个度量准则,使得源域和目标域数据的特征分布尽量接近,于是基于源域数据特征训练的判别器,就可以用到目标域数据上。
领域自适应简述
Domain Adaptation是一种源任务和目标任务一样,但是源域和目标域的数据分布不一样,并且源域有大量的标记好的样本,目标域则没有(或者只有非常少的)有标记的样本的迁移学习方法。这样就是怎么把源域上从大量的有标记样本中学习的知识迁移到目标域上,来解决相同的问题,而目标域上能利用的大多只有没有标记的样本。
这里要解释一下“数据分布不一样”是什么意思,就比如下图中(a)组是不同来源的自行车和笔记本电脑的照片,有从购物网站下载的,也有数码相机拍的生活照,也有网络上获取的照片等,它们虽然都表达自行车和笔记本电脑,但是数据分布是不同的。
比如用(b)组的门牌号数据集SVHN去训练模型,去提取SVNH和MNIST的特征,然后将其可视化到一个平面内,是下图左边的样子,蓝色点是源域(SVNH)的样本,红色的点是目标域(MNIST)的样本,也就是说直接在源域上训练得到的分类器的分类边界无法很好的区分目标域的样本。而领域自适应这种迁移学习方法想达到的效果就是下图右边这样,让源域和目标域中的样本能对齐,这样模型就能在目标域上很好的使用了。
4 DA的研究方向
在领域自适应里面也会细分出很多方向。如果源域和目标域距离太大(比如源域是文字,目标域是图像),就可能需要进程多步的迁移,将这个非常大的迁移划分成一步一步的小段迁移,这就是下图中的多步领域自适应(Multi-step DA) 通过选择合适的中间域来转换成一个个单步领域自适应(One-step DA),这样就只要去研究单步迁移怎么做。
然后单步迁移又可以根据源域和目标域数据情况可以分成同质(Homogeneous,即数据空间一样,只是数据分布不一样)和异质(Heterogeneous,数据空间都不同)两种。
H o m o g e n e o u s ⇒ X S = X T , P ( X S ) ≠ P ( X T ) H e t e r o g e n e o u s ⇒ X S ≠ X T
HomogeneousHeterogeneous⇒XS=XT, P(XS)≠P(XT)⇒XS≠XT
Homogeneous⇒XS=XT, P(XS)≠P(XT)Heterogeneous⇒XS≠XT
Homogeneous
Heterogeneous
接下来,在同质或者异质的DA中又分别可以根据目标域数据的打标签情况分为监督的、半监督的、无监督的DA。学术界研究最多的是无监督的DA,这个比较困难而且价值比较高。
5 DA方法的种类
传统的的ML方法是最小化损失:
m i n 1 n ∑ i = 1 n L ( x i , y i , θ ) min frac{1}{n} sum_{i=1}^{n} L(x_i, y_i, heta)
基于特征的自适应(Feature Adaption)是将源域样本和目标域样本用一个映射Φ PhiΦ调整到同一个特征空间,这样在这个特征空间样本能够“对齐”,这也是最常用的方法:
m i n 1 n ∑ i = 1 n L ( Φ ( x i s ) , y i s , θ ) min frac{1}{n} sum_{i=1}^{n} L(Phi(x_i^s), y_i^s, heta)
基于实例的自适应(Instance Adaption)是考虑到源域中总有一些样本和目标域样本很相似,那么就将源域的所有样本的Loss在训练时都乘以一个权重w i w_iw
i
(即表示“看重”的程度),和目标域越相似的样本,这个权重就越大:
m i n 1 n ∑ i = 1 n w i L ( x i s , y i s , θ ) min frac{1}{n} sum_{i=1}^{n} w_iL(x_i^s, y_i^s, heta)
基于模型参数的自适应(Model Adaption)是找到新的参数θ ′ heta'θ
′
,通过参数的迁移使得模型能更好的在目标域上工作:
m i n 1 n ∑ i = 1 n L ( x i s , y i s , θ ′ ) min frac{1}{n} sum_{i=1}^{n} L(x_i^s, y_i^s, heta')
如果目标域数据没有标签,就没法用Fine-Tune把目标域数据扔进去训练,这时候无监督的自适应方法就是基于特征的自适应。因为有很多能衡量源域和目标域数据的距离的数学公式,那么就能把距离计算出来嵌入到网络中作为Loss来训练,这样就能优化让这个距离逐渐变小,最终训练出来的模型就将源域和目标域就被放在一个足够近的特征空间里了。
这些衡量源域和目标域数据距离的数学公式有KL Divergence、MMD、H-divergence和Wasserstein distance等。
————————————————
版权声明:本文为CSDN博主「LauZyHou」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/SHU15121856/article/details/106874558