分享

基于模型的迁移学习

 文明世界拼图 2022-11-02 发布于重庆

一. 迁移学习的两大分类方式

有两种主流的分类方式:

  1. 基于特征和标签空间的分组(同构 v.s 异构)

同构的迁移学习:两个任务具有重叠的特征空间,和相同的标签空间

同构的迁移学习

异构的迁移学习:两个任务具有不重合的特征空间,和不同的标签空间

异构的迁移学习

2. 基于任务和领域的差异进行分组(根据 Ds 和 Dt, Ts 和 Dt 的关系分为四种):

Ds = Dt:相同的源域和目标域

  • Ts = Tt:普通的学习问题
  • Ts ≠ Tt:归纳性迁移学习(又称任务迁移学习)

Ds ≠ Dt:不同的源域和目标域

  • Ts = Tt:传导性迁移学习(又称领域适应)
  • Ts ≠ Tt:无监督/混合转移学习,联合分布式领域适应

上述两种分类的图示

二. 迁移学习的三大范式

这是回答了一个 How to transfer 的问题。

  • 第一种:基于模型的迁移学习
    • 共享模型或者参数,适用于大多数 task transfer 的情况

基于模型的迁移学习,共享原任务的部分模型或参数

  • 第二种:基于实例的迁移学习
    • 给原模型的实例分配权重,主要适用于 domain adaptation 的任务

基于实例的迁移学习,共享部分实例

  • 第三种:基于特征的迁移学习
    • 学习和域无关的表征,既适用于 task transfer,也适用于 domain adaptation。

学习和域无关的表征

今天我们学习的是第一大类:model-based transfer learning。

二.基于模型的迁移学习

假设:源任务和目标任务在模型层面有共同的知识。

1. 什么样的模型信息适用:

  • 模型参数。θ,比如 fine-tuning,或通过参数正则化进行迁移学习
  • 数据的先验分布。比如迁移高斯过程,模型蒸馏,通过迁移模型的组件迁移学习
  • 多数情况下用于任务迁移学习,也就是同域下的不同任务(Ds = Dt,Ts ≠ Tt)
  • 可以分享多任务学习中的相似性

2. 两种 Model-based 的方法:

第一种:通过正则化迁移

  • 基于 SVM 的正则化
  • 基于 Neural Network 的 fine-tuning

什么是参数正则化呢?正则化增加了关于模型参数的先验性息来避免过拟合。下图是经典的 L2-regularization 的示例:

L2-regularization 示例

那还有什么别的正则化函数呢?

  • 类似 L2的 norm penalty regularization 还有很多种,比如 L1, ..., Lp;
  • 还有 gradient penalty ;
  • 还有 Laplacian regularization,基于 graph 中的拉普拉斯矩阵。

下面,我们举一个简单的例子来展示基于模型迁移学习的概念:

假设如果我们想分开红色圆和蓝色三角形,源任务我们会这样划分:

但是如果目标任务的数据量很小,但我们还想按照 source task 的方式划分,就会得到错误的划分方式:

由于数据量不足,会导致右边错误的划分方式

而经过迁移学习,我们有希望获得矫正,得到正确的划分方法:

迁移学习后,有望得到正确的划分方式

3. 基于 SVM 正则化的迁移

不同 Kernel 下的 SVM

想要学习原来任务的分类结果,怎么做呢?

Kernel-based 模型迁移的 SVM 方法

稍微改变 SVM 的损失函数,从而让模型拟合时更加接近于 pre-trained 的那个模型。

让我们展开这个额外惩罚项的公式:

展开公式中的第一部分,也是核心部分

可以看出,正则化的部分由三部分组成:

  • 第一部分是目标任务自带的正则项,经典 SVM 里的项;
  • 第二部分是目标任务自带的正则项乘以系数,但是固定的,模型无法训练;
  • 第三部分则是 w 和 ws 得越好,越小越好

也就是说,上述的三部分合在一起,等同于最大化 wt 和 ws 的相似度!越相似越好。

拓展:如果我们有多个源模型呢?

那可以在核心项里做加权求和。

迁移效果如何呢?让我们在图像分类的任务上试试看。

我们比较四种方式:

  • 不迁移,β = 0
  • 迁移单个 source 模型
  • 迁移多个 source 模型,相同权重
  • 迁移多个 source 模型,不同权重

数据集:Caltech-256 数据集,包含了很多类的图片

Caltech-256 数据集

10个混合类,一起训练会怎么样?狗狗,马,直升机,摩托车,仙人掌,大鹅……

效果如何呢?

非常显著!

迁移有效!

并且迁移多个 source model 的表现最好!

4. 基于 NN Fine Tuning的迁移

下面我们学习一种更摩登的方式:

基于继承原模型神经网络已经训练好的前若干层,做迁移:

基于 NN Fine Tuning的迁移

问题是,到底分享继承多少层呢?

有研究做了实验,发现共享网络太多,会负向影响目标任务上的效果。

数据集:ImageNet

Yosinski, Jason et al. How transferable are features in DNN

该研究还绘制了图来说明,co-adaptation 会导致过拟合:

特别是,原任务的类和目标任务的类是否相关,也会很影响迁移结果!

  • 如果二者相似度较高,可以多用几层;
  • 否则少用。

对于异质神经网络的迁移:

一个常见的结构是 Encoder-Decoder 的网络。

利用 Encoder-Decoder 的网络进行迁移学习

#头条创作挑战赛##今日头条小助手##迁移学习#

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多