社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

Bengio 智源大会重磅演讲:基于神经因果系统2实现鲁棒深度学习

AI科技评论 • 4 年前 • 447 次点击  

作者 | Mr Bear
编辑 | 刘冰一

导读:2021 年 6 月 1 日,Yoshua Bengio 在 2021 北京智源大会上发表了题为「Towards Robust Generalization in Machine Learning with System 2 Deep Learning」的主题演讲。



在本次演讲中,Bengio 简要回顾了 Mila 实验室有关系统 2 深度学习的工作,并为后继的研究者们指出了前进的方向。


1

现代机器学习系统的不足之处 

图 2:现代机器学习系统的不足
目前,人工智能系统与人类的智能水平仍然有巨大的差距,这些系统需要能够应对真实世界中数据分布发生的变化。从机器学习的角度来说,学习理论假设测试数据与训练数据来自于相同的分布。然而,在部署工业化的机器学习系统时,情况往往与实验环境下的理想状态存在差异,这些系统的性能也会有所下降。

图 3:如何应对分布外数据
根据学习理论,测试样本与训练样本满足独立同分布(i.i.d)假设保证了系统具备泛化能力。然而,人类会对真实世界中数据分布发生变化的方式作出假设,并且在未来的适用场景下复用过去习得的知识。

图 4:人类通过意识加工应对分布外数据
从另一个角度来看,在面对新的情境时,有时使用习惯性的做法并不奏效。此时,人类会通过「意识加工」迅速组合知识片段,有意识地注意周围发生的情况并努力思考,从而进行推理并想象出解决方案。受此启发,我们可以改进人工智能系统,使其完成相同的目标。

图 5:系统 1 VS. 系统 2
诺贝尔经济学奖获得者 Daneil Kahneman 在「思考:快与慢」一书中讨论了大脑的两种计算模型,即「系统 1」和「系统 2」。
其中,「系统 1」与当下的深度学习系统类似,它具有直观的感知能力,能够迅速地以一种「无意识」的方式工作。我们可以通过这种系统做出正确的决策、识别图片,但是并不能清晰地解释该系统(黑盒模型)。相较之下,面对相同的情况,「系统 2」可以有意识地根据逻辑较慢地以一种循序渐进的方式进行推理、规划,我们也可以更好地解释「系统 2」。
通常而言,人类无法同时在「系统 1」和「系统 2」两种模式下工作。如今,深度学习可以很好地完成「系统 1」的工作,我们需要将其扩展到「系统 2」的模式下。「系统 2」之所以在新的环境下(即面对分布外数据,OOD)奏效,是因为它擅长于以新的方式重新整合现有的知识。
 

2

解决 OOD 问题的途径

图 6:从推理到 OOD 泛化
 「系统 2」的工作和推理方式与对分布外数据的泛化能力息息相关。在理论研究方面,这对于我们理解人类的智能是非常重要的;从工业的角度来看,这对于改进存在鲁棒性问题的机器学习系统也大有助益。实际上,这种能力也关系到「因果性」(causality)和「智能性」(agency)。尽管目前已经发展出深度强化学习,但是我们距离将「系统 2」的原理充分引入到深度学习人工智能系统中还很远。 
图 7:因果理解与 OOD 泛化 
如果我们拥有一个很好的有关现实世界的因果模型,就可以预测干预(Intervention)所导致的结果,这些干预指的是改变因果关系流。即使面对我们从未见过的场景,在因果模型的帮助下,我们也可以预测出将会发生的情况,并作出相应的决策,这与普通的机器学习范式有所不同。人类可以在大脑中对世界运作的方式进行抽象并构建出模型,这种世界运作的方式可以被分解为一些将起因和结果联系起来的「因果机制」片段。
我们之所以能够泛化到受到干预的新场景下,是因为现实中的因果关系是相对稳定的(例如,物理定律和人类行为的规律),这些知识在新的环境下仍然适用。人工智能研究者正试图使神经网络可以发现好的世界模型,并将其分解为可以根据干预和新的情况重新组合的知识片段。


3

人类对归纳偏置的启发

「系统 2」代表的意识加工过程是可以通过语言解释的,我们不妨从自然语言的角度来思考人类大脑对世界进行建模的方式。 
图 8:隐式知识与可描述的知识
 首先,「系统 1」和「系统 2」从不同的角度看待世界工作的方式。「系统 2」中有关世界的知识是可以通过语言解释的。然而,大多数的隐式知识是我们无法通过语言描述的。从机器学习的角度来说,这两类知识的区别在于其不同的底层假设和先验。「系统 2」中可解释的知识是十分特别的,它们比我们目前通过深度神经网络表征的「系统 1」中的知识有更加严格的限制。

