神经系统建模有哪些特点?我们发现:第一,生物神经元特性远比传统脉冲神经元特性丰富,第二,生物脑的机制远比传统人工神经网络的机制丰富。如此看来,理论、算法、模型将会持续快速更迭,并将成为常态。因此,Ocean 需要满足灵活建模的需求。
如左上图为一个生物神经元,它可大致分为突触、树突、胞体、轴突等几个部分。对应到模型上,每个部分都可以发生很复杂的机制,每一个机制对于最终表现出来的宏观认知效果都有不可忽视的重要作用。为满足灵活建模需要,Ocean 也相应地将神经元模型划分为突触、树突、胞体等结构(可以进一步细分和扩展)。其中,突触也可以独立建模。再来看突触及突触可塑性,在生物学层面二者相关性很强,但又相对独立。因此 Ocean 将二者解耦,突触及突触可塑性可以分别建模,同时允许二者灵活组合。在前述基础上,为了运算的高效以及便于管理模型 / 代码,Ocean 将神经元、突触以群组为单位划分,并提供两种基础模型描述范式:容器模型描述范式、端口模型描述范式。下面着重介绍端口模型描述范式。一个端口模型包括模型主体和一至多个端口。其中,模型主体包括若干变量,用于表达模块 / 模型的状态(例如神经元的膜电位);端口表述了模块 / 模型与其它模块 / 模型的信息交互方式(可以用于实现突触连接)。通过端口机制,可以清晰地描述神经网络丰富而复杂的拓扑结构。针对基础模型提供以下端口(可以按需扩展):
- Input - 输入端口,接受输入;
- Output - 输出端口,产生输出;
- Reference - 引用端口,允许模块 / 模型与其它模块 / 模型的变量相互引用;
- Connection - 连接端口,可用于实现联接权重矩阵等功能;
如下图所示:
Ocean 提供了常用的神经元类型、突触类型、树突结构、可塑性机制等,并分别提供了对应的端口模型 / 容器群组。
进一步地,为了提高模型的组织能力,更灵活地管理模块,Ocean 还提出了抽象模块(AbstractModule);抽象模块可以对模型进行封装,通过代理输入端口(ProxyInput)、代理输出端口(ProxyOutput)等高级端口提供统一的输入、输出接口;抽象模块之间可以进行级联、嵌套,形成扁平结构、树状结构、多层级结构等,为模型的组织提供了灵活的管理及扩展能力,更加便于研发人员之间分工协作,将各自设计的模型组装成为更大的模型。
下面给出一些经典的神经环路拓扑结构案例:1. 神经元 - 突触 - 神经元 - 突触可塑性(上、下游神经元组一对一)
2. 神经元 - 突触 - 神经元 - 突触可塑性(上、下游神经元组多对一)
3. 神经元 - 突触 - 树突 - 神经元 - 突触可塑性
4. 模块嵌套及复用
这里介绍一个 Ocean 建模实例。下图为使用类脑神经网络针对 MNIST 手写字体进行识别。这个模型没有使用误差反传、梯度下降,只使用一定神经环路拓扑结构结合可塑性进行学习,就可以取得良好的识别效果。我们还有更多的类脑神经网络模型以及应用案例,将会在以后的发布会上陆续向大家介绍。
忆海原识作为类脑计算以及机器人生态中的一份子,希望能够跟大家共同推动该领域发展,也希望大家能够持续关注。谢谢大家!
- Ocean 类脑计算平台:ocean.yihaiyuanshi.com
- 公司官网:https://www.yihaiyuanshi.com/
特别鸣谢:天安云谷、奇绩创坛、X-man 加速营、Nvidia Inception Program