当前位置:   article > 正文

Yoshua Bengio:深度学习如何实现系统进化?_稀疏因子图

稀疏因子图

2020-09-02 01:27:20

Yoshua Bengio:深度学习如何实现系统进化?

作者 | 青暮、彩娴、大鑫

编辑 | 陈彩娴

8月29日至30日,主题为“智周万物”的2020年中国人工智能大会(CCAI 2020)在位于江苏南京的新加坡·南京生态科技岛举办。

加拿大蒙特利尔大学教授、2018年图灵奖获得者、蒙特利尔学习算法研究所(Mila)主管Yoshua Bengio在这次大会中进行了在线演讲,演讲主题是《DeepLearning:From System One to System Two》。

Yoshua Bengio提到,人的认知系统包含两个子系统:系统1和系统2。系统1是直觉系统,主要负责快速、无意识、非语言的认知,这是目前深度学习主要做的事情;系统2是逻辑分析系统,是有意识的、带逻辑、规划、推理以及可以语言表达的系统,这是未来深度学习需要着重考虑的。

对于系统2来说,基本的要素包括注意力和意识,意识先验可以使用稀疏因子图模型来实现,这是一个思路,实现了因果关系。从人的角度来看意识,语言是高层次的表示,这需要把人的两个认知系统即系统1和系统2有机的结合起来,也就是说把低层次的表示和高层次的决策结合起来,从而实现系统进化。

对于如何用深度学习来实现系统2,Yoshua Bengio指出,最关键就是处理数据分布中的变化。对于处理数据分布,传统机器学习都是基于独立同分布的假设,但实际需要关注更多的是分布外泛化。尤其是从强化学习的角度来考虑,需要考虑哪些是影响数据分布变化的因素。

以下是演讲全文,AI科技评论进行了不改变原意的整理:

1 下一代深度学习

在今天的演讲中,我讨论的主题是下一代深度学习/深度学习2.0。

Yoshua Bengio:深度学习如何实现系统进化?

首先,我意识到在机器学习中存在一个潜在的假设,称其为“惊人的假设”。在这其中,可能存在一些简单的原理可以逐渐发展为智能,而它们都基于学习。这些原理对于人类智能、动物智能以及智能机器都是很普遍的。这些原理足够简单,可以像物理定律一样加以描述和压缩。这与八十年代的主流方法大相径庭,因为当时人们认为智能是大量知识技巧的集合。相反,这个假设依赖于一小组通用的机制,并且需要知识。

Yoshua Bengio:深度学习如何实现系统进化?

用于人工智能和机器学习的神经网络方法受到大脑工作原理的启发。其中的计算过程基于大量简单的自适应计算单元的协同作用。如今,我们重点关注的是表示的概念,尤其是分布式表示的概念。

因此,通过深度学习方法,我们将智能视为由三个主要事物的组合所产生:

1、要优化的目标函数或奖励函数;

2、用于逼近最优解的优化器或学习规则,它将修改神经连接的权重以大最优化目标函数或奖励函数;

3、初始的网络架构。

最后,我们可以应用学习规则并执行端到端学习,其中不同部分都互相协调从而最优化全局目标函数。

2 分布外泛化

当前的神经网络和机器学习可能缺少什么?我们对训练分布以外的泛化性没有很好的理解。我们讨论学习理论时,通常讨论对测试集的泛化性。测试集的分布和训练集的分布通常是相同的。我们需要更好的理论来思考如何泛化修改的分布或实现分布外泛化,这也是一个实际相关的题,因为在现实世界中,训练数据和实际部署时遇到的数据分布通常是不同的。

Yoshua Bengio:深度学习如何实现系统进化?

人类能够以某种高效方式重用已拥有的知识,而当前的机器学习并不擅长知识重组。机器学习擅长的是将知识模块化为可重用的片段。因此,如果能用正确的方法将上述的组合性概念实际上与组合增强有关,可以带来某种指数优势。

在机器学习和深度学习中,组合性以不同的形式出现。在分布式表示的概念中,表示中的特征的任何子集都可以存在或处于激活状态,这实际上可以带来指数优势,就像我们几年前在发表在ICLR2014的工作中展示的分段线性激活函数构造。组合性带来的指数优势还在于,我们可以用堆叠的层构建深度学习网络,形成了函数的函数的函数的…这也是我们今天使用的标准深度单元。但是,目前缺少人类使用一种特定语言的另一种形式的组合性,这种形式通常称为系统泛化性,这种泛化性使我们能通过类比执行抽象推理。

Yoshua Bengio:深度学习如何实现系统进化?

