你有一本豆瓣9.5分的新书忘了领!愣着干嘛?进来领啊!

2020-06-29  本文已影响0人  AI研习社

文章作者:邱锡鹏 复旦大学计算机科学技术学院教授、博士生导师注:

文末有赠书活动哦!

《神经网络与深度学习》——豆瓣评分9.5!复旦大学邱锡鹏教授力作,周志华、李航联袂推荐,深受好评的深度学习讲义“蒲公英书”正式版!系统整理深度学习的知识体系,由浅入深地阐述深度学习的原理、模型以及方法。更适合中文读者自学与入门的深度学习图书!使你掌握神经网络与深度学习技术的基本原理,知其然也知其所以然。上市不到一周即荣登京东和当当新书榜榜首!

作者介绍

邱锡鹏,复旦大学计算机科学技术学院教授、博士生导师,于复旦大学获得理学学士和博士学位。

主要研究领域包括自然语言处理、机器学习、深度学习等,在相关领域的权威国际期刊、会议上发表学术论文60余篇,获得计算语言学顶级国际会议ACL 2017杰出论文奖、全国计算语言学会议CCL 2019最佳论文奖。

2015年入选首届中国科协青年人才托举工程,2018年获得中国中文信息学会“钱伟长中文信息处理科学技术奖青年创新一等奖”,入选由“清华—中国工程院知识智能联合研究中心和清华大学人工智能研究院”联合发布的2020年人工智能(AI)全球最具影响力学者提名。该排名参考过去十年人工智能各子领域最有影响力的会议和期刊发表论文的引用情况,排名前10的学者当选该领域当年最具影响力学者奖,排名前100的其他学者获最具影响力学者提名奖。

作为项目负责人开源发布了两个自然语言处理开源系统FudanNLP和FastNLP,获得了学术界和产业界的广泛使用。目前担任中国中文信息学会青年工作委员会执行委员、计算语言学专委会委员、语言与知识计算专委会委员,中国人工智能学会青年工作委员会常务委员、自然语言理解专委会委员。

机器学习的学习方式包括监督学习无监督学习等。针对一个给定的任务,首先要准备一定规模的训练数据,这些训练数据需要和真实数据的分布一致,然后设定一个目标函数和优化方法,在训练数据上学习一个模型。

此外,不同任务的模型往往都是从零开始来训练的,一切知识都需要从训练数据中得到。这也导致了每个任务都需要准备大量的训练数据。

在实际应用中,我们面对的任务往往难以满足上述要求,比如训练任务和目标任务的数据分布不一致,训练数据过少等。这时机器学习的应用会受到很大的局限。并且在很多场合中,我们也需要一个模型可以快速地适应新的任务。因此,人们开始关注一些新的学习方式。

本文中将介绍两种典型的“模型独立的学习方式”:多任务学习和迁移学习。这里“模型独立”是指这些学习方式不限于具体的模型,不管是前馈神经网络、循环神经网络还是其他模型。内容来源:《神经网络与深度学习》


多任务学习一般的机器学习模型都是针对单一的特定任务,比如手写体数字识别、物体检测等。不同任务的模型都是在各自的训练集上单独学习得到的。如果有两个任务比较相关,它们之间会存在一定的共享知识,这些知识对两个任务都会有所帮助。这些共享的知识可以是表示(特征)、模型参数或学习算法等。目前,主流的多任务学习方法主要关注于表示层面的共享。

多任务学习(Multi-task Learning)是指同时学习多个相关任务,让这些任务在学习过程中共享知识,利用多个任务之间的相关性来改进模型在每个任务上的性能和泛化能力。多任务学习可以看作是一种归纳迁移学习(Inductive Transfer Learning),即通过利用包含在相关任务中的信息作为归纳偏置(Inductive Bias)来提高泛化能力[Caruana, 1997]。

1. 共享机制

多任务学习的主要挑战在于如何设计多任务之间的共享机制。在传统的机器学习算法中,引入共享的信息是比较困难的,通常会导致模型变得复杂。但是在神经网络模型中,模型共享变得相对比较容易。深度神经网络模型提供了一种很方便的信息共享方式,可以很容易地进行多任务学习。多任务学习的共享机制比较灵活,有很多种共享模式。图10.1给出了多任务学习中四种常见的共享模式,其中A、B和C表示三个不同的任务,橙色框表示共享模块,蓝色框表示任务特定模块。

图10.1 多任务学习中四种常见的共享模式这四种常见的共享模式分别为:

