迁移学习系列-3-王晋东迁移学习手册阅读

迁移学习的定义

迁移学习,是指利用数据、任务、或模型之间的相似性,将在旧领域学习过的模型,应用于新领域的一种学习过程。

综述文章:

A survey on transfer learning [Pan and Yang, 2010]

为什么要学习迁移学习?

  1. 缺少数据标注

  2. 缺少足够算力

  3. 普适化模型与个性化需求之间的矛盾

  4. 特定应用需求

迁移学习如何解决这些问题:

  1. 大数据与少标注:迁移数据标注

  2. 大数据与弱计算:模型迁移

  3. 普适化模型与个性化需求:自适应学习

  4. 特定应用的需求:相似领域知识迁移(比如cross-lingual)

迁移学习与传统机器学习的区别:

迁移学习与领域自适应的区别:

领域自适应问题是迁移学习的研究内容之一,它侧重于解决特征空间一致、类别空间一致,仅特征分布不一致的问题。而迁移学习也可以解决上述内容不一致的情况。

迁移学习的常用分类

按照目标域标签分类

  1. 监督迁移学习 (Supervised Transfer Learning)

  2. 半监督迁移学习 (Semi-Supervised Transfer Learning)

  3. 无监督迁移学习 (Unsupervised Transfer Learning)

按照学习方法分类

  • 基于实例的迁移学习方法 (Instance based Transfer Learning):

  • 基于特征的迁移学习方法 (Feature based Transfer Learning)

  • 基于模型的迁移学习方法 (Model based Transfer Learning)

  • 基于关系的迁移学习方法 (Relation based Transfer Learning)

基于实例的迁移,简单来说就是通过权重重用,对源域和目标域的样例进行迁移。就是说直接对不同的样本赋予不同权重,比如说相似的样本,我就给它高权重,这样我就完成了 迁移,非常简单非常非常直接。

基于特征的迁移,就是更进一步对特征进行变换。意思是说,假设源域和目标域的特征 原来不在一个空间,或者说它们在原来那个空间上不相似,那我们就想办法把它们变换到一个空间里面,那这些特征不就相似了?这个思路也非常直接。这个方法是用得非常多的,一 直在研究,目前是感觉是研究最热的。

基于模型的迁移,就是说构建参数共享的模型。这个主要就是在神经网络里面用的特别多,因为神经网络的结构可以直接进行迁移。比如说神经网络最经典的 finetune 就是模型参数迁移的很好的体现。

基于关系的迁移,这个方法用的比较少,这个主要就是说挖掘和利用关系进行类比迁移。比如老师上课、学生听课就可以类比为公司开会的场景。这个就是一种关系的迁移。

按照特征分类

  • 同构迁移学习 (Homogeneous Transfer Learning)

  • 异构迁移学习 (Heterogeneous Transfer Learning)

这也是一种很直观的方式:如果特征语义和维度都相同,那么就是同构;反之,如果特征完全不相同,那么就是异构。举个例子来说,不同图片的迁移,就可以认为是同构;而图片到文本的迁移,则是异构的。

按离线与在线形式分

  • 离线迁移学习 (Offline Transfer Learning)

  • 在线迁移学习 (Online Transfer Learning)

迁移学习的应用

计算机视觉

在 CV 领域,迁移学习主要是方法是领域自适应 domain adaption. 侧重于解决特征空间一致、类别空间一致,仅特征分布不一致的问题。

个人理解:在图像上,即使类别差别很大,但是在特征空间上仍然是一致的,或者说有很多相似之处。比如人和狗,从轮廓、颜色、五官等等特征都是具有可迁移性的。再比如人和桌子,也是具有相似特征的。

那么问题是,特征空间完全一致吗?不一致的部分呢?

文本分类

由于文本数据有其领域特殊性,因此,在一个领域上训练的分类器,不能直接拿来作用到另一个领域上。这就需要用到迁移学习。例如,在电影评论文本数据集上训练好的分类器,不能直接用于图书评论的预测。这就需要进行迁移学习。图 11是一个由电子产品评论 迁移到 DVD 评论的迁移学习任务。

