关于作者

 一个毕业于北京大学数学力学系,在中国科学院计算所、计算中心和网络中心工作过,在澳大利亚科工组织DMS、香港浸会学院数学系和中国21世纪议程管理中心等处工作过,多次获国家和中科院科技奖并享受政府特殊津贴的退休老头。现在在【中国科普博览】网“科学新语林”栏目里开设一个《数学与计算机》的个人专栏,愿和爱好数学与计算机的各界网友和青少年朋友,谈谈对数学与计算机的看法、想法。

新器件神经突触芯片(上)

张建中
2015年01月08日

1.??? 神经突触芯片

自从1946年埃尼阿克(ENIAC)电子计算机诞生以来,一直沿用冯 诺伊曼体系结构:计算机有存储器,用于存储程序和数据;有运算器,用于执行算术运算和逻辑运算;有控制器,控制系统按存储器内的程序一条一条的按部就班执行指令;有输入和输出设备,用于人机通信。50多年来,尽管经历了电子管、晶体管、集成电路、大规模集成电路等几代的发展,但还是一直遵守冯 诺伊曼体系结构。
冯 诺伊曼体系结构是为数值“计算”设计的,因而不擅长“认知”处理。长期以来,人们一直在寻求突破冯 诺伊曼体系结构,模仿人类大脑是计算机科学家寻求体系结构突破的方向。人类大脑拥有千亿个神经元,每个神经元通过成千上万个突触与其他神经元相连,因而神经元相互之间能传导信号,利于“认知和知识”处理。因此,神经突触计算机芯片、神经网络计算机等类型的计算机体系结构多年来一直受到计算机界的广泛注意和追捧,并有不少研究机构和计算机公司对此进行着深入探讨。
IBM公司2014年8月发布了新一代“神经突触计算机芯片”。一张邮票大小的芯片有100多万个“神经元”,2.56亿个“突触”,集成了54亿个晶体管。这种芯片就是模仿人脑结构,从而模拟人脑认知和活动能力。这种芯片基于一种被称为“认知计算系统”的全新架构,能够模拟人脑认知和活动能力,其尺寸只有一张邮票大小,性能却直逼超级计算机;70毫瓦的超低功耗更是让普通芯片望尘莫及。研究人员称,这种芯片能同时处理大量数据,对来自多个不同渠道的信息作出响应,包括自动驾驶汽车、人工智能以及便携设备在内多个领域都或将因此发生革命性的变革。
[caption id="attachment_1207" align="aligncenter" width="400"]IBM的新型“神经突触计算机芯片” IBM的新型“神经突触计算机芯片”[/caption]
有资料断言,拥有100万个“神经元”的“神经突触计算机芯片”,就像蜜蜂的大脑一样复杂。另有行家评价,该芯片的认知能力达到青蛙水平。如果这种体系结构的方向走对的话,认知能力迟早会达到鸟类、猴子的水平,甚至最终达到人类大脑水准。

2.??? 神经网络与神经网络计算机