通过重组现有概念和知识片段来解释新观察结果的概念在语言中非常普遍,在语言学和其他领域中已有了相关研究。例如,Lake等人在2015年的工作中展示,对不同类型车辆的了解可以使系统能够理解未见过的新型车辆。系统泛化的强大之处在于,即使新的组合在训练分布下的实际概率为零,也能够做进行系统泛化。新的组合是如此新颖,以至于在训练分布中不存在。根据物理定律,我们甚至可以预测不可能发生的事情,例如科幻小说描述的情景。

Yoshua Bengio:深度学习如何实现系统进化?

有时候它们只是隐变量,例如你需要在交通规则不同的其他国家/地区行驶,这时必须修改隐变量,并以某种方式泛化。人类泛化能力的有趣地方在于,有时需要有意识的处理和注意力才能做到,当前的机器学习和深度学习并不擅长这一点。

Yoshua Bengio:深度学习如何实现系统进化?

3 系统1和系统2

通过这种有意识的注意力,人类可以动态地重组适当的知识,以应对新颖或罕见的情况,并以此为依据进行推理和预测,想象出解决问题的新方法。当人类这样做时,其行为方式不同于直觉惯性的行为方式。

这两种思维方式与系统1和系统2的概念有关,可以归结为快思考和慢思考。让我们尝试将这两种认知处理分开。我们拥有直觉的系统能力,可以很快做出正确的决定,该过程发生在无意识的水平。在这种时候,我们很难弄清大脑中发生的事情。当执行习惯性行为(例如开车回家)时,我们始终会这样以同样的方式执行,而无需费力的思考,同时还能做其他事情(例如在开车时和人交谈)。我们利用了有关世界的知识,但这是没有明确访问权限的一种知识形式,很多过程是隐式的,这正是深度学习所擅长的。

Yoshua Bengio:深度学习如何实现系统进化?

另一方面,在执行系统2任务时,大脑要采取一系列步骤,以解决逻辑思维问题,这时需要更多时间来想出答案,并且是有意识地思考。因此,我们可以用自然语言向其他人解释我们的思考过程。这就是我们提出算法、计划和推理时所应用的思考模式,这时要利用的知识涉及可以口头向他人解释的显式知识。这也是我们希望深度学习拥有的能力。利用这种能力,我们可以在与人交流中使用高级语义概念,从而将它们重新组合,从而实现泛化性。

Yoshua Bengio:深度学习如何实现系统进化?

当人类应用系统2的能力时,会使用有意识的注意力。注意力是深度学习的新工具,在去的几年中,已经取得了巨大的成功。我们开始将注意力用于机器翻译。注意力允许在单次计算集中于少数几个元素。如果使用软注意力,则通过反向传播来学习注意力权重。从神经科学的角度来看,注意力就像一块内部肌肉,不是从要对外部世界执行什么行为,而是在进行内部决策时,确定如何在大脑中分配计算量。

神经网络中注意力的另一个有趣方面是,它使我们能够摆脱传统环境设置的限制。在传统环境设置中,我们只能操作一些特征向量。现在有了注意力机制,对象集、(键、值)对集已经在自然语言处理中得到了广泛应用,而Transformer在很多NLP任务上都处于领先地位。

这种注意力机制恰好是当前意识理论的核心。在认知神经科学中,C-word不再是禁忌,但由于某种原因,它在AI中仍然是禁忌。我认为现在该是时候看看认知神经科学在意识方面取得的进展,看看是否可以从中获得启发,以建立新的机器学习架构和训练框架。

全局工作空间理论(Global Workspace Theory)是意识的主要理论之一,由Baars在1988年发起。这个理论的基本思想是大脑由许多不同的专家模块组成,这些专家模块需要以连贯的方式进行交流,以便找到新问题的解决方案。它工作方式可能是,有意识的处理中存在瓶颈结构。例如,在任何时候,注意力都只能关注少量元素。

选定的元素以及它们附带的值将通过瓶颈结构传播到整个皮质。这些值存储在短期记忆中,并且与感知和行为的相关性非常强。有意识地完成的任务与系统2有关。之所以需要这样的瓶颈结构,是因为有意识的处理使我们能够对可能的未来进行某种连贯的模拟,这正是我们想象时发生过程。而与电影不同的是,该模拟在每个步骤仅涉及几个抽象概念,瓶颈结构和一致的处理方式可以确保促成该模拟的皮质不同部分产生一致的配置和彼此连贯。

Yoshua Bengio:深度学习如何实现系统进化?

4 系统2满足的7个假设