那么问题来了,这种从一个domain 迁移到另一个 domain,到底改变了什么?比如同样一个词,在 电子产品中对应的 vector 经过迁移后(finetune?),发生了怎样的变化,这个可以可视化嘛?

时间序列

  • 行为识别(Activity Recognition)

  • 室内定位 (Indoor Location)

医疗健康

不同于其他领域,医疗领域研究的难点问题是,无法获取足够有效的医疗数据。在这一领域,迁移学习同样也变得越来越重要。

迁移学习系列-2-Combining semi-supervised learning with transfer learning

paper

Strong Baselines for Neural Semi-Supervised Learning under Domain Shift

motivation

这篇paper的工作就是提出了一个经典方法实现的strong baseline.他的motivation就是前面很多研究比如基于deep learning的,对比的经典算法都很weak,或者是在专有的数据集上跑(容易过拟合)。

对比的三种传统方法, self-traning, tritraining, tri-training with disagreement

self-training:

  1. 使用有标签的数据,训练一个模型

  2. 用这个模型去预测无标签的数据,得到对应样本属于某一类别的概率

  3. 选择一个阈值,大于这个阈值的样本,可以打上伪标签。但是通常来说,阈值不太好确定,所以可以使用相对阈值,也就是选取概率相对较高的 top N.

模型的缺点在于:如果预测错了某些样本,那么错误会累积并放大。

tri-training:

  1. 使用有标签的数据,训练三个模型 m1, m2, m3

  2. 使用 bootstrapping 的方法,sample部分无标签的数据,然后使用三个模型进行预测,当 m1 预测样本属于某一类的概率低时,而 m2, m3 预测样本属于这一类的概率高时,将这个样本打上伪标签,加入到 m1 的训练集中去

  3. 迭代这个过程,直到分类器不在变化,可以同时更新三个分类器?

motivation:模型应该增强它相对较弱的地方。其实也就是 ensamble 的 sense.

缺点:计算量太大, 耗费时间和空间

multi-task tritraining:

  1. 多任务训练,这里的任务其实可以看作是一致的,底层 encoder 层参数共享,softmax层,也就是 decoder 层参数不一致。

  2. 要尽可能让 m1, m2 具有差异性 diversity,加上了正则化项

  3. 模型 m3 只在伪标签数据上进行训练。其目的是让模型在 domain shift 情况下鲁棒性更强。

paper2

Semi-Supervised Sequence Modeling with Cross-View Training (EMNLP 2018)

迁移学习系列 1-Neural Transfer Learning for NLP

迁移学习与监督学习的区别

training domain 和 target domain 不一致时,需要知识迁移。

那么暂时的问题来了?

  • 1.如何界定 domain 的范围,尤其是NLP领域。从医学文本能迁移到科幻小说吗,感觉不可以。。

  • 2.从 big domain 到 small domain 的迁移也是属于迁移学习的范畴吧?比如像 BERT 这样在超大的训练集上进行 training,然后在小的子集上 fine-tune,都能表现的很好是吗?

Why transfer learning

目前的监督模型依旧非常脆弱,Jia and Liang, EMNLP 2017 这篇 paper 证明了目前的 SOTA 的模型对对抗样本非常敏感。

迁移学习能解决这个问题吗,疑惑??

Abstract:

Standard accuracy metrics indicate that reading comprehension systems are making rapid progress, but the extent to which these systems truly understand language remains unclear. To reward systems with real language understanding abilities, we propose an adversarial evaluation scheme for the Stanford Question Answering Dataset (SQuAD). Our method tests whether systems can answer questions about paragraphs that contain adversarially inserted sentences, which are automatically generated to distract computer systems without changing the correct answer or misleading humans. In this adversarial setting, the accuracy of sixteen published models drops from an average of 75% F1 score to 36%; when the adversary is allowed to add ungrammatical sequences of words, average accuracy on four models decreases further to 7%. We hope our insights will motivate the development of new models that understand language more precisely.

