忆海原识发布类脑计算平台,下一代AI突破口到来!

简介: 近日,在 2022 WAIC AI 开发者日上,忆海原识创始人兼 CEO 任化龙发表主题演讲《类脑计算的发展与关键技术》。演讲中,他夯实细致地介绍了类脑智能的特点以及与传统技术的对比,以及忆海原识自主研发的 Ocean 类脑计算平台。

image.png

以下为任化龙的演讲内容,机器之心进行了不改变原意的编辑、整理:忆海原识专注于灵巧手和类脑智能,推动机器人产业赋能生活服务和工业生产,解放人类的生产力。

image.png

忆海原识团队起源于 2007 年,当时在研发灵巧手本体,后来发现智能才是机器人最大的瓶颈。于是任化龙选择去斯坦福深造,却发现所学传统智能技术存在明显理论短板。人工智能的突破口在哪里?答案就在人脑,不需向外索求。深度学习已经遇到瓶颈不可否认,人工智能发展至今已取得瞩目成就,在计算机视觉、计算机听觉、自然语言处理、自动驾驶等领域都已获商业应用,但每个领域也尚存不少短板。计算机视觉方面,目前以深度学习为主。深度学习采用数学优化作为内核,需要大量样本训练,泛化能力较弱,不能对事物、情景抽象概括理解,例如不能理解左图中奥巴马的搞笑举动。计算机听觉方面,假设在一个非常嘈杂的鸡尾酒会上,很多人在说话,夹杂着觥筹交错的酒杯声。那么,你怎么主动选择听哪个声音呢?这就是主动注意力。还有像人的说话、唱歌有音色和音调,甚至说话过程中有语气等,这些为传统智能技术所忽略。至于服务机器人,目前缺少灵巧的手,所以没办法进行灵巧操作。而运动规划仍需要给定轨迹或者给出精确的目标坐标(X、Y、Z)。机器人无法自己进行决策,也不具备像人一样的情景记忆。自动驾驶就更不用说了,在封闭场景还好,但是到了开放环境仍然面临一系列挑战,包括可解释性和鲁棒性较弱、复杂路况下适应能力弱、需要大量重复训练但性能提高有限等。可见,目前人工智能感知能力有限,更不要说认知能力,深度学习确实遇到了瓶颈

image.png

从生物脑到类脑计算前面提到了好多次认知,那什么是认知呢?我先抛出一个问题,谁还能记得上一个演讲的全部内容、全部画面,甚至每一句话?大家应该记不得了,因为人并不是像摄像头一样把每一段情景都录下来。但是如果让你总结概括,是不是可以呢?比如你可以用少于 10 句话去概括,甚至可以进一步精简到用一句话概括。这就是认知。学习和记忆、抽象和归纳就是人有的认知,这些对于机器人以及计算机来说仍然非常困难人脑的认知行为是非常灵活的,比如下图中五官的位置关系是怎样的,是不是已经错乱了,没有准确的顺序?再看它的色调和纹理,跟真实的人脸也有区别吗?那么我们把它识别成什么呢?如果从这幅画的作者来讲,我们知道它是毕加索的一副名画;从内容上讲,我们知道这是一张扭曲的人脸。如果想要识别它扭曲在哪里,可能是鼻子和眼睛的位置是错乱的。所以,我们对任何一个确定的输入,识别理解成什么样取决于认知需要。这种多元化的解读就是人脑的认知所带来的灵活性,这些也是目前人工智能所不具备的

image.png

人工智能怎么突破前述瓶颈呢?天地宇宙赋予我们人身,古人通过内观发现人的身体有气脉,因而发展出了中医,而人的大脑是目前唯一的通用智能系统,因此大脑是最好的设计蓝本,我们应该向内借鉴,不需向外求索。借鉴生物脑的智能技术可以用在视觉、听觉、语言、理解、决策、运动控制等各个维度,解决服务机器人和自动驾驶的关键瓶颈。从这个思路可以演变出很多具有相关性,但又有一些不同的学科和技术路线。

image.png

