我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的、自己不知道的东西。
本节内容综述
- 要做一项任务,但是数据不直接与任务相关。这就涉及到了迁移学习。在现实生活中,我们其实不断在做“迁移学习”。
- 关于 Transfer Learning ,李老师的分类如 Overview (目标数据是否有标签、原数据是否有标签)。
- 首先来看 Model Fine-tuning 。
- 接下来是 Multitask Learning 。
- 如果两个任务不像,是否迁移学习会有不好的效果?有人对此提出了 Progressive Neural Networks 。
- 在目标数据没有标签时,如何处理?且看 Domain-adversarial training 。
- 此外,还有一种思路:zero-shot Learning 。
- 剩下一点时间,讲一讲 Source Data 没有 label 是怎么办。
文章目录
小细节
Overview
Model Fine-tuning
如上,目标的数据有标签,但是很少;其他数据很大量,有标签。这种数据在语音辨识比较常见。
这种问题的思路可以很直接:使用其他数据训练模型,然后用目标数据微调。
Conservative Training
如上,在 Conservative Training 中,要注意让新老的模型差距不要太大。
Layer Transfer
如上,还有一种方法:把大部分的层都复制并固定到新模型;只让某一层参与微调。
Which layer can be transferred (copied)?
- Speech: usually copy the last few layers;
- Image: usually copy the first few layers.
对于图片训练 Layer Transfer 如上。
Multitask Learning
如上,在训练时,即训练了可以公用的“层”。
Multilingual Speech Recognition
Multitask Learning 很成功的例子就是多语言翻译,如上。
Progressive Neural Networks
如上,用之前任务的中间层去训练下一任务对应层的输出。但是这个方法还存在不少问题。
Domain-adversarial training
如上,如果把神经网络的某层抽出来,你会发现,不同 domain 的数据,其分布根本不同。
因此希望,把 domain 的特性消掉。不同的 domain 的相同类别应该混在一起。
如上,提出了类似 GAN 的结构,在后面加上 Domain classifier ,以消除 Domain 的特性。但是如果只考虑 Domain ,则会造成偏差。因此,还要加上 Label predictor 。
如上,建立了一个大网络。对于蓝色、粉色的输出,其目标不同。
如上,两个目标是冲突的,因此要加一个 gradient reversal layer 。训练时可能比较难 train 。
其结果如上 proposed approach 。
zero-shot Learning
在 zero-shot Learning 中,其任务是截然不同的。在语音辨识中,我们经常遇到这种情况:在训练时,我们不可能见过所有的单词;为此,我们建了一个所有单词的“语义表”,将单词映射到语义表上,对于没见过的单词,也将其映射到该表上。
对于图片同理。
如上,在训练时,训练其各种“特性”。
而在训练时,把 Attributes 输出,然后去属性表中找,哪一种动物的属性最为接近,即为那种动物。
DeviSE
此外,可以把图片以及其属性分别做一个 embedding ,在测试时,将属性的 embedding 做比较。此外,我们希望 与 越近越好。
如果我们没有动物的数据库该怎么办呢?如上,我们可以接用 word2vec 。
如上,对于训练,我们应考虑两件事:
- 与 越近越好;
- 对于不对应的 与 ,越远越好。
Convex Combination of Semantic Embedding
如上,如果一张动物的图片,其分类分数作为权重,之后将词向量加权平均,与哪个词最接近,即为那个词。
其结果如上。
Self-taught learning
- Learning to extract better representation from the source data (unsupervised approach)
- Extracting better representation for target data
如上,原始论文做了许多任务,其表现都不错。