Synthetic and Natural Noise Both Break Neural Machine Translation, Belinkov and Bisk (ICLR 2018) 这篇 paper 中提到基于字符级别的翻译模型能有效解决 OOV 等问题,但是却使得模型对 noise 非常敏感且脆弱。如果出现 phonetic 拼写错误,omission 省略, key swap 关键字母交换,都会导致 BLEU 值严重下降。

Abstract

Character-based neural machine translation (NMT) models alleviate out-of-vocabulary issues, learn morphology, and move us closer to completely end-to-end translation systems. Unfortunately, they are also very brittle and easily falter when presented with noisy data. In this paper, we confront NMT models with synthetic and natural sources of noise. We find that state-of-the-art models fail to translate even moderately noisy texts that humans have no trouble comprehending. We explore two approaches to increase model robustness: structure-invariant word representations and robust training on noisy texts. We find that a model based on a character convolutional neural network is able to simultaneously learn representations robust to multiple kinds of noise.

Iyyer et al. (NAACL 2018) 这篇 paper 提出了一个句法规则控制下的释义生成模型,syntactically controlled paraphrase networks (SCPNs). 然后发现这样的对抗样本很容易愚弄训练好的监督模型。

Abstract:

We propose syntactically controlled paraphrase networks (SCPNs) and use them to generate adversarial examples. Given a sentence and a target syntactic form (e.g., a constituency parse), SCPNs are trained to produce a paraphrase of the sentence with the desired syntax. We show it is possible to create training data for this task by first doing backtranslation at a very large scale, and then using a parser to label the syntactic transformations that naturally occur during this process. Such data allows us to train a neural encoderdecoder model with extra inputs to specify the target syntax. A combination of automated and human evaluations show that SCPNs generate paraphrases that follow their target specifications without decreasing paraphrase quality when compared to baseline (uncontrolled)paraphrase systems. Furthermore, they are more capable of generating syntactically adversarial examples that both (1) “fool” pretrained models and (2) improve the robustness of these models to syntactic variation when used to augment their training data

人工标注所有 domain 或者任何语言的数据是不可理的,因此需要 transfering knowledge from a related setting to the target setting.

NLP 很多重大的基础性的研究都可以看作是迁移学习的一种形式。

  • LSA

  • Brown clusters

  • word embedding

已有工作的局限性:

  • 限制度太高:预设定好的相似度指标,hard 参数共享

  • 条件设定太过于具体:单一的 task

  • baseline 太弱:缺少与传统方法的对比

  • 模型脆弱:在 out-of-domain 不work,依赖于相似的语言/任务

  • 效率低:需要大量参数,时间和样本

研究目标

  • 迁移学习

    • 传导式迁移学习(相同的任务,只有sourced domain有label)

      • 领域自适应(不同的 domain)

      • 跨语言学习(不同的 language)

    • 归纳式迁移学习(不同的任务, target domain 也有标签)

      • 多任务学习

      • 序列迁移学习

大佬太强了。。。。强到爆炸啊

domain adaptation

Propose two novel methods that bridge the domain discrepancy by selecting relevant and informative data for unsupervised domain adaptation.

提出两方法,替无监督的域适应选择相关的,具有信息量的数据来弥合域之间的差异。

Based on Bayesian Optimisation

Learning to select data for transfer learning with Bayesian Optimization, EMNLP2017

还不太懂 bayesian optimisation:

Using semi-supervised learning and multi-task learning

Strong Baselines for Neural Semi-supervised Learning under Domain Shift, Ruder & Plank, ACL 2018

