此文从我的ICLR2020工作展开看脑启发AI和通用智能算法的发展路径,集合了我过去一年的演讲和思考内容。
当下的深度学习日子越来越不好过,自动驾驶,智能对话都在陷入一种人工智能不智能的怪圈, 即使最火的CV,其实也是需要大量数据填补的人工智障。
这些困难的根本,在于人工智能不具备人的智能的基础, 而只是模仿了人的思维能力的细节,也就是感知能力。我们来回顾这个人工智能进化的历史 。
首先, 人工智能经历果三个基本范式 :符号主义, 统计学习, 连接主义。
符号主义: 模拟人的逻辑, 如何把人的逻辑和知识用符号穿起来 。符号主义的本质 = 符号的运算
统计学习: 模拟人类统计学习的过程, 如何从大量的实践总结出有效的特征, 然后根据这些特征的先后重要性排列连接成决策树 。
连接主义: 人类模拟自身大脑的结构,提炼出网络的结构。
然后我们回顾连接主义发展的历史,连接主义的发展可谓三起三落, 所谓起都是因为借鉴了对生物大脑的某个理解而进步, 而衰都是因为达不到人们的预期而衰。
1, 第一次合作: 深度学习的前身-感知机。Warren McCulloch 和 WalterPitts在1943 提出而来神经元的模型, 这个模型类似于某种二极管或逻辑门电路。
事实上, 人们很快发现感知机的学习有巨大的局限性, Minksky等一批AI早期大师发现感知机无法执行“抑或”这个非常基本的逻辑运算,从而让人们彻底放弃了用它得到人类智能的希望。 对感知机的失望导致连接主义机器学习的研究陷入低谷达15年, 直到一股新的力量的注入。
2, 第二次合作: 这次风波, 来自一群好奇心极强的物理学家,在20世纪80年代, hopefiled提出了它的 Hopefield 网络模型,这个模型受到了物理里的Ising模型和自旋玻璃模型的启发, Hopefield发现,自旋玻璃和神经网络具有极大的相似性。每个神经元可以看作一个个微小的磁极, 它可以一种极为简单的方法影响周围的神经元,一个是兴奋(使得其他人和自己状态相同), 一个是抑制(相反)。 如果我们用这个模型来表示神经网络, 那么我们会立刻得到一个心理学特有的现象: 关联记忆。 比如说你看到你奶奶的照片, 立刻想到是奶奶,再联想到和奶奶有关的很多事。 hopefield模型的更大影响是引发了神经网络研究的一股旋风, 人们从不同领域开始涌入这个研究。 有的人想用这个模型研究人脑, 有的人想用这个模型制造机器大脑, 前者派生出了计算神经科学, 后者则导致了联结主义机器学习的复兴, 你可以理解为前者对猫感兴趣,后者只对机器猫感兴趣,虽然两者都在那里写模型。
3,第三次合作:所谓深度学习革命,在漫长的联结主义低谷期, hinton坚信神经网络既然作为生物智能的载体,它一定会称为人工智能的救星,在它的努力下, Hopefield网络很快演化称为新的更强大的模型如玻尔兹曼机,玻尔兹曼机演化为受限玻尔兹曼机,自编码器,堆叠自编码器。算法的进步更多体现在学习方法的改进。信息存储在无数神经元构成的网络连接里,如何让它学进去,也就是最难的问题。一种叫反向传播的方法60年代就开始
当下的AI与真正的人类的智能差距在哪里。 但是当下的ai还不够智能 。 我们从以下几个角度介绍原因 。 在学习的目标上,由单任务vs多任务的区别 , 在对数据的需求上小数据vs大数据, 在思维的本质上,有因果性vs相关性的区别, 在智能的层次上,有意识vs无意识的区别, 在语言的使用上, 真正的语言能力意味着蕴藏多个模态关联的符号集合, 在社会交互上,有社群性和个体性的区别。 我们可以思考单任务和多任务, 因果性和相关性, 群体和单机的真正区别所在,是来源于哪里呢?
我们来仔细思考这种区别的根基, 脑结构的区别, 大脑内的神经元采用尖峰脉冲放电, 具有树突和轴突。 从连接上看, 当下的AI以前馈为主, 而生物循环为主。 从拓扑结构看, 目前的网络不太有先验支撑的拓扑, 而是单纯靠梯度下降学习。 生物神经网络的每个模块带有不同的先验。 从学习角度,端到端学习的能力十分有限。
如何改善AI? 大家众说纷纭, 最激进的观点在于我们可以直接用大量的算力堆积, 让AI自己从超大的人工神经网络进化出来, 而更加温和的观点则认为理解和模拟我们大脑本身是绕不开的, 可以称之为仿生学派,这也是我自己的观点。
要理解大脑,最重要的是理解大脑是个复杂动力学系统。何为动力学系统,事实上大脑不像电脑 ,拔掉电源就不再工作,仅有输入来有一个输出。而是一个不停演化的动力系统 。最简单的动力学系统是一个单摆系统,有简单的动力学方程确定。作为一个动力学系统,掌握其演化的微分,就掌握了整个系统的未来,而微分又是通过不同微小局部的相互作用形成。
大脑的不同层级, 具有不同的动力系统特征。 每个层次上展现的性质完全不同。 神经元层次上我们看到经典的物理振子系统, 而哪怕最简单的神经回路也是一个小小的复杂网络。
下一个问题, 如何研究脑内的动力学 ? 一言以蔽之, 用机器学习研究人脑。 如果用生物学一个个分解研究的思维是很困难的,那么一个很好的方法是以毒攻毒,以复杂攻克复杂,我们使用人工神经网络,来拟合脑,单目的不是拟合,而是找到脑功能动力学的关键。
这个机器学习工具是什么呢? 他就是RNN。 方程-记忆-输入-输出。
为什么用RNN可以帮助我们理解我们的大脑,因为RNN本身是一个复杂的动力学系统,只要给它数据,它就可以捕捉真实大脑的动力学, 而捕捉到脑动力学的RNN比大脑更容易分析, 因此它就是这个领域的神器 。
用术语说,RNN可以看作是一个通用动力学逼近器,通过可以学习的动力学方程组学习任何representation。
一种研究套路是用RNN建立脑回路特有的功能。
我们来构建一个任务,体现通用ai多任务,多先验,强泛化,而且从大脑中取经提高性能。
文章的后面部分将用一个我自己ICLR 2020 诠释这个思路(欢迎大家讨论拍砖引用!)
Implementing Inductive bias for different navigation tasks through diverse RNN attractors arxiv.org论文的实例说明上面的道理。 如何建立一个任务来说明这个问题,我们选择导航 。这是对生物非常重要的一个日常任务,导航和一般的视觉任务比,更加需要模型,比如规划路线。
模型是大脑在导航任务里建立和执行计划的关键,但是对于导航需要的模型是什么,生物理论从来没有一个统一的认知。
一个主流的模型被通常被称为认知地图,它认为在大脑里需要建立一个如同地图的表示, 大脑需要能够把观测的视觉流转化为地图。
而另一个非主流一点的理论认为, 导航需要的模型无非行为主义的智能法则, 比如你要去一个咖啡店 ,你需要的无非是直行到下一个红绿灯左转这种。 这里模型的关键是提炼数据流里的关键事件,建立事件-行为反射弧。
到底这两种理论哪个更有道理, 两种模型哪个更好用?然后我的ICLR论文主要就是通过RNN建立一套导航模型,来回答这个问题。
建立一个RNN直接学习行为的框架 ,输入输出,任务。
如何引导两种不同的导航模型, 这里我们模拟生物学习的流程, 利用预训练得到这种生物的多样性。
把学习分为两部分,第一部分即预训练,这里RNN可以获取不同的表示或先验,注意此处只有网络的隐层得到训练, 而经过了这个阶段后才是策略学习, 也就是让agent在环境里训练寻找目标,这个阶段只有网络的读出层被训练。
我们主要预训练了两种不同的网络,一种删除预测自己当下的位置, 一种擅长记忆过去发省的关键事件(主要是碰墙), 这两种网络对应刚刚说的认知地图学派和行为主义学派。
一旦有了不同的网络(对应最早说的不同导航模型),我们就要回答网络比较好。显示的导航任何和环境千变万化,我们的环境十分简单, 如何体现这个思想?这里需要体现刚刚说的多任务学习的思想,也就是我们在一个任务上进行变化, 建立多个不同的任务, 看模型在每个任务上的任务性能。这里主要的变化有在环境里加入不同形状的障碍物,改变环境的大小或长宽比,在环境里加入不同的背景引导引导agent到达不同目标等。
之后我们就可以衡量不同的网络在各种不同的任务上的性能,看看哪个网络好。
我们l来看学习在最基的固定环境中得到的策略,各个网络其实都差不多。
然后, 换到不同的任务上, 就不是一回事了, 下面的表体现横轴是不同网络, 纵轴是不同任务。 我们看到几乎没有哪个网络在所有任务上表现良好。 而是存在一个典型的tradeoff, 那就是认知地图的网络擅长绕过障碍物, 而行为主义网络擅长在迷宫大小变化的环境里走。
这背后的策略区分是什么呢?我们看到不同性能背后受到两个策略的相对比例影响。位置有关的预训练诱导了位置有关的策略,具有对障碍物的鲁棒性。 行为主义策略诱导了对关键事件相关的策略, 从而对环境大小或形状的改变具有鲁棒性。
如何研究这些策略背后的先验表示的本质。 因为我们研究的是一个RNN, RNN背后的核心概念是动力系统。既然支撑不同先验的基础是RNN的动力学, 那么这种关系空间度量或关键事件度量的基准,就可能是背后的动力学。 而RNN动力学的关键又是吸引子, 我们俗称的不动点, 也就是让RNN自己在没有输入的状态下运行几步,它会达到静止在那里的位置。 常见的吸引子有如下几种。
比如对位置有关的预训练体现连续的吸引子 。 每个位置被定点表示,位置的连续变换对应连续吸引子。
对离散事件的预训练体现一种离散记忆的吸引子。每个关键事件被一个定点表示。
我们看到两种网络背后的区别主要是RNN的吸引子体现的, 当你训练出一种吸引子的时候, 往往另一种吸引子就不能同时得到,这就是我们看到不同网络在不同任务上性能存在一个tradeoff 的原因。
如何把两种表示的性能综合在一起。我们构建一个模块化系统, 可以在不同策略直接切换, 这个网络几乎在所有任务上表现极好。 这充分体现了文章刚开始提到的脑网络的关键是模块化系统, 不同模块代表不同的模型或先验,将它们组合起来并灵活切换, 我们就得到了比当下简单的端到端学习网络灵活强大的多的系统。
应该说这篇文章揭示了利用计算神经科学的一些知识(导航模型)启发AI的一个冰山一角。这篇文章告诉我们, 利用RNN来模拟大脑和认知动力学, 正在从单模块向多模块发展, 层级化发展 ,来模拟真实世界的因果关系, 甚至我们的工作记忆(global work space)。 首先值得推崇的是深度学习大牛Bengio的作品 Recurrent Indepent Mechansim
这篇文章旨在使用多个独立运行的RNN模块来表达不同的物体(或因子)它们具有独立的动力学, 但是也相互交互信息(如物体的碰撞等作用力),这些机制由attention来模拟。 这实际直接利用了独立因果原理的先验。
最终模型可以在多个序列推理,动力学预测任务上取得极好性能。
另一个可以推崇的参考方向是用多个RNN模块构建的混合专家模块组。1, Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer
这一类模型通常使用若干并行的(RNN)模块来代表不同的expertise,不用某种类似thalamus的 gating function根据输入(情景)对不同的模块进行筛选使用。
即使到这里, 脑科学和人工智能的交响也仅仅是刚刚开始, 而大脑能够根据任务组合模块,形成极为灵活的功能回路的能力, 也仅仅是开启冰山一角。 而这些研究会极大的帮助我们推动更加通用的智能时代的到来, 同时也了解我们本身。
有兴趣深入这方面研究并且把它用于现实世界的,请联系铁哥(微信TieXu0609), 长期实习,大厂工作机会存在,邀请你一起探索AGI的实现路径!
来源:oschina
链接:https://my.oschina.net/u/4305979/blog/4881930