那么类脑计算是什么呢?它是由生物脑启发的人工智能技术,强调实用,不追求把大脑中每一个生物细节都进行模拟,具有广阔应用前景。脑仿真就是一种精细度较高的模拟,不一定追求实用,更多的是探求生物物理层面的机理。神经拟态芯片,利用介于数字和模拟混合信号的方式来实现人工神经元,集成进芯片里,大幅度节省芯片的功耗。计算神经科学可以看作是类脑计算的前身,它大量使用数理方法对脑机制进行理解,很多模型都是抽象的,不一定追求实用。脑机接口也是近些年兴起的领域,主要解决人和机器、大脑和机器之间的交互。下图提供了一目了然的对比:类脑计算可以通过算法、软件、硬件实现;神经拟态芯片如 IBM 的 TrueNorth;脑仿真如欧盟的人类脑计划,通过对多种生物脑中特定脑区的脑切片进行重构得到脑模拟模型;计算神经科学如经典的脉冲神经元模型和传统脉冲神经网络;脑机接口如马斯克的 Neuralink。

image.png

类脑计算如何借鉴大脑呢?它有两个关键特征,一个是技术特征,另一个是应用面。技术特征上高度借鉴了生物脑中关键的生物机制,比如不再使用深度神经元模型,而是使用脉冲神经元模型,甚至比脉冲神经元更复杂的模型。类脑计算的学习机制也不再依赖数学优化,无需误差反传和梯度下降,而主要利用可塑性进行训练,由此局部性更好,学习效率更高,配合生物脑中特殊的神经环路可以快速地实现举一反三。类脑计算也不再严格区分学习和推理这两个过程,很适合实时在线学习。由脉冲神经元构建出微环路,再由微环路构建多脑区的脑网络,这样就可以实现类脑神经网络模型。类脑计算面向的问题是更高级的认知任务,不再是简单的识别和分类。比如抽象与归纳、推理与决策、知识与常识都属于认知,想象与创造、情感、同理心、道德,甚至人特有的直觉与审美属于高级认知现象。

image.png


忆海原识类脑计算体系
类脑计算具体怎么做呢?回顾忆海原识的探索历程,我们是从机器人本体开始,因为脑中包括视觉系统、记忆系统、运动控制系统在发育与训练过程中离不开人体或者说机器人本体跟外部世界的不断互动。后来逐渐积累类脑智能的理论,并在这些理论指导下逐渐实现了一系列类脑神经网络模型。再后来发现这些模型规模比较庞大,运算效率又成为新的问题,于是研发了类脑加速平台,走了一个完整的技术链条。

image.png

回顾深度学习的发展历史,其实也是一样的。最早从理论出发,然后出现了多层神经网络,解决了训练问题,再然后出现了一系列关键构造(如 CNN、RNN、池化),后来又出现了诸如 Caffe、TensorFlow 等深度学习加速平台。类脑计算的发展也一样要循序渐进,一步一步扎实地走。类脑神经网络初窥神经网络是怎么工作的呢?我们先来看人眼视网膜,它是视觉神经通路的第一关,却又往往被传统计算机视觉所忽略再仔细看,视网膜的内部构造非常丰富和复杂,从第一层的感光细胞到后面的双极细胞、水平细胞、无长突细胞和神经节细胞,它们分成了若干层,每层里面还有亚层。这些细胞之间进行充分的信息沟通和互动,能够产生多种重要作用,包括但不限于调整对比度、图象锐化、边缘检测和形成初步色感等。

image.png

实际上,视觉的处理过程并不仅局限于视觉皮层,其实在视网膜就已开始了。下图为视网膜模型的处理效果,最左边是输入图象,中间是它提取出来的边缘,最右边形成了初步的色感(形成了三种不同的主要色调)。这里我们只借鉴视网膜内部的生物机制就可以实现,完全不需要数学优化、误差反传和大量的训练,效果仍然很好

image.png我们再来看更高级的部分「视觉皮层」。视觉神经系统有丰富发达的机制,它的神经通路与其他脑区高度互联,比如视觉皮层可以连接到运动皮层,和空间感有关;它还连接到颞叶,对物品进行识别;它还连接到中颞叶构造(包括海马体),形成情景记忆。情景记忆又可以进行抽象和归纳,再反哺视觉皮层的训练,使视觉训练效率非常高。

image.png