Novel neural models have been proposed in recent years for learning under domain shift. Most models, however, only evaluate on a single task, on proprietary datasets, or compare to weak baselines, which makes comparison of models difficult. In this paper, we re-evaluate classic general-purpose bootstrapping approaches in the context of neural networks under domain shifts vs. recent neural approaches and propose a novel multi-task tri-training method that reduces the time and space complexity of classic tri-training. Extensive experiments on two benchmarks for part-of-speech tagging and sentiment analysis are negative: while our novel method establishes a new state-of-the-art for sentiment analysis, it does not fare consistently the best. More importantly, we arrive at the somewhat surprising conclusion that classic tri-training, with some additions, outperforms the state-of-the-art for NLP. Hence classic approaches constitute an important and strong baseline.

大佬的论文真的难。。太 hardcore 了。。

cross-lingual Learning

On the Limitations of Unsupervised Bilingual Dictionary Induction

A Discriminative Latent-Variable Model for Bilingual Lexicon Induction

multi-task learning

sequential transfer learning

迁移学习系列-0-NLP classification with transfer learning and weak supervision

paper:

  • Building NLP Classifiers Cheaply With Transfer Learning and Weak Supervision

  • A Brief Introduction to Weakly Supervised Learning

motivation

现在的 state-of-the-art 技术都严重依赖于大量的数据,可以说数据是 NLP 应用的瓶颈(bottleneck)。比如,标注医学领域的电子健康记录需要大量的医学专业知识。

随着 transfer learning, multi-task learning 以及 weak supervision 的发展,NLP 可以尝试着去解决这些问题。

这里将介绍如何在没有公开数据集的情况下,使用少量的数据,来构建一个 dectect anti-smitic tweets 分类器。分为以下 3 个步骤:

  • Collect a small number of labeled examples (~600)

  • Use weak supervision to build a training set from many unlabeled examples using weak supervision

  • Use a large pre-trained language model for transfer learning

Weak Supervision

何为弱监督学习?

paper: A Brief Introduction to Weakly Supervised Learning

翻译版

弱监督学习是一个总括性的术语,它涵盖了试图通过较弱的监督来构建预测模型的各种研究。弱监督通常分为三种类型。

  • 不完全监督(Incomplete Supervision): 只有训练数据集的一个(通常很小的)子集有标签,其它数据则没有标签。

  • 不确切监督(inexact supervision): 只有粗粒度的标签。以图像分类任务为例。我们希望图片中的每个物体都被标注;然而我们只有图片级的标签而没有物体级的标签。

  • 不准确监督(inaccurate supervision),即给定的标签并不总是真值。

图1:三种弱监督学习的示意图。长方形表示特征向量;红色或蓝色表示标签;“?”表示标注可能是不准确的。中间的子图表示了几种弱监督的混合情形

不完全监督

可以形式化为:$D={(x_1,y_1),…,(x_l,y_l),x_{l+1},…, x_m}$ 即有 $l$ 个数据有标签(如 $y_i$ 所示),$u = m-l$ 个数据没有标签。

解决这类问题有两种技术:

  • 主动学习(active learning), 也就是有个专家来标注 unlabeled 数据.

  • 半监督学习(semi-supervision), 有一种特殊的半监督学习,叫 transductive learning(传导式学习),它与(纯)半监督学习之间的差别在于,对测试数据(训练模型要预测的数据)的假设不同。传导式学习持有“封闭世界”的假设,即测试数据是事先给定的,且目标就是优化模型在测试数据上的性能;换句话说,未标注数据就是测试数据。纯半监督学习持有“开放世界”的假设,即测试数据是未知的,且未标注数据不一定是测试数据。实际中,绝大多数情况都是纯半监督学习。

有人为干预

主动学习 active learning.

无人为干预

半监督学习[3-5]是指在不询问人类专家的条件下挖掘未标注数据。为什么未标注数据对于构建预测模型也会有用?做一个简单的解释[19],假设数据来自一个由 n 个高斯分布混合的 高斯混合模型(参考以前的笔记),也就是说:

$$f(x | \theta) = \sum_{j=1}^n \alpha_j f(x | \theta_j)\quad\text{(1)}$$

