一. 迁移学习的两大分类方式有两种主流的分类方式:
同构的迁移学习:两个任务具有重叠的特征空间,和相同的标签空间。 同构的迁移学习 异构的迁移学习:两个任务具有不重合的特征空间,和不同的标签空间。 异构的迁移学习 2. 基于任务和领域的差异进行分组(根据 Ds 和 Dt, Ts 和 Dt 的关系分为四种): ① Ds = Dt:相同的源域和目标域
② Ds ≠ Dt:不同的源域和目标域
上述两种分类的图示 二. 迁移学习的三大范式这是回答了一个 How to transfer 的问题。
基于模型的迁移学习,共享原任务的部分模型或参数
基于实例的迁移学习,共享部分实例
学习和域无关的表征 今天我们学习的是第一大类:model-based transfer learning。 二.基于模型的迁移学习假设:源任务和目标任务在模型层面有共同的知识。 1. 什么样的模型信息适用:
2. 两种 Model-based 的方法:第一种:通过正则化迁移
什么是参数正则化呢?正则化增加了关于模型参数的先验性息来避免过拟合。下图是经典的 L2-regularization 的示例: L2-regularization 示例 那还有什么别的正则化函数呢?
下面,我们举一个简单的例子来展示基于模型迁移学习的概念: 假设如果我们想分开红色圆和蓝色三角形,源任务我们会这样划分: 但是如果目标任务的数据量很小,但我们还想按照 source task 的方式划分,就会得到错误的划分方式: 由于数据量不足,会导致右边错误的划分方式 而经过迁移学习,我们有希望获得矫正,得到正确的划分方法: 迁移学习后,有望得到正确的划分方式 3. 基于 SVM 正则化的迁移不同 Kernel 下的 SVM 想要学习原来任务的分类结果,怎么做呢? Kernel-based 模型迁移的 SVM 方法 稍微改变 SVM 的损失函数,从而让模型拟合时更加接近于 pre-trained 的那个模型。 让我们展开这个额外惩罚项的公式: 展开公式中的第一部分,也是核心部分 可以看出,正则化的部分由三部分组成:
也就是说,上述的三部分合在一起,等同于最大化 wt 和 ws 的相似度!越相似越好。 拓展:如果我们有多个源模型呢? 那可以在核心项里做加权求和。 迁移效果如何呢?让我们在图像分类的任务上试试看。 我们比较四种方式:
数据集: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 的网络进行迁移学习 |
|