第十章 模型独立的学习方式

第十章 模型独立的学习方式

在前面的章节中,我们已经介绍了机器学习的几种学习方式,包括监督学 习、无监督学习等。这些学习方式分别可以由不同的模型和算法实现,比如神经 网络、线性分类器等。针对一个给定的任务,首先要准备一定规模的训练数据,这 些训练数据需要和真实数据的分布一致,然后设定一个目标函数和优化方法,在 训练数据上学习一个模型。此外,不同任务的模型往往都是从零开始来训练的, 一切知识都需要从训练数据中得到。这也导致了每个任务都需要准备大量的训 练数据。在实际应用中,我们面对的任务往往难以满足上述要求,比如训练任务 和目标任务的数据分布不一致,训练数据过少等。这时机器学习的应用会受到很 大的局限。并且在很多场合中,我们也需要一个模型可以快速地适应新的任务。 因此,人们开始关注一些新的学习方式。

本章介绍一些“模型独立的学习方式”,比如集成学习、协同学习、自训练、多 任务学习、迁移学习、终身学习、小样本学习、元学习等。这里“模型独立”是指这 些学习方式不限于具体的模型,不管是前馈神经网络、循环神经网络还是其它模 型。然而,一种学习方式往往会对符合某种特性的模型更加青睐,比如集成学习 往往和方差大的模型组合时效果显著。

集成学习

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

从定理10.1可知,为了得到更好的集成效果,要求每个模型之间具备一定的差异性。并且随着模型数量的增多,其错误率也会下降,并趋近于 0。

集成学习的思想可以用一句古老的谚语来描述:“三个臭皮匠赛过诸葛亮”。 但是一个有效的集成需要各个基模型的差异尽可能大。为了增加模型之间的差 异性,可以采取 Bagging 和 Boosting 这两类方法。

在这里插入图片描述

AdaBoost 算法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

自训练和协同训练

监督学习往往需要大量的标注数据,而标注数据的成本比较高。因此,利用 大量的无标注数据来提高监督学习的效果有着十分重要的意义。这种利用少量 标注数据和大量无标注数据进行学习的方式称为半监督学习(Semi-Supervised Learning,SSL)。

本节介绍两种半监督学习算法:自训练和协同训练。

自训练

在这里插入图片描述

协同训练

协同训练(Co-Training)是自训练的一种改进方法,通过两个基于不同视
角(view)的分类器来互相促进。很多数据都有相对独立的不同视角。比如互联网上的每个网页都由两种视角组成:文字内容(text)和指向其它网页的链接 (hyperlink)。如果要确定一个网页的类别,既可以根据文字内容来判断,也可根据网页之间的链接关系来判断。
在这里插入图片描述

多任务学习

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

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

共享机制 多任务学习的主要挑战在于如何设计多任务之间的共享机制。在传统的机器学习算法中,引入共享的信息是比较困难的,通常会导致模型变得复杂。 但是在神经网络模型中,模型共享变得相对比较容易。深度神经网络模型提供了 一种很方便的信息共享方式,可以很容易地进行多任务学习。多任务学习的共享机制比较灵活,有很多种共享模式。图10.1给出了多任务学习中四种常见的共享 模式,分别为:

  1. 硬共享模式:让不同任务的神经网络模型共同使用一些共享模块(一般是 低层)来提取一些通用特征,然后再针对每个不同的任务设置一些私有模 块(一般是高层)来提取一些任务特定的特征。

  2. 软共享模式:不显式地设置共享模块,但每个任务都可以从其它任务中“窃 取”一些信息来提高自己的能力。窃取的方式包括直接复制使用其它任务 的隐状态,或使用注意力机制来主动选取有用的信息。

  3. 层次共享模式:一般神经网络中不同层抽取的特征类型不同,低层一般抽 取一些低级的局部特征,高层抽取一些高级的抽象语义特征。因此如果多 任务学习中不同任务也有级别高低之分,那么一个合理的共享模式是让低 级任务在低层输出,高级任务在高层输出。

  4. 共享-私有模式:一个更加分工明确的方式是将共享模块和任务特定(私有)模块的责任分开。共享模块捕捉一些跨任务的共享特征,而私有模块 只捕捉和特定任务相关的特征。最终的表示由共享特征和私有特征共同构成。
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
多任务学习通常可以获得比单任务学习更好的泛化能力,主要由于以下几
个原因:

  1. 多任务学习在多个任务的数据集上进行训练,比单任务学习的训练集更 大。由于多个任务之间有一定的相关性,因此多任务学习相当于是一种隐 式的数据增强,可以提高模型的泛化能力。

  2. 多任务学习中的共享模块需要兼顾所有任务,这在一定程度上避免了模型
    过拟合到单个任务的训练集,可以看作是一种正则化。

  3. 既然一个好的表示通常需要适用于多个不同任务,多任务学习的机制使得 它会比单任务学习获得更好的表示。

  4. 在多任务学习中,每个任务都可以“选择性”利用其他任务中学习到的隐 藏特征,从而提高自身的能力。