其中 $\alpha_j$ 为混合系数,$\sum_{j=1}^n \alpha_j = 1$ 并且 $\theta = {\theta_j}$ 是模型参数。在这种情况下,标签 $y_i$ 可以看作一个随机变量,其分布 $P(y_i | x_i, g_i)$ 由混合成分 $g_i$ 和特征向量 $x_i$ 决定。最大化后验概率有:

$$h(x) = {argmax}c \sum{j=1}^n P(y_i = c | g_i = j, x_i) \times P(g_i = j | x_i)\quad(2)$$

其中:$P(g_i = j | x_i) = \dfrac{\alpha_j f(x_i | \theta_j)} {\sum_{k=1}^n \alpha_k f(x_i | \theta_k)}\quad(3)$

$h(x)$ 可以通过用训练数据估计 $P(y_i = c | g_i = j, x_i)$ 和 $P(g_i = j | x_i)$ 来求得。很明显只有第一项需要需要标签信息。因此,未标注数据可以用来估计提升对第二项的估计,从而提升学习模型的性能。

图中 $+,-$ 表示标注样本。而测试样本 $\bigcirc$ 正好在两者中间。

图3给出了一个直观的解释。如果我们只能根据唯一的正负样本点来预测,那我们就只能随机猜测,因为测试样本恰好落在了两个标注样本的中间位置;如果我们能够观测到一些未标注数据,例如图中的灰色样本点,我们就能以较高的置信度判定测试样本为正样本。在此处,尽管未标注样本没有明确的标签信息,它们却隐晦地包含了一些数据分布的信息,而这对于预测模型是有用的。

实际上,在半监督学习中有两个基本假设,即聚类假设(cluster assumption)和流形假设(manifold assumption);两个假设都是关于数据分布的。前者假设数据具有内在的聚类结构,因此,落入同一个聚类的样本类别相同。后者假设数据分布在一个流形上,因此,相近的样本具有相似的预测。两个假设的本质都是相似的数据输入应该有相似的输出,而未标注数据有助于揭示出样本点之间的相似性

半监督学习有四种主要方法,即生成式方法(generative methods),基于图的方法(graph-based methods),低密度分割法(low-density separation methods)以及基于分歧的方法(disagreement methods)。

生成式方法[19,20]假设标注数据和未标注数据都由一个固有的模型生成。因此,未标注数据的标签可以看作是模型参数的缺失,并可以通过EM算法(期望-最大化算法)等方法进行估计[21]。这类方法随着为拟合数据而选用的不同生成模型而有所差别。为了达到好的性能,通常需要相关领域的知识来选择合适的生成模型。也有一些将生成模型和判别模型的优点结合起来的尝试[22]。

基于图的方法构建一个图,其节点对应训练样本,其边对应样本之间的关系(通常是某种相似度或距离),而后依据某些准则将标注信息在图上进行扩散;例如标签可以在最小分割图算法得到的不同子图内传播[23]。很明显,模型的性能取决于图是如何构建的[26-28]。值得注意的是,对于m个样本点,这种方法通畅需要O(m^2)存储空间和O(m^3)计算时间复杂度。因此,这种方法严重受制于问题的规模;而且由于难以在不重建图的情况下增加新的节点,所以这种方法天生难以迁移。

基于分歧的方法[5,32,33]生成多个学习器,并让它们合作来挖掘未标注数据,其中不同学习器之间的分歧是让学习过程持续进行的关键。最为著名的典型方法——联合训练(co-traing),通过从两个不同的特征集合(或视角)训练得到的两个学习器来运作。在每个循环中,每个学习器选择其预测置信度最高的未标注样本,并将其预测作为样本的伪标签来训练另一个学习器。这种方法可以通过学习器集成来得到很大提升[34,35]。值得注意的是,基于分歧的方法提供了一种将半监督学习和主动学习自然地结合在一起的方式:它不仅可以让学习器相互学习,对于两个模型都不太确定或者都很确定但相互矛盾的未标注样本,还可以被选定询问“先知”。

不确切监督

