文章目录[+]
无论是小学还是大学,在教学中都会强调的一个问题就是“举一反三”,将学到的规律灵活地运用到其他相似的场景下。而要想让人工智能学会举一反三,用到的就是迁移学习技术。迁移学习(transfer learning)是运用已学习的知识来求解不同但相关领域问题的新的机器学习方法,目的是让机器“学会学习”。当训练数据和测试数据来自不同的特征空间或遵循不同的概率分布时,如果能够将从训练数据上习得的知识迁移到测试数据上,就可以回避掉复杂的数据标签工作,进而提升学习性能。迁移学习就是解决这个问题的学习框架,它能够对仅有少量甚至没有标签样本进行学习,从而解决目标问题。
许多机器学习和数据挖掘算法都建立在两个主要假设之上:第一,训练样本和测试数据必须处于相同的特征空间并具有相同的分布;第二,有足够的高质量训练样本作为学习资源。遗憾的是,这两个假设在大多数实际应用中难以成立。一方面,训练数据和测试数据在时间上的差异可能导致分布规律的变化;另一方面,对大量数据进行标注不仅费时费力,还容易受到知识产权问题的影响。一旦没有数据,再好的深度学习方法都是无源之水,无本之木,难以发挥作用。
迁移学习的出现给解决这些问题带来了一丝曙光。其实说到底,迁移学习可以看作是提升学习算法泛化性能的一种思路。现实世界并非标准化和结构化的数据集,而是杂乱无章的万花筒,包含着大量从未在训练集中出现过的全新场景,这足以让许多在训练集上无往不胜的人工智能变成真实世界中的“人工智障”。迁移学习有助于算法处理全新场景下的问题,利用一般化的规律去应对富于变化的环境。在迁移学习中,已有的知识(包括样本数据集及其分布)叫做源域,要学习的新知识叫做目标域。同样,待解决的任务也可以分为源任务和目标任务。根据源域 / 目标域和源任务 / 目标任务的关系,迁移学习问题可以划分为以下三类:
归纳迁移学习(inductive transfer learning):源域与目标域可能相同也可能不同,目标任务与源任务不同;直推式迁移学习(transductive transfer learning):源域与目标域不同,目标任务与源任务相同;无监督迁移学习(unsupervised transfer learning):目标任务与源任务不同,且源域数据和目标域数据都没有标签。
在从源域到目标域的迁移过程中,迁移学习要解决的三个问题是:迁移什么、能不能迁移、如何迁移。“迁移什么”明确的是迁移学习的作用对象。显然,迁移的对象应该是普适性的知识,而不是特定领域的知识。用来背古诗词的技巧不一定适用于背化学方程式,这时需要迁移的就是整体意义上的记忆方法。在确定了迁移什么之后,接下来就要解决能不能迁移的问题,只有当源域和目标域具有较高的相关性时,迁移才会有助于学习。如果不管三七二十一,把知识生搬硬套到风马牛不相及的问题上,反而会起到负作用。这就像骑自行车的技巧可以用在骑摩托车上,因为它们都有两个轮子,可如果用骑自行车的方法骑三轮车的话,只怕是要翻车了。
解决了上面两个问题之后,面对的就是迁移学习中的核心问题——如何迁移。迁移学习的具体方法包括以下四种:基于样本的迁移学习(instance transfer);基于特征的迁移学习(feature representation transfer);基于模型的迁移学习(parameter transfer);基于关系的迁移学习(relational knowledge transfer)。
基于样本的迁移学习是对已有样本的重用过程,它通过调整源域中原始样本的权重系数,使之和目标域匹配,进而应用在目标域中。这种方法通过度量训练样本和测试样本之间的相似度来重新分配源域数据的采样权重,相似度越大的样本对目标任务的训练越有利,其权重也会得到强化,相似度小的样本权重则被削弱。在归纳迁移学习中,TrAdaBoost 是典型的基于样本的方法。它假定两个域中的数据具有不同的分布,但使用完全相同的特征和标签。由于源域和目标域之间的分布差异,不同的源域数据对目标任务的学习既可能有用也可能有害。TrAdaBoost 通过多次迭代的方式调整源域数据的权重,以鼓励“好”数据和抑制“坏”数据。
基于样本的方法也可以用于直推式迁移学习之中。这种情况下,学习的出发点是使经验风险最小化,使用的方法则是基于重要性采样的方法。重要性采样的作用在于将关于未知的目标域数据的期望转化为关于目标域数据和已知的源域数据之间关系的期望,对两组数据关系的估计则可以通过核均值匹配或者使 KL 散度最小化等方法完成。基于特征的迁移学习是特征表示的重建过程,它通过特征变换使得源域数据与目标域数据处在同一个特征空间之上,再在这个公共空间上进行学习。这种方法适用于所有的迁移学习任务。特征迁移的基本思想是学习在相关任务中共享的一组低维特征表示,对特征的降维采用的也是特征映射和特征选择两种方式(降维学习的两种方式)。
基于特征选择的迁移学习是识别出源领域与目标领域中共有的特征表示,再基于这些共有特征实现知识迁移。由于与样本类别高度相关的特征应该在模型中具备更高的权重,因此在找出源域和目标域的共同特征后,需要从目标域数据中选择特有的特征来对共同特征训练出的通用分类器进行精化,从而得到适合于目标域数据的分类器。基于特征映射的迁移学习是把每个领域的数据从原始高维特征空间映射到新的低维特征空间,使源域数据和目标域数据在新的低维空间上具有相同的分布,这样就可以利用低维空间表示的有标签的源域数据来训练目标域上的分类器。特征映射和特征选择的区别在于映射得到的特征不属于原始的特征的子集,而是全新的特征。
基于模型的迁移学习是已有模型的转移过程,它假设源任务和目标任务共享一些参数或者一些先验分布,将在训练数据上训练好的成熟模型应用到目标域上解决问题。应用在归纳迁移学习中的大多数模型方法都来自于多任务学习,但多任务学习试图同时提升源任务和目标任务的学习效果,而迁移学习只是利用源域数据来提高目标域的性能。在迁移学习中,通过给目标域的损失函数分配更大的权重,可以确保在目标域中获得更好的性能。基于关系的迁移学习是问题结构的复制过程,如果源域和目标域之间共享了某种相似关系,那就可以将源域上的逻辑关系网络应用到目标域上。与其他三种方法不同,关系学习方法处理的是关系域中的迁移学习问题,其中的数据在概率上不需要满足独立同分布的条件,但是一定要能够用类似的关系来表示,最典型的实例就是物理网络的数据和社交网络的数据。在这种方法中,数理逻辑是常用的工具。
除了以上的具体方法之外,迁移学习还需要解决一系列理论问题。既然迁移学习的目的是让机器学会学习,向人类学习的机制取经就是最简单的途径。人类学习的一个重要特点就是能够从纷繁复杂的现象中抽象出共性的问题,实现实例和规律的剥离。如果机器可以学会这种思维,把问题的内容和结构区分开来,其举一反三的能力就会产生质的飞跃。另一方面,从迁移学习很容易进一步得到“元学习”(meta-learning)的概念。元学习的目标是通过对元数据的自动化学习来提升学习算法的灵活性,是对学习方法的学习。每个特定的学习算法都建立在一系列有关数据的假设基础上,这叫作归纳偏差。只有当归纳偏差和学习问题相匹配时,算法才能获得良好的效果。这不仅给机器学习和数据挖掘算法添加了应用的约束,给它们的实用性造成了相当大的限制。
正因如此,学习的灵活性对通用人工智能至关重要。通过使用学习问题的属性、算法属性、派生模式等不同类型的元数据,元学习可以对不同的学习算法进行学习,选择,更改或组合,以有效地解决给定的学习问题。其实遗传进化就是对基因编码的学习过程,这个过程在大脑中执行,这意味着我们每个人其实都是元学习的践行者。但是元学习到底能不能推广到机器学习之中,还是个未知数。
近期,关于“深度学习是不是炼金术”的争议愈演愈烈。这些争议产生的原因在于深度学习的黑箱特性:虽然深度学习算法能够将图片中的猫咪辨识出来,却无法详细地解释为什么会做出这样的判断,其判定方法是否具备普适性也无从知晓。因此,人工智能的一个重要研究方向就是开发具有更好的可解释性,更容易被人理解的人工智能模型。这样的模型将能够克服现有人工智能在概念认知和语言认知上的巨大障碍,它不但会辨认图片里有一只猫,还能指出它是依据猫特有的眼睛、耳朵和胡子这些特征做出的判断。要构造可解释的人工智能,靠大数据去训练复杂模型肯定是不靠谱的,还是要回归到逻辑推演的路径上,而知识图谱很可能成为可解释人工智能中的一项关键技术。
知识图谱(knowledge graph)是由大量的概念实体以及它们之间的关系共同构成的语义网络。某种程度上,它类似于今天备受推崇的思维导图,但是具有更加规范的层次结构和更加强大的知识表示能力。《福尔摩斯探案集》的作者亚瑟·柯南道尔有句名言:“一个逻辑学家,不需要亲眼见过或听过大西洋和尼亚加拉大瀑布,他从一滴水中就能推测出它们。”
知识图谱也是如此,它采集星罗棋布的碎片化信息和数据,然后按标准化的思考方式加以整理,再将各个看似不相关但背后有着共同联系的信息关联起来,挖掘出背后的规律。为了构造知识的基本框架,知识图谱除了包含实体之外,一般还包括概念、属性、关系等一系列信息。人类的智能源于对知识内部表示的推理过程,这也是早期人工智能的大咖们热衷于符号主义的原因。因为人类的认知过程正是不断用概念、属性和关系去理解世界和解释世界的过程,而这些理解共同构成了人脑中高度组织化和结构化的知识图谱。
知识图谱中的概念、属性和关系可以用下面的一个例子来理解:当我们提到莱昂内尔·梅西的时候,即使不熟悉足球的人也很可能知道他是个足球运动员,这里的“足球运动员”就是概念;经常看球的人则会知道梅西来自阿根廷,效力在巴塞罗那俱乐部,这些都属于实体梅西的属性;更狂热的球迷还会知道内马尔是梅西的前队友,克里斯蒂亚诺·罗纳尔多是梅西的主要竞争对手,这就是实体梅西和其他实体之间的关系。同数理逻辑一样,知识图谱也可以用于知识的推理。知识推理最广泛的应用就是知识库问答,也就是理解自然语言中的问题,并从知识库中寻找答案。但正所谓“生也有涯,知也无涯”,即使最庞大的百科全书也不可能将所有知识尽收囊中,这时就需要知识图谱大显身手了。知识图谱可以根据已有实体的概念、属性和关系为新的概念自动生成属性;也可以明确不同新实体之间的关系。
具体说来,知识推理可以分为归纳和演绎两类,分别表示了“从特殊到一般”和“从一般到特殊”的过程。所谓归纳(induction)是指从某类事物的大量实例出发,推理出关于这类事物的一般性结论。如果在我认识的程序员朋友中,小张很聪明,老李很聪明,大刘也很聪明,那我就有理由相信,所有的程序员都很聪明。这就是归纳的过程。可以看出,归纳推理能够从旧知识中获取新知识,是知识的增殖过程。
将归纳的过程调转方向,得到的就是演绎。演绎(deduction)指的是从一般性的前提出发,推导出个别结论或者具体陈述的过程。既然我已经归纳出“所有的程序员都很聪明”的结论,那么当遇到一个陌生的程序员小赵时,即使对他一无所知,我也可以通过演绎得出“小赵很聪明”这个符合一般性原则的具体陈述。如果你对数理逻辑的内容还有印象,那就不难发现,经典的三段论实际上就是一类演绎推理。虽然演绎推理可以用来解决复杂的问题,但它只是将已有事实揭示出来,而不能够产生新知识。
数理逻辑能够实现的推理建立在硬性约束的基础上,只能实现非黑即白的推理过程,相比之下,知识图谱则可以实现软性推理。在归纳推理中,软性推理的一个应用是路径排序算法(path ranking algorithm)。在知识图谱中,实体是由二元关系相连接的,因而现实世界中的规则在知识图谱中就体现为不同实体之间的关系路径。路径排序算法正是以实体之间的路径为依据,在不完全的知识库中学习目标关系的分类器。
路径排序算法的实现包括特征抽取、特征计算和分类器训练三个步骤。特征抽取的任务是生成路径特征的集合并加以筛选,筛选出的特征被应用在训练数据集上,对每个训练样本都计算出其对应的特征取值,最后根据训练样本为每个目标关系训练出一个分类器。将分类器应用在知识图谱上,就可以自动挖掘并筛选出可靠的规则。软性推理也可以应用在演绎过程中,得到的就是马尔可夫逻辑网和概率软逻辑。
马尔可夫逻辑网(Markov logic network)是将无向概率图模型和一阶谓词逻辑相结合得到的统计关系学习模型。这个网络是一阶逻辑公式的集合,其中的每个逻辑规则都被分配一个实数作为权重系数,以此实现规则的软化。规则的权重越大,意味着它的约束力越强,当权重为正无穷时,软性规则就退化为硬性规则。你可能知道小品里的包袱:“1 加 1 在什么情况下等于 3?在算错的情况下等于 3!”这就是典型的以对错来区分的硬性规则。但在由软性规则构造出的马尔可夫逻辑网中,1 加 1 等于 3 也是合法的,但这个合法规则只存在于另外的一个平行世界之中,这个世界和真实世界的差别很大,其存在的可能性很小,因而与它相关的规则成立的概率也会很低。
利用马尔可夫逻辑网对知识图谱建模后,就可以利用已有的规则和权重系数来推断未知事实成立的概率。如果规则和权重系数部分未知或者全部未知时,则可以自动学习规则和权重,这也就是马尔可夫随机场的结构学习。如果对马尔可夫逻辑网加以扩展,给网络中每个顶点所代表的原子事实赋予一个连续分布的真值,得到的就是概率软逻辑(probabilistic soft logic)。概率软逻辑能够对不确定的事实和规则同时建模,因而具有更强的不确定性处理能力。连续真值的引入也有助于问题的优化,从而大大提升了推理效率。
归纳推理也好,演绎推理也罢,实现的都是符号推理,也就是在知识图谱中的实体和关系符号上直接进行推理。与符号推理对应的是数值推理。数值推理使用数值计算的方法来模拟推理过程,其典型的实现方案就是基于分布式表示的推理。分布式知识表示(knowledge graph embedding)是将包含实体和关系的知识图谱组件嵌入到连续的向量空间中,以便在保持知识图谱内在结构的同时简化操作。在分布式知识表示的基础上,数值推理可以完成多类任务:利用打分函数计算所有备选答案的得分,可以实现知识图谱上的链接预测;根据某个实体元组的得分是否超过预先设定的阈值,可以对元组进行分类;计算不同实体的表示向量及其相似程度,则可以对实体进行解析。
接下来,我将分享人工智能---计算机视觉
发表评论