现在,我们采用另一种讨论方式,这和可语言化知识与不可语言化知识有关。在大脑中,当我谈系统1和系统2时,似乎都涉及不可靠的隐性知识。我们拥有可口头表达的知识,可用于有意识地进行推理和计划,并向他人解释。关于这两种知识存在一些假设,它们可以捕获世界的不同方面。系统2捕获的方面满足一些假设,系统1捕获的某些先验不需要满足这些假设。

Yoshua Bengio:深度学习如何实现系统进化?

在机器学习中考虑先验时,通常会认为先验或多或少是正确的。但实际上,如果存在对世界某些方面适用的假设,那么在理解世界时就应该涉及一些变量,也许这些先验对其他方面没有任何意义。如果是这样,将知识分为两种是合理的,即满足假设的类型,和不满足假设的类型。对于不满足假设条件的方面,可以通过系统1来处理,以便可以利用先验优势来获得更好的泛化能力。如果我们相信这个假设,首先要清楚,在系统2中存在而在系统1中不存在的这些假设是什么。

因此,我列出了这些假设,该列表可能需要完善,但是这些是对高级系统变量以及系统2知识均有效的原则。我将先简单描述这些假设,然后对部分假设详细说明。

这些假设如下:

1、高级语义变量空间的因子图是稀疏的;

2、语义变量是因果的;

3、分布的变化基于局部的语义空间中的因果干预;

4、高级语义变量之间存在简单的映射;

5、跨实例元组的共享规则;

6、高级语义变量的含义对于分布的变化是稳定的、鲁棒的;

7、信用分配只是短因果链;

第一个假设是我在2017年的一篇论文中谈到的有意识先验(The Conscious Prior)。里面谈到,我们希望在深度学习表示的最高层发现的那些高级语义变量,具有一个联合分布。如果我们将联合分布表示为因子图,则这种联合分布会以某种方式更精确地展现,这些表示依赖关系的因子图非常稀疏。

我将举一些例子来说明这样做的意义。考虑一下自然语言,当一个句子包含这些高级变量时,该句子就可以表达关于世界的陈述。该句子捕获了高级变量之间的某些依存关系,仅涉及几个变量,因此是稀疏的。

第二个假设是,那些带有语义变量的高级变量,与因果关系有关。如果考虑语言中的词汇,它们通常会告诉我们有关智能体、人、动物在世界上发生的事情,以及如何干预世界,即通过他们的行为改变世界。

这些词汇也告诉我们有关这些智能体所具有的行动或意图。因此,智能体通过行为导致事情发生,然后它们将通过这些行为对世界产生影响,影响效果通常超出对象本身。因此,我们可以将这些对象视为可控实体,智能体可以控制这些对象。而且,在对象本身之间可能产生关系。

第三个假设不是关于变量的性质,也不是关于变量的联合分布,而是关于联合分布在现实世界中如何变化的趋势。其思想是,影响通常是由智能体做某事引起的,或者我们称之为干预。因此,在这种情况下,一次只发生很少的事情,这意味着在所有这些高级语义变量的巨大图形化模型中,只有很少一部分变量描述这样的变化。我们可以用自然语言以某种方式确认这个假设,因为我们可以用一个或多个句子通过重构造描述世界的那种变化,这些句子仅涉及几个变量。因此,这实际上是一个非常有力的假设。

第一个假设告诉我们,高级知识被分解成与依赖项相对应的小片段,这些依赖项一次涉及几个变量,我们可以用新的方式重新组合它们。第四个假设是,我们要寻找的高级表示之间有一个简单的映射,语言、句子、单词等都有某种简单的映射思想,以及在构建的系统中的表示形式。

为了能够重新组合这些知识、依赖项、变量,我们需要对图模型做一些操作。我们需要引入某种形式的共享,并考虑规则和可行性。规则描述了一些变量之间的依赖性,这些变量不必是实际的实例或对象,它们可能是抽象的,这是可行的方法。因此,这里有一种互动形式。然后,你可以结合这些知识,这些知识以新的方式捕获依赖关系,而不仅仅是固定结构。这是第五个假设。

然后是与表示本身有关的第六个假设。请记住,我们对世界的变化方式感兴趣。现在的问题是,当世界变化时,变化的实质是什么?我们可以这样定义,即世界的变化是某些量或某些依赖项的变化。这些变量的定义应该是稳定的。因此,我们考虑使用一种编码器,将像素级别表示映射到语义级别表示(例如类别),并且该映射应该是稳定的,这个过程需要学习。因此,随着我们看到更多数据,它的语义表示发生变化,但是应该会收敛。而解释这个世界的一些隐变量的值可能会由于智能体的干预而变得不稳定。

