第2章 相关学习范式
如上一章所述,终身学习(LL)有几个关键特征:持续的学习过程,明确的知识保留和积累,以及使用以前学习的知识来帮助学习新任务。此外,终身学习还应能够发现并逐步学习新任务,以及在实际应用中学习额外的知识并持续改进模型。有几种机器学习(ML)范式都具有相关的特征。本章重点讨论最相关的几种范式,例如迁移学习或领域适应、多任务学习(MTL)、在线学习、强化学习和元学习。前两种范式与LL关系更为密切,因为这两种范式都涉及跨领域或任务的知识迁移,但没有持续学习和明确保留或积累已学知识的过程。在线学习和强化学习有持续的学习过程,但它们只专注于一个时间维度内的单个学习任务。元学习也涉及多任务,但主要是关注一次或很少几次学习的过程。我们将介绍以上相关学习范式的代表性技术,这样可以更清晰地看到这些范式之间的区别。
2.1 迁移学习
迁移学习(transfer learning)是ML和数据挖掘研究中的一个热门话题。它在自然语言处理中通常也称为领域自适应(domain adaptation)。迁移学习通常涉及两个领域:源域(source domain)和目标域(target domain)。虽然可以有多个源域,但是现有的研究几乎都只使用一个源域。源域通常包含大量的标记训练数据,而目标域没有或只有很少的标记训练数据。迁移学习的目标是使用源域中的标记数据来帮助目标域中的学习(该领域内三篇较好的综述文章是[Jiang,2008;Pan and Yang,2010;Taylor and Stone,2009])。请注意,这些文献中的一些研究人员也使用术语“源任务(source task)”和“目标任务(target task)”,而不是“源域”和“目标域”,但到目前为止,后两个术语更常用,因为“源任务”和“目标任务”通常来自不同的领域或完全不同的分布[Pan and Yang,2010]。
有许多类型的知识都可以从源域迁移到目标域,以帮助在目标域中进行学习。例如,Bickel 等人[2007]、Dai等人[2007b,c]、Jiang 和Zhai [2007]、Liao等人[2005]以及Sugiyama等人[2008] 都直接将源域中部分数据实例作为具有新权重的实例和重要性采样的知识,并将其迁移到目标域。Ando和Zhang[2005]、Blitzer 等人 [2006,2007]、Dai等人[2007a]、Daume III [2007]以及Wang 和Mahadevan[2008] 使用源域中的特征为目标域生成新的特征表示。Bonilla 等人[2008]、Gao等人[2008]、Lawrence和Platt [2004]以及Schwaighofer等人[2004] 将学习参数从源域迁移到目标域。为了说明迁移学习的特点,我们简要介绍一下现有的迁移学习方法。
2.1.1 结构对应学习
一个比较流行的迁移学习技术是Blitzer等人[2006,2007]提出的结构对应学习(Structural Correspondence Learning,SCL)。该方法主要用于文本分类。其工作原理如下:给定源域的标记数据,以及源域和目标域的未标记数据,SCL尝试在两个域中找到一组具有相同特征或行为的枢轴(pivot)特征。如果非枢轴特征与不同域中的许多公共枢轴特征相关联,则此特征在不同域中的行为可能相似。例如,如果单词w与两个域中的同一组轴心词频繁地同时出现,那么w就有可能跨域表现相同(例如,保持相同的语义)。
为了实现上述想法,SCL首先选择m个特征,这些特征在两个域中频繁出现,并且也能较好地预测源标签(在他们的论文中,这些特征与源标签具有最大互信息)。这些枢轴特征代表两个域的公共特征空间。然后,SCL计算每个枢轴特征与两个域中其他非枢轴特征的相关性,从而构造相关矩阵W,其中行i是非枢轴特征与第i个枢轴特征的相关值向量。直观地说,正值表示那些非枢轴特征与源域或目标域中的第i个枢轴特征正相关,这将确定两个域之间的特征对应关系。之后,SCL采用奇异值分解(SVD)来计算W的低维线性近似值θ(转换后的前k个左奇异向量)。用于训练和测试的最后一组特征是特征x的原始特征集与的并集,其中产生k个实数值特征。使用源域中的合并特征和标记数据所构建的分类器应该在源域和目标域中都有效。
Pan等人[2010] 提出了一种类似于SCL的高级方法。该算法适用于源域中仅有标记样例且目标域中仅有未标记样例的情况。它通过使用光谱特征对齐(SFA)算法,以独立于领域的单词为桥梁,将来自不同领域的特定于领域的单词进行聚类,从而减小领域间的差异性。独立于领域的单词就像上述的轴心词,选择方法也可类似。
2.1.2 朴素贝叶斯迁移分类器
在朴素贝叶斯分类中,已经出现了很多迁移学习方法[Chen et al.,2013a;Dai et al.,2007b;Do and Ng,2005;Rigutini et al.,2005]。这里我们简要介绍一下Dai等人[2007b]的研究工作来说明几种迁移学习方法。
Dai等人[2007b]提出了一种称为朴素贝叶斯迁移分类器(Naive Bayes Transfer Classifier,NBTC)的方法。假设将源域的标记数据记为是Dl分布下的Dl,将目标域的未标记数据记为Du分布下的Du。Dl分布可能与Du分布不同。在NBTC中遵循以下两个步骤:
- 使用源域的Dl分布下的标记数据Dl构建初始朴素贝叶斯分类器;
- 运行期望最大化(EM)算法,结合目标未标记数据,在目标域Du分布下找到局部最优模型。
NBTC的目标函数旨在找到Du分布下最大后验(MAP)假设的局部最优:
该等式考虑了假设h下源域标记数据和目标域未标记数据的概率。标记数据提供了监督分类信息,同时估计Du分布下未标记数据的概率,以确保模型符合Du。根据贝叶斯定理,NBTC最大化对数似然:
其中,C是类的集合,d∈Dl是Dl中的文档。为了对公式(2.2)进行优化,Dai等人[2007b]运用以下EM算法:
- E-Step:
- M-Step:
其中,w∈d表示文档d中的一个词。PDu(cDi)和PDu(wc,Di)可根据朴素贝叶斯分类公式进行重写(详情请见Dai等人[2007b])。上述E-Step和M-Step可重复执行,直至得到一个局部最优解。
Chen等人[2013a] 提出了两种EM型算法,分别是FS-EM(特征选择EM)和Co-Class(共同分类)。在每次EM迭代中,FS-EM都使用特征选择将知识从源域迁移到目标域。Co-Class进一步增加了共同训练的概念[Blum and Mitchell,1998],用于处理公共正面和负面特征中的不平衡。EM型算法构建两个NB分类器,一个基于标记数据,另一个基于带有预测标签的未标记数据。早期的跨语言文本分类研究也使用类似NB分类的思路[Rigutini et al.,2005],将英语中的标记数据的知识迁移到意大利语中的未标记数据。
2.1.3 迁移学习中的深度学习
近年来,深度学习或深度神经网络(DNN)已成为一种主要的学习方法,并取得了非常可喜的成果[Bengio,2009],而且已经在一些迁移学习的研究中得到使用。
例如,Glorot等人[2011] 提出利用深度学习方法中学到的低维特征来帮助新领域中的预测,而不是使用传统的原始输入作为特征,因为原始输入可能无法在跨领域中很好地进行泛化。特别是Glorot等人 [2011]使用了由Vincent等人[2008]提出的栈式降噪自动编码器(stacked denoising auto-encoder)。在自动编码器中,通常有两个函数:编码器函数h()和解码器函数g()。输入x重构为r(x)=g(h(x))。为了训练自动编码器,目标函数要使重构误差损失loss(x,r(x))最小化。然后,可以训练自动编码器并将其叠加在一起作为分层网络。在该网络中,第i层的自动编码器将使用第i-1层自动编码器的输出作为输入,第0层采用原始输入。在对自动编码器进行降噪操作时,输入向量x被随机地拆解为另一个向量x,目标函数要使降噪重构误差损失loss(x,r(x))最小化。在Glorot等人[2011]这篇文献中,该模型是通过使用随机梯度下降法以贪婪分层方式进行学习的。第一层使用logistic sigmoid来转换原始输入。对于上层,使用softplus激活函数log(1+exp(x))。在学习自动编码器之后,使用源域的标记数据训练具有平方铰链损失(squared hinge loss)的线性SVM,并在目标域上进行测试。
Yosinski等人[2014] 研究了DNN各层特征的可迁移性,他们认为最低层或原始输入层是通用的,因为它独立于任务和网络。相比之下,最高层的特征取决于任务和成本函数,因此是特定的。例如,在监督学习任务中,每个输出单元对应于特定类。从最低层到最高层,都有从一般化到特殊化的迁移。为了试验DNN中每一层特征的可迁移性,他们从源域训练了一个神经网络,并将前n层复制到目标域的神经网络,目标神经网络中的其余层被随机初始化。他们的研究表明,源域的神经网络中的迁移特征确实有助于目标域的学习。同样在迁移学习环境中,Bengio [2012]专注于无监督的表征预训练,并讨论了迁移学习中深度学习存在的潜在挑战。
2.1.4 迁移学习与终身学习的区别
迁移学习在以下几个方面与终身学习存在区别。需要注意的是,由于迁移学习的文献非常广泛,这里描述的区别可能不适用于每一篇迁移学习文献。
- 迁移学习不涉及持续学习或知识积累。它将信息或知识从源域迁移到目标域通常只执行一次,并且不会保留迁移的知识或信息以便在未来的学习过程中使用。相反,终身学习(LL)即是持续学习,知识保留和积累对于LL是必不可少的,因为它们不仅使系统变得越来越有知识,而且还使其在未来能更准确和更容易地学习其他知识。
- 迁移学习是单向的。它仅仅是将知识从源域迁移到目标域,但是不能反向执行,因为目标域只有很少量或根本没有训练数据。在终身学习中,新领域或新任务的学习结果还可根据需要来改善先前领域或任务中的学习过程。
- 迁移学习通常只涉及两个域,即源域和目标域(尽管在某些情况下存在多个源域)。它假设源域与目标域是非常相似的(否则无法执行迁移),这两个相似的领域通常由用户来选择。相反,终身学习考虑了大量(甚至是无限)的任务/领域。在解决新问题时,由学习算法来决定哪些已有的知识适用于任务。LL没有迁移学习的假设。在LL中,如果过去的知识是有用的,那就使用这些知识来帮助学习。如果不存在有用的知识,那就使用当前领域的数据来学习。由于LL通常涉及大量过去的领域或任务,因此系统可以累积大量过去的知识,使得新的学习任务很有可能会找到一些有用的知识。
- 迁移学习在模型应用过程中(模型建立之后)无法识别学习的新任务[Fei et al.,2016],或者说,在工作中学习,即在工作或模型应用中学习[Shu et al.,2017b]。
2.2 多任务学习
多任务学习(MTL)同时学习多个相关任务,旨在通过使用多个任务共享的相关信息来获得更好的性能[Caruana,1997;Chen et al.,2009;Li et al.,2009]。其原理是通过利用任务相关性结构在所有任务的联合假设空间中引入归纳偏差。它还可以防止单个任务中的过度适应,从而具有更好的泛化能力。请注意,与迁移学习不同,我们在这里主要使用术语多任务(multiple task)而不是多领域(multiple domain),因为该领域现有的大多数研究都是基于同一个应用领域的多个相似的任务。下面我们给出多任务学习(multi-task learning)的定义,这也称为批量多任务学习(batch multi-task learning)。
定义 2.1 多任务学习(MTL)是关于同时学习多个任务T={1,2,…,N}的过程。每个任务t∈T有自己的训练数据Dt,其目标是使所有任务的性能最大化。
因为现有的关于MTL的研究工作都专注于监督学习,因此这里也只讨论多任务监督学习。假设每个任务t对应的训练数据,其中nt是Dt中训练实例的数量,Dt是由实例空间到标签集
(对于回归任务来说)的隐藏(或潜在)映射来定义,d是特征维度。我们的目标是为每个任务都学习一个映射函数使得。正式地说,给定损失函数L,多任务学习将最小化公式(2.6)的目标函数:
与这种批量式的MTL相比,在线多任务学习(online multi-task learning)旨在按顺序学习任务并随着时间的推移积累知识,并利用这些知识来帮助后续学习(或改进以前的学习任务)。因此,在线MTL是终身学习。
2.2.1 多任务学习中的任务相关性
在MTL中假设各个任务之间是密切相关的,在任务相关性方面存在的不同假设导致了不同的建模方法。
Evgeniou和 Pontil [2004] 假设各个任务的所有数据都来自同一个空间,而且所有任务模型都接近全局模型。在这种假设下,他们使用正则化的任务耦合参数来对任务之间的关系进行建模。Baxter [2000] 、Ben-David 和Schuller [2003] 假设所有任务都基于相同的表示模型,也就是使用一组共同的已学习特征。其他一些使用概率方法的研究工作则假设参数具有相同的先验假设[Daumé Ⅲ,2009;Lee et al.,2007;Yu et al.,2005]。
任务参数也可以在低维子空间中由不同任务共享[Argyriou et al.,2008]。他们没有假设所有任务共享整个空间,而是假设只在原始空间的较低秩中进行共享。然而,低秩假设对任务不进行区分。当涉及一些不相关任务时,这种方法的性能会下降。为了解决这个问题,有一部分论文假设存在不相交的任务组,并应用聚类对任务进行分组[Jacob et al.,2009;Xue et al.,2007]。同一个簇中的任务被认为是彼此相似的。另一方面,Yu等人[2007] 和Chen 等人[2011]假设存在一组相关任务,而不相关的任务只是少量异常值。Gong 等人[2012] 假设相关任务共享一组共同特征,而异常任务则没有。Kang等人[2011]使用正则化统一分组结构。但是,只有同一组中的任务会被一起建模,而不同组的任务之间可能的共享结构则被忽略了。
最近,Kumar 等人[2012] 假设每个任务的参数向量是有限数量的潜在基础任务或潜在组件的一个线性组合。他们没有使用不相交任务组的假设 [Jacob et al.,2009;Xue et al.,2007],而是认为不同组中的任务可以在一个或多个基础上相互重叠。基于这个想法,他们提出了一个名为GO-MTL的MTL模型。我们将在下一小节中对GO-MTL模型进行详细介绍。Maurer等人 [2013]提出了在多任务学习中使用稀疏编码和字典学习。Ruvolo和Eaton [2013b]提出了高效终身学习算法(Efficient Lifelong Learning Algorithm,ELLA)来扩展GO-MTL,该算法可以显著提高效率,并使其成为在线MTL方法,从而满足LL定义,也因此被视为LL方法。我们将在3.4节介绍ELLA。
2.2.2 GO-MTL:使用潜在基础任务的多任务学习
多任务学习中的分组和重叠(Grouping and Overlap in Multi-Task Learning,GO-MTL)[Kumar et al.,2012] 采用参数方法建立模型,即每个任务t的模型或预测函数ft(x)=ft(x;θt)由任务特定的参数向量θt∈Rd决定,其中d是数据维度。给定N个任务,GO-MTL假设在多个任务的模型中存在k(潜在基础模型组件。每个基础模型组件L由一个d维向量表示。k个基础模型组件由d×k矩阵L={L1,…,Lk}表示。假设每个任务t的模型的参数向量θt是k个基础模型组件和权重向量st的线性组合,即θt=Lst,并且假设st是稀疏的。考虑到所有任务,我们有:
其中。
其基本思想是每个任务可以由一些基本模型组件表示。该机制同时考虑相关任务和不相关任务。两个相关任务将导致其线性权重向量的重叠,而两个不相关的任务可以通过它们之间小部分线性权重向量重叠来区分。因此,GO-MTL没有使用Jacob等人[2009] 和Xue等人[2007]所提出的不相交任务组假设。如上所述,不相交任务组的缺点是来自不同组的任务不会彼此相互影响。然而,尽管任务归属于不同的组,但这些任务有可能是负相关的,或者存在一些共享信息,这两种情况对于MTL来说可能是有意义的。因此,在GO-MTL中允许任务之间的部分重叠,这样就可以在没有强假设的情况下灵活处理复杂的任务相关性。
目标函数
给定每个任务t的训练数据Dt,目标函数是使所有任务的预测损失最小化,同时鼓励在任务之间共享结构,其定义如下:
其中L是经验损失函数,是任务t的训练数据中第i个标记实例。函数f为。‖·‖1是L1范数(norm),由μ控制,这是真矢量稀疏度的一个凸近似。‖L‖2F是矩阵L的Frobenius范数,λ是矩阵L的正则化系数。
交替优化
如果损失函数L是凸的,则公式(2.8)中的目标函数对于固定的S在L中是凸的,对于固定的L在S中是凸的,但它们不是共凸的。因此,采用交替优化策略来实现局部最小化。对于固定L,的优化函数变为:
对于固定的S,L的优化函数为:
为了优化公式(2.9),Kumar 等人[2012]采用了Schmidt 等人[2007]、Gafni 和 Bertsekas [1984]提出的双度量投影法。公式(2.10)中对平方损失函数有闭合形式解,这种方法通常用于回归问题。对于分类问题,Kumar 等人[2012]则采用了Logistic损失和Newton-Raphson方法。
为了初始化L,首先需要使用每个任务的数据对其参数进行单独的学习,然后将这些参数作为矩阵元素按列排序形成一个权重矩阵,该权重矩阵的前k个左奇异向量用作初始的L。这是因为奇异向量可以获得任务参数的最大方差。
2.2.3 多任务学习中的深度学习
近年来,DNN也被应用于MTL。例如,Liu 等人[2015b]提出了一种多任务DNN,用于学习跨任务的表示。他们考虑了两种类型的任务:查询分类和Web搜索排名。
- 对于查询分类,模型将判断一个查询是否属于某个特定领域。在这项工作中,作者考虑了四个特定领域(“餐厅”“酒店”“航班”和“夜生活”)。一个查询可以属于多个领域。这四个特定领域被构造为四个查询分类任务。查询分类的训练数据由“查询”和“标签”对(yt={0,1},其中t表示特定任务或领域)组成。
- 对于Web搜索排名,在给定查询的情况下,模型会根据文档与查询的相关性对文档进行排名。假设在训练数据中,每个查询至少对应一个相关文档。
在他们提出的多任务DNN模型中,较低的神经网络层在多个任务之间共享,而顶层是与任务相关的。
输入层(l1)是单词哈希层,其中每个单词被散列为一个n元(n-gram)的词包。例如,单词“deep”就散列为一个三元词包{#-d-e,d-e-e,e-e-p,e-p-#},其中#是边界。该方法可以将相同单词的变体散列到彼此接近的空间中,例如politics 和politician。
语义表示层(l2)通过公式(2.11)将l1映射为一个300维的向量:
其中W1是权重矩阵,f的定义如下:
这一层由多个任务共享。
每个任务的特定任务层(l3)将300维的向量转换为一个与任务相关的128维向量,转换公式如下:
其中,t是特定任务,是另一个权重矩阵。对于查询分类任务,使用sigmoid函数g(z)=11+e-z从l3获得一个查询属于某个领域的概率。对于Web搜索排序,则使用余弦相似性比较查询的l3层和每个文档。为了学习神经网络,采用了基于小批量的随机梯度下降(SGD)迭代算法。在每次迭代中,首先随机选择一个任务t,然后对来自t的标记实例进行采样,并且通过SGD更新神经网络。
在Collobert和Weston [2008] 、Collobert 等人[2011]中,作者提出了一种统一的神经网络架构,用于执行多种自然语言处理任务,包括词性标注、卡盘、名称实体识别、语义角色标注、语言建模以及语义相关词(或同义词)发现。他们使用权重共享为所有任务建立DNN。在该神经网络中,第一层对应每个单词的文本特征;第二层从句子中提取特征,将句子当成一个词组序列而不是词袋,并作为第二层的输入。句子中单词之间的长距离依赖性由时间延迟神经网络(Time-Delay Neural Network,TDNN)[Waibel et al.,1989]表示,它可以为超出固定窗口长度的不同单词建模。
典型的TDNN层将词组序列x转换为另一个词组序列o的过程如下:
其中i表示在TDNN中看到句子中第i个单词的时间(即xi); n是句子中的单词数或序列长度;Lj是层参数。与Liu等人[2015b]类似,采用随机梯度下降来训练模型,通过重复选择任务及其训练样例来更新神经网络。
类似地,Huang等人[2013a]将DNN应用于多语言数据。他们提出了一个名为共享-隐藏-层多语言DNN(Shared-Hidden-Layer Multilingual DNN,SHL-MDNN)的模型,其中隐藏层在多种语言中共享。此外,Zhang 等人[2014]通过对相关任务共同建模(例如,头部姿势估计和面部属性推断),将深度MTL应用于人脸特征点检测问题。深度MTL模型还被应用于其他方面的检测,比如语音识别中的名称错误检测[Cheng et al.,2015]、多标签学习[Huang et al.,2013b]、音素识别[Seltzer and Droppo,2013]等。
2.2.4 多任务学习与终身学习的区别
(批量)MTL与终身学习的相似之处在于这两种范式都使用任务之间的部分共享信息来帮助学习,区别在于,多任务学习仍然在传统范式中发挥作用,它不是优化单个任务,而是同时优化多个任务。如果我们将这几项任务视为一项更大的任务,那就简化为传统的优化问题,这实际上也正是MTL中的大多数优化问题。MTL不会随着时间积累任何知识,也没有连续学习的概念,但这些恰好都是LL的关键特征。虽然可以说MTL可以在添加新任务时同时优化所有任务,但是由于任务的数量众多且多种多样,因此,想要在一个过程中同时优化世界上的所有任务是非常困难的。这就需要一些局部和分布式的优化方式。就时间和资源而言,全局优化也不是很有效。因此,最重要的还是保留知识,以便借助过去从先前任务中学到的知识来实现对多个任务的增量学习。这就是我们将在线MTL或增量MTL视为LL的原因。
2.3 在线学习
在线学习(online learning)是一种学习范式,其训练数据点按顺序到达。当新数据点到达时,现有的模型会快速更新,以便生成目前为止的最佳模型。因此,其目标与经典学习相同,即优化给定学习任务的性能。它通常用于不方便在整个数据集上进行计算,或实际应用等不到收集大量训练数据的情况。这与经典的批量学习形成对比,批量学习中所有的训练数据在开始时都可用于训练。
对于在线学习来说,如果每当新数据点到达时就立即使用所有的可用数据进行重新训练,开销将十分巨大。而且,在重新训练过程中,使用的模型已经过时。因此,由于现实世界场景的延迟要求,在线学习方法通常在内存和运行时间上都是高效的。
目前已有大量的在线学习算法。例如,Kivinen等人[2004]提出了一些基于内核学习(如SVM)的在线学习算法。通过扩展经典的随机梯度下降,他们开发了高效的在线学习算法,用于分类、回归和新颖性检测。相关的在线内核分类器在Bordes 等人[2005]中也得到了研究。
相比于使用传统的表格数据,Herbster等人[2005]研究了针对图表的在线学习。他们的目标是从一组标记的顶点中学习在图形上定义的函数。他们提出的一个应用是预测用户对社交网络中产品的偏好。Ma 等人[2009]在网络环境中通过使用基于词汇和主机的特征及URL来解决检测恶意网站的问题。Mairal等人[2009,2010]提出了一些用于稀疏编码的在线字典学习方法,该方法将数据向量建模为一些基本元素的稀疏线性组合。Hoffman 等人[2010]还提出了一种用于主题建模的在线变分贝叶斯算法。
许多在线学习研究都集中在一个领域/任务上。Dredze和Crammer [2008]开发了一种多领域在线学习方法,该方法基于多个分类器的参数组合。在他们的方法中,模型接收新的实例/样例及其领域。
在线学习与终身学习的区别
尽管在线学习以流或序列的形式来处理新的数据,但其目标与LL非常不同。随着时间的推移,在线学习仍然执行相同的学习任务,其目标是通过递增的数据更有效地进行学习。另一方面,LL旨在从一系列不同的任务中学习,它会保留迄今所学的知识,并利用这些知识来帮助未来的任务学习。在线学习则不涉及这些内容。
2.4 强化学习
强化学习(reinforcement learning)[Kaelbling et al.,1996;Sutton and Barto,1998]是智能体(agent)通过与动态环境的反复试验来学习操作(或称行为动作)的问题。在每个交互环节中,智能体接收包括当前环境状态在内的输入,它从一组可能的操作中选择一个操作,该操作会更改环境的状态。然后,智能体获得一个状态转换的值,该值可以是奖励或惩罚。该过程会一直重复执行,直到智能体学到一个可以优化目标的行为序列。强化学习的目标是学习一种最佳策略,该策略能够将状态映射到可实现长期奖励总额最大化的行为。有关各种类型的强化学习任务的详细信息可以在Busoniu 等人[2010]、Szepesvari [2010]、Wiering 和Van Otterlo [2012]中找到。
迁移学习和MTL也被应用于强化学习。例如,Banerjee和Stone [2007]证明了基于特征值函数的迁移学习比没有知识迁移的方法能更快地学习最优策略。Taylor等人[2008]提出了一种在基于模型的强化学习中将数据实例从源域迁移到目标域的方法,他们还为强化学习提出了一种规则迁移方法[Taylor and Stone,2007]。关于在强化学习中运用迁移学习的详细综述可在Taylor和Stone [2009]中找到。
Mehta等人[2008]致力于在多任务间共享相同的迁移动态,但使用不同的奖励函数。相比于完全可观测实验,Li 等人 [2009]提出了一个无模型的多任务强化学习模型,用于多个部分可观察的随机环境。他们提出了一种非策略批处理算法来学习区域化策略表示中的参数。Lazaric和Ghavamzadeh [2010]假设:在多任务强化学习中,每个任务中的任意给定策略只能生成少量样本。他们使用类似的结构对任务进行分组,并联合学习。他们还假设任务通过值函数共享结构,而值函数通过一个共同的先验采样获得。
Sutton等人[2011]提出了一种在强化学习中获得知识的架构Horde。其知识由大量近似值函数表示。强化学习的智能体被分解为许多子智能体。值函数由状态和动作轨迹的预期回报近似表示。该轨迹是根据每个智能体的策略获得的。直觉告诉我们,每个子智能体负责学习与环境交互的一些部分信息。子智能体也可以使用彼此的结果来实现自己的目标。智能体的最终决定由所有子智能体共同完成。但是,Sutton 等人[2011]只关注相同的环境,这与终身学习有关但也存在区别。沿袭Horde的思路,Modayil等人[2014]为强化学习中值函数的一般化形式进行了建模。
强化学习与终身学习的区别
强化学习的智能体通过与环境互动、反复试验和试错来进行学习,从而向智能体提供反馈或奖励。其学习仅限于一项任务和一种环境,并且不涉及积累知识来帮助未来的学习任务。与2.1.4节和2.2.4节中讨论的监督迁移学习和MTL一样,迁移学习和多任务强化学习范式与LL具有类似的差异。
2.5 元学习
元学习(meta-learning)[Thrun,1998;Vilalta and Drissi,2002]主要关注的是,利用已经在许多其他非常类似的任务上训练好的模型,仅使用少量训练样例来学习新任务。它通常用于解决一次性或少数几次的学习问题。元学习系统中通常有两个学习组件:基础学习器(或称快速学习器)和元学习器(或称慢学习器)。基础学习器在一个快速更新的任务中接受训练。元学习器在与任务无关的元空间中执行,其目标是跨任务传递知识。利用从元学习器学到的模型,可以使基础学习器只需很少的训练样例即可有效地学习。在许多情况下,两个学习器可以使用相同的学习算法。通过这种双层架构,元学习通常被描述为“学习如何学习”。但简而言之,元学习基本上将学习任务视为学习样本。Vilalta和Drissi [2002]对元学习的早期研究工作给出了很好的概述。下面,我们简要讨论该领域最近的一些论文,特别是在深度神经网络的背景下。
Santoro等人[2016]建议考虑具有增强记忆能力的体系结构,例如神经图灵机,以承载短期和长期的记忆需求,并提出一种外部存储器访问模块,以便在学习少量训练样本后快速绑定之前从未见过的信息,从而提高元学习的能力。Andrychowicz等人[2016]从元学习的角度将优化算法的设计看作一个学习问题。任务被定义为样本问题实例所描述的一类问题。该算法使用LSTM[Hochreiter and Schmidhuber,1997 ]来实现。
Finn等人 [2016]提出了一种模型无关的元学习方法,该方法适用于任何具有梯度下降训练的模型。其关键思想是训练模型的初始参数,使之适用于多个任务。它通过最大化新任务的损失函数对参数的敏感性来实现。高灵敏度意味着对参数的很小变动都会引起显著的损失改善。借助这些参数,只需少量的训练样例,就可以简单地调整模型,以便很好地执行新任务。Munkhdalai和Yu [2017]提出的元网络(meta network)可以在不同的时间尺度上更新权重。元级信息更新缓慢,而任务级权重可在每个任务的范围内进行更新。
它包含两种类型的损失函数:一种是用于创建广义嵌入的表示损失,另一种是用于特定任务的任务损失。其他一些最近的工作包括[Duan et al.,2017;Grant et al.,2018;Li et al.,2017c;Mishra et al.,2018;Ravi and Larochelle,2017;Wang et al.,2016;Zhou et al.,2018]。
元学习与终身学习的区别
元学习从大量任务中训练元模型,并且只需几个样例就可以快速适应新任务。大多数元学习技术的一个关键假设是训练任务和测试/新任务来自同一分布,这是元学习的主要缺陷,并限制了其应用范围。原因在于,在大多数现实生活中,我们更希望新任务具有一些与旧任务完全不同的内容。在元学习算法的评估中,通常人工创建的前序任务会与新/测试任务具有相同的分布。一般来说,终身学习没有这个假设。终身学习模型应该(明确地或隐含地)选择适用于新任务的先前知识。如果不适用,则不会使用先前的知识。但显然,元学习与终身学习密切相关,至少在利用许多任务来帮助学习新任务方面是很相似的。我们期望通过进一步研究,放宽甚至完全消除上述假设。在本书的下一版中,我们可以完全涵盖元学习的内容。
2.6 小结
在本章中,我们概述了与LL密切相关的主要ML范式,并描述了这些范式与LL的不同之处。总之,我们可以将LL视为这些范式的概括或扩展。LL的关键特征是持续学习过程、基于知识库的知识积累,以及利用过去的知识来帮助未来学习。更高级的功能还包括在工作中学习和发现应用程序中的新问题,并基于环境反馈和先前学到的知识以自我监督的方式学习它们,而无须手动标记。相关的ML范式没有涵盖所有这些特征。简而言之,LL基本上试图模仿人类的学习过程,以克服当前孤立学习范式的局限性。虽然我们仍然不完全了解人类的学习过程,但这并不妨碍我们在具有人类学习的某些特征的ML中取得进展。从下一章开始,我们将回顾各种现有LL的研究方向以及代表性算法和技术。