我们举个例子,受益于四通八达的神经通路,视觉系统可以进行丰富灵活的信息处理。如下最左图给大家一种立体感(存在视错觉);中间图有 ABC 三个位置,尤其是 A 和 B 在明亮上是同一个色阶,但在不同的阴影照度和对比下,就可能被人眼识别成不同的结果;还有最右图中有几种颜色的螺旋呢?其实如果去掉背景干扰信息,可以发现它的螺旋线只有绿色。也就是说,人脑对立体感、明亮感、色彩感以及其他诸多种感觉都存在相对性与整体性,能够在丰富的信息空间中进行灵活处理,处理方式和结果取决于认知需要和对比。

image.png

在下图中,大家可以看到远山之间存在层次感,能够分辨近景与远景。在这种图像之中,你可以结合视觉注意力选择关注的对象(即主动注意力)。人的视觉一般只对中央凹的位置(即中间部分)高度关注因而分辨率较高,周边的部分是模糊的。人眼可以选择聚焦于远山,也可以聚焦于近景,这些都是出于认知需要而定。这些在传统人工智能中没有很好地实现,所以不够灵活,没有办法适应会纷繁变化的复杂场景


image.png


再如下图示例,偏向于识别问题。
图中的对象到底是牛还是鲨呢?如果用深度神经网络,可能只能识别出一个确定的结果,要么分类成某种鲨鱼,要么分类成其他结果。为什么呢?因为它是端到端的单一输入输出系统。但是对人脑而言,认知是极其灵活的,思维存在非常多维度。头脑可以告诉你如果现在关注的是前景,虽然长得像鲨鱼的轮廓,但从纹理上看,是牛的皮肤。如果看它的头部与身体关系,则是牛头鲨身(您或许已经注意到了,这里存在经验 / 逻辑上的冲突)。如果你现在把注意力放到远景,头脑会告诉你远景是远处的山峰。可以这么说,视觉系统具有丰富灵活的认知机制,并不像深度学习那样是端到端的单一输入输出系统

image.png

Ocean 类脑计算平台问题来了,我们如何建模这样庞大复杂的神经系统呢1,我们发现建模过程非常烦琐,需要简化建模过程的工具。2,神经系统分为非常多复杂的层级,最顶层有系统级、往下是环路,再往下是神经元和突触,再往下可以分解到分子和蛋白质层级。每一个层级对整体的认知需要都是有贡献的,需要实现其信息处理过程。因此,需要一个能够对各个层级进行建模的工具3,此外,类脑神经网络往往规模很大,包括上千万甚至上亿个参数。如何在通用计算硬件上运算呢?这也需要一个运算效率很高的工具。Ocean 类脑计算平台应运而生,最初是作为我们内部使用的工具,现在隆重地向大家介绍和推广。Ocean 类脑计算平台分为前端、核心和后端,它把建模和硬件管理进行解耦。这样一来,神经科学家和建模人员不必关心硬件底层细节,只需专注神经网络的建模。该平台提供了丰富的基础模型和神经机制,包括有多种类型的神经元、突触、可塑性机制,以及顺馈、反馈、循环和侧抑制等常见的环路结构,简化用户建模过程,同时支持用户自定义模型、扩展功能。该平台能够支持全尺度的建模,从最小单位的神经元、突触、树突、环路、核团到脑区。该平台还可以支持大规模类脑神经网络的运算,通过对硬件设备的调度管理,保证高运算效率。该平台可以在异构计算器件上运行,支持 CPU、GPU 以及其他的异构计算设备。该平台可部署在个人计算机、云端服务器以及嵌入式设备上,从而为其应用和推广带来了可能,满足从研发到应用部署的全链条需求

image.png

神经系统建模有哪些特点?我们发现:第一,生物神经元特性远比传统脉冲神经元特性丰富,第二,生物脑的机制远比传统人工神经网络的机制丰富。如此看来,理论、算法、模型将会持续快速更迭,并将成为常态。

因此,Ocean 需要满足灵活建模的需求。

image.png