2. 学习步骤

在多任务学习中,每个任务都可以有自己单独的训练集。为了让所有任务同时学习,我们通常会使用交替训练的方式来“近似”地实现同时学习。

假设有M个相关任务,第m个任务的训练集为Dm,包含Nm个样本。


其中x(m,n)和y(m,n)表示第m个任务中的第n个样本以及它的标签。

假设这M个任务对应的模型分别为fm(x;θ),1≤m≤M,多任务学习的联合目标函数为所有任务损失函数的线性加权。

其中Lm(·)为第m个任务的损失函数,ηm是第m个任务的权重,θ表示包含了共享模块和私有模块在内的所有参数。权重可以根据不同任务的重要程度来赋值, 也可以根据任务的难易程度来赋值。通常情况下,所有任务设置相同的权重,即ηm= 1,1≤m≤M。

多任务学习的流程可以分为两个阶段:

多任务学习中联合训练阶段的具体过程如算法10.4所示:

多任务学习通常可以获得比单任务学习更好的泛化能力,主要有以下几个原因:


迁移学习标准机器学习的前提假设是训练数据和测试数据的分布是相同的。如果不满足这个假设,在训练集上学习到的模型在测试集上的表现会比较差。而在很多实际场景中,经常碰到的问题是标注数据的成本十分高,无法为一个目标任务准备足够多相同分布的训练数据。

因此,如果有一个相关任务已经有了大量的训练数据,虽然这些训练数据的分布和目标任务不同,但是由于训练数据的规模比较大,我们假设可以从中学习某些可以泛化的知识,那么这些知识对目标任务会有一定的帮助。如何将相关任务的训练数据中的可泛化知识迁移到目标任务上,就是迁移学习(Transfer Learning)要解决的问题。

具体而言,假设一个机器学习任务T的样本空间为X×Y,其中X为输入空间,Y为输出空间,其概率密度函数为p(x,y)。为简单起见,这里设X为D维实数空间的一个子集,Y为一个离散的集合。

一个样本空间及其分布可以称为一个领域(Domain):D=(X,Y,p(x,y))。给定两个领域,如果它们的输入空间、输出空间或概率分布中至少一个不同,那么这两个领域就被认为是不同的。从统计学习的观点来看,一个机器学习任务T定义为在一个领域D上的条件概率p(y|x)的建模问题。

迁移学习是指两个不同领域的知识迁移过程,利用源领域(Source Domain)DS中学到的知识来帮助目标领域(Target Domain)DT上的学习任务。源领域的训练样本数量一般远大于目标领域。

表10.1给出了迁移学习和标准机器学习的比较。

表 10.1 迁移学习和标准机器学习的比较

迁移学习根据不同的迁移方式又分为两个类型:归纳迁移学习(Inductive Transfer Learning)和转导迁移学习(Transductive Transfer Learning)。这两个类型分别对应两个机器学习的范式:归纳学习(Inductive Learning)和转导学习(Transductive Learning)[Vapnik, 1998]。一般的机器学习都是指归纳学习,即希望在训练数据集上学习到使得期望风险(即真实数据分布上的错误率)最小的模型。而转导学习的目标是学习一种在给定测试集上错误率最小的模型,在训练阶段可以利用测试集的信息。

归纳迁移学习是指在源领域和任务上学习出一般的规律,然后将这个规律迁移到目标领域和任务上;而转导迁移学习是一种从样本到样本的迁移,直接利用源领域和目标领域的样本进行迁移学习。

1. 归纳迁移学习

在归纳迁移学习中,源领域和目标领域有相同的输入空间XS=XT,输出空间可以相同也可以不同,源任务和目标任务一般不相同TS≠TT,即pS(y|x)≠pT(y|x)。一般而言,归纳迁移学习要求源领域和目标领域是相关的,并且源领域DS有大量的训练样本,这些样本可以是有标注的样本,也可以是无标注样本。

在归纳迁移学习中,由于源领域的训练数据规模非常大,这些预训练模型通常有比较好的泛化性,其学习到的表示通常也适用于目标任务。归纳迁移学习一般有下面两种迁移方式:

假设预训练模型是一个深度神经网络,这个预训练网络中每一层的可迁移性也不尽相同 [Yosinski et al., 2014]。通常来说,网络的低层学习一些通用的低层特征,中层或高层学习抽象的高级语义特征,而最后几层一般学习和特定任务相关的特征。因此,根据目标任务的自身特点以及和源任务的相关性,可以有针对性地选择预训练模型的不同层来迁移到目标任务中。

