前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >你真的看懂了登上Nature 封面的清华“天机”芯片?

你真的看懂了登上Nature 封面的清华“天机”芯片?

作者头像
新智元
发布2019-08-06 10:26:25
1.1K0
发布2019-08-06 10:26:25
举报
文章被收录于专栏:新智元新智元


新智元推荐

来源:混沌巡洋舰 作者: 许铁

整理编辑:张佳

【新智元导读】近日Nature杂志封面刊登了清华类脑计算团队的最新成果:全球首款异构融合类脑芯片以及由其驱动的无人驾驶自行车,引发热议。本文从脑与人工智能结合的潜力与背景,看这系列最新工作的意义。

近日Nature杂志封面刊登了清华类脑计算团队的最新成果:天机芯片以及由其操控的自行车。(详见《“天机”今登Nature封面:清华施路平团队发布全球首款异构融合类脑芯片!》

Towards artificial general intelligence with hybrid Tianjic chip architecture

这则信息在一天之内在AI圈子引起了热议,而大部分吃瓜群众的状态则是云里雾里。这篇文章从脑与人工智能结合的潜力与背景,看这系列最新工作的意义。

我们说这个新工作的核心是能够同时在芯片上高效实现人工神经网络ANN和脉冲神经网络SNN,所谓的ANN和SNN,事实上是神经网络发展过程的两个分支。欲了解其背景先了解其历史。

神经网络家族的分合故事

神经网络的故事从模拟单个神经元开始:神经元是神经网络信息传输的“原子”。通过一定的方法连接这些原子,就可以得到具有智能的系统,这算是整个人工智能“连接主义”流派的哲学根基。

那么如何构建这个认知的“原子” ?我们来看看最早的把连接主义引入机器学习的尝试。最早的模拟大脑的单个神经元的尝试,是Warren McCulloch 和 Walter Pitts 在1943 提出而来神经元的模型。这个模型类似于某种二极管或逻辑门电路。一定的输入进来,被神经元汇集加和,如何这个和的总量大于一个阈值,神经元就放电,小于一个阈值,神经元就不放电。这个东西就好像某个微小的决策装置, 把很多因素加载在一起,做一个最终的决策。我们想象无数的二极管可以构成一个计算机,那么无数这这样的神经元不就可以构成一个具有计算功能的大脑吗?这就是感知器的概念。

这个高度简化的神经元事实上就是后来的人工神经网络ANN的基础,简化得到的神经元事实上每一个的数学形式等价于一个加入了非线性过滤的线性回归。

如果把无数这样的神经元连接起来,就构成了所谓的人工神经网络(ANN)。

当下的深度学习工具,无论是CNN还是RNN,都是在这个方程基础上把更多的神经元连接起来加入不同的限制条件得来的。

然而事实上,这个架构与真正的生物神经网络相差极远,这个差距首要集中在单个神经元模型上。刚刚的方程是一个把原来的生化过程简化到不能再简的结果。这里面最致命的区别在于,spike。通过观察上述方程我们可以看出,神经网络输出y是一个实数。而事实上,真实的生物神经元输出,更加接近的是一个0,1过程,当神经元经历的电压超过一个数值,它就放电。那是不是说明这个spiking反而更简单?其实不是,这里面人们忽略掉的一个信息就是spike timing以及背后的电压变化。真实神经元的放电过程由一组微分方程(Hodykin Huxley equations 1952)表达 :

这组微分方程的解就是spiking的过程,如下图是电压随时间的变化,当电压积累达到一定阈值,这个爆发的尖峰就是spike,通过spike ,神经元可以向其它神经元发射信号。我们所谓的脑电波,无非是大量这样的神经元的集体放电在颅外所检测到的一组信号。

如果用上述这种包含了重要生物细节spiking的神经元连接成网络,我们就得到了SNN(脉冲神经网络)也就是说,无论SNN还是ANN,本质都是对生物神经网络的模拟,但就其抽象程度且相差疏远。

我们看到用SNN可以用神经脉冲表达信息,如果用ANN表达一个类似的事情是什么样的呢?我们用一个数字Y来表达时间窗的spike个数(频率),而丢弃了所有其它信息,比如波形,相位,不同神经元之间spike和spike之间的同步等。这意味着什么?两种可能的解释:

1, 波形,相位,不同的神经元之间的同步是没有意义的冗余,去掉它们整个神经网络表达的信息没有变化,神经元的系统等于取定时间窗后的平均发放。

2, 波形,相位,不同神经元之间的同步包含很多有用的信息,去掉它们,可能丢失了一些关键性的信息。然而在最粗粒化的信息处理阶段,这种保留是足够的。

那么哪一个更准确呢?普林斯顿的大牛Williams Bialek 的一系列作品都指出,神经元spike间的同步(相关性)包含和神经编码相关的关键性信息,也就是说除了平均值外,spike所包含的不同神经元之间的发放同步(或相关性)依然包含了大量的信息。

1, Weak pairwise correlations imply strongly correlated network states in a neural population 2006 Nauture [2]

2, Collective Behavior of Place and Non-place Neurons in the Hippocampal Network 2017 Neuron[3]

Weak pairwise correlations imply strongly correlated network states in a neural population 2006 Nauture, 这张图说明了如果用0,1事件表达spike, 那么一个(视网膜网络)里的神经元的同步放电频率远高于用高斯独立假设得到的频率, 也就是说spike之间的同步不可忽略, 构成一种潜在编码

这两篇论文的共同特点是说,神经元spike发放之间的spike correlation可以编码大量的信息,如果记录这些spike之间的pairwise correlation,那么我们就可以恢复出神经活动里的大部分有用信息。

这意味着什么?假如神经元spike间的同步可以编码信息,那么我们就可能用更少的spike编码更多的信息,而这无疑对用最少的神经元放电得到更多的信息(稀疏性)大有帮助。除此之外,通过在spiking神经元的那组微分方程里加入更多的核膜常数(代表不同时间尺度的信息,因为spike方程本身是一个包含大量不同时间尺度的非线性方程),我们可以得到大量局部存储的不同时间尺度的记忆(此处联想“忆阻器”),我们甚至可以得到某些类似LSTM非线性门的特性。这些,都代表着Spiking Neural Network(SNN)相比当下ANN的优势。

用一个不恰当的比喻,ANN的神经元用实数表达每个神经元的状态,而SNN好比进入到了复数域,有了相位。在物理领域,实数到复数支撑了从经典力学到量子力学的升级。据此看,把SNN看成下一代的神经网络技术不言而喻。当然如果SNN这么好为什么现在工业没有用呢?难点在于SNN依赖于对微分方程的模拟, 对于当下的冯诺伊曼结构的计算机,这是一个成本消耗非常大的运算。也就是说计算机为了模拟本来节省能量的生物计算可能更加耗能,同时也更加不好训练。解决这个问题的方法,显然是从基本硬件基础出发,去改良硬件的架构,这也是神经拟态芯片的意义之所在。我们把树突和轴突直接用芯片来刻画,无形之间,就得到了一个长在硬件上的脉冲神经网络(SNN),它的能耗效率要比普通芯片高12-10000倍。

当然ANN也有一类专门的芯片来提高当下深度学习运行的效率,这就是深度学习芯片,例如大家都了解的寒武纪等。

清华的这个天机芯片在于 把神经拟态芯片和深度学习芯片的优势结合起来,可以同时提高这两类神经网络ANN和SNN的效率。我个人背景不是芯片,所以此处不在深谈,我们多从算法角度谈谈两者结合的意义。

Towards artificial general intelligence with hybrid Tianjic chip architecture

这一次Nature文章里的例子是自动驾驶自行车,当然这个例子被很多人诟病,认为这个不就是一个简单的平衡游戏吗。大家可以去github搜索cart pooling或者双足行走,这一类的toy model还不少吗?

然而我认为思考一个新发现的意义不在于它所干的那个任务low不low ,而是看它是如何完成的。最初的火车甚至跑不过马车,但是它的架构决定了它的上限和马车不可同日而语,通过数年时间迭代,两者已是云泥之别。

那么我们来看一下让ANN和SNN同时在一个芯片上运行,带来的潜力是什么。一言以蔽之,当下的深度学习模型,可以和大量没有被好好利用起来的计算神经科学模型,天衣无缝的嫁接在一起。这从无人驾驶自行车的网络架构可以略知一二。

Towards artificial general intelligence with hybrid Tianjic chip architecture

我们来理解一下这个流程图,首先,这个架构可以把多模态信息融合。比如视觉, 听觉。我们注意到,处理听觉的是脉冲神经网络SNN(更多时间相关信息)。处理视觉信号的网络是经典的CNN卷积神经网络,属于人工神经网络ANN家族。然而故事还没有结束,在CNN的下面,有一个主管视觉追踪的CANN网络,虽然只有一个字母之差,这可不是卷积神经网络,这四个字母的含义是continous attractor neural networks - 连续吸引子网络。

所谓空间吸引子,说的是一种特化了的循环神经网络, 网络的动力学导致一系列可以根据外界信号连续变化的吸引子构成,人们通常认为,海马体内的位置细胞就是由这种连续吸引子产生的,它们可以天然的和速度信号进行耦合,形成对空间的神经表示, 这个CANN,就是一种连续吸引子网络, 它直接把视觉物体(人)转化为一个可以追踪的空间目标(之后可以用于躲避行人)。大家注意,这是一个典型的脱胎于计算神经科学的网络架构,矩阵的连接还用到了树突计算。

然后我们来看中间的那个模块,neural state machine:神经状态机。这个网络把连续的听觉和视觉信号转化为离散的事件,这些事件构成一个有限状态的机器,也就是我们通常说的马尔可夫链。这一步大家已经可以看到和决策有关的网络的联系,因为一旦把连续变化的信号抽象成了这种离散的马尔可夫链,下一步就可以交给决策网络来决策了,这里的决策主动是动作输出,可以控制自行车在保持平衡的同时躲避障碍,并对周围物体发出警戒信号。这个网络也是由一个脉冲神经网络SNN构成。

在这里,我们不难看出这是一个典型的人工设计与机器学习结合的模块化网络, 不能不让我们想起这类工作的先行之作:Science(Eliasmith, Chris, et al. "A large-scale model of the functioning brain."science338.6111 (2012): 1202-1205.) 在这个工作里,研究人员构建了一个叫spaun的模块化网络,可以进行多任务学习。

Spaun的每个部分都是一个人工神经网络,且可以与真实的脑区对应上,比如视觉输入对应V1-V4 视皮层,它把真实的视觉信息压缩成一种低维度的编码(每个图像称为这一空间的一个点, 被称为pointer)。这种低维的信息表示形式很容易放入到工作记忆模块里(working memory),最终由解码网络转换(decoding), 被动作输出网络执行(motor)。

神经网络整体状态的调控由模拟basal ganglia的网络完成(Action Selection),它可以根据当下的任务整体调节信息的流动(如同一个综控系统, 调节每个网络之前的输入阀门),从而让大脑在不同的工作状态间灵活转换。这也体现了功能大脑的概念, 我们不必拘泥于某个脑区的名称, 而是记住每个脑区对应信息处理的功能。最终我们通过监督学习或强化学习来让这个系统掌握8种截然不同的任务, 包括:1,抄写数字 2,图像识别 3,奖励学习,4,多个数字的工作记忆,5,数数,6,回答问题 7 简单的数学推理。

A large-scale model of the functioning brain

而当下清华的工作,正是打造了适合这一类执行多任务的“虚拟”生物的硬件系统,在之上,你可以自由的搭建无论是经典的深度学习模型,还是那些超前了的计算神经科学模型,把他们一起组成模块化的网络,执行多种多样的功能。

这个潜力也就不只局限在自行车了,可以是流水线的机器人,陪护老人的机器人,随便你去发挥想象力,无论上述那个机器人,都需要进行多模块的信息整合以及多任务执行。假如这种建立在神经网络芯片上的模块化的网络系统可以以较低能耗长时间在真实环境里运作,那么它带来的好处显然是特别巨大的,这相当于引入了一个实时不间断的训练数据,如果结合无监督学习,强化学习,甚至神经进化等算法实时对网络进行优化,其潜力是无可限量的。

参考

https://www.nature.com/articles/s41586-019-1424-8

https://www.nature.com/articles/nature04701

https://www.ncbi.nlm.nih.gov/pubmed/29154129

本文经授权转载自“混沌巡洋舰” 作者: 许铁

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新智元 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档