图 9:抽象变量之间的稀疏依赖

人类会利用一些归纳偏置,我们将其称为假设、规则、或先验知识。Bengio 于 2017 年提出的「意识先验」是一种非常重要的归纳偏置,它与 Baar 等人于 1997 年提出的「全局工作空间」理论相一致。在他看来,意识加工过程中存在某种瓶颈,使我们的思维能同时考虑较少的变量。
如图 9 所示,「如果我放下球,它会落到地上」这句话说明了「放下球」的动作与球在动作发生前后的位置之间的关系。我们可以在使用少数条件变量的情况下,在「系统 2」的层次上进行准确的预测。然而,传统机器学习系统并不具备这种能力。以计算机视觉应用为例,我们需要使用大量像素点的信息才能对某一点周围的像素进行预测。我们可以将这种对概念进行抽象的能力引入到机器学习模型中。

图 10:抽象变量在因果关系中的角色

从因果性的角度来说,上述变量可以被视为因果关系中的智能体、动作、干预行为。

图 11:可复用的因果机制

我们可以通过可复用的因果机制来描述因果关系。「放下」这一机制既可以作用于球也可以作用于手机,如果我们「放下」手机,那么手机也会落到地上。如图 11 所示,在假设的「反事实」情况下,我们可以在不同的场景、时间对不同的物体应用相同的机制。这种因果机制的复用性对于提升泛化性能十分重要。

图 12:系统性的泛化

由于复用性的存在,我们可以以全新的方式将不同的机制和变量组合起来。例如,在句子「如果我们放下 Zog,它就会落到地上」这句话中,我们可能并不知道「Zog」是什么。但是由于我们看到了已知的机制(Drop)被应用于「Zog」这一物体上,我们就可以推理出它是一种可以拿在手上的物体。类似地,我们也可以在具有充分上下文的情况下,引入新的动词(机制)。 

图 13:离散、符号化的抽象概念

有些抽象的概念是可以被离散化、简化处理的。例如,语言使人类可以通过简化的、有限的离散信息交流,人类的思维可以处理这些离散的实体。从神经科学的角度来说,大脑皮层顶部的海马体可以表征离散的概念,这些概念通过小的瓶颈在脑部的不同区域之间传递,这个过程只涉及很少的离散变量。这种离散化的瓶颈可能有助于系统性的泛化,从而实时替换各种概念。 

图 14:稀疏局部的干预

在这些抽象概念中,动作(action)代表施加的干预。就人类的语言来说,这种干预往往只涉及单个实体。当人们说「放下手机」时,「放下」这一动作只涉及单个物体,并且只改变该物体的单个属性(位置)。因此,这种干预是稀疏且局部的。如果人们可以通过语言有意识地对干预进行解释,这种变化的出发点往往是十分简单的。 

图 15:独立的机制

在这种高层次的表征方式下,我们可以将高层次的知识分解为独立的机制片段。这些片段不仅可以被复用,它们也是完全相互独立的。从信息论的角度来说,单独对两个片段进行压缩和一同压缩它们得到的结果是相同的,即片段之间不存在公共的信息。

图 16:抽象变量与抽象动作之间的离散映射
干预的稀疏性不仅适用于有待操作的抽象实体,它也适用于动作空间,这些抽象的动作会在时间跨度上延伸。抽象的动作之间存在高层动作和低层动作的关系。抽象动作和抽象实体之间的关系也十分简单,每个实例化的抽象动作往往作用于单个抽象实体的单个抽象属性。不同的智能体可以通过不同的抽象动作影响相同的实体,相同的动作可以被应用到不同的实体上。
 

4

造成分布变化的原因

图 17:分布变化的原因
假设正确的世界模型中的干预是局部的。我们在拥有正确的模型和表征空间的条件下研究因果关系,如果干预造成了数据分布的变化,我们只需要对模型进行小幅度的修改。如图 17 所示,当我们带上墨镜后,所有的像素都变暗了。在像素的层面上,这种表征非常糟糕,数据的分布发生了变化,所有的随机变量都收到了影响。如果我们从像素级别上对世界进行建模,适应这种改变的数据成本非常高昂。但是如果我们从抽象的层面上表征对这个动作进行表征,即使用一个二进制位来表示戴/取下墨镜,只需要改变一个位(bit)就可以达到这一目的,此时需要的数据则非常少。


