admin管理员组文章数量:1658609
一、概述
1、从数据角度,分四种情形(如图),每种情形下可以采取的处理方法如下
2、Fine-tuning
Source data数据量大,而Target data数据量小。在Source data上训练模型然后在Target data上对模型进行微调,这种方式叫作Fine-tuning。通常情况下,Fine-tuning需要非常小心,很容易overfitting。因此,需要加入一些技巧:
技巧一:Conservative Training
Conservative Training的思路很简单,在Fine-tuning的过程中加入一些限定条件(正则化),如最小化Source Domain和Target Domain在输出和各层参数之间的差异。
技巧二:Layer Transfer
Layer Transfer选择固定网络结构中的某几层参数,然后只用Target Data(图中标错了)去Fine-tuning剩下的参数。
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。
对于差别比较大的domain,固定层数越多,效果掉的可能大。
3、Multitask Learning
Multitask Learning同时关注网络在source和target domain上的效果。
图左:相同data,不同任务,共用前几层;
图右:不同data,不同任务,共用中间某几层;
比较成功的例子是多语言语音识别。
4、Domain-adversarial Training
适用于source domain有标签而target domain没有标签的情形。
把网络分成两个部分,一部分是Feature提取,一部分是classifier,对于source domain来说,网络提取的参数由于适用于source分类,可以看到它提取的特征在空间中有好的区分度,而target domain在特征空间的区分度很差。
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一样难以训练。
5、Zero-shot learning
建立一个特征的table,对每个样本进行特征有无的标记,进行编码,不仅可以识别看到的类型,还可以辨别没看过的类型。对于一个新的样本,提取特征进行编码,然后查表计算距离进行判别。
Zero-shot Learning通过判断图片与特征的距离进行分类,如图所示,f(*)表示对输入图片进行训练得到的输出,g(*)表示对one-shot向量(特征)进行训练得到一个输出,使得这两个输出相近。
若直接最小化f(*)与g(*)可能存在问题,它将会把同一类都聚集在一起,忽略与其他的距离。因此,这里做出改进,设定比大(或者达到某个阈值K),就认为f与g的距离为0(相近)。它表达的意思是,如果一个图片与一个one-shot编码属于同一类,那么他们的内积要比这张图片与其他one-shot编码的内积最大值更大,实质就是相似度更高,并且高出所有其他编码的相似度。
zero-shot的另一种学习方式是直接利用已有的识别系统得到一张图片的结果,比如图中得到的图片可能是0.5的lion和0.5的tiger,那个就将这两个动物的zero-shot向量进行相同权重的融合,得到一个新的向量,然后根据新的向量得到物种的分类结果。
更多参考
版权声明:本文标题:机器学习20:Transfer learning 迁移学习 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1729814256a1213706.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论