基于模型的迁移学习
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于模型的迁移学习
一. 迁移学习的两大分类方式
有两种主流的分类方式:
1.基于特征和标签空间的分组(同构 v.s 异构)
同构的迁移学习:两个任务具有重叠的特征空间,和相同的标签空间。
同构的迁移学习
异构的迁移学习:两个任务具有不重合的特征空间,和不同的标签空间。
异构的迁移学习
2. 基于任务和领域的差异进行分组(根据 Ds 和 Dt, Ts 和 Dt 的关系分为四种):
① Ds = Dt:相同的源域和目标域
•Ts = Tt:普通的学习问题
•Ts ≠ Tt:归纳性迁移学习(又称任务迁移学习)
② Ds ≠ Dt:不同的源域和目标域
•Ts = Tt:传导性迁移学习(又称领域适应)
•Ts ≠ Tt:无监督/混合转移学习,联合分布式领域适应
上述两种分类的图示
二. 迁移学习的三大范式
这是回答了一个 How to transfer 的问题。
•第一种:基于模型的迁移学习
o共享模型或者参数,适用于大多数 task transfer 的情况
基于模型的迁移学习,共享原任务的部分模型或参数
•第二种:基于实例的迁移学习
o给原模型的实例分配权重,主要适用于domain adaptation 的任务
基于实例的迁移学习,共享部分实例
•第三种:基于特征的迁移学习
o学习和域无关的表征,既适用于 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 的网络进行迁移学习
#头条创作挑战赛##今日头条小助手##迁移学习#。