0%

Transfer Learning

Transfer Learning

初步了解Transfer Learning

Matthew D. Zeiler和Rob Fergus发表了一片著名的论文, 阐述卷积神经网络到底“看”到了什么:[2]

img

和对卷积层进行简单的成像不同,他们尝试把不同的内容输入到训练好的神经网络,并观察记录卷积核的激活值。并把造成相同卷积核较大激活的内容分组比较。上面的图片中每个九宫格为同一个卷积核对不同图片的聚类。

在上面图片中可以看出,较浅层的卷积层将较为几何抽象的内容归纳到了一起。例如第一层的卷积中,基本就是边缘检测。而第二层的卷积中,聚类了相似的几何形状,尽管这些几何形状的内容相差甚远。

随着卷积层越来越深,所聚类的内容也越来越具体。

其实有个最简单易行的方式已经摆在我们面前了:如果我们把卷积神经网络的前n层保留下来,剩下不想要的砍掉怎么样?就像是我们可以不需要ct能识别狗,识别猫,但是轮廓的对我们还是很有帮助的

img

迁移学习的三个主要研究问题

  • 迁移什么
  • 如何迁移
  • 何时迁移
迁移什么

指的是跨域或跨任务迁移哪一部分知识。目前,迁移学习的内容可以分为四类:实例迁移、特征表示迁移、参数迁移、关系知识迁移

如何迁移

开发学习算法

何时迁移

指得是在什么情况下可以迁移,在哪些情况下不应该迁移。在某些情况下,当源域和目标域彼此不相关时,强行迁移可能会失败。而在最坏的情况下它甚至可能损害目标域的学习表现,这种情况下通常被称为负迁移。

迁移学习方法划分

根据源域和目标域与任务之间的不同情况,将迁移学习分为三个类别:

  • 归纳式迁移学习(Inductive Transfer Learning)

    在归纳式迁移学习中,无论源域和目标域是否相同,目标任务都与源任务不同。算法利用来自源域的归纳假设和归纳偏差帮助改进目标任务。根据源域中数据的不同情况,归纳式迁移学习进一步分为两种情况:

    • 源域中有很多带标签的数据。在这种情况下,归纳迁移学习设置类似于多任务学习设置。但是,归纳式迁移学习设置仅旨在通过迁移源任务中的只是来实现目标任务中的高性能,而多任务学习则尝试同时学习目标任务和源任务
    • 源域中没有标签数据。在这种情况下归纳学习类似于自学习。在自学习设置中,源域和目标域之间的标签空间可能不同,这意味着不能直接使用源域的信息。
  • 无监督迁移学习(Unsupervised Transfer Learning)

    在无监督迁移学习设置中,与归纳迁移学习设置类似,目标任务不同于源任务,但与源任务有关。然而,无监督学习侧重于解决目标域中的无监督学习任务,例如聚类,降维和密度估计。在这种情况下,源域和目标域中都没有可用的标签数据。

  • 直推式迁移学习(Transductive Transfer Learning)

    在直推式迁移学习设置中,源任务和目标任务是相同的,而源域和目标域是不同的。在这种情况下,目标域没有可用的标签数据,而源域中有许多可用的标签数据,另外,根据源域和目标域之间的不同情况,我们可以进一步将直推式学习设置分为两种情况:

    • 源域和目标域之间的特征空间不同
    • 源域和目标域之间的特征空间相同,但输入数据的边际概率分布不同

img