据统计,人脑由上百亿条神经组成——每条神经平均连结到其它几千条神经。通过这种连结方式,神经可以收发不同数量的能量。神经的一个非常重要的功能是它们对能量的接受并不是立即作出响应,而是将它们累集起来,当这个累集的总和达到某个临界阈值时,它们将它们自己的那部分能量发送给其它的神经。大脑通过调节这些连结的数目和强度进行学习。尽管这是个生物行为的简化描述,但同样可以充分有力地被看作是神经网络的模型。
神经网络也许是计算机发展模式的未来,据此制造出所谓的“神经网络计算机”。
神经网络计算机是指具有模仿人的大脑判断能力和适应能力、可并行处理多种数据功能的计算机。神经网络计算机可以判断对象的性质与状态,并能采取相应的行动,而且可同时并行处理实时变化的大量数据,并引出结论。神经网络计算机除有许多处理器外,还有类似神经的节点,每个节点与许多点相连。若把每一步运算分配给每台微处理器,它们同时运算,其信息处理速度和智能会大大提高。神经网络计算机的信息不是存在存储器中,而是存储在神经元之间的联络网络中。若有节点断裂,电脑仍有重建资料的能力,它还具有联想记忆、视觉和声音识别能力。
许多新型的电子计算机不仅拥有高速的计算功能,而且还能模拟人脑的某些思维活动,就是说,拥有某些智能化的功能。然而,如果严格地来鉴定一下,它们离真正的人脑思维功能实在差得太远了,而且有许多本质的差异。主要表现在人脑拥有高度的自我学习和联想创造的能力,以及更为高级的寻找最优方案和各种理性的、情感的功能。
一种称之为神经网络计算机的新型电脑芯片已经制造出来了。它能像人脑那样进行判断和预测。它不需要输人程序,可以直观地作出答案,也就是说它“看”到什么就能自行作出反应。它能同时接收几种信号并进行处理,而不像目前已有的计算机那样一次只能输入一个信号。
[caption id="attachment_1208" align="aligncenter" width="296"]神经网络计算机一例 神经网络计算机一例[/caption]
譬如,它区别出一个签名的真伪,不是凭签名的图形是否相像来判断,而是根据本人在签名时笔尖上的压力随时间的变化以及移动速度来判断。神经网络计算机目前主要的用途是识别各种极细微的变化和趋势,并发出信号。已经有人用它来控制热核聚变反应,监督机器的运行,甚至用来挑选苹果和预测股市行情。
人脑有140亿个神经元及10多亿神经键,人脑总体运行速度相当于每秒1 000万亿次的计算机功能。用许多微处理机模仿人脑的神经元结构,采用大量的并行分布式网络就构成了神经网络计算机。神经网络计算机将会广泛应用于各个不同领域。它能识别文字、符号、图形、语言以及声纳和雷达收到的信号,判读支票,对市场进行估计,分析新产品,进行医学诊断,控制智能机器人,实现汽车自动驾驶和飞行器的自动驾驶,发现、识别军事目标,进行智能决策和智能指挥等。日本科学家开发的神经网络电子计算机用的大规模集成电路芯片,在1. 5厘米正方的硅片上可设置400个神经元和40 000个神经键,这种芯片能实现每秒2亿次的运算速度。美国研究出由左脑和右脑两个神经块连接而成的神经网络计算机。右脑为经验功能部分,有1万多个神经元,适于图像识别;左脑为识别功能部分,含有100万个神经元,用于存储单词和语法规则。
人工神经网络的主要特点是大量神经元之间的加权互连。这就是神经网络与光学技术相结合的重要原因。电子技术与光学技术相比,精确度高,便于程序控制,抗噪声能力强。但是,随着计算机芯片集成度和速度的提高,计算机中的引线问题已成为一个严重的障碍。由于电子引线不能互相短路交叉,引线靠近时会发生耦合,高速电脉冲在引线上传播时要发生色散和延迟,以及电子器件的扇入和扇出系数较低等问题,使得高密度的电子互连在技术上有很大困难。超大规模集成电路(VLSI)的引线问题造成的时钟扭曲,严重限制了冯 诺依曼型计算机的速度。而另一方面,光学互连是高度并行的,光线在传播时可以任意互相交叉而不会发生串扰,光传播速度极快,其延时和色散可以忽略不计,加上光学元件的扇入和扇出系数都很高,因此光学互连具有明显的优势。
正因如此,许多科学家早已开始研究采用光学互连来解决VLSI的引线问题,以及芯片之间、插板之间的连接问题。此外,光学运算的高度并行性和快速实现大信息量线性运算的能力,如矩阵相乘,二维线性变换,二维卷积、积分等,也是用光学手段实现人工神经网络的有利条件。光学信息处理虽有高速度及大信息量并行处理和优点,但要满足模糊运算和随机处理的要求还是远远不够的。光学信息处理性能的改进,要求在传统的线性光学处理系统中引入非线性,而这些问题的解决与神经网络的光学实现恰好不谋而合。光学信息处理中的许多课题,如光计算、图像变换、相关滤波、特征提取、边缘增强、联想存储、噪声消除等,都可以用神经网络的方法来完成。
神经网络计算机已取得重要的进展,但仍存在许多亟待解决的问题。如处理精确度不高,抗噪声干扰能力差,光学互连的双极性和可编程问题以及系统的集成化和小型化问题等。这些问题直接关系到神经网络计算机的进一步发展、性能的完善及广泛的实用化。