不确切监督是指在某种情况下,我们有一些监督信息,但是并不像我们所期望的那样精确。一个典型的情况是我们只有粗粒度的标注信息。例如,在药物活性预测中[40],目标是建立一个模型学习已知分子的知识,来预测一种新的分子是否能够用于某种特殊药物的制造。一种分子可能有很多低能量的形态,这种分子能否用于制作该药物取决于这种分子是否有一些特殊形态。然而,即使对于已知的分子,人类专家也只知道其是否合格,而并不知道哪种特定形态是决定性的。

形式化表达为,这一任务是学习 $f: X\rightarrow Y$ ,其训练集为 $D = {(X_1, y_1), …, (X_m, y_m)}$,其中 $X_i = {x_{I, 1}, …, x_{I, m_i}}$, $X_i$ 属于X,且被称为一个包(bag),$x_{i, j}$ 属于 X,是一个样本(j属于 ${1, …, m_i})$。$m_i$ 是 $X_i$ 中的样本个数,$y_i$ 属于 $Y = {Y, N}$。当存在 $x_{i, p}$ 是正样本时,$X_i$ 就是一个正包(positive bag),其中p是未知的且 p 属于 ${1, …, m_i}$。模型的目标就是预测未知包的标签。这被称为多示例学习(multi-instance learning)[40,41]

多示例学习已经成功应用于多种任务,例如图像分类、检索、注释[48-50],文本分类[51,52],垃圾邮件检测[53],医疗诊断[54],人脸、目标检测[55,56],目标类别发现[57],目标跟踪[58]等等。在这些任务中,我们可以很自然地将一个真实的目标(例如一张图片或一个文本文档)看作一个包;然而,不同于药物活性预测中包里有天然的示例(即分子的不同形态),这里的示例需要生成。一个包生成器明确如何生成示例来组成一个包。通常情况下,从一幅图像中提取的很多小图像块就作为可以这个图像的示例,而章节、段落甚至是句子可以作为一个文本文档的示例。尽管包生成器对于学习效果有重要的影响,但直到最近才出现关于图像包生成器的全面研究[59];研究表明一些简单的密集取样包生成器要比复杂的生成器性能更好。图5显示了两个简单而有效的图像包生成器。

51.Convex and Scalable Weakly Labeled SVMs

[52.Towards making unlabeled data

never hurt](http://www.icml-2011.org/papers/548_icmlpaper.pdf)

不准确监督

不准确监督关注监督信息不总是真值的情形;换句话说,有些标签信息可能是错误的。其形式化表示与概述结尾部分几乎完全相同,除了训练数据集中的y_i可能是错误的。

一个最近出现的不准确监督的情景发生在众包模式中(crowdsourcing)[74],即一个将工作外包给个人的流行模式。

在带有真值标签的大量训练样本的强监督条件下,监督学习技术已经取得了巨大的成功。然而,在真实的任务中,收集监督信息往往代价高昂,因此探索弱监督学习通常是更好的方式。

Snorkel

paper:Snorkel: Rapid Training Data Creation with Weak Supervision

motivation

deep learning 需要大量的标注数据。这对于一些大公司尚且能够雇佣标注人员,而很多小公司则将目标转向弱监督学习。尤其是,当数据的标注需要领域专家时(subject matter experts (SMEs)),标注数据变得更加困难。

弱监督学习包括一下形式:

  • distant supervision: the records of an external knowledge base are heuristically aligned with data points to produce noisy labels [4,7,32]

  • crowsourced labels[37,50]

  • rules and heuristics for labeling data[39,52]

Snorkel learns the accuracies of weak supervision sources withoust access to

ground truth using a generative model [38]. Furthermore, it also learns correlations and other statistical dependencies among sources, correcting for dependencies in labeling functions that skew the estimated accuracies [5]

Snorkel 生成训练数据的方法来自于作者的另外一篇论文:Data programming: Creating large training sets, quickly, NIPS 2016,不仅能给出弱监督得到的样本的置信度,还能学习得到样本之间的相关性和统计依赖。