如左上图为一个生物神经元,它可大致分为突触、树突、胞体、轴突等几个部分。对应到模型上,
每个部分都可以发生很复杂的机制,每一个机制对于最终表现出来的宏观认知效果都有不可忽视的重要作用为满足灵活建模需要,Ocean 也相应地将神经元模型划分为突触、树突、胞体等结构(可以进一步细分和扩展)。其中,突触也可以独立建模。再来看突触及突触可塑性,在生物学层面二者相关性很强,但又相对独立。因此 Ocean 将二者解耦,突触及突触可塑性可以分别建模,同时允许二者灵活组合。在前述基础上,为了运算的高效以及便于管理模型 / 代码,Ocean 将神经元、突触以群组为单位划分,并提供两种基础模型描述范式:容器模型描述范式、端口模型描述范式。下面着重介绍端口模型描述范式。一个端口模型包括模型主体和一至多个端口。其中,模型主体包括若干变量,用于表达模块 / 模型的状态(例如神经元的膜电位);端口表述了模块 / 模型与其它模块 / 模型的信息交互方式(可以用于实现突触连接)。通过端口机制,可以清晰地描述神经网络丰富而复杂的拓扑结构。针对基础模型提供以下端口(可以按需扩展):

  • Input - 输入端口,接受输入;
  • Output - 输出端口,产生输出;
  • Reference - 引用端口,允许模块 / 模型与其它模块 / 模型的变量相互引用;
  • Connection - 连接端口,可用于实现联接权重矩阵等功能;


如下图所示:

image.png

Ocean 提供了常用的神经元类型、突触类型、树突结构、可塑性机制等,并分别提供了对应的端口模型 / 容器群组。

进一步地,为了提高模型的组织能力,更灵活地管理模块,Ocean 还提出了抽象模块(AbstractModule);抽象模块可以对模型进行封装,通过代理输入端口(ProxyInput)、代理输出端口(ProxyOutput)等高级端口提供统一的输入、输出接口;抽象模块之间可以进行级联、嵌套,形成扁平结构、树状结构、多层级结构等,为模型的组织提供了灵活的管理及扩展能力,更加便于研发人员之间分工协作,将各自设计的模型组装成为更大的模型。

image.png

下面给出一些经典的神经环路拓扑结构案例:1. 神经元 - 突触 - 神经元 - 突触可塑性(上、下游神经元组一对一)

image.png

2. 神经元 - 突触 - 神经元 - 突触可塑性(上、下游神经元组多对一)

image.png

3. 神经元 - 突触 - 树突 - 神经元 - 突触可塑性

image.png

image.png

image.png

忆海原识作为类脑计算以及机器人生态中的一份子,希望能够跟大家共同推动该领域发展,也希望大家能够持续关注。谢谢大家!