将预训练模型迁移到目标任务上通常会比从零开始学习的方式更好,主要体现在以下三点 [Torrey et al., 2010]:

归纳迁移学习和多任务学习也比较类似,但有下面两点区别:

  1. 转导迁移学习

转导迁移学习是一种从样本到样本的迁移,直接利用源领域和目标领域的样本进行迁移学习[Arnold et al., 2007]。转导迁移学习可以看作一种特殊的转导学习(Transductive Learning)[Joachims, 1999]。转导迁移学习通常假设源领域有大量的标注数据,而目标领域没有(或只有少量)标注数据,但是有大量的无标注数据. 目标领域的数据在训练阶段是可见的。

转导迁移学习的一个常见子问题是领域适应(Domain Adaptation)。在领域适应问题中,一般假设源领域和目标领域有相同的样本空间,但是数据分布不同pS(x,y)≠pT(x,y)。

根据贝叶斯公式,p(x,y)=p(x|y)p(y)=p(y|x)p(x),因此数据分布的不一致通常由三种情况造成:

广义的领域适应问题可能包含上述一种或多种偏移情况。目前,大多数的领域适应问题主要关注于协变量偏移,这样领域适应问题的关键就在于如何学习域无关(Domain-Invariant)的表示。假设pS(y|x)=pT(y|x),领域适应的目标是学习一个模型f:X→Y使得:

其中L(·)为损失函数,θf为模型参数。

如果我们可以学习一个映射函数g:X→Rd,将x映射到一个特征空间中,并在这个特征空间中使得源领域和目标领域的边际分布相同pS(g(x;θg))=pT(g(x;θg)),∀x∈X,其中θg为映射函数的参数,那么目标函数可以近似为:


其中RS(θf,θg)为源领域上的期望风险函数,dg(S,T)是一个分布差异的度量函数,用来计算在映射特征空间中源领域和目标领域的样本分布的距离,γ为一个超参数,用来平衡两个子目标的重要性比例。这样,学习的目标是优化参数θf,θg使得提取的特征是领域无关的,并且在源领域上损失最小。令


分别为源领域和目标领域的训练数据,我们首先用映射函数g(x,θg)将两个领域中训练样本的输入x映射到特征空间,并优化参数θg使得映射后两个领域的输入分布差异最小。

分布差异一般可以通过一些度量函数来计算,比如 MMD (Maximum Mean Discrepancy)[Gretton et al., 2007]、CMD(Central Moment Discrepancy)[Zellinger et al., 2017]等,也可以通过领域对抗学习来得到领域无关的表示 [Bousmalis et al., 2016; Ganin et al., 2016]。

以对抗学习为例,我们可以引入一个领域判别器c来判断一个样本是来自于哪个领域。如果领域判别器c无法判断一个映射特征的领域信息,就可以认为这个特征是一种领域无关的表示。

对于训练集中的每一个样本x,我们都赋予z∈{1,0}表示它是来自于源领域还是目标领域,领域判别器c(h,θc)根据其映射特征h=g(x,θg)来预测它来自于源领域的概率p(z=1|x)。由于领域判别是一个两分类问题,h来自于目标领域的概率为1-c(h,θc)。因此,领域判别器的损失函数为:



其中hS(n)=g(xS(n),θg),hD(m)=g(xD(m),θg) 分别为样本xS(n)和xD(m)的特征向量。

这样,领域迁移的目标函数可以分解为两个对抗的目标。一方面,要学习参数θc使得领域判别器c(h,θc)尽可能区分出一个表示h=g(x,θg)是来自于哪个领域;另一方面,要学习参数θg使得提取的表示h无法被领域判别器c(h,θc)预测出来,并同时学习参数θf使得模型f(h;θf)在源领域的损失最小。



总结目前,神经网络的学习机制主要是以监督学习为主,这种学习方式得到的模型往往是任务定向的,也是孤立的。每个任务的模型都是从零开始来训练的,一切知识都需要从训练数据中得到,导致每个任务都需要大量的训练数据。这种学习方式和人脑的学习方式是不同的,人脑的学习一般不需要太多的标注数据,并且是一种持续的学习,可以通过记忆不断地累积学习到的知识。本文主要介绍了俩种和模型无关的学习方式:

今天的分享就到这里,谢谢大家。

——本文摘自邱锡鹏教授新书《神经网络与深度学习》,经出版方授权发布。

上一篇 下一篇

猜你喜欢

热点阅读