5

神经因果模型

图 18:发现更大的因果图
在论文「Learning Neural Causal Models from Unknown Interventions」中,Bengio 等人使用神经网络表征了因果关系。假设有 A、B、C 三个变量,他们为每个变量应用了不同的神经网络,在给定任意其它变量的情况下,这些神经网络需要对其对应的变量进行预测。通过同时学习这些单元你的参数,他们获得了所有变量的联合分布,以及描述因果关系的图。
通过该图,我们可以得出每个变量的父节点,并对这些变量进行解释。该模型在包含数十个节点的小型图上取得了很好的效果,这个具有前景的方向仍然具有很大的提升空间。


6

有意识推理的核心要素:注意力

图 19:注意力机制
为了实现意识加工,人类会使用注意力。而注意力机制如今也成为了深度学习领域的重要组成部分,并且在 2014-2015 年间促使机器翻译取得了巨大的飞跃,当下自然语言处理(NLP)领域中最先进的模型大多都是基于 Transformer 构建的,而自注意力机制正是 Transformer 的基石。

图 20:循环独立机制
受此启发,Bengio 等人提出了循环独立机制(RIM)。该机制并没有使用同构的网络,而是将网络架构划分为一些小的片段(小模型),这与前文所述的因果机制相类似。该机制并没有使用全连接的结构,而是使用了类似于人类意识加工过程中「模块内全连接」+「模块间瓶颈」的机制,模块之间只有少量的信息传递,而各个模块之间存在竞争。实验表明,这种机制可以提供更好的分布外泛化性能。

图 21:模块+全局工作空间
Bengio 等人在后续的一系列文章中引入了更多人类意识加工过程的特性。例如,在如图 21 所示的模型中,他们引入了 RIM 模块共享的工作内存/工作空间作为瓶颈,其中只有少数模型可以向该工作空间写入,而写入的信息可以被广播给所有的模型。

图 22:分离机制与变量

此外,Bengio 等人还试图将这些机制分离开来。在 ICLR 2021 上发表的论文「Object files and Shemata」中,他们将这些机制视为函数,并试图将这些函数与有待操作的变量分离开来。在普通的神经网络中,相同的神经元只能被用于特定活动存储的值,因此权值与活动有很强的关联。然而,通过使用注意力机制,我们可以迅速决定应该将怎样的机制、模型应用于工作空间中的哪些物体。而这些不同的函数、模型、物体之间也存在着竞争关系。


7

神经产生式系统

图 23:神经产生式系统

受到经典的「人工智能产生式系统」的启发,Bengio 等人提出了「神经产生式系统」,该系统一个接一个地应用规则,并且使用注意力机制来调整规则之间的竞争及其参数之间的竞争。我们使用神经网络从图像中提取物体的表征,并将其写入工作空间。接着,我们会根据注意力机制将规则作用于工作空间中参数的子集,选择出的规则需要最适用于这些参数。 

图 24:有关神经产生式系统的实验

这类系统可以对底层的一些机制进行解耦。在如图 24(左)所示的实验中,我们试图使系统学会解析并计算逆波兰表达式,从而对数字进行加、乘、减的运算,通过神经产生式系统发现的模块与这些操作一一对应。在图 24(右)中,视频中每一帧的数字图片会被朝着某个方向平移或旋转。神经产生式系统可以学习这些机制,并且为其赋予能够为人类所理解的意义。

图 25:离散值的神经通信

Bengio 等人认为,模型之间会通过离散化的瓶颈通信。因此他们通过分解的方式,使模块产生的向量可以被通过 VQ-VAE 中的方式「量子化」(类似于 VQ-VAE),而现代深度学习技术发展出的优化器也可以对这些离散化的步骤进行反向传播。实验表明,模块之间通过离散样本进行通信的神经网络可以得到更好的分布外泛化性能。 


8

事件因子图上的因果推理

图 26:因子图上的因果推理
如图 26 所示,对于视频这类时序数据,我们希望机器学习系统可以迅速地对构建出的因果图进行推理。此时,系统需要选择应该对各个事件应用怎样的机制,这些事件代表人的行为、物体等抽象的东西。
我们可以使用某个编码器从原始数据中提取出特定的事件,并且寻找出它们在各个时间点的关系。

由于微信公众号试行乱序推送,您可能不再能准时收到AI科技评论的推送。为了第一时间收到AI科技评论的报道, 请将“AI科技评论”设为星标账号,以及常点文末右下角的“在看”。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/115240