作者:机器之心
链接:https://www.zhihu.com/question/41979241/answer/208177153
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Part 1:什么是迁移学习?迁移学习的场景与应用。

深度 | 迁移学习全面概述:从基本概念到相关研究

文章来源于http://sebastianruder.com,作者:Sebastian Ruder,有机器之心编译,原文链接点此即可跳转。

目录:

1.什么是迁移学习?

2.为什么现在需要迁移学习?

3.迁移学习的定义

4.迁移学习的场景

5.迁移学习的应用

  • 从模拟中学习
  • 适应到新的域
  • 跨语言迁移知识

6.迁移学习的方法

  • 使用预训练的 CNN 特征
  • 学习域不变的表征
  • 让表征更加相似
  • 混淆域

7.相关的研究领域

  • 半监督学习
  • 更有效地使用可用的数据
  • 提高模型的泛化能力
  • 让模型更加稳健
  • 多任务学习
  • 持续学习
  • zero-shot 学习

8.总结

近年来,我们越来越擅长训练深度神经网络,使其能从大量的有标签的数据中学习非常准确的输入到输出的映射,无论它们是图像、语句还是标签预测。

我们的模型仍旧极度缺乏泛化到不同于训练的环境的能力。什么时候需要这种能力呢?就是你每一次将你的模型用到现实世界,而不是精心构建的数据集的时候。现实世界是混乱的,并且包含大量全新的场景,其中很多是你的模型在训练的时候未曾遇到的,因此这又使得模型不足以做出好的预测。将知识迁移到新环境中的能力通常被称为迁移学习(transfer learning),这就是本文将讨论的内容。

在这篇文章中,我首先会将迁移学习与机器学习的最普遍和成功的范式——监督学习——做一下对比。然后我会概括一下迁移学习值得我们去关注的原因。随后,我会给出一个更加技术性的定义以及介绍多个不同的迁移学习的场景。然后,我会提供一些迁移学习的应用的例子,再探究一些可以被用来迁移知识的实际方法。最后,我会概述一下相关的研究方向,并展望一下未来的前景。

什么是迁移学习?

在机器学习的经典监督学习场景中,如果我们要针对一些任务和域 A 训练一个模型,我们会假设被提供了针对同一个域和任务的标签数据。我们可以在图 1 中清楚地看到这一点,其中我们的模型 A 在训练数据和测试数据中的域和任务都是一样的(后面我会详细地定义什么是任务(task),以及什么是域(domain))。现在,让我们假设,一个任务就是我们的模型要去执行的目标,例如,识别图片中的物体;而域就是数据的来源,例如,来自于旧金山的咖啡店的照片。

图 1:机器学习领域中传统监督学习的设置

现在我们可以在这个数据集上训练一个模型 A,并期望它在同一个任务和域中的未知数据上表现良好。在另一种情况下,当给定一些任务或域 B 的数据时,我们还需要可以用来训练模型 B 的有标签数据,这些数据要属于同一个任务和域,这样我们才能预期能在这个数据集上表现良好。

当我们没有足够的来自于我们关心的任务或域的标签数据来训练可靠的模型时,传统的监督学习范式就支持不了了。

如果我们要训练一个模型来检测在夜间拍摄的照片上的行人,我们可以用一个在相似的域中训练的模型,例如白天拍摄的图片。然而,实际上,我们经常会遭遇表现上的衰退或者崩溃,因为模型已经继承了它的训练数据中的偏差,不知道如何泛化到新的域中。

如果我们要训练一个模型来执行新的任务,例如检测骑自行车的人,我们甚至不能够使用已有的模型,因为任务之间的标签都是不一样的。

迁移学习允许我们通过借用已经存在的一些相关的任务或域的标签数据来处理这些场景。我们尝试着把在源域中解决源任务时获得的知识存储下来,并将其应用在我们感兴趣的目标域中的目标任务上去,如图 2 所示。

图 2:迁移学习的设置

在实践中,我们力求将尽可能多的知识从源环境迁移到目标任务和域中。依据数据的不同,这种知识有不同的形式:它可以涉及物体是如何组成的,以允许我们更加容易地识别新的对象;也可以是关于人们用来表达观点的普通词汇,等等。

为什么现在需要迁移学习?

前百度首席科学家、斯坦福的教授吴恩达(Andrew Ng)在广受流传的 2016 年 NIPS 会议的教程中曾经说过:「迁移学习将会是继监督学习之后的下一个机器学习商业成功的驱动力」。

图 3:吴恩达在 2016 年 NIPS 上谈论迁移学习

特别地,他在白板上画了一个图表,我尽可能忠实地将它复制在如下所示的图 4 中(抱歉坐标轴没有详细的标注)。据吴恩达说,迁移学习将成为机器学习在产业界取得成功的一个关键驱动力。

图 4:吴恩达心中机器学习产业成功的驱动力

不容置疑,机器学习在产业界的应用和成功主要是受监督学习的驱动。受到深度学习中的进步、更强大的计算资源以及大量的标签数据集的推动,监督学习是人们对人工智能的兴趣复苏浪潮、多轮融资以及收购的主要原因,尤其是我们近年来看到的机器学习的应用,它们已经成为了我们生活的一部分。如果我们忽视关于另一个人工智能寒冬的怀疑和传言,并且相信吴恩达的预见,这种成功很可能会持续下去。

然而,不太清楚为什么已经存在了大约几十年并且至今在产业界很少被使用的迁移学习会出现吴恩达所预言的那种爆炸式增长。更有甚者,与机器学习的其他领域(如无监督学习和强化学习等)相比,迁移学习目前受到的关注更少。而且那些领域也正越来越受欢迎:无监督学习是实现通用人工智能的关键成分(如图 5 中 Yann LeCun 所说),人们对此兴趣已经复苏,尤其是在生成对抗网络(GAN)的推动下。反过来,强化学习在 Google DeepMind 的牵头下已经实现游戏 AI 的进步,AlphaGo 的成功堪称典范,并且也早已在现实世界中实现了成功,例如将 Google 数据中心的冷却费用降低了 40%。这两个领域虽然很有希望,但是在可预见的未来可能只会有着相对较小的商业影响力,并且大部分还停留在前沿研究论文的范围之内,因为它们仍然面临着许多挑战。

