WDK李宏毅学习笔记第十七周02_Transfer Learning

Transfer Learning


摘要

本章要讲的是Transfer Learning。在现实生活中,人是可以利用类似的数据进行联想学习的,我们希望machine也可以做到,根据这个思想,便有了Transfer Learning。当target data量太少,希望machine可以根据少量target data可以得到好的model,我们可以找大量与target data类似的source data与target data一起对model进行训练,让machine可以进行联想学习用少量的Target就可以得到好的model,这就是Transfer Learning做的事情。

1、目的

让machine可以从类似但是没有直接相关的数据中学到东西,用到我们需要做的事情中,这就是Transfer Learning要做的事情。
Transfer Learning

2、Transfer Learning-Overview

Transfer Learning按Source data及Target data有无label主要分为以下四种,本章主要讲的是有label的Source data问题的一些解决办法。
在这里插入图片描述

3、source 和 target data都是有label的

3.1 Model Fine-tuning

通常情况下,target data的量是很少的,Source data的量是很多的。
在这里插入图片描述
例如在做无监督的语音辨识时,Target data只有几段声音,而Source data有很多声音,解决这个问题的办法是很直觉的,就是先用Source data训练一个语音辨识的model,再用target data去Fine-tuning训练好的model。但是可能遇到的问题就是target data数量太少了,导致在Fine-tuning model的时候可能会坏掉,所以在Fine-tuning时,要非常小心。有一个让其好train的技巧叫做Conservative Training,它是在做Fine-tuning时加一些约束,使得做完Fine-tuning时的model和原本的model参数越接近越好。
在这里插入图片描述
另外一个方法是Layer Transfer,它的做法是直接复制一些用Source data训练好的model的layer,用target data训练时,被复制的layer不变,只改变其他layer的参数。
在这里插入图片描述
那到底复制哪几层,这个需要"因地制宜",当做语音辨识的时候,复制后面几层的效果是好的,在做图像识别时,复制前面几层的效果是好的。
在这里插入图片描述

3.2 Multitask Learning

Multitask Learning是让model共用一些layer同时去训练source data和target data,前提就是source data和target data要有相似之处。
在这里插入图片描述
w

4、 Target data无label Source data有label

4.1 Domain-adversarial training

例如,要训练一个数字识别问题,Source data是有label的,而Target data是彩色数字数量少且无label的,要训练一个model能识别彩色数字。
在这里插入图片描述
如果直接learning一个model,结果多半会坏掉,如果用神经网络前面几层找feature明显也不行,两个data的特征差别过大。但是数字总统形状是相似的,所以需要做的是将一些对识别有负面影响的特征清除,然后再进行训练,如何清除,我们需要train一个Domain classifier(D),它是用来判别经过网络转换得到的Features f是来自source data还是target data,于是任务就变成了feature extractor的神经网络需要消除掉source data还是target data之间的差异来骗过D,但只是一个D是不够的,神经网络可以轻易的胡乱消除就可以骗过D,还需要其保留有效信息将Label Predictor做好,这个方法就叫做Domain-adversarial training。
在这里插入图片描述

4.2 Zero-shot Learning

当Source data和Target data需要完成的任务不一样时,我们就需要用Zero-shot Learning。例如Source data是分布猫狗的图片,而Target data是分布草泥马的图片,Source data中是没有该图片的,此时再用Domain-adversarial training是有点强人所难的,于是就需要用Zero-shot Learning。
在这里插入图片描述
Zero-shot Learning是将各个目标的属性输出,然后对照数据库去训练和输出属性一样的目标。
在这里插入图片描述
在训练时,我们若直接用算距离的function是不行的,它只考虑了将X及其对应的Y越接近越好,却没有考虑X与其无关的Y也要越远越好。
在这里插入图片描述
所以需要修改loss function。
在这里插入图片描述

方法

  1. Source 和Target data都是有label时,进行训练的方法主要用的是Model Fine-tuning和Multitask Learning。前者是用Source data对model进行训练,得到的model作为model初始化参数,再用Target data对model进行训练,再训练时,要求model与初始化参数越接近越好,以防止over fit。后者是用model共用一些layer同时去训练source data和target data,前提就是source data和target data要有相似之处。
  2. Target data无label Source data有label时,进行训练的方法主要有Domain-adversarial training和Zero-shot Learning。前者是设计一些神经网络作为特征消除器,将Target data的一些多余特征消除,使其与Source data特征接近,来实现Transfer Learning。后者是训练一个属性提取的model,大量的Source data负责教会model提取特征,再从Target data中提取特征和数据库做对比或者投映到高维空间中,以此找到对应的label。

结论

在Source data和Target data都是有label时的方法中,Model Fine-tuning适用性更强,而Multitask Learning则必须要source data和target data是有相似之处的。在Target data无label而Source data有label时的方法中,Domain-adversarial training要求Source data做的任务要和Target data做的任务是一样的,Zero-shot Learning则是用来处理任务不一样时的问题。

展望

在解决一些问题时,我们往往会面临Target data过少,而又无法获取更多data,但是却有大量与Target data类似数据的问题,此时若用少量的Target data硬training一个模型,往往会得到过拟合的模型。Transfer Learning则可以很好利用类似的data解决这个问题,若model要求准确率高,还可用GAN生成适量与Target data一类的数据,再配合上Transfer Learning应该可以得到更准确的model。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值