相关文章
|
7天前
|
存储 人工智能 算法
【AI系统】计算与调度
本文探讨了计算与调度的概念,特别是在神经网络和图像处理中的应用。通过分离算法定义和计算组织,Halide 等工具能够显著提升图像处理程序的性能,同时保持代码的简洁性和可维护性。文章详细介绍了计算与调度的基本概念、调度树的构建与约束,以及如何通过调度变换优化计算性能。此外,还讨论了自动调优方法在大规模调度空间中的应用,展示了如何通过探索和预测找到最优的调度方案。
25 0
|
4天前
|
存储 人工智能 算法
【AI系统】计算图的优化策略
本文深入探讨了计算图的优化策略,包括算子替换、数据类型转换、存储优化等,旨在提升模型性能和资源利用效率。特别介绍了Flash Attention算法,通过分块计算和重算策略优化Transformer模型的注意力机制,显著减少了内存访问次数,提升了计算效率。此外,文章还讨论了内存优化技术,如Inplace operation和Memory sharing,进一步减少内存消耗,提高计算性能。
57 34
【AI系统】计算图的优化策略
|
3天前
|
机器学习/深度学习 人工智能 前端开发
【AI系统】计算图的控制流实现
计算图作为有向无环图(DAG),能够抽象神经网络模型,但在编程中遇到控制流语句(如if、else、while、for)时,如何表示成为难题。引入控制流后,开发者可构建更复杂的模型结构,但部署含控制流的模型至不支持Python的设备上较为困难。目前,PyTorch仅支持Python控制流,而TensorFlow通过引入控制流原语来解决此问题。计算图的动态与静态实现各有优劣,动态图易于调试,静态图利于优化。
21 5
【AI系统】计算图的控制流实现
|
3天前
|
机器学习/深度学习 存储 人工智能
【AI系统】计算图与自动微分
自动求导利用链式法则计算雅可比矩阵,从结果节点逆向追溯计算路径,适用于神经网络训练中损失值对网络参数的梯度计算。AI框架中,自动微分与反向传播紧密相连,通过构建计算图实现高效梯度计算,支持动态和静态计算图两种模式。动态图如PyTorch,适合灵活调试;静态图如TensorFlow,利于性能优化。
24 6
【AI系统】计算图与自动微分
|
3天前
|
机器学习/深度学习 人工智能 算法
【AI系统】计算图挑战与未来
当前主流AI框架采用计算图抽象神经网络计算,以张量和算子为核心元素,有效表达模型计算逻辑。计算图不仅简化数据流动,支持内存优化和算子调度,还促进了自动微分功能的实现,区分静态图和动态图两种形式。未来,计算图将在图神经网络、大数据融合、推理部署及科学计算等领域持续演进,适应更复杂的计算需求。
32 5
【AI系统】计算图挑战与未来
|
3天前
|
机器学习/深度学习 人工智能 PyTorch
【AI系统】计算图基本介绍
近年来,AI框架如TensorFlow和PyTorch通过计算图描述神经网络,推动了AI技术的发展。计算图不仅抽象了神经网络的计算表达,还支持了模型算子的高效执行、梯度计算及参数训练。随着模型复杂度增加,如MOE、GAN、Attention Transformer等,AI框架需具备快速分析模型结构的能力,以优化训练效率。计算图与自动微分紧密结合,实现了从前向计算到反向传播的全流程自动化。
24 4
【AI系统】计算图基本介绍
|
4天前
|
存储 机器学习/深度学习 人工智能
【AI系统】计算图优化架构
本文介绍了推理引擎转换中的图优化模块,涵盖算子融合、布局转换、算子替换及内存优化等技术,旨在提升模型推理效率。计算图优化技术通过减少计算冗余、提高计算效率和减少内存占用,显著改善模型在资源受限设备上的运行表现。文中详细探讨了离线优化模块面临的挑战及解决方案,包括结构冗余、精度冗余、算法冗余和读写冗余的处理方法。此外,文章还介绍了ONNX Runtime的图优化机制及其在实际应用中的实现,展示了如何通过图优化提高模型推理性能的具体示例。
25 4
【AI系统】计算图优化架构
|
4天前
|
机器学习/深度学习 存储 人工智能
【AI系统】自定义计算图 IR
本文介绍了模型转换的方法及流程,重点讲解了计算图的自定义方法和优化技术。通过IR(Intermediate Representation)将不同AI框架的模型转换为统一格式,实现跨平台高效部署。计算图由张量和算子构成,支持多种数据类型和内存排布格式,通过算子融合等优化技术提高模型性能。文章还详细说明了如何使用FlatBuffers定义计算图结构,包括张量、算子和网络模型的定义,为自定义神经网络提供了实践指南。
19 3
【AI系统】自定义计算图 IR
|
8天前
|
人工智能 自然语言处理 前端开发
Lobe Vidol:AI数字人交互平台,可与虚拟人和3D模型聊天互动
Lobe Vidol是一款开源的AI数字人交互平台,允许用户创建和互动自己的虚拟偶像。该平台提供流畅的对话体验、丰富的动作姿势库、优雅的用户界面设计以及多种技术支持,如文本到语音和语音到文本技术。Lobe Vidol适用于娱乐互动、在线教育、客户服务、品牌营销和社交媒体等多个应用场景。
55 7
Lobe Vidol:AI数字人交互平台,可与虚拟人和3D模型聊天互动
|
3天前
|
机器学习/深度学习 人工智能 PyTorch
【AI系统】计算图原理
本文介绍了AI框架中使用计算图来抽象神经网络计算的必要性和优势,探讨了计算图的基本构成,包括标量、向量、矩阵、张量等数据结构及其操作,并详细解释了计算图如何帮助解决AI工程化中的挑战。此外,文章还通过PyTorch实例展示了动态计算图的特点和实现方法,包括节点(张量或函数)和边(依赖关系)的定义,以及如何通过自定义Function实现正向和反向传播逻辑。
28 7