- Transfer Learning(迁移学习)
- zero-shot learning(零样本学习)
三十四、Transfer Learning(迁移学习)
1、介绍
假设你现在有一些跟你要进行的task没有直接相关的data,能不能利用这些没有直接相关的data帮助我们做什么事情?
比如现在要做的是猫和狗的classifier,那所谓的没有直接相关的data有很多种可能。比如说input的distribution是类似的,都是动物的图片,但是task的label是无关的。similar domain,different tasks或者是different domain,same tasks。
为什么要做Transfer Learning?要做的task的data太小,利用其它data来帮助实现这个task。
2、方法
Transfer Learning有很多方法:现有有一个想做的task,然后有一些跟这个task有关的data这个叫做target data;有一些data是跟这个task无关的data,叫做source data。这两种data可能是有label的,有可能是unlabeled的。
这里可以分四种可能来讨论:
(一)target data和source data同时有label:
(1)最常见的就是Model Fine-tuning:
注意:如果target data数量很少,只有几个example而已,这个叫做One-shot learning。
最典型的例子:(supervised)speaker adaption–target data:某一个人的声音;source data:有一大堆来自不同人的声音。做法:
(fine-tuning:把在source data上train出的model当作是training的初始值,再用target data train下去)
可能会遇到的challenge:
所以在train的时候要很小心,有很多技巧:
技巧1:Conservative Training–现在有大量的source data去train一个语音辨识的neural network,接下来你有target data,如果直接拿这个target data继续去train这个model就坏掉了。怎么办?(1)可以在training的时候下一个constraint,