3.??? 计算机体系结构与冯 诺依曼结构

计算机体系结构(Computer Architecture)是程序员所看到的计算机的属性,即概念性结构与功能特性。按照计算机系统的多级层次结构,不同级程序员所看到的计算机具有不同的属性。一般来说,低级机器的属性对于高层机器程序员基本是透明的,通常所说的计算机体系结构主要指机器语言级机器的系统结构。
经典的关于计算机体系结构的定义具体描述为:计算机体系结构是程序员所看到的计算机的属性,即概念性结构与功能特性。计算机体系结构就是指适当地组织在一起的一系列计算机系统元素的集合,这些系统元素互相配合、相互协作,通过对信息的处理而完成预先定义的目标。通常包含的系统元素有:计算机软件、计算机硬件、人员、数据库、文档和过程。其中,软件是程序、数据结构和相关文档的集合,用于实现所需要的逻辑方法、过程或控制;硬件是提供计算能力的电子设备和提供外部世界功能的电子机械设备(例如传感器、马达、水泵等);人员是硬件和软件的用户和操作者;数据库是通过软件访问的大型的、有组织的信息集合;文档是描述系统使用方法的手册、表格、图形及其他描述性信息;过程是一系列步骤,它们定义了每个系统元素的特定使用方法或系统驻留的过程性语境。
现在,计算机体系结构以图灵机理论为基础,属于冯?诺依曼体系结构。本质上,图灵机理论和冯?诺依曼体系结构是一维串行的,而多核处理器则属于分布式离散的并行结构,需要解决二者的不匹配问题。首先,串行的图灵机模型和物理上分布实现的多核处理器的匹配问题。图灵机模型意味着串行的编程模型。串行程序很难利用物理上分布实现的多个处理器获得性能加速。与此同时,并行编程模型并没有获得很好的推广,仅仅局限在科学计算等有限的领域。研究者应该寻求合适的机制来实现串行的图灵机模型和物理上分布实现的多核处理器的匹配问题或缩小二者之间的差距,解决并行程序编程困难,串行程序加速小的问题。
冯?诺依曼理论的要点是:数字计算机的数制采用二进制;计算机应该按照程序顺序执行?。
[caption id="attachment_1209" align="aligncenter" width="199"]冯?诺依曼结构图 人们把冯?诺依曼的这个理论称为冯?诺依曼体系结构。从ENIAC到当前最先进的计算机都采用的是冯?诺依曼体系结构。 冯?诺依曼结构图
人们把冯?诺依曼的这个理论称为冯?诺依曼体系结构。从ENIAC到当前最先进的计算机都采用的是冯?诺依曼体系结构。[/caption]
冯.诺曼结构有以下几个特点:(1)必须有一个存储器;(2)必须有一个控制器;(3)必须有一个运算器,用于完成算术运算和逻辑运算;(4)必须有输入设备和输出设备,用于进行人机通信。另外,程序和数据统一存储并在程序控制下自动工作
根据冯诺依曼体系结构构成的计算机,必须具有如下功能:(1)把需要的程序和数据送至计算机中;(2)必须具有长期记忆程序、数据、中间结果及最终运算结果的能力;(3)能够完成各种算术、逻辑运算和数据传送等数据加工处理的能力;(4)能够根据需要控制程序走向,并能根据指令控制机器的各部件协调操作;(5)能够按照要求将处理结果输出给用户。
为了完成上述的功能,计算机必须具备五大基本组成部件:(1)输人数据和程序的输入设备;(2)记忆程序和数据的存储器;(3)完成数据加工处理的运算器;(4)控制程序执行的控制器;(5)输出处理结果的输出设备。
将CPU与内存分开并非十全十美,反而会导致所谓的冯?诺伊曼瓶颈(Von?Neumann?bottle neck):在CPU与内存之间的流量(资料传输率)与内存的容量相比起来相当小,在现代电脑中,流量与CPU的工作效率相比之下非常小,在某些情况下(当CPU需要在巨大的资料上执行一些简单指令时),资料流量就成了整体效率非常严重的限制。CPU将会在资料输入或输出内存时闲置。由于CPU速度以及内存容量的成长速率远大于双方之间的流量,因此瓶颈问题越来越严重。