最后一个即第七个假设,即信用分配仅仅是因果链,因果链非常短。该假设与人类推理的方式有关,人类推理的方式有助于信用分配。同样,自然语言被用来解释,并且只涉及因果链中的少量变量或要素。

5 因子图的稀疏性

下图展示了一个因子图,该因子图中有两种节点。圆圈代表变量,正方形代表变量之间的依赖关系,这些依赖关系也称为因子, 联合分布是通过这些因子的标准化乘积获得的。每个因子都与一个潜在函数相关联,该函数以该因子所连接的变量的值作为参数。

Yoshua Bengio:深度学习如何实现系统进化?

原则上,因子图可以具有涉及所有变量的因子,因而并不稀疏。然而,人类凭借明确的知识构建的因子图非常稀疏,自然语言的特性是一种证明。“如果我丢球,它将掉在地上。”你会注意到该句子仅包含几个单词,每一个单词或短语都对应于一些高级语义概念。

有趣的是,你可以这样说,声称在球、放下球的动作以及位置之间存在依赖性。令人惊讶的是,很多预测都将是正确的,即使该预测涉及的变量很少。

如果要预测一个随机变量,则需要在一些涉及许多随机变量的大的联合分布中来预测一个变量。通常,我们需要以所有其他变量为条件。如果仅以一个很小的子集为条件就足够了,那么在该因子中就有一个结构,这种结构可以使我们更好进行泛化。对于其他变量而言,这种假设并不一定是正确的。例如,这些假设不适用于像素级变量, 根据其他像素预测一个像素是非常困难的。这就告诉我们,当我们强制执行此假设时,我们还对与该假设一致的表示进行了强制。

现在,我们希望神经网络能够发现这些高级变量。它们是解缠因子,但不是互相独立的。与最近许多关于解缠变分因子的工作不同,那些高级变量通过稀疏因子图的结构互相依赖,但是它们不是独立的。

这里谈论的知识表示是一种声明性表示。大脑在做的是推理,不是仅提供某些信息或某些变量,而是对其他变量进行预测,推理机制是一种计算。现在将知识分解成声明形式中与不同依赖项相对应的小片段,目前尚不清楚如何将其转化为关于推理方式的某种知识分解。但是,如果我们看看人类是如何根据这些知识进行推理的,也许可以从中得到一些线索。我们可以使用顺序过程来完成此过程,同时将注意力集中在因子图的少数几个元素上。

因此,在这种情况下,推理机制也被构造成这些片段。但是,根据推理链的类型,我们将遍历该链,例如以不同的顺序组合不同的片段。因为图不是链,它有很多途径。这启发了我们设计推理机制,这是一般的神经网络用来进行推理、预测事物的方式。为此,我们设计了一种形式的循环网络,我们称之为循环独立机制(Recurrent Independent Mechanisms, RIM)。

Yoshua Bengio:深度学习如何实现系统进化?

相比关注于所有隐藏单元(从t到t+1)均相互连接的变量,我们聚焦于含有循环模块(recurrent module)、模块与模块之间相互连接的稀疏模块化结构(sparse module structure)。此外,模块之间设置了注意力机制,用于控制模块之间的稀疏交流方式。

Yoshua Bengio:深度学习如何实现系统进化?

首先,即使是最基础的循环独立机制也能在许多需要使用循环网络的场景提供改善作用。如上图所示,这是用RIM代替LSTM而取得的进步。此处,数值大于0的结果均表示性能改善。

Yoshua Bengio:深度学习如何实现系统进化?

这项工作中最振奋人心的拓展之一就是RIM。它的出现源于全局工作空间论理论(Global Workspace Theory)。在该理论中,模块之间可以通过前面提到的瓶颈结构相互交流。在这里,“瓶颈”指的是一个工作空间,或信息存储器(working memory),在这个空间内,使用了注意力的所选模块能被写入信息存储器内。之后,存储在信息存储器内的信息会传递给所有模块。

Yoshua Bengio:深度学习如何实现系统进化?

我们发现,在许多涉及到强化学习和建模序列(modeling sequences)的设置中,RIM的表现比LSTM和其他方法的表现均更出色。我所提到的这些实验还能够更正任务(比如添加任务)。这些实验的有趣之处在于,使用这些架构的主要优势之一是可以在分布外测试模型。

我们应用了注意力机制进行模块挑选。注意力机制可以根据输入判断哪些模块是相关的,然后灵活选择不同的RIM模块。自然而然地,在处理新的输入时,你可以运用这种新颖的方式将已存在的模块进行组合。在这些实验中,我们清楚地看到了模块化和元学习的优势。这是Kanika Madan等人最近完成的工作。