图 5:显然迁移学习没有出现在 Yann LeCun 的蛋糕成分问题中

什么使得迁移学习与众不同呢?下面我们会看一下在我看来驱使了吴恩达的预见的因素,并且总结一下现在正是重视迁移学习的时机的原因。

目前产业界对机器学习的应用分为两类:

一方面,在过去几年中,我们已经获得了训练越来越准确的模型的能力。我们现在所处的阶段,对很多任务而言,最先进的模型已经达到了这样的水平:它们的表现是如此的好以至于对使用者来说不再有障碍了。有多么好呢?最新的 ImageNet 上的残差网络 [1] 在进行物体识别时实现了超越人类的性能;Google 的 Smart Reply 系统 [2] 可以处理所有移动手机中的回复的 10%;语音识别的错误率在持续降低,并且比键盘输入更加准确 [3];我们已经实现了和皮肤科医师一样好的自动皮肤癌识别;Google 的神经机器翻译系统(NMT)[4] 已被用在了超过 10 种以上的语言对的生产中;百度可以实时地生成逼真的语音;类似的还有很多很多。这种成熟度允许将这些模型大规模地部署到数百万的用户上,并且已经得到了广泛的采用。

另一方面,这些成功的模型都是极其地重视数据的,依靠大量的标签数据来实现它们的性能。对一些任务和域而言,经过了多年的精心收集,这种数据是可以得到的。在少数情况下,数据是公开的,例如 ImageNet[5],但是在很多语音或者 MT 的数据集中,大量的标签数据都是有专利的,或者是很昂贵的,因为它们在竞争中提供了前沿参考。

同时,把机器学习的模型应用在自然环境中时,模型会面临大量之前未曾遇到的条件,它不知道如何去处理;每一个用户都有他们自己的偏好,也需要处理和生成不同于之前用来训练的数据;要求模型执行很多和训练相关但是不相同的任务。在所有这些情况下,尽管我们最先进的模型在它们被训练的任务和域上展示出了和人类一样甚至超越人类的性能,然而还是遭遇了明显的表现下降甚至完全失败。

迁移学习可以帮助我们处理这些全新的场景,它是机器学习在没有大量标签数据的任务和域中规模化应用所必须的。到目前为止,我们已经把我们的模型应用在了能够容易获取数据的任务和域中。为了应对分布的长尾,我们必须学会把已经学到的知识迁移到新的任务和域中。

为了做到这个,我们需要理解迁移学习所涉及到的概念。基于这个原因,我会在下面的内容中给出更加技术性的定义。

迁移学习的定义

为了这个定义,我会紧密地遵循 Pan 和 Yang(2010) 所做的杰出的综述 [6],并以一个二元文档分类为例。

