我是靠谱客的博主 幸福仙人掌,最近开发中收集的这篇文章主要介绍迁移学习与域自适应,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

    • 1 摘要
    • 2 思路
      • 2.1 Question:
      • 2.2 理论公式
      • 2.3 任务场景
        • 2.3.1 同样的域,不同任务
        • 2.3.2 同样任务,不同的域
    • 3 总结
    • 附录

1 摘要

  • 本文会介绍迁移学习与域自适应的具体区别
  • 首先,解答一个问题:如果说两个image服从同一种分布,到底是什么意思?
  • 之后通过数学理论公式,严谨的将迁移学习与域自适应区分开来,并介绍两者相应的应用场景。
  • 坚持看下去,我会讲清楚,我也相信你会有所收获。

2 思路

2.1 Question:

  • 如果说两个image服从同一种分布,到底是什么意思?

Answer:

  • 该问题在 AI或机器学习 中经常出现,动辄要求输入图像数据独立同分布。what the fuck?自己没说我怎么知道同分布什么意思?基础概念没懂,它的一些相关公式也就稀里糊涂地理解,学起来真的难。深有感触的评论区扣 “ 确实!”。

  • 首先,我们必须了解一张图片可以通过其像素值表示出来。例如,一张256*256的灰度图可以通过65536维的向量,每个维度值的范围是0-255,来表示出来。

  • 想象一下,65536维的向量服从均匀分布 x ∼ U [ 0 , 255 ] 65536 x∼U[0,255]^{65536} xU[0,255]65536 ,它的图像该是什么样。如果我们将这样一种随机采样得到的向量解释为图像,你觉得我们看到一张脸的可能性大吗?当然不可能,实际上你会看到如下的噪音图。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UyE33k6B-1628828549569)(https://i.stack.imgur.com/vlEte.png)]

  • 为什么你知道你看到的不是一张脸?没错,因为你知道一张脸不是由均匀分布的像素组成。换句话说,因为你直觉地知道一张脸的像素值构成的向量,分布不服从 x ∼ U [ 0 , 255 ] 65536 x∼U[0,255]^{65536} xU[0,255]65536 ,而是有另外的一种分布。

  • 因此,我们说两个image服从同一种分布。其实就是将它们转化为向量后,该向量服从某一种分布。如下图,直觉上你自然地知道mnist和mnist-m分布不同,但是其内部图像服从同一分布。解释完毕,还有不懂评论区留言。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-msv6CDfN-1628828549571)(https://nbviewer.jupyter.org/github/vistalab-technion/cs236605-tutorials/blob/master/tutorial6/img/mnist_m.png)]

2.2 理论公式

假设我们数据集中有 N N N个图像 { ( x i , y i ) } i = 1 N left{(x^i,y^i)right}_{i=1}^N {(xi,yi)}i=1N ,其中:

  • x i = ( x 1 i , … , x D i ) ∈ X x^i = left(x^i_1, dots, x^i_Dright) in mathcal{X} xi=(x1i,,xDi)X 是image, D D D 是image的维度
  • y i ∈ Y y^i in mathcal{Y} yiY 是标签
  • 标签 C C C 个类别, Y = { 0 , … , C − 1 } mathcal{Y} = {0,dots,C-1} Y={0,,C1} ,因此 y i y^i yi 是类别标签
  • X , Y mathcal{X},mathcal{Y} X,Y 分别是image spacelabel space。作为一个分类任务,我们需要做的就是从数据中学习 P ( Y ∣ X ) P(Y|X) P(YX) (给定数据X,其分类成Y的概率)

Finally:

  • D {mathcal{D}} D 被定义为 D = { X , P ( X ) } mathcal{D}=left{mathcal{X},P(X)right} D={X,P(X)} (可以理解为数据集)
  • 学习任务 T mathcal{T} T 被定义 T = { Y , P ( Y ∣ X ) } mathcal{T}={mathcal{Y},P(Y|X)} T={Y,P(YX)} (可以理解为数据集分类任务)

Definition:

给定:

  • 源域 D S mathcal{D}_S DS 和学习任务 T S mathcal{T}_S TS (大白话:训练集和训练集分类任务)
  • 目标域 D T mathcal{D}_T DT 和学习任务 T T mathcal{T}_T TT (大白话:测试集和测试集任务)

迁移学习目标是通过利用 D S mathcal{D}_S DS T S mathcal{T}_S TS 的信息来提升目标域的学习任务 T T mathcal{T}_T TT ,此时

  • D S ≠ D T mathcal{D}_S neq mathcal{D}_T DS=DT, or
  • T S ≠ T T mathcal{T}_S neq mathcal{T}_T TS=TT

也就是说,迁移学习的范畴很大。源域可以与目标域数据不同,源域与目标域任务也能不同。如下举例:

2.3 任务场景

2.3.1 同样的域,不同任务

Case1:标签空间 label space 不同, Y S ≠ Y T mathcal{Y}_S neq mathcal{Y}_T YS=YT

例如:标签空间的类别数量不同

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-09LJKngp-1628828549573)(C:Users刘志远AppDataLocalTemp1628826393498.png)]

Case2:标签的条件分布不同, P ( Y S ∣ X S ) ≠ P ( Y T ∣ X T ) P(Y_S|X_S)neq P(Y_T|X_T) P(YSXS)=P(YTXT)

源域与目标域的标签分布不同,例如可能源域为1的图片很多;目标域为2的图片很多,类别不平衡。

2.3.2 同样任务,不同的域

Case1:源域与目标域图像空间 image space 不同, X S ≠ X T mathcal{X}_S neq mathcal{X}_T XS=XT

例如, X S mathcal{X}_S XS 是灰度图像空间, X T mathcal{X}_T XT 是彩色图像空间

Case2:源域与目标域图像空间的数据分布不同, P ( X S ) ≠ P ( X T ) P(X_S)neq P(X_T) P(XS)=P(XT)

例如:源域包含手绘图像,目标域则是机器拍的图像

关键来了,这个常见的场景又称之为域自适应 domain adaptation

由此可见:

迁移学习涉及范畴很大,包括如上全部。但如果仅仅只是源域与目标域图像空间的数据分布不同,那就属于域自适应的范畴。也就是说, D o m a i n    A d a p t a t i o n ∈ T r a n s f e r    L e a r n i n g Domain; Adaptation in Transfer;Learning DomainAdaptationTransferLearning

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uaEec5Td-1628828549575)(C:Users刘志远AppDataLocalTemp1628827569381.png)]

3 总结

  • 迁移学习范畴很大,不管源域与目标域,源域学习任务与目标域学习任务相不相同,都属于迁移学习的范畴
  • 但如果仅仅只是源域与目标域图像空间的数据分布不同,那就属于域自适应的范畴。当然, D o m a i n    A d a p t a t i o n ∈ T r a n s f e r    L e a r n i n g Domain; Adaptation in Transfer;Learning DomainAdaptationTransferLearning ,也能说是迁移学习范畴啦。
  • 这篇文章算是科普 ”什么是迁移学习与域自适应?“。后续也会出内容的相关代码实现。

附录

参考资料:

https://nbviewer.jupyter.org/github/vistalab-technion/cs236605-tutorials/blob/master/tutorial6/tutorial6-TL_DA.ipynb#CS236605:-Deep-Learning

最后

以上就是幸福仙人掌为你收集整理的迁移学习与域自适应的全部内容,希望文章能够帮你解决迁移学习与域自适应所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部