迁移学习

标准机器学习的前提假设是训练数据和测试数据的分布是相同的。如果不
满足这个假设,在训练集上学习到的模型在测试集上的表现会比较差。而在很多 实际场景中,经常碰到的问题是标注数据的成本十分高,无法为一个目标任务准 备足够多相同分布的训练数据。因此,如果有一个相关任务已经有了大量的训练 数据,虽然这些训练数据的分布和目标任务不同,但是由于训练数据的规模比较 大,我们假设可以从中学习某些可以泛化的知识,那么这些知识对目标任务会有 一定的帮助。如何将相关任务的训练数据中的可泛化知识迁移到目标任务上,就 是迁移学习(Transfer Learning)要解决的问题。
在这里插入图片描述
迁移学习根据不同的迁移方式又分为两个类型:归纳迁移学习(Inductive Transfer Learning)和转导迁移学习(Transductive Transfer Learning)。这两个 类型分别对应两个机器学习的范式:归纳学习(Inductive Learning)和转导学习(Transductive Learning)[Vapnik,1998]。一般的机器学习都是指归纳学习,即希 望在训练数据集上学习到使得期望风险(即真实数据分布上的错误率)最小的 模型。而转导学习的目标是学习一种在给定测试集上错误率最小的模型,在训练 阶段可以利用测试集的信息。

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

归纳迁移学习

在这里插入图片描述
在这里插入图片描述

转导迁移学习

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

终身学习

虽然深度学习在很多任务上取得了成功,但是其前提是训练数据和测试数 据的分布要相同,一旦训练结束模型就保持固定,不再进行迭代更新。并且,要想 一个模型同时在很多不同任务上都取得成功依然是一件十分困难的事情。比如 在围棋任务上训练的 AlphaGo 只会下围棋,对象棋一窍不通。如果让 AlphaGo 去学习下象棋,可能会损害其下围棋的能力,这显然不符合人类的学习过程。我 们在学会了下围棋之后,再去学下象棋,并不会忘记下围棋的下法。人类的学习 是一直持续的,人脑可以通过记忆不断地累积学习到的知识,这些知识累积可以 在不同的任务中持续进行。在大脑的海马系统上,新的知识在以往知识的基础上 被快速建立起来;之后经过长时间的处理,在大脑皮质区形成较难遗忘的长时记 忆。由于不断的知识累积,人脑在学习新的任务时一般不需要太多的标注数据。

终身学习(Lifelong Learning),也叫持续学习(Continuous Learning),是指 像人类一样具有持续不断的学习能力,根据历史任务中学到的经验和知识来帮助学习不断出现的新任务,并且这些经验和知识是持续累积的,不会因为新的任务而忘记旧的知识[Chen等人; Thrun,2016; 1998]。

在终身学习中,假设一个终身学习算法已经在历史任务T1,T2,··· ,Tm上学 习到一个模型,当出现一个新任务 Tm+1 时,这个算法可以根据过去在 m 个任务 上学习的知识来帮助学习第 m + 1 个任务,同时累积所有的 m + 1 个任务上的知 识。这个设定和归纳迁移学习十分类似,但归纳迁移学习的目标是优化目标任务 的性能,而不关心知识的累积。而终身学习的目标是持续的学习和知识累积。另 外,终身学习和多任务学习也十分类似,但不同之处在于终身学习并不在所有任 务上同时学习。多任务学习是在使用所有任务的数据进行联合学习,并不是持续地一个一个的学习。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

元学习

根据没有免费午餐定理,没有一种通用的学习算法可以在所有任务上都有 效。因此,当使用机器学习算法实现某个任务时,我们通常需要“就事论事”,根 据任务的特点来选择合适的模型、损失函数、优化算法以及超参数。那么,我们是 否可以有一套自动方法,根据不同任务来动态地选择合适的模型或动态地调整 超参数呢?事实上,人脑中的学习机制就具备这种能力。在面对不同的任务时,人 脑的学习机制并不相同。即使面对一个新的任务,人们往往也可以很快找到其学 习方式。这种可以动态调整学习方式的能力,称为元学习(Meta-Learning),也称 为学习的学习(Learning to Learn)[Thrun等人,2012]。

元学习的目的是从已有任务中学习一种学习方法或元知识,可以加速新任 务的学习。从这个角度来说,元学习十分类似于归纳迁移学习,但元学习更侧重 从多种不同(甚至是不相关)的任务中归纳出一种学习方法。

和元学习比较相关的另一个机器学习问题是小样本学习(Few-shot Learn- ing),即在小样本上的快速学习能力。每个类只有 K 个标注样本,K 非常小。如 果K = 1,称为单样本学习(One-shot Learning);如果K = 0,称为零样本学习(Zero-shot Learning)。

这里我们主要介绍两种典型的元学习方法:基于优化器的元学习和模型无
关的元学习。

基于优化器的元学习

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

模型无关的元学习

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结和深入阅读

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值