成为了非常有吸引力的方向。目前研究的热点包括寻找更适合的器件以模拟单个神经元(比如忆阻器),设计非冯氏体系为基础的处理器等。近来IBM公司研发的TrueNorth芯片是这一领域的代表性进展,由于使用了非冯氏结构体系和其他一系列措施,实现了对于功耗近2个数量级的降低(图1)[4]。另外的重要进展还包括研发处理器,针对深度神经网络等类脑算法进行专门优化,以提高速度、降低功耗[5],由于这一领域的算法已在图像、语音识别等方面有成熟的应用,此类处理器有望能较早投入实际运用。
能够大大降低能耗或是加快速度的类脑的处理器对于实现更高水平的智能无疑会有很大的帮助,但要真正实现类人水平的通用人工智能,除了需要这样的硬件基础外,关键还需要理解生物脑对于信息所做的计算,即类脑的处理及学算法。对于此研究方向,一个常见的顾虑是:现在神经科学对于大脑工作机制的了解还远远不够,这样是否能够开展有效的类脑算法研究?对此,我们可以从现在获得广泛*的深度神经网络获得一些启示。从神经元的连接模式到训练规则等很多方面看,深度神经网络距离真实的脑网络还有相当距离,但它在本质上借鉴了脑网络的多层结构(即“深度”一词的来源),而大脑中,特别是视觉通路的多层、分步处理结构是神经科学中早已获得的基本知识。这说明,我们并不需要完全了解了脑的工作原理之后才能研究类脑的算法。相反,真正具有启发意义的,很可能是相对基本的原则。这些原则,有的可能已经为脑科学家所知晓,而有的可能还尚待发现,而每一项基本原则的阐明及其*的运用于人工信息处理系统,都可能带来类脑计算研究的或大或小的进步。非常重要的是,这一不断发现、转化的过程不仅能促进人工智能的进展,也会同步加深我们对于大脑为何能如此高效进行信息处理这一问题的理解[6],从而形成一个脑科学和人工智能技术相互促进的良性循环。
脑中除了基本的兴奋与抑制性的神经递质外,还有众多的神经调质,他们的作用在于根据当前的环境与行为目标随时动态调节大范围神经网络的行为,使得相对固定的网络结构能够胜任复杂多变的情况,实现千差万别的任务。近年来对于介观及宏观脑网络动态活动规律的研究发现,脑网络可能自发地组织于一个“临界”状态附近,这一状态使得信息的存储、传递和处理都能实现*化[10]。重要的是,通过对这一状态的微调,可以迅速调节网络功能,从而适应不同任务的要求。对于神经调质以及网络状态调控等原理的借鉴,有望对设计更加灵活,更有适应能力的人工信息处理系统提供有益启示。我们有可能从大脑的工作原理受到重要启发的第3个例子是如何实现小样本的学和有效推广。目前取得巨大*的深度学依赖于庞大的样本数量,这与大脑*的“举一反三”,即小样本学的能力形成鲜明对比[11]。原理上看,这意味着生物脑的学过程并非从零开始,而是从学之初,就拥有并运用了重要的先验知识,这包含了物种在进化过程中学到的(生物学称之为系统发生),以及个体在生活过程中学到的有关真实世界的关键知识[12]。读取这些知识,以及借鉴如何将这些知识作为先验信息注入神经网络结构从而实现小样本学,可能会是神经科学以及类脑算法设计中一个富于成果的领域。 除了上面举出的几个例子,神经科学可能会对类脑算法设计提供重要启示的领域还包括对于突触可塑性的进一步认识,具体的各项脑功能在神经环路水平的机制等。几乎可以说,每一项脑科学的原理性发现,都可能蕴含着一颗种子,有潜力在人工智能的领域成长为像深度神经网络一样的参天大树。
结而言,类脑计算是融合了脑科学与计算机科学、信息科学和人工智能等领域的交叉学科,我们有理由期待这一领域的研究将在不久的将来带来更多的令人瞩目的成就,推动智能技术向通用的人类水平的智能,即强人工智能的目标逐渐逼近。
如果这样来看脑科学与类脑算法研究的关系,我们可能会发现很多可供借鉴的基本规律。下面简单分析几个例子。*是我们可以向脑学如何更好地实现算法设计的模块化。模块化设计早已被计算机科学所采用。在这样的设计中,问题的解决分成几个固定的部分(子问题),每一个计算模块(子程序)只负责处理其中的一个。这一设计的优势在于能使算法设计大大简化,易于调试,易于修改,可以逐步完善并增加功能。更重要的是,因为表面上看起来不一样的问题往往能分解成相似的子问题,这使得模块可以重复利用,大大提高了效率并使得高度简并的系统能够胜任复杂多样的任务[7]。模块化设计的优势显而易见,但面对一系列具体问题,应该如何*有效率地划分子问题,这本身是一个困难的任务。而这可能是我们能够向大脑学的重要知识。真实的大脑是模块化设计的一个范例,每个脑区或亚区负责一个信息处理的环节或方面,而具体的模块划分是经过漫长自然选择加以优化的结果,已经适应了高效处理真实世界的实际问题。深度神经网络借鉴的对于视觉信息的多层、分步处理结构,某种意义上就是大脑模块化设计的一个方面。另外近期的一项研究显示,仅仅初步借鉴了非常粗略的脑功能模块划分(包括一系列视觉区域,一个记忆区域,一个决策区域以及一系列运动控制区域等),就能使得一个相对简单的系统胜任多种不同的任务 而AlphaGo 存在一个围棋盘面的估值网络和一个独立的走棋网络(虽然我们还不知道这是否是有意的类脑的设计,但这在原理上可能是类脑的划分),也说明了合适的模块化设计可能是其*的一个重要因素。这些结果令人鼓舞,但我们对于大脑模块化设计的借鉴也许才刚刚开始。现在神经科学的研究正在为我们给出非常详尽的,包含数百个亚区的有关人脑的模块化分区图谱,包括每一个模块和其他模块之间的信息传递通路(图3)[9]。可以预见,这将对类脑信息处理算法的设计提供关键的启示。比如对于语言区的精细亚区划分及其功能的阐明,就可能对于语言处理算法的模块化设计提供有益的借鉴。有关类脑算法设计的第二个例子是我们可以向大脑学如何调节网络的状态,从而灵活调控信息处理过程,使得系统能够适应不同的功能需求。
(1)LD(取指令) 一个常开触点与左母线连接的指令,每一个以常开触点开始的逻辑行都用此指令。
(2)LDI(取反指令) 一个常闭触点与左母线连接指令,每一个以常闭触点开始的逻辑行都用此指令。
(3)LDP(取上升沿指令) 与左母线连接的常开触点的上升沿检测指令,仅在位元件的上升沿(由OFF→ON)时接通一个扫描周期。
(4)LDF(取下降沿指令) 与左母线连接的常闭触点的下降沿检测指令。
(5)OUT(输出指令) 对线圈进行驱动的指令,也称为输出指令。
取指令与输出指令的使用说明:
1)LD、LDI指令既可用于输入左母线相连的触点,也可与ANB、ORB指令配合实现块逻辑运算;
2)LDP、LDF指令仅在对应元件有效时维持一个扫描周期的接通。