6 因果关系

我们想要发现高级语义变量的正确表示空间。你可以考虑在原始输入(例如像素)上使用编码器和解码器,以得到高级语义变量,进而发现能将数据解释为高级表示的、正确的因果变量。

Yoshua Bengio:深度学习如何实现系统进化?

这其中也涉及到干预。此处,我们可以在图中设置一些与智能体的动作相对应的节点,并且它们将导致某些变化。这时候可以怎么做呢?

Yoshua Bengio:深度学习如何实现系统进化?

首先,因为我们要处理的是因果关系和干预问题。因此,在假设数据是静态的情况下,就像训练机器学习系统, 并不能帮助我们梳理清楚因果关系,也不能帮助我们理解不同变量如何与智能体、与这个世界的可控方面等对应。

这时,我们该研究那些行为会随着时间而发生变化的学习场景。这一点很重要。有趣的是,一旦开始谈论智能体,就会逐渐形成因为智能体的行为而引起分布变化的概念,尤其是在多智能体的场景,如下图所示。

Yoshua Bengio:深度学习如何实现系统进化?

这个世界以非固定的方式改变。比方说,一旦你进入有危险怪物或拥有大量现金的地方,你的生活就会永远改变。这是动物必须面对的处境。换句话说,大脑的学习机制也具有进化能力,还具备从分布外形成的泛化能力。

Yoshua Bengio:深度学习如何实现系统进化?

因此,让我们谈谈如何利用分布的改变来学习良好的表示,我们从原始输入到语义空间进行讨论。当世界发生某些变化时,实际上首先是原始输入发生了改变,然后要看看语义空间是否也发生改变。

Yoshua Bengio:深度学习如何实现系统进化?

我们如何才能更实际地利用这一优势?去年,我们就这一角度发表了第一篇论文,发表在今年的ICLR 2020上。在其中我们考虑了一个非常简单的场景,其中只有两个核心变量a和b,我们可能没有观察到a和b,而只是观察到了解码器的输出。其中我们观察到x和y,x和y都取决于a和b。现在,我们要做的是发现x、y的观测值之间的关系,a、b是隐变量,它们之间的因果关系有各种可能。事实证明,如果拥有正确的模型和正确的表示形式,则可以使用更少的示例来适应变化,这样就可以更快地学习。

如果有足够的数据,就无需理会结构或模型的原因,只是以不同的方式对联合分布进行建模,但最终它们会收敛到同一个结果。但是,如果只有少量数据,那么正确的因果结构就具有很大的优势。

最近,我们将这种想法扩展为从较大的因果图中学习。然后,我们将该方法与发现因果结构的现有方法进行了比较。而且,我们发现该方法实际上可以更频繁地发现正确的因果图。有趣的是,该方法还可以泛化到未见过的干预。

Yoshua Bengio:深度学习如何实现系统进化?

这种方法的总体思路是,在所有可能的图上保持一个分布。在这项工作中,我们可以列举所有可能的因果结构。如果有很多变量,那么图将具有指数数量的可能图。因此,如果想了解哪种方法是正确的,并且使用某种随机评分方法。我们希望在图结构上平滑地改变后验分布,并且有一种有效的方法可以将这种后验分解为一系列因子。因此,我们保持了这些概率,并且可以使用采样方法对这些概率计算梯度,收敛到特定的图。

7 结论

这项工作关于从系统1到系统2的有趣一面是语言。正如一开始所说,关于世界的知识既分布在满足这些假设的系统2中,又分布在不满足这些假设的系统1中。当我们想理解一个句子时,我们也需要系统1的部分,这是扎根于自然语言的思想。因此,我们要做的就是用自然语言共同学习系统1和系统2,而不是仅从测试分布中学习。我们在可以观察图像、动作和对应它们的自然语言的环境中学习,这是从我之前提到的BabyAI项目开始的研究。但是,涉及这些基础的语言学习设置有很多研究方向,而这实际上是将系统2的这些思想与自然语言联系起来所必需的。

Yoshua Bengio:深度学习如何实现系统进化?

最后,我想说的是,作为机器学习研究人员,在这项工作以及其他工作中,我们都肩负责任。我们不仅仅只在大学和实验室学习,而是应该在现实世界中时刻进行学习。这意味着我们必须注意工作对社会产生的影响。就好比智慧赛跑:是技术得以让世界进步。我们需要确保社会准备好接受这一点,我们要有足够的个人和集体智慧,避免对技术进行灾难性的使用。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/454434
推荐阅读
相关标签
  

闽ICP备14008679号