机器学习20:Transfer learning 迁移学习

一、概述

1、从数据角度,分四种情形(如图),每种情形下可以采取的处理方法如下

机器学习20:Transfer learning 迁移学习_第1张图片

2、Fine-tuning

Source data数据量大,而Target data数据量小。在Source data上训练模型然后在Target data上对模型进行微调,这种方式叫作Fine-tuning。通常情况下,Fine-tuning需要非常小心,很容易overfitting。因此,需要加入一些技巧:

机器学习20:Transfer learning 迁移学习_第2张图片

技巧一:Conservative Training

Conservative Training的思路很简单,在Fine-tuning的过程中加入一些限定条件(正则化),如最小化Source Domain和Target Domain在输出和各层参数之间的差异。

技巧二:Layer Transfer

Layer Transfer选择固定网络结构中的某几层参数,然后只用Target Data(图中标错了)去Fine-tuning剩下的参数。

机器学习20:Transfer learning 迁移学习_第3张图片机器学习20:Transfer learning 迁移学习_第4张图片

Layer Transfer在具体操作中case by case,通常情况下,audio识别通常固定后面的几层参数,因为后面几层跟说话人没什么关系;而image识别通常固定前面几层,因为前面几层通常learn到的是图像一些简单的特性,而后面是图像具体的细节。

下图给出了一个Layer Transfer的效果分析,从ImageNet的1000类目标中挑选500类做source,500类做target,共120万张图片。横轴表示copy的layer的数量,0代表没有迁移:

红色线条表示仅训练剩下几层网络结果,可以看出迁移一层时,fine-tuning后面几层结果有提升,迁移多层时,fine-tuning结果下降,表明不同的domain可能仅有前面的几层参数可以共用;

橙色线条表示fine-tune所有层,此时,迁移效果提升很多;

蓝色线条表示直接在target domain上训练一个model,然后固定几层,再训练后面几层,结果可能会变坏,原因是model需要各层参数配合起来调整,淡蓝色表示target domain全部fine-tuning。

机器学习20:Transfer learning 迁移学习_第5张图片机器学习20:Transfer learning 迁移学习_第6张图片

对于差别比较大的domain,固定层数越多,效果掉的可能大。

机器学习20:Transfer learning 迁移学习_第7张图片

3、Multitask Learning

Multitask Learning同时关注网络在source和target domain上的效果。

图左:相同data,不同任务,共用前几层;

图右:不同data,不同任务,共用中间某几层;

比较成功的例子是多语言语音识别。

机器学习20:Transfer learning 迁移学习_第8张图片机器学习20:Transfer learning 迁移学习_第9张图片

4、Domain-adversarial Training

适用于source domain有标签而target domain没有标签的情形。

把网络分成两个部分,一部分是Feature提取,一部分是classifier,对于source domain来说,网络提取的参数由于适用于source分类,可以看到它提取的特征在空间中有好的区分度,而target domain在特征空间的区分度很差。

机器学习20:Transfer learning 迁移学习_第10张图片机器学习20:Transfer learning 迁移学习_第11张图片

Domain-adversarial Training的处理就是去消除网络中domain的特性,使得特征提取部分对target domain也适用。Domain-adversarial Training的做法是将source domain和target domain在特征空间中混在一起,而不是明显的分开,因此,接入了一个domain的分类器,使其无法区分数据是属于哪个domain,同时还能正确完成source domain的分类任务。

Domain-adversarial Training训练时,进行梯度的反向传播,domain分类器传给feature extractor一个值,feature extractor乘以负号之后传给输入(实质就是classifier要让梯度上升,它就反而故意下降)。Domain-adversarial Training可能与GAN一样难以训练。

机器学习20:Transfer learning 迁移学习_第12张图片机器学习20:Transfer learning 迁移学习_第13张图片

机器学习20:Transfer learning 迁移学习_第14张图片

5、Zero-shot learning

建立一个特征的table,对每个样本进行特征有无的标记,进行编码,不仅可以识别看到的类型,还可以辨别没看过的类型。对于一个新的样本,提取特征进行编码,然后查表计算距离进行判别。

机器学习20:Transfer learning 迁移学习_第15张图片机器学习20:Transfer learning 迁移学习_第16张图片

Zero-shot Learning通过判断图片与特征的距离进行分类,如图所示,f(*)表示对输入图片进行训练得到的输出,g(*)表示对one-shot向量(特征)进行训练得到一个输出,使得这两个输出相近。

机器学习20:Transfer learning 迁移学习_第17张图片

若直接最小化f(*)与g(*)可能存在问题,它将会把同一类都聚集在一起,忽略与其他的距离。因此,这里做出改进,设定大(或者达到某个阈值K),就认为f与g的距离为0(相近)。它表达的意思是,如果一个图片与一个one-shot编码属于同一类,那么他们的内积要比这张图片与其他one-shot编码的内积最大值更大,实质就是相似度更高,并且高出所有其他编码的相似度。

机器学习20:Transfer learning 迁移学习_第18张图片

zero-shot的另一种学习方式是直接利用已有的识别系统得到一张图片的结果,比如图中得到的图片可能是0.5的lion和0.5的tiger,那个就将这两个动物的zero-shot向量进行相同权重的融合,得到一个新的向量,然后根据新的向量得到物种的分类结果。

机器学习20:Transfer learning 迁移学习_第19张图片

更多参考

机器学习20:Transfer learning 迁移学习_第20张图片

你可能感兴趣的:(机器学习)