迁移学习涉及到域和任务的概念。一个域 D 由一个特征空间 X 和特征空间上的边际概率分布 P(X) 组成,其中 X=x1,…, xn∈X。对于有很多词袋表征(bag-of-words representation)的文档分类,X 是所有文档表征的空间,xi 是第 i 个单词的二进制特征,X 是一个特定的文档。(注:这里的 X 有两种不同的形式,这里不太好呈现,具体请参考原文。

给定一个域 D={X,P(X)},一个任务 T 由一个标签空间 y 以及一个条件概率分布 P(Y|X) 构成,这个条件概率分布通常是从由特征—标签对 xi∈X,yi∈Y 组成的训练数据中学习得到。在我们的文档分类的例子中,Y 是所有标签的集合(即真(True)或假(False)),yi 要么为真,要么为假。

给定一个源域 Ds,一个对应的源任务 Ts,还有目标域 Dt,以及目标任务 Tt,现在,迁移学习的目的就是:在 Ds≠Dt,Ts≠Tt 的情况下,让我们在具备来源于 Ds 和 Ts 的信息时,学习得到目标域 Dt 中的条件概率分布 P(Yt|Xt)。绝大多数情况下,假设可以获得的有标签的目标样本是有限的,有标签的目标样本远少于源样本。

由于域 D 和任务 T 都被定义为元组(tuple),所以这些不平衡就会带来四个迁移学习的场景,我们将在下面讨论。

迁移学习的场景

给定源域和目标域 Ds 和 Dt,其中,D={X,P(X)},并且给定源任务和目标任务 Ts 和 Tt,其中 T={Y,P(Y|X)}。源和目标的情况可以以四种方式变化,我们仍然以我们的文档分类的例子在下面描述:

  1. XS≠XT。源域和目标域的特征空间不同,例如,文档是用两种不同的语言写的。在自然语言处理的背景下,这通常被称为跨语言适应(cross-lingual adaptation)。
  2. P(Xs)≠P(Xt)。源域和目标域的边际概率分布不同,例如,两个文档有着不同的主题。这个情景通常被称为域适应(domain adaptation)。
  3. YS≠YT。两个任务的标签空间不同,例如,在目标任务中,文档需要被分配不同的标签。实际上,这种场景通常发生在场景 4 中,因为不同的任务拥有不同的标签空间,但是拥有相同的条件概率分布,这是极其罕见的,
  4. P(Ys|Xs)≠P(Yt|Xt)。源任务和目标任务的条件概率分布不同,例如,源和目标文档在类别上是不均衡的。这种场景在实际中是比较常见的,诸如过采样、欠采样以及 SMOTE[7] 这些方法被广泛应用。

在明白了与迁移学习相关的概念和常被用到的一些场景之后,我们将要介绍一些能够说明它的潜力的应用。

迁移学习的应用

从模拟中学习

一个非常令我兴奋并且我认为我们在将来会见到更多的迁移学习应用就是从模拟中学习。对很多依靠硬件来交互的机器学习应用而言,在现实世界中收集数据、训练模型,要么很昂贵,要么很耗时间,要么只是太危险。所以最好能以某些风险较小的其他方式来收集数据。

模拟是针对这个问题的首选工具,在现实世界中它被用来实现很多先进的机器学习系统。从模拟中学习并将学到的知识应用在现实世界,这是迁移学习场景 2 中的实例,因为源域和目标域的特征空间是一样的(仅仅依靠像素),但是模拟和现实世界的边际概率分布是不一样的,即模拟和目标域中的物体看上去是不同的,尽管随着模拟的逐渐逼真,这种差距会消失。同时,模拟和现实世界的条件概率分布可能是不一样的,因为模拟不会完全复制现实世界中的所有反应,例如,一个物理引擎不会完全模仿现实世界中物体的交互。

图 6:谷歌的自动驾驶车辆(来源: Google Research 博客)

从模拟中学习有利于让数据收集变得更加容易,因为物体可以容易地被限制和分析,同时实现快速训练,因为学习可以在多个实例之间并行进行。因此,这是需要与现实世界进行交互的大规模机器学习项目的先决条件,例如自动驾驶汽车。谷歌无人车的技术主管 Zhaoyin Jia 说,「如果你真的想做无人驾驶车,模拟是必需的」。Udacity 已经开源了它用来进行无人驾驶汽车工程纳米学位教学的模拟器,在图 7 中可以看到,OpenAI 的 Universe 平台将可能允许用《侠盗飞车 5(GTA 5)》或者其他视频游戏来训练无人驾驶汽车。

图 7:Udacity 的无人驾驶汽车模拟器

另一个必需从模拟中学习的领域是机器人:在实际的机器人上训练模型是非常缓慢和昂贵的。从模拟中学习并且将知识迁移到现实世界的机器人上的方式能缓解这个问题,并且这种方面最近正得到越来越多的关注 [8]。图 8 中可以看到一个在现实世界和模拟中操作数据的一个例子。

图 8:机器人和模拟图片 (Rusu et al., 2016)

最后,另一个方向是通向通用人工智能的途径,其中模拟会是一个必需的组成部分。在现实世界中直接训练一个代理来实现通用人工智能的代价太高,并且不必要的复杂度还会在初始的时候阻碍训练。相反,如果基于诸如 CommAI-env [9] 的模拟环境的话,学习也许会更加成功,如图 9 所示。

图 9:Facebook 人工智能研究院的 CommAI-env (Mikolov et al., 2015)

适应到新的域

尽管从模拟中学习是域适应的一个特例,总结一些域适应的其他例子也是有价值的。

域适应在视觉中是一个常规的需求,因为标签信息易于获取的数据和我们实际关心的数据经常是不一样的,无论这涉及到如图 11 所示的识别自行车还是自然界中的其他物体。即使训练数据和测试数据看起来是一样的,训练数据也仍然可能包含人类难以察觉的偏差,而模型能够利用这种偏差在训练数据上实现过拟合 [10]。

图 10:不同的视觉域 (Sun et al., 2016)

另一个常见的域适应场景涉及到适应不同的文本类型:标准的自然语言处理工具(例如词性标签器或者解析器)一般都是在诸如华尔街日报这种新闻数据上进行训练,这种新闻数据在过去都是用来评价这些模型的。然而,在新闻数据上训练出的模型面临挑战,难以应对更加新颖的文本形式,例如社交媒体信息。

图 11:不同的文本类型/风格

即使在产品评价这样的域中,人们采用不同的词汇和短语去表达同样的观点。因此,在一种类型的评论上训练出的模型应该能够解决人们使用的通用和特定领域的意见词,以免被域的变化所混淆。

图 12:不同的主题

最后,尽管以上的挑战都是处理一般的文本或者图像类型,如果我们考虑涉及到单个用户或者用户组的域,问题就被放大了:以自动语音识别(ASR)为例。语音指定会成为下一个大平台,据预测,到 2020 年,我们所有搜索的 50% 将会通过语音执行。大多数自动语音识别系统都在由 500 位说话人组成的标准数据集上进行传统测试。如此一来,大多数拥有标准口音的人则是幸运的,然而,移民、非标准口音的人、语音障碍的人以及儿童则会不容易被理解。现在比以往任何时候都需要能够适应个体用户和少数群体的系统,以确保每个人的声音都能被听懂。

图 13:不同的口音

跨语言迁移知识

最后,在我看来,迁移学习的另一个杀手级别的应用是将知识从一种语言迁移到另一种语言,我曾经在此处写过一篇关于跨语言环境的嵌入式模型的文章(博文链接:http://sebastianruder.com/cross-lingual-embeddings/index.html)。可靠的跨语言域的方法会允许我们借用大量的已有的英文标签数据并将其应用在任何一种语言中,尤其是没有足够服务且真正缺少资源的语言。已有的最先进的方法看起来仍然太过理想,但是以 zero-shot 翻译 [11] 为例的最近的进展已在这个领域取得了快速的进步。

虽然到目前为止我们已经考虑过一些迁移学习的特殊应用,但是现在我们要研究一下文献中那些解决了一些挑战的实际方法和方向。

迁移学习的方法

在解决前文提及的四种迁移学习场景上,迁移学习拥有悠久的研究和技术的历史。深度学习的出现导致了一系列迁移学习的新方法,我们下面将会概览其中的一些。参考文献 [6] 可以看到一些早期方法的综述。

使用预训练的 CNN 特征

为了了解目前应用中最常见的迁移学习方式,我们必须理解在 ImageNet 上大型卷积神经网络所取得的杰出成功 [12]。

理解卷积神经网络

虽然这些模型工作方式的许多细节仍然是一个谜,但我们现在已经意识到,较低的卷积层捕获低级图像特征,例如边缘(见图 14),而较高的卷积层捕获越来越复杂的细节,例如身体部位、面部和其他组合性特征。

图 14:AlexNet 学习得到的实例滤波器 (Krizhevsky et al., 2012)

最后的全连接层通常被认为是捕获了与解决相应任务相关的信息,例如 AlexNet 的全连接层可以指出哪些特征与在 1000 个物体类中分类一张图片相关的。

然而,尽管知道一只猫有胡须、爪子、毛皮等是将一个动物识别为猫所必需的(参见图 15),但它并不能帮助我们识别新物体或解决其他共同的视觉任务(如场景识别、细粒度识别、属性检测和图像检索)。

图 15:这篇博文的标志猫

然而,能够帮助我们的是捕获关于一幅图像是如何组成的以及它包括什么样的边缘和形状组合的通用信息。正如我们之前所描述的,这种信息被包含在在 ImageNet 上训练出的卷积神经网络的最后卷积层或者最后一层之前的全连接层。

所以,对于一个新任务,我们可以简单地使用这种由最先进的卷积神经网络在 ImageNet 上预训练出的现成特征,并在这些抽象的特征上面训练出新的模型。在实际中,我们要么保持预训练的参数固定不变,要么以一个较小的学习率来调节它们,以保证我们不会忘记之前学习到的知识。这个方法已经被证明可以在一系列的视觉任务 [13] 以及一些依靠图像作为输入的任务(例如看图说话)上实现出色的结果。在 ImageNet 上训练出的模型似乎能够捕获到关于动物以及物体的构造和组成方式的细节,这种方式通常在处理图像的时候是有价值的。因此,ImageNet 上的任务似乎对于一般的计算机视觉问题来说是一个很好的代理(proxy),因为在其中所需的相同知识也与许多其他任务相关。

学习图像的隐含结构

一个类似的假设被用来推动生成模型:当训练一个生成模型的时候,我们假设生成逼真图像的能力需要对图像隐含结构的理解,它反过来可以被用在很多其他任务中。这个假设本身也依赖一个前提,即所有图像都由一个低维度的流形结构决定,这就是说,可以用一个模型来抽象出图像的隐含结构。利用生成对抗网络来生成逼真图片的最新进展揭示,这种模型或许真的存在,如图 16 所示,卧室空间的点之间的逼真过渡证明了这个模型的能力。

图 16:行走在卧室的图像流形中

预训练的特征在视觉之外的领域有用吗?

现成的卷积神经网络特征在视觉任务上有着无出其右的结果,但是问题在于,使用其它的数据,在其它领域(例如语言)能否复制这种成功?目前,对自然语言处理而言没有能够实现与图像领域一样令人惊叹结果的现成特征。为什么呢?这样的特征是否存在呢?如果不存在,那为什么视觉比语言更有利于这种形式的迁移呢?

诸如词性标注或分块这类低级别任务的输出就可以被比作现成的特征,但是在没有语法学的帮助下,不能采集到更细粒度的特征。正如我们看到的,可概括的现成特征似乎存在似乎存在于众多任务中原型任务中。在视觉中,物体识别就占据了这样的地位。在语言中,最接近的类似物可能是语言建模:为了预测给定词汇序列中的下一个单词或者句子,模型需要处理语言是如何构造的知识,需要理解那些单词很可能是相关的,那些单词很可能是彼此跟随出现的,需要对长期依赖关系进行建模,等等。

尽管最先进的语言模型越来越接近人类的水平 [15],但是它们的功能使用是有限的。同时语言建模方面的进步已经为其他任务也带来了正面的结果:用语言模型的目标函数对一个模型进行预训练能够提升性能 [16]。此外,在一个大规模的无标签的语料库上用一个近似的语言模型目标函数进行预训练的单词嵌入已经变得普遍 [17]。虽然它们不如视觉中的现成特征那样有效,但仍然能够带来相当大的收益 [18],并且它们可以被看做是从大规模的无标签的语料库向通用域知识的一种简单形式的迁移。

尽管自然语言处理领域的通用代理任务(general proxy)在当前似乎是无法企及的,但是辅助任务可以采用局部代理的形式。不管是通过多任务目标 [19] 还是综合任务目标 [20,21],它们都可以被用来为模型增加更多的相关知识。

使用预训练特征是目前做迁移学习的最直接、最常用的方式。然而,到目前为止它并不是唯一的一种。

学习域不变的表征

在实际中,预训练特征通常被用在我们想适应的新任务的场景适应中 3。对其他场景而言,另一个由深度学习实现知识迁移的方式是学习基于域而不会改变的表征。这个方法在概念上和我们思考过的使用预训练的卷积神经网络特征非常相似:两者都只编码关于域的一般知识。然而,给非视觉任务创建基于特定域的不变表征要比为所有任务生成有用的表征要更加经济,更加可行。ImageNet 已经花费了多年、数千个小时来创建,然而为了创建域不变的表征,我们通常只需要每个域中的无标签数据。这种表征通常用大量的去噪自动解码器学习得到,而且已经在自然语言处理中取得了和视觉中一样的成功 [22,23]。

让表征更加相似

为了提高学到的表征从源域到目标域的可迁移性,我们希望两个域之间的表征尽可能相似,这样一来,我们就不用考虑可能阻碍迁移的特定域的特征,只需要考虑域之间的共同点。

与其仅仅让我们的自动解码器学到一些表征,不如积极地激励以让两个域中的表征和彼此变得更加相似。我们可以像预处理步骤一样把这个直接应用在我们的数据表证过程中 [25,26],然后把新的表征用来训练。我们也可以促使我们的模型中的表征变得更加相似 [27,28]。

混淆域

另一个最近变得流行的、用来确保两个域的表征之间相似性的方式就是在现有的模型上增加一个目标函数来鼓励两个域的混淆 [29,30]。这个域混淆的损失函数就是常规的分类损失函数,模型尝试预测输入样例的类别。然而,又和常规的损失函数有所不同,如图 17 所示,从损失函数到网络的剩余部分的流动是反向的。

图 17:用一个梯度反向层(gradient reversal layer)来混淆域。

梯度反向层会导致模型最大化误差,而不是学着去最小化域分类的损失函数的误差。在实际中,这意味着该模型会学习那些允许最小化原目标函数的表征,同时不允许区分两个域,这样有利于知识迁移。如图 18 所示,尽管仅仅使用常规的目标函数训练的模型可以基于它学到的表征清晰地区分两种域,但是用域方法增强的目标函数训练得到的模型却不能做到这一点。

图 18:常规模型和域混淆模型的域分类得分比较 (Tzeng et al, 2015)

相关的研究领域

尽管这篇博文是关于迁移学习的,但是到今天为止,迁移学习并不是唯一一个试图利用有限的数据、在新的任务上使用学到的知识、并让模型在新环境上具有较好的泛化能力的机器学习领域。所以,在下面的内容中,我们会介绍一些其他的与迁移学习相关或者能够补充迁移学习目标的方向。

半监督学习

迁移学习力图最大效率地使用某些任务或者域中的无标签数据。这也是半监督学习所恪守的准则,半监督学习遵循经典机器学习的设定,但是它仅仅采用有限数量的标签数据来训练。如此,半监督域适应本质上就是在域变化的情况下进行半监督学习。许多来自于半监督学习的教训和思想同样地适用于迁移学习。文献 [31] 是一个很不错的关于半监督学习的综述。

更有效地使用可用的数据

另外一个与迁移学习和半监督学习相关的方向是让模型在有限数量的数据上运行得更好。

这个可以用几种方式实现:你可以使用无监督学习或者半监督学习从无标签数据中抽取信息,以减少对有标签样本的依赖;你可以允许模型能够获取一些数据的固有属性,同时减轻正则化过程中的过拟合倾向;最后,你还可以使用至今仍然被忽视或者位于不明显的地方的一些数据。

作为用户生成内容的意外结果,这种巧合的数据 [32] 可能会被创建,例如能够提升命名实体和词性标注的超链接;它也可能作为注释的副产品存在,例如注释器不一致(annotator disagreement) 可能改进标注或者解析;或者来源于用户行为的数据,例如视线追踪或者键入变化,可以影响自然语言处理的任务。虽然这些数据只是以有限的方式被利用,但是这样的例子鼓励我们在意外的地方查找数据,并研究检索数据的新方法。

提高模型的泛化能力

让模型更好地泛化也是与此相关的一个方向。为了实现更好的泛化能力,我们首先必须理解大规模神经网络的行为和错综复杂的结构,并且去研究它们泛化的原因和方式。最近的工作已经朝着这个目标迈出了大有希望的步伐 [33],但是很多问题仍然等待解答。

让模型更加稳健(robust)

尽管提升我们的模型的泛化能力这方面已经比较成功了,在类似的例子上面我们也许泛化得很好,但是在出乎意料或者者非典型的输入情况下仍然会失败。所以,一个关键的补充目标就是让我们的模型更加稳健。在近来对抗学习的进步的推动下,这个方向越来越受关注,并且,最近的方法研究了很多让模型在最糟糕的情况下或者面对不同设置的对抗样本时变得更加稳健的方式 [34,35]。

多任务学习

在迁移学习中,我们主要关心在我们的目标任务和域上友好的表现。相反,多任务学习中的目标是在所有可用的任务上都要表现良好,尽管某个标签数据通常都被假定在一个任务上。虽然多任务学习的方法没有直接用在迁移学习上,但是对多任务学习有利的关于任务的思想 [19] 仍然能够指引迁移学习的决策。

持续学习

虽然多任务学习允许我们在许多任务中保留知识,而不会对我们的源任务造成性能损失,但只有在所有任务都处于训练时间的情况下,这才是可能的。对于每个新任务,我们通常需要重新训练我们所有任务的模型。

然而,在现实世界中,我们希望一个代理能够通过使用它以往的一些经验来处理逐渐变得复杂的任务。为了达到这个目的,我们需要让一个模型在不忘记的情况下持续地学习。这个机器学习的领域被称为学会学习 [36]、元学习、终生学习,或者持续学习。持续学习在最近的强化学习 (强化学习以 Google DeepMind 对通用学习代理的探索而著称) 上已经取得了成功 [37,38,39],也正在被用于序列到序列的模型上 [40]。

zero-shot 学习

最后,如果我们把迁移学习使用到极限,并且想要仅仅从很少的(一个,甚至 0 个)实例中学习,这就分别得到了 few-shot、one-shot 以及 zero-shot 学习。让模型执行 one-shot 和 zero-shot 学习,无疑属于机器学习中最艰难的问题。而另一方面,这却是我们人类天生就会的:幼年的时候,为了让我们能够认出任何狗狗,我们仅仅需要被告知一次「这是一条狗」,然而成年人可以仅通过在文中阅读就理解一个东西的本质,不需要事先见过它。

one-shot 学习的新进展利用了这样的思想,即为了在测试的时候实现好的性能,模型需要显式地被训练,从而进行 one-shot 学习 [41,42]。但更加逼真、具有概括性的 zero-shot 学习设置在最近已经引起了注意,在零点学习中训练类别出现在测试的时候 [43]。

总结

总之,迁移学习提供了很多令人兴奋的研究方向,特别是许多应用需要能够将知识迁移到新的任务和域中的模型。希望我在这篇博客中为你们给出了关于迁移学习的概述并且激发了你们的兴趣。

Part 2:为了表明迁移学习的发展前景,贴上一段Gigaom对话吴恩达的专访。

Gigaom对话吴恩达:迁移学习是未来五年的重要研究方向:文章选自Gigaom,机器之心编译。

问:谈谈你在百度的日常工作吧。你们的人工智能团队在做什么?

:我们从事基础人工智能技术的开发工作。所有技术,从语音识别到计算机视觉、自然语言处理、数据仓库、用户理解,我们用人工智能技术支持很多百度国际业务并孵化新业务方向。比如,在百度,所有主要业务线都已经转型使用了人工智能。从网页搜索、广告到机器翻译、给用户推荐饭馆等。所以,人工智能在百度很普遍了。除此之外,我们也看到了人工智能所带来的许多新机遇,比如改善基于对话的(基于聊天窗口)的医疗助理,或使用面部识别打造自动开门的十字转门。我们所有团队也在追求那些新的垂直领域里的机遇。

问:在基础研究领域,你有没有什么想做的事情?比如,那些或许有用但我们却搞不清楚其所以然的事情?

:我们在基础研究领域做了很多工作,有趣的是,成功的基础研究一开始会以基础研究的面貌出现,但是,一旦你看到了它的应用价值,过一段时间后就会变得不那么基础了。我们做了很多这样的研究。可以说,在百度,早期的面部识别是以基础研究的面貌起步的,但是,这个服务如今融入产品中了,也服务着产品的百万用户。神经机器翻译最初也是一项基础研究。实际上,这个故事有着不广为人知的另一面:神经机器翻译是在中国开创、研发和使用的。美国公司的研发和使用是在百度之后。中国团队在某个研究领域领先其他国家,这只是例子之一。我们在计算机视觉方面的基础研究,比如,面部识别,也一直处于领先位置。今天,我们正在会学习的机器人和机器学习领域进行广泛的基础研究。我们的研究覆盖了从非常基础的研究到非常应用的研究的所有阶段。

问:百度团队是什么样子?通常你的团队的都是小规模的吗?团队以开发人员为重?你找到了一个成功的分配有限资源的办法了吗?

:这个问题比较复杂。很多项目开始时是小规模的。比如,一年前,自动驾驶团队有 22 个人。但是在团队展现了自己的实力、初步显示出前景并制定一个深思熟虑过的商业计划后,公司就有理由为其团队建设注入庞大资源,如今团队可能有几百个成员。团队从最初的一个基础研究项目变成一个崭新的业务分支。所以很多项目都是从相对小的团队开始的,不过,在其迈入正轨而且价值也清晰了后,我们就能将其嵌入一个拥有很多成员(几十人甚至几百人)的团队中。

问:如今人工智能领域,你认为五年内可以解决的难题之一是什么? 也就是今天很难解决但是五年后就会普遍加以实现的事情?

:从研究角度出发,我认为迁移学习和多任务学习是我想试着解决的问题之一。今天,机器学习全部经济价值都是应用学习,从针对特定任务的标记数据中学习,比如通过大量标记数据人脸数据库学习识别面部。对于很多任务来说,特定垂直领域的数据并不足以支持系统建构。因此,迁移学习会是一个很有活力的领域,机器机器可以学会一个不同的任务。比如,学会大体上识别物体。学会大体上识别物体后,这个知识中有多少会对识别面部的特定目的有用。

从研究角度看,我认为这个非常非常有前途,现在也有广泛使用着的用于这类迁移学习的技术,不过有关如何实现的理论和最佳实践仍然处于相当早期阶段。我们之所以对迁移学习感到兴奋,其原因在于现代深度学习的巨大价值是针对我们拥有海量数据的问题。但是,也有很多问题领域,我们没有足够数据。比如语音识别。在一些语言中,比如普通话,我们有很多数据,但是那些只有少数人说的语言,我们的数据就不够庞大。所以,为了针对数据量不那么多的中国少数人所说的方言进行语音识别,能将从学习普通话中得到的东西进行迁移吗?我们的技术确实可以做到这一点,我们也正在做,但是,这一领域的进步能让人工智能有能力解决广泛得多的问题。

问:人工智能可以告诉我们任何有关人类智能的有用信息吗?或者,反过来,从人工智能那里获取的线索能帮助 AI 更好地工作吗?亦或是这种情形,人工智能和人类智能只是都用了「智能」这个词而已,两者没有任何相似之处?

:从神经科学中获取的知识对当前人工智能的发展只有一丁点用。现实一点说,尽管神经科学研究了几个世纪,今天我们对人类大脑的工作方式几乎还是完全不了解,对大脑工作原理那点极为少量的知识仅能为人工智能提供一些并不可靠的灵感,不过,实际一点说,今天人工智能取得的成绩更多的是受计算机科学原理驱动的,而不是神经科学原理。我已经说过,在自动化人类所能的事情上,人工智能已经变得非常擅长了。比如,人非常善于语音识别,但是人工智能在语音识别上表现不好。人非常善于人脸识别,人工智能正在人脸识别上进展迅速。

事实证明,当我们试着将人类可以做的一件事情自动化而不是解决人类都无法完成的任务时,用于推进该人工智能技术的工具也会更好地发挥作用。原因很多,但是原因之一在于,当我们试着选择一个人类也可以胜任的任务,让人工智能参与进来时,我们就能深入找出人类怎么可以迅速完成这一任务原因。因此,在展望很多人工智能垂直领域时,我们当然可以做一些甚至人类自己都不很擅长的事情。我认为,现在亚马逊向我推荐的书目甚至比我妻子推荐的还要好。我妻子当然非常了解我,但是亚马逊能做到这个程度是因为它积累了大量有关我的浏览和阅读书目数据,这些数据远远多于被妻子看到的阅读书目。我大致认为,有了几个类似这样的例外,当人工智能试着自动化至少人类也能做到的事情时,就会进展神速。

问:您总是在预测人工智能将实现这个问题持保守意见,我认为您这样做的部分原因是因为担心公众狂热的期望会对人工智能研究科学造成灾难性后果,特别是关乎资金方面,我这样说对吗?

:我很倾向实用性,并努力成为一名实用主义者。但是在这一点上我想提出一个略有不同的观点。如果我开始组建一个团队来治疗所有人的疾病,这是非常值得庆祝的事,因为这听起来简直就像是一个伟大的使命。但是坦率地说,在硅谷有时候目标太高就会不受欢迎并一定会有反对的观点出现。我们比较喜欢讨论怎么锚定月亮那样的话题,因为即使我们失败了还能锚定星星。但我认为实际上目标太高会存在一个成本,所以如果你的目标是解决疟疾而不是组建团队解决世界所有的疾病,那么它可能会更有成效,对世界产生更大更好的影响。所以我认为,将人工智能应用于世界会产生更有意义的影响。我认为我们不仅可以通过自动驾驶汽车、人工智能物流改变交通运输,还可以通过人工智能完全地改变医疗。我们可以通过人工智能在世界上做出重大的改进。所以我所做的很多努力都是在为这些具体的、可行的事情做准备。因为我认为这对世界实际上更有成效,我们不会花时间去研究也几百年都不会到来的科幻小说场景。我认为这种为科幻小说花时间的事在硅谷是不受欢迎的。

话虽如此,但作为一个社会,我们需要从事做各种各样的事情。所以我认为有一些人努力解决疟疾,并希望通过盖茨基金会(Gates Foundations)和世界卫生组织(World Health Organization)帮助工作,而另外一些人努力解决人类所有疾病会让社会变得更好。我认为社会以不同的方式分配资源是一件好事。但我也认为这对我们领域的进步也是十分有帮助的。当我们思考「什么是我们有信心可以实现的任务?」对抗「什么是我们应该投资的进一步梦想?」,我们团队有一部分人在做这个,不过那只是我们整体努力的一个小方向。

问:你相信人工通用智能(AGI)的可能性吗?如果是的话,如果是的话,那你认为它是沿着我们已知技术的进化路径实现么,背后的摩尔定律,或者 AGI 是不是需要一个整体的根本性突破,而这个突破甚至是不能预料到的东西?

:我认为实现 AGI 肯定需要多个突破,但这很可能会发生。因为有软件算法的突破和硬件可能的突破。然而,我发现很难预测这一突破是在十年后还是千年后出现。

问:您认为人类的创造力,如编写剧本或小说的能力是否需要另外一个 AGI,或者就是现在我们掌握的技术?

:我认为很多创造力其实是我们不太了解我们创造它的过程。例如,Garry Kasparov 说他看到了深蓝(Deep Blue)创造性的下棋。作为技术专家,我知道国际象棋程序是如何运行的,在任务中通过投入惊人的计算量,深蓝能够下一步妙棋,而这一步妙棋可能在象棋大师眼里就是一种创造性的举措。我自己也研究过创造性过程,创造力是十分困难的工作,因为创造力是增加许多小模块并拼合到一起,然后建立起一个好像是从无到有的巨大事物。但是,如果有人没有看到所有的小模块,或拼合这些小模块成为创造性的物体有多难,那么我认为创造力的实质比它外表上看起来更加神奇。

我的艺术家朋友一遍又一遍地练习单个画笔,并一遍又一遍地画出类似的画,然后他就逐渐取得了进步。我的祖母是一个画家,她在完成一幅惊人的作品前都是一点点进步的,当你只看到最终的成果,而没有看到在完成最终成果之前做所的努力,那么你就会感到神奇。我认为你所做的所有工作都是通过一点点小增量达成的。

问:所以如果你回顾刚才所谈的内容,人类的创造力是可以计算化和可实现的,在合理的时间范围内。人类的创造力不是什么非常神秘的东西,或者说是超出我们能实现的范围的。您同意吗?

:是的。要么通过偶然的绝佳的棋子移动,寻求一个人类还未想到的句子的解释,创造一个简单的艺术作品,我认为我们正在见证机器行为具有某种程度的创造性。我们很可能会继续看到这样循序渐进的进展,机器在今后几年内逐渐变得更有「创造性」。

问:您的团队在地理分布上是怎样的?大部分团队成员在哪里?

:主要在北京。我们在美国有一个 100 人的团队,在北京也有一个大的团队,同时在上海和深圳也有一些小团队。

问:在机器人技术领域,你能看到不同国家和地区的发展重点。例如在日本,能明显看到将更多重心放在制造友好机器人上,去制造与人情感化连接的机器人,而不是与世界上其他部分所连接的机器人。那么在人工智能里面,是不是也有类似的情况?因为刚才您提到脸部识别来自中国。在人工智能领域,不同的公司、不同的地区或者是不同的国家是不是会对有些事情的看法也不同?

:首先我认为在中国,语音识别是经济和商业模式带动发展的一个很好的例子。从产品层面来讲,我认为不同的商业压力和产品优先性会导致不同的国家在不同领域的投资更多或者是更少。在中国就有这样一些例子。

在中国,用手机键盘打中文字要比打英文更加痛苦。所以这反过来也推动了更好的移动端手机语音识别的发展。因此我觉得百度领先在语音识别领域取得的突破也是由于要为用户带来语音识别体验的强大产品压力的驱使。

至于机器翻译,你知道美国有很多关于神经机器翻译的 PR。很多人都不知道的一点是,神经机器翻译其实是在中国首次开创并得到发展的,之后又成为了产品。美国的一些大型公司都在这之后,我认为导致这个现象的其中一个原因是因为在中国,对将一些公开的内容翻译成中文的需求很大,而在美国这样一个说英语国家中,英语的内容非常多。当然中文的内容也很多,但是外国的内容译成中文会特别快,这是一种文化现象。然而世界上的英语内容已经非常多,所以说英语的人寻求对外语内容的翻译没有那么紧需。

人脸识别作为一种商业在中国发展迅猛,因为作为移动优先的社会,中国人习惯了在移动端进行大笔的金融交易。例如,你可以通过百度获得教育贷款,我们会基于你的贷款批给你一大笔钱,而这个申请你在手机上就可以完成。在我们通过手机给某个人发一大笔钱的时候,我们对确认这个人的身份就会产生强烈的兴趣。所以人脸识别就成为了要实现这一目标的关键技术。那些压力也意味着中国的人脸识别是另外一个发展迅猛的领域,其发展势头比其他国家都要快。

不管是在美国还是中国,在人工智能方面都有很多的创新。我猜还有其他的一些领域。英国在人工智能玩视频游戏方面进行了大量的投资。我个人不会在这一方面进行投资,但是我想不同的组织有不同的兴趣和优先性。

我认为如今人工智能的进步成为了一个全球化现象,而且中国有很多的创新正在发生,而英语世界国家还没有意识到这一点。这并不是因为保密的问题,我认为这是因为缺乏语言的流畅性。

例如,几周前我去参加 NIPS 大会,在不到一天的时间之内,所有会议上最重要的演讲都被总结或者是转写为中文 ,并发布在中国的网络上。所以说巴塞罗那一个英语会议转变成中文的知识,中国做的非常快并且非常高效。在不到一天的时间之内,很多中国的研究者就可以阅读我们在西班牙演讲的中文版。我认为正是很多中国人熟练的英语口语和写作能力才让这成为可能。

不幸的是,逆向的知识转换要慢得多。因为从全球范围来看,当前中国之外很多的研究者不说中文。所以当人们发明了很多东西,甚至已经在中国广泛传播,一些英语观众都浑然不知,有时候甚至是在一年之后,一个英语国家的公司发明了类似的东西之后这些技术才能传播开来。所以我希望自己能做的其中一件事情就是帮助提高相反方向知识转换的速度,因为如果我们能够让研究社区更加的全球化,那么全球的研究社区就会进步的越快。

我想有一些具体的例子。首先是在中国,普通话短句的语音识别在一年前超越了人类水平,但是这一成果在全球范围的知名度并不广,直到最近才被很多人熟知。我可以看到很多的例子,从语音识别领域取得的进步到神经机器翻译领域所取得的进步,再到中国率先建立了深度学习 GPU 处理器,但是我希望能够在中国初次发明之后,在美国也能够尽快看到这些成就。

问:您有没有一些网站或者是期刊可以推荐给我们的读者,以便让他们能够更加容易地查找信息?

:在中国,传播知识的方式和美国不太相同。在中国,人工智能在社交媒体上传播特别快,而是传播的方式特别强大,如果不是亲身经历的话可能无法理解。另外,相关的网站非常多,但是很多都是中文网站。你们可以在 Twitter/微博上关注我,我会看看该怎么帮助大家。

问:在你看来人类意识是什么?或者更确切地说,你相信人类意识从根本上来说是可计算的吗?

:我不知道意识到底是什么。在哲学领域,对周围的人是否真正具有意识,或者说他们像是僵尸一样,以及机器人通过计算表现得好像它们具有意识一样等这些问题一直存在着争论。总而言之,我们如何知道除了我们之外的其他人都真正具有意识?还是说他们是机器人?

我并不认为意识是计算机从根本上来说无法实现的,确切地说,是我们应该如何去实现,而实现这一点是需要几十年还是几百年,我们还不清楚。

以上。

文章均来源于微信公众号:机器之心(almosthuman2014),如需转载,请私信联系。

什么是迁移学习?迁移学习的场景与应用相关推荐

  1. 读后感和机翻《人类因果迁移:深度强化学习的挑战》

    研究朱松纯FPICU体系的第1篇文章 <Human Causal Transfer: Challenges for Deep Reinforcement Learning>CogSci 2 ...

  2. 深度学习|迁移学习|强化学习

    1.  深度学习: 基于卷积神经网络的深度学习(包括CNN.RNN),主要解决的领域是 图像.文本.语音,问题聚焦在 分类.回归 也就是我们经典的各种神经网络算法. 图1:深度学习适用领域 图2:吴恩 ...

  3. 机器学习的五大分类,监督学习 无监督学习 半监督学习 迁移学习 增强学习

    机器学习的五大分类,监督学习 无监督学习 半监督学习 迁移学习 增强学习@监督学习 无监督学习 半监督学习 监督学习 在监督学习中,给定一组数据,我们知道正确的输出结果应该是什么样子,并且知道在输入和 ...

  4. 2.7 迁移学习-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 2.6 定位数据不匹配 回到目录 2.8 多任务学习 迁移学习 (Transfer Learning) 深度学习中,最强大的理念之一就是,有的时候神经网络可以从一个任务中习得 ...

  5. Pytorch模型迁移和迁移学习,导入部分模型参数

    Pytorch模型迁移和迁移学习 目录 Pytorch模型迁移和迁移学习 1. 利用resnet18做迁移学习 2. 修改网络名称并迁移学习 3.去除原模型的某些模块 1. 利用resnet18做迁移 ...

  6. 迁移学习 迁移参数_迁移学习简介

    迁移学习 迁移参数 介绍 (Introduction) We as humans have the ability to transfer the knowledge gained in one ta ...

  7. 在大量数据迁移期间oracle学习笔记

    在数据迁移期间oracle学习笔记 0主键(自增) 1用户代码 2区域代码 3承保公司代码 4理赔编码 5投保确认码 6案件状态 7案件进展 8重开案件进展 9转换后案件状态 需求分析: 1.根据上述 ...

  8. 迁移学习---迁移学习基础概念、分类

    迁移学习提出背景 在机器学习.深度学习和数据挖掘的大多数任务中,我们都会假设training和inference时,采用的数据服从相同的分布(distribution).来源于相同的特征空间(feat ...

  9. 元学习 迁移学习_元学习就是您所需要的

    元学习 迁移学习 Update: This post is part of a blog series on Meta-Learning that I'm working on. Check out ...

  10. 迁移学习 --- 终身学习

    C. 人工智能 - 迁移学习 - 终身学习 概述 别称 Continuous Learning Never Ending Learning Incremental Learning 难点 Knowle ...

最新文章

  1. 前端面试http和https的区别
  2. python怎么打开交互式窗口-使用pycharm进行交互式shell调试
  3. JavaScript 技巧篇-js增加延迟时间解决单击双击事件冲突,双击事件触发单击事件
  4. 调用c++_WebAssembly: 在C代码中调用JS的函数
  5. Notice: Undefined variable: id in D:\phpStudy18\PHPTutorial\WWW\sqli-labs-master\Less-32\index.php o
  6. 《C++ Primer》14.3.2节练习(部分)
  7. nssl1438-战略威慑【枚举,树的直径】
  8. 92. 反转链表 II golang
  9. mysql8解决区分大小写问题_球磨机“包球”和“饱磨”分不清?点进来快速区分,解决问题...
  10. html的opacity标签,css中opacity是什么意思
  11. mysql并发 node_nodejs写入mysql单次数据量过大的解决方法_沃航科技
  12. 前端开发 选择器的优先级 0229
  13. windows查看、删除系统级隐藏文件(木马最喜欢用这招)
  14. android5.1去掉开机锁屏
  15. HFSS----微带天线设计实例之模型分析优化
  16. 微信商户平台 扣款测试规则
  17. 如何用计算机求一个正数的算术平方根,用计算器求一个正数的算术平方根
  18. c#与python 交互(调用第三方库)
  19. 我招聘了一名程序员,试用期都过了,结果发现他学历是假的...
  20. java在线观看(jav在线网站)

热门文章

  1. [转载]JScript 语法错误
  2. Window 10优化:加快PC速度的13种方法
  3. 操作系统 | PV操作七大经典问题 生产者消费者 读者写者 哲学家进餐 理发师理发睡觉 和尚打水 吸烟者 吃水果
  4. STC15系列增强型PWM学习记录
  5. 设计图像素和开发像素_游戏开发的像素艺术设计
  6. 视频插帧(Video Frame interpolation)论文及源码
  7. 利用subset()函数提取数据
  8. WEB 2.0中AJAX应用的详细探讨
  9. 【笔记】Ubuntu下wacom数位板的安装与使用
  10. 顺序Gauss 消元法