神经网络系统
文献发布时间:2023-06-19 16:04:54
技术领域
本申请涉及感知技术,具体地,涉及在大规模部署的分布式系统中利用神经网络感知外部事件。
背景技术
在申请号为202110957486.8的中国专利申请中提供了模拟信号路由器,在申请号为202110956226.9的中国专利申请中提供了跨芯片传输模拟信号的模拟信号路由器,在申请号为202110956246.6的中国专利申请中提供了R-SpiNNaker芯片,在申请号为202110957228.X的中国专利申请中提供了R-SpiNNaker系统,在申请号为202110956273.3的中国专利申请中提供了基于R-SpiNNaker系统构建脉冲神经网络,在申请号为202110964601.4的中国专利申请中提供了分布式电容传感器系统,在申请号为202110957229.4的中国专利申请中提供了一种分布式电容传感器系统。这些中国专利申请作为本申请的背景技术,本申请引用其全文,并将其全文合并于此。
分布式系统中包括多个基础硬件单元。本文中将用于同类感知系统以及本申请的多种实施例的基础硬件单元称为“基础感知单元”。基础感知单元是例如现有技术中的R-SpiNNaker芯片,或者其他形式的硬件单元。图1A-图1F给出了基础感知单元的多种例子。
图1A-图1F各自是基础感知单元的结构框图。
在图1A的例子中,基础感知单元包括神经单元与数字路由器。
神经单元包括多个神经元。在一个例子中,神经单元的神经元用于提供SNN(脉冲神经网络)神经元的功能。在又一个例子中,神经单元的神经元用于提供ANN(人工神经网络)神经元的功能。神经单元提供神经元的资源池,其中的神经元可被配置权重以及同其他神经元的连接关系。神经单元是例如处理器核、神经网络芯片或提供神经元资源的芯片。神经单元也可由CPU核中的线程或进程实现。各神经元也可由CPU核中的线程或进程实现。神经元的权重定义了神经元的输入与输出之间的关系。
神经单元同数字路由器耦合。从而神经单元的各个神经元通过数字路由器接收输入和/或传递输出。神经元的输入/输出以数据包形式通过数字路由器传输。数字路由器包括路由表,其描述了从一个神经元接收的数据包被路由到哪个或哪些神经元。
以SNN为例,SNN神经元接收神经脉冲(简称脉冲),并输出脉冲。用例如AER包代表脉冲。SNN神经元收到AER包代表收到脉冲,SNN神经元输出AER(Address-EventRepresentation,地址事件表示)包代表SNN神经元被激活并输出脉冲。SNN神经元从数字路由器接收AER包并向数字路由器输出AER包。用于模拟SNN神经元的计算模型属于现有技术,根据本申请的实施例也利用将来可能出现的SNN神经元模型。
多个SNN神经元组成SNN。在本说明书中,同神经单元相比,SNN具有指定的拓扑结构与有意义的功能,构成SNN的各SNN神经元具有指定的参数或权重。SNN是被创建的。通过配置或编程数字路由器,例如,更新数字路由器的路由表,来利用神经单元的神经元资源创建或调整SNN。从而神经单元的SNN神经元在不同时刻可用于构建不同的SNN。神经单元中也可同时存在多个SNN。在上面列出的现有技术上,将提供SNN神经元的神经单元称为SNN单元。
对于指定的应用或处理功能,SNN的拓扑结构与SNN神经元数量是已知的。例如,指定的功能是从电容传感器采集的电容值中识别用户手指所接近或触摸的多个按键之一。又例如,指定的功能是检测空间中出现异常的物体(例如,泥石流)。
SNN中的SNN神经元具有单向的连接关系。SNN中的SNN神经元接收零个、一个或多个SNN神经元发出的AER包,并向一个SNN神经元输出AER包。根据本申请的实施例,SNN的神经元的连接关系,由数字路由器维护的用于AER包的路由表体现。数字路由器的路由表记录了从一个神经元接收的AER包要被路由或转发到的神经元,或者网络端口。
SNN神经元的输入与输出均由数字路由器处理。物理上,SNN神经元的输出是提供给数字路由器的AER包,而数字路由器根据AER包中携带的产生该AER包的SNN神经元的地址确定要将其转发到的目的神经元。而SNN神经元根据其接收的来自一个或多个SNN神经元的AER包,根据自身的参数确定输出AER包的时机。
可以理解地,对于ANN,ANN神经元之间的连接关系也由数字路由器体现。
基础感知单元还包括多个网络端口。图1A的例子中,展示了4个网络端口(由虚线框矩形表示),数字路由器连接到这4个网络端口,以同其他基础感知单元交换数据包。
在图1B的例子中,基础感知单元包括本地神经单元、共享神经单元与数字路由器。本地神经单元与共享神经单元分别同数字路由器耦合。可选地,本地神经单元与共享神经单元彼此不直接连接。本地神经单元中的神经元需要向共享神经单元的神经元发送数据时,需要先将数据发送给数字路由器,数字路由器再根据路由表的信息,将数据转发给共享神经单元中的神经元。
本地神经单元的神经元仅用于构建本地神经网络,本地神经单元的神经元的输出仅被提供给本地神经单元的其他的神经元,或者仅在作为本地神经网络的输出的情况下本地神经单元的神经元的输出才被提供给其他神经单元或控制部件。本地神经网络的所有神经元都来自同一个基础感知单元的本地神经单元。
设置本地神经单元的目的有两个,第一是进行局部快速决策,例如本地神经单元所在的基础感知单元接触局部高温或局部压力超过高限阈值时,需要感知此类事件并做出底层决策;第二是进行局部底层特征参数提取,例如本地神经单元所在的基础感知单元对已接触或即将接触的外部物体局部材质识别类别,识别外部物体接近的速度、局部接触的三维力矢量、局部接触是否有震动、震动的幅度与频率、局部接触是否有滑动、滑动的方向与速度等。
本地神经单元的多个神经元可构建一个或多个神经网络,所构建的神经网络可进行模块化、标准化的独立学习训练,除其输出层外,本地神经单元的神经元对于共享神经单元或其他基础感知单元是不可见的。换句话说,本地神经单元的神经元中,除了作为神经网络的输出层的神经元外,其他神经元输出的数据不会被数字路由器转发到共享神经单元或其他基础感知单元。
共享神经单元的神经元仅被用于构建共享神经网络。共享神经网络的神经元可由多个基础感知单元各自的共享神经单元的神经元构成。从而一个基础感知单元的共享神经单元的神经元的输出可被提供给其他基础感知单元的共享神经单元的神经元。
在单一基础感知单元应用的场合,共享神经单元也可以通过数字路由器的路由表配置成本地SNN单元。
为了设计与编程模型的简洁,可选地,神经单元内的各神经元之间的数据传递也由数字路由器中转。
在图1C的例子中,基础感知单元包括计算单元、数字路由器与神经单元。计算单元耦合数字路由器。
计算单元用于生成外部提供给神经网络的神经元的输入数据。例如,计算单元将外部输入编码为AER包,并提供给数字路由器。数据路由器将接收的AER包转发给神经单元的一个或多个神经元。
图1D的例子中,同图1C相比,基础感知单元还包括传感器。传感器包括例如ADC(模拟数字转换器)、CDC(电容数字转换器)或其他类型的传感器,用于将从真实世界采集的信号转换为数字量并提供给计算单元。传感器还包括一个或多个模拟信号端口。模拟信号端口是例如基础感知单元的引脚。作为举例,CDC包括激励信号线端口(AEC)与互电容输入信号线端口(ACC)。CDC通过AEC与ACC测量互电容,以及通过ACC测量自电容。
传感器同计算单元耦合。传感器向计算单元提供数字值而无需通过数字路由器中转。计算单元例如将传感器提供的数字值编码为AER包并通过数字路由器转发到神经网络的神经元。
图1E的例子中,基础感知单元包括控制单元、计算单元、NOC、神经单元与可选的执行单元。由NOC(片上网络,Network on Chip)代替了数字路由器。计算单元、控制单元与神经单元通过NOC彼此耦合。可选地,执行单元在基础感知单元外部,基础感知单元的控制单元同执行单元耦合,并驱动执行单元产生动作。
执行单元是例如马达、开关等,使机械手做出例如缩手避让的动作。由CPU核执行软件来提供控制单元,或由无需运行软件的硬件电路实现控制单元。控制单元接收NOC或数字路由器转发的数据包。转发给控制单元的数据包是AER包或专用于控制单元的数据包。控制单元从接收的数据包提取要实施的动作并驱动执行单元。
图1F的例子中,同图1E相比,基础感知单元还包括多个传感器。图1F的例子中,神经单元又分为本地神经单元与共享神经单元。传感器的输出耦合到计算单元的输出。计算单元将传感器输出的数字量编码为神经网络的神经元可接受的形式(例如AER包),并通过NOC提供给本地神经单元和/或共享神经单元。
图2展示了基础感知单元提供本地神经网络的示意图。
基础感知单元的神经单元的多个神经元被配置为本地神经网络。通过配置多个神经元各自的权重与彼此之间的连接关系,构建本地神经网络。本地神经网络包括例如输入层、中间层与输出层,各层均由本地神经网络的神经元构成。将构成输入层的神经元称为输入层神经元,将构成输出层的神经元称为输出层神经元,将构成中间层的神经元称为中间层神经元。神经元之间的连接关系描述了一个神经元的输出被提供给另一神经元作为其输入。一个神经元的输出可作为多个神经元的输入。一个神经元的输入可来自多个神经元的输出。本地神经网络被训练来感知待感知对象或外部事件。
图3展示了通过基础感知单元感知待感知对象的示意图。
作为举例,待感知对象310具有较小的尺寸,而待感知对象320具有较大的尺寸。由于待感知对象310的尺寸同基础感知单元接近,基础感知单元能较好的识别待感知对象310。基础感知单元由于仅感知了待感知对象320的局部信息,而无法较好识别待感知对象320。
在中国专利申请201710980214.3中,提供了“磁共振前列腺灌注图像的智能诊断恶性肿瘤的方法”,其通过分开独立训练两个神经网络,第一层神经网络对前列腺灌注的定量参数进行训练,第二层神经网络对叠加了疑似病灶像素的二值图进行训练。
在中国专利申请201811220643.1中,提供了基于联合学习身份信息和情感信息的面部表情识别方法,利用人脸识别图像数据库独立训练面部身份信息网络支路,训练完毕后将最后的全连接层去掉,通过神经网络可以提取得到输入图像的身份特征向量;利用面部表情图像数据库训练面部表情信息网络支路,完毕后把全连接层去掉,通过神经网络可以提取得到输入图像的情感特征向量;将身份特征向量和情感特征向量串联在一起得到串联面部特征表达;将融合身份信息和面部信息的串联面部表达特征馈送给全连接层,后续训练仅使用面部表情图像数据库对合并网络进行联合学习和优化。
在从https://arxiv.org/abs/1312.4400可获得的学术论文“Network inNetwwork”中,将多种网络线性堆叠,并对堆叠后的网络整体进行训练。
发明内容
需要提供包括多个基础感知单元的分布式系统来感知具有多种不同特征(例如不同尺寸、数量、材质、速度等)的待感知对象。
用于感知的分布式系统中存在这样的情况,一个传感器无法覆盖一个待感知对象,或一个待感知对象引起多个传感器响应,这时需要将多个传感器的输出信息综合起来,以获取关于待感知对象的多个层次信息。然而,对多个传感器的输出信息的综合处理存在挑战,传感器的数量、种类的变化以及待感知对象的多样性,进一步增加了复杂度。
为了应对上述一种或多种挑战,根据本申请的实施例提供了同类感知系统。同类感知系统包括多个基础感知单元,而多个同类感知系统可被大规模部署,以构成用于感知的分布式系统。从而同类感知系统所包括的基础感知单元的数量不必过大,以在复杂度和处理能力之间寻求适当的权衡。而且,同类感知系统所包括的多个基础感知单元彼此是相同的,以进一步便于大规模生产和部署。同类感知系统所包括的多个基础感知单元彼此相同,体现在多个基础感知单元彼此包括相同类型的传感器以及相同的硬件组成。
在用于感知的分布式系统中常有多种传感器,诸如获取电流、电容、力、温度等不同物理量的传感器。基础感知单元自身,可包括感知相同类型物理量的多个同类传感器,或者包括感知不同类型物理量的多个不同类传感器。即使基础感知单元包括了感知不同类型物理量的多个不同类传感器,属于同一同类感知系统的各个基础感知单元之间所包括的传感器类型彼此相同。例如,一个基础感知单元包括2个电容传感器与4个压力传感器,则其他基础感知单元同样包括2个电容传感器与4个压力传感器。可选地,同类传感器所获取的数据类型、尺寸等描述信息的类型相同。
属于同一同类感知系统的各个基础感知单元彼此包括相同类型的传感器,或者,同一同类感知系统的各个基础感知单元的传感器所感知的物理量的类型对应相同,降低了所采集数据的复杂度,也降低了综合处理这些基础感知单元的输出信息的复杂度,还使得应用于单一基础感知单元的数据处理方法可被通过复制而应用于其他基础感知单元,从而降低了开发与部署的复杂度。
根据本申请实施例的同类感知系统,还采用神经网络处理传感器获取的数据。这些经由同类传感器获取的数据作为对其处理的神经网络的输入信息,被相应的神经网络进行信息加工、识别、预测或控制等,对同类型传感器信息进行信息处理的神经网络其结构(各神经元的权重与神经网络的拓扑结构)也相同。从而进一步便于在多个基础感知单元上部署所训练的神经网络。
根据本申请实施例的同类感知系统,还通过神经网络处理各个基础感知单元的神经网络的输出,以综合处理各个基础感知单元的神经网络所感知的信息,以有利于识别多样性的待感知对象。即使待感知对象的例如尺寸远大于单个基础感知单元,通过综合多个基础感知单元各自感知的信息,来识别出待感知对象。
从而,根据本申请实施例的同类感知系统解决了用于感知的分布式系统的规模部署、规模生产问题。
在工作原理上,基础感知单元获取传感器提供的传感数据并做一定的加工,将获取的信息送入与传感器所在的基础感知单元的算力构成的神经网络的输入层,并经由该神经网络的输出层输出初步的识别、预测、分类结果等。同类感知系统中,各基础感知单元对应的该神经网络的架构、拓扑、权重初始信息等完全相同,这样做的目的是便于大型分布式感知系统的生产和部署,避免每个传感器对应的神经网络各自差异化训练和生产。
为了控制成本,单一基础感知单元的计算资源有限。在有些任务上需要更多的计算资源,例如,需要进行复杂的处理,或者综合多个基础感知单元的感知结果,各基础感知单元的神经网络的感知结果送给一个由这些基础感知单元共享的神经网络(将其称为共享神经网络)进行处理,这需要同类感知系统具有利用各个基础感知单元的计算资源以构建需要具有不同规模的神经网络的能力。
对于一个传感器或一个基础感知单元无法覆盖感知对象整体的情况,其对多个基础感知单元的传感器采集的信息采用多个独立、完整、相同的神经网络分别进行处理,每个这样的独立、完整、相同的神经网络称为一个节点,该节点输出待感知对象的局部计算结果,多个局部计算结果作为另外一个独立、完整的神经网络构成的节点的输入信息,这个接受多个节点输入的独立、完整的神经网络也构成一个节点,这个节点所需的算力资源也来自同类感知系统。
这种以同类感知系统构建分布式网络的方法具有以下优点:
1,解决单个传感器自带算力资源不足的问题;
2,解决单个传感器感知区域覆盖度不够的问题;
3,降低泛在分布式传感器网络中信息传输带宽和传感器网络的计算能耗问题。
协同计算系统要解决的问题是针对地理电子皮肤、机器人电子皮肤这些及类似的大面积分布式泛在触觉感知应用或多摄像头协同感知应用等情况,存在少数传感器及其附属的计算资源无法全面覆盖待感知区域的问题。对触觉或视觉及其他传感器类似的应用中,只能采用多个传感器覆盖待感知区域的感知方式,传感器及其所拥有的计算资源就构成基本感知单元。存在单个基础感知单元所拥有的计算资源满足不了该传感器获取数据、理解数据、认识数据所需的算力资源问题,或单个基础感知单元无法覆盖待感知对象的情形。在待感知对象为由多个小实体形成的群体的情况下,群体的数量与占据的区域也为对其的感知带来挑战。为了感知具有多样性或复杂性的待感知对象,需要有足够规模的计算资源,这就带来单个基础感知单元获取数据的处理及所需计算资源分配及计算结果或信息的路由传递问题。
待感知区域内待感知对象的运动变化及待感知对象所占区域的大小的多样性,还为计算资源的利用率提出挑战。待感知区域内可能同时存在不构成群体的多个待感知对象,或者感知的目的不在于感知群体而是各个待感知对象的个体。也存在一些相对简单容易识别的待感知对象,识别此类待感知对象仅需少数的资源即可完成。动态分配感知所需计算资源有助于节约计算资源;多传感器的存在及待感知对象运动变化会引起感知区域的动态协同和/或计算资源的动态划分需求;多个传感器覆盖的广大区域的信息提取、压缩、概括是现实应用的需求,由于传感器数量多、传感器感知范围内事件的发生数量多,对多传感器信息的综合、压缩、概括描述就成为这种用于感知的分布式系统降低通信带宽的必然需求。
诸如SpiNNaker的大型分布式神经网络有助于解决复杂问题。但随着神经网络规模的增加,神经网络的神经元数量增加,进而导致神经元之间的连接数、神经元之间的通信量呈几何级数增长,并且使得计算资源、通信资源被快速耗尽。因而,单个神经网络的规模受到了限制而无法随待解决问题复杂性的增加而相应的增大。需要在用于感知的分布式系统中提供新型的神经网络系统的结构,以解决上述一种或多种问题。
总之,在每个传感器、节点、基础感知单元都具有一定计算资源情况下且在没有固定或指定的计算中心的情况下,协同计算系统解决多种、多个传感器分布式泛在布置在待感知区域时,待感知事件具有多样性和复杂性时,待感知事件频繁发生时,分布式智能计算系统硬件节点计算资源的优化配置与动态分配,以及降低分布式计算系统信息传递量的需求,通过这些优化配置从计算/通信角度降低用于感知的分布式系统的计算能耗、提高信息传递的效率。
根据本申请的一方面,提供同类感知系统,包括一个或多个基础感知单元与共享神经网络;基础感知单元提供本地神经网络;所述一个或多个基础感知单元的本地神经网络的输出都耦合到所述共享神经网络的输入;所述共享神经网络的输出作为所述同类感知系统的输出;所述一个或多个基础感知单元的本地神经网络,各自包括独立的输入层与独立的输出层;以及所述共享神经网络包括独立的输入层与独立的输出层。
根据本申请的又一方面,提供协同计算系统,包括属于至少两个不同层级的多个神经网络;所述多个神经网络的至少一个神经网络属于所述两个不同层级的较低层级,所述多个神经网络的至少另一个神经网络属于所述两个不同层级的较高层级;一个或多个属于所述两个不同层级的较低层级的神经网络的输出耦合到属于所述两个不同层级的较高层级的神经网络的输入;所述多个神经网络各自包括独立的输入层与独立的输出层。
根据本申请的又一方面,提供协同计算系统,包括一个或多个神经网络;所述一个或多个神经网络各自包括独立的输入层与独立的输出层;所述一个或多个神经网络各自由一个或多个基础感知单元的共享神经单元的神经元所构成;基础感知单元还包括本地神经单元;所述一个或多个神经网络的神经元不包括来自所述一个或多个基础感知单元的本地神经单元的神经元;所述一个或多个基础感知单元的本地神经单元的神经元构成的神经网络的输出耦合到所述一个或多个神经网络的至少一个的输入。
根据本申请的又一方面,提供协同计算系统,包括一个或多个神经网络;所述一个或多个神经网络各自包括独立的输入层与独立的输出层;所述一个或多个神经网络各自由一个或多个硬件计算设备的神经元所构成;所述一个或多个神经网络基于事件而被使能或创建。
根据本申请的又一方面,提供协同计算系统,包括由基础感知单元的神经元所构成的一个或多个神经网络;所述一个或多个神经网络各自包括独立的输入层与独立的输出层;所述基础感知单元包括一个或多个传感器;所述基础感知单元的传感器的输出,直接或经处理后被作为所述一个或多个神经网络的一个或多个第一神经网络的输入;其中所述一个或多个神经网络包括第二神经网络;一个或多个第一神经网络的输出耦合到第二神经网络的输入。
根据本申请的又一方面,提供神经网络系统,包括多个神经网络与第一多个基础感知单元,所述多个神经网络的每个各自包括独立的输入层与独立的输出层;所述多个神经网络形成基础层级与不同于基础层级的至少一个层级;所述基础层级包括多个神经网络,所述基础层级的每个神经网络由来自所述第一多个基础感知单元的单一的基础感知单元的神经单元的神经元构建;所述至少一个层级包括一个或多个神经网络,所述至少一个层级的每个神经网络由来自所述第一多个基础感知单元的一个或多个基础感知单元的神经元构建;所述至少一个层级的神经网络的输入来自所述基础层级的神经网络的输出和/或所述至少一个层级的神经网络的输出。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是基础感知单元的结构框图。
图1B是又一种基础感知单元的结构框图。
图1C是又一种基础感知单元的结构框图。
图1D是又一种基础感知单元的结构框图。
图1E是又一种基础感知单元的结构框图。
图1F是又一种基础感知单元的结构框图。
图2展示了基础感知单元提供本地神经网络的示意图。
图3展示了通过基础感知单元感知待感知对象的示意图。
图4A展示了根据本申请实施例的同类感知系统的示意图。
图4B展示了根据本申请又一实施例的同类感知系统的示意图。
图5A展示了根据本申请实施例的同类感知系统的工作原理与数据流动方式。
图5B与图5C各自展示了根据本申请实施例的同类感知系统的本地神经网络与共享神经网络的连接方式。
图6A与6B分别展示了根据本申请实施例的同类感知系统处理待感知对象的示意图。
图7展示了根据本申请实施例的同类感知系统的工作原理。
图8展示了根据本申请又一实施例的同类感知系统处理待感知对象的示意图。
图9展示了根据本申请实施例的包括多个同类感知系统的分布式系统的示意图。
图10A展示了根据本申请实施例的协同计算系统。
图10B展示了根据本申请又一实施例的协同计算系统。
图11A给出了协同计算系统中节点间跨级连接的示例。
图11B给出了协同计算系统中节点间平级连接关系的示例。
图12给出了协同计算系统中节点间平级与跨级连接关系所适用的应用场景。
图13A展示了协同计算系统中反层级连接关系示例。
图13B与13C给出了协同计算系统中节点间反层级连接关系所适用的应用场景。
图14展示了根据本申请实施例的协同计算系统中节点的神经网络所需计算资源的构成。
图15展示了根据本申请又一实施例的协同计算系统中节点的神经网络所需计算资源由基础感知单元中的共享神经单元构成的情形。
图16展示了根据本申请实施例的协同计算系统运行时的一个实例。
图17A、图17B分别给出了协同计算系统、传感器与待感知对象位置关系的工作实例。
图18A和图18B展示了待感知对象运动时协同计算系统的动态构建的示意图。
图19A和图19B展示了由单一的基础感知单元提供计算资源所构建的协同计算系统的示意图。
图20A展示了根据本申请实施例的神经网络系统的示意图。
图20B展示了根据本申请又一实施例的神经网络系统的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图4A展示了根据本申请实施例的同类感知系统的示意图。
同类感知系统包括多个基础感知单元。每个基础感知单元包括本地神经单元与共享神经单元。本地神经单元的计算资源(神经元)用于构建本地神经网络。一个或多个基础感知单元的共享神经单元的计算资源用于构建共享神经网络。本地神经网络仅包括来自单一基础感知单元的本地神经单元的计算资源。共享神经网络可包括来自一个或多个基础感知单元的共享神经单元的计算资源。图4A的例子中,示出了基础感知单元包括一个本地神经单元与一个共享神经单元,可以理解地,基础感知单元可包括其他数量的本地神经单元/共享神经单元。
从而,基础感知单元具有由自身的本地神经单元的计算资源所构建的本地神经网络,将其称为基础感知单元的本地神经网络。基础感知单元的本地神经网络用于处理该基础感知单元自身的一个或多个传感器所采集的数据。
本地神经网络与共享神经网络各自是完整的神经网络,各自包括由自身独占的输入层、中间层与输出层,也称为独立的输入层、独立的中间层与独立的输出层。从而本地神经网络与共享神经网络各自可被独立训练。即使本地神经单元/共享神经网络各自的神经元构建了多个神经网络,属于一个神经网络的输入层/中间层/输出层的神经元不会再作为其他神经网络的神经元。一个神经网络的中间层/输出层,也不会服务于其他神经网络,不会处理或接收来自其他神经网络的神经元的输出。一个神经网络的输入层/中间层,也不会服务于其他神经网络,不会向其他神经网络的神经提供输出。
本地神经网络与共享神经网络各自可被独立训练的意义还在于,根据本申请实施例的各神经网络的输入/输出都有明确的物理意义。例如,本地神经网络的输入是来自传感器的数据或物理量,而其输出是对传感器数据的识别结果(例如出现某种物体),从而当本地神经网络的输出作为共享神经网络的输入时,共享神经网络的输入也有明确的物理意义,以及相应地,共享神经网络的输出也有明确的物理意义。各神经网络的输入与输出都有明确的物理意义,使得各神经网络可被独立训练,因为明确的物理意义是人工/机器可表达的,从而可以线下生成各神经网络的训练样本,而无需依赖于其他神经网络的输入。在图4A的例子中,对于共享神经网络,即使不存在本地神经网络,也能生成用于共享神经网络的训练数据,因为共享神经网络的输入与输出都具有明确的物理意义。现有技术中虽然也存在层次化的神经网络,但其后级神经网络的训练数据依赖于前级神经网络的输出,从而对各级神经网络需要联合训练,并导致训练过程的复杂度增加。
本地神经网络输出对对象的识别结果,而不是处理待感知对象得到的不具有明确物理意义的特征向量,这也是本申请的神经网络区别于现有技术的神经网络的重要特征。
根据本申请实施例的各神经网络彼此是独立且完整的神经网络。这意味着,本地神经网络410与本地神经网络420之间无需存在连接关系。从而即使本地神经网络410内部的各层神经元之间是全连接的,而本地神经网络410的输入层/中间层神经元,仅同本地神经网络410内部的神经元存在连接,而同本地神经网络420或其他神经网络的神经元不存在连接,本地神经网络410同其他神经网络的连接,仅存在于本地神经网络410的输出层神经元与其他神经网络的输入层神经元之间。通过消除分属不同神经网络的神经元之间的连接,极大降低了不同神经网络的神经元之间的连接数量(规模),使得实现大规模的分布式系统成为可能。从而,随着网络规模的增加,神经元之间的连接数量不会几何级数增长,使得网络中由神经元之间的信息传递引起的通信量都可承受。
作为对比,中国专利申请201710980214.3的方案中虽然也提及了独立训练两个神经网络,但其实质上是ResNet模型所提供的残差学习的实例。其第二层神经网络的输入包括残差学习所需要的原始输入x(前列腺二值图)与第一层神经网络的输出F(x)(疑似病灶像素),因而其第二层神经网络的训练并非独立的,而是依赖于第一层神经网络的输出以及原始输入,从而在没有第一层网络的输出的情况下,第二层神经网络无法进行训练。换句话说,对其两层神经网络的训练实质上是一起而非独立进行的。在本申请实施例中,各神经网络的训练可以不依赖于其他神经网路的输出即可完成,也不依赖于原始数据。具体地,对图4A中的共享神经网络的训练,可不依赖于传感器的传感数据,共享神经网络的训练样本可以不包括传感器的传感数据。另一方面,中国专利申请201710980214.3的方案中,对第一层神经网络对前列腺二值图进行处理,且仅对前列腺二值图进行处理,其输入的前列腺二值图相当于单一的传感器的传感数据,而本申请的本地神经网络处理多个/多种传感器的传感数据。本申请实施例的基础感知单元以及由基础感知单元提供资源形成神经网络,也同该现有技术有本质区别。
依然作为对比,中国专利申请201811220643.1的方案中,面部身份信息网络支路与面部表情信息网络支路被训练后去掉了全连接层,两个支路各自提供的输出是输入图像的身份特征向量与输入图像的情感特征向量(而非具有物理意义的结果),并将两种特征向量作为面部特征表达再提供给全连接层。由于其连个支路被去掉了全连接层,因而其不再是完整的神经网络。其将特征向量作为后续全连接层的输入。而神经网络输出的特征向量不同于根据本申请实施例的有明确物理意义的数据。具有明确的物理意义意味着其具有可被人理解且同所感知对象或事件关联的含义,从而可通过解析、枚举等方式生成,从而可以无需借助神经网络输出的方式来生成训练样本,进而实现对根据本申请实施例的神经网络的独立训练。中国专利申请201811220643.1的方案中,两个制度的神经网络是不完整的,其全连接层被去掉,并将两个神经网络内部的特征向量提供给另一个全连接层。而本申请的实施例中,各个神经网络都是完整的,各自是包含输入层、中间层(隐藏层)和输出层的独立完整神经网络,各神经网络的输入层/中间层/隐藏层仅为神经网络自身所用,而不会同其他神经网络共享或共用。在图4A的例子中,示出的两个本地神经网络(410与420)是相同的,其具有相同的拓扑结构(相同的神经元数量、以及相同的神经元连接关系),以及其对应的神经元具有相同的权重。从而经训练的一个本地神经网络的参数可被应用于构建另一个本地神经网络,而无需为每个本地神经网络重复训练。
共享神经网络同本地神经网络的拓扑结构/权重可以相同或不同。在共享神经网络同本地神经网络不同时,共享神经网络需要被独立训练,或者通过独立的训练来获得共享神经网络所需的参数。
图4A的例子中,两个本地神经网络的输出都被提供给共享神经网络,并作为共享神经网络的输入。从而共享神经网络得以综合两个本地神经网络的处理结果,并输出自身的处理结果,作为例如图4A的同类感知系统对待感知对象的感知结果。
共享神经网络的各个神经元可以由两个基础感知单元的任何一个的共享神经单元提供。为了支持在两个共享感知单元各自的神经元之间通信以构建共享神经网络的神经元之间的连接,两个基础感知单元通过网络连接(未示出),从而一个神经元输出的数据或数据包通过网络被提供给另一个神经元。可选地,为了易于开发,即使属于相同基础感知单元的共享神经单元(和/或本地神经单元)的神经元之间,也通过网络连接。从而每个神经元具有在网络中的唯一标识(称为神经元地址)。例如,在神经元输出的数据包中携带源神经元地址与目的神经元地址,来分别表达发出该数据包的神经元与接收该数据包的神经元,基础感知单元的数字路由器依据神经元地址来完成从发出数据包的神经元(源神经元)到目的神经元(接收数据包的神经元)之间的数据包投递。
源神经元地址与目的神经元地址,也表达了本地/共享神经网络中,两个神经元的连接关系。训练好的本地/共享神经网络中的各神经元具有其所连接的神经元。本地或共享神经网络(统称为神经网络)内的所有神经元的连接关系,构成了神经网络的拓扑结构。
在根据本申请实施例的同类感知系统中,本地神经网络的仅输出层神经元同共享神经网络的神经元连接,本地神经网络的输入层/中间层神经元仅连接到该本地神经网络的神经元。以便于同类感知系统的开发与构建,也避免了本地神经网络的神经元发出的数据包被投递到其所属基础感知单元外部,从而限制了同类感知系统的网络中的数据量,也降低了在神经元之间数据包所传输的距离,以限制同类感知系统的功耗。
同类感知系统的各基础感知单元各自具有自身在世界空间中的物理位置。从而各自邻近或适于感知待感知对象的某个局部特征。从而各基础感知单元各自具有不同的物理位置,从而各自提供了对待感知对象的不同局部特征的识别。通过共享神经网络处理由各个本地神经网络提供的对待感知对象的局部特征的识别结果,促进共享神经网络得到待感知对象的整体识别结果,或相对于基础感知单元所感知的更全面的识别结果,从而有利于更准确的识别待感知对象。
可以理解地,同类感知系统可包括其他数量的基础感知单元,以适应例如不同尺寸的待感知对象。而同类感知系统的共享神经网络又屏蔽了具有不同数量基础感知单元的同类感知系统之间的差异,便于更上层以统一的方式处理多种或不同同类感知系统的感知结果。
各基础感知单元通过有线的点对点网络和/或无线网络彼此耦合。基础感知单元通过点对点接口或共享介质网络(例如,以太网或无线网络)互连,从而各基础感知单元都可为共享神经网络提供神经元。
图4B展示了根据本申请又一实施例的同类感知系统的示意图。
在图4B的例子中,同类感知系统包括3个基础感知单元。每个基础感知单元包括自身的本地神经网络。3个基础感知单元各自的共享神经单元为同类感知系统的共享神经网络提供资源(神经元)。3个基础感知单元各自的本地神经网络的输出被提供给共享神经网络,作为共享神经网络的输入。共享神经网络的输出代表了同类感知系统对待感知对象的感知结果。
可选地,同类感知系统还作为预制件来提供,以便于部署。预制件具有指定的外形,占有一定的空间范围,并集成或容纳了例如图4B的同类感知系统的3个基础感知单元。从而在存在多个同类感知系统时,各同类感知系统的空间位置不重叠。属于同一个同类感知系统的各基础感知单元彼此邻近,其间的距离例如小于其基础感知单元到其他同类感知系统的基础感知单元之间的距离。可选地,预制件提供多个基础感知单元,这些基础感知单元可被配置来构成多个同类感知系统,从而这些同类感知系统的空间位置重叠。
图5A展示了根据本申请实施例的同类感知系统的工作原理与数据流动方式。
参看图5A,同类感知系统的每个基础感知单元包括例如一个本地神经网络与一个或多个传感器。基础感知单元的传感器获取(通过CDC、ADC等获取)的传感数据被提供给本地神经网络的输入层作为其输入进行处理。同类感知系统的各个基础感知单元的本地神经网络的处理结果又作为同类感知系统中的共享神经网络的输入层信息从而由共享神经网络进行进一步处理,并经由共享神经网络的输出层给出处理结果信息。其中共享神经网络是包含输入层、隐藏层、输出层的有一个独立、完整的神经网络。
可选地,传感器的输出经过处理后再提供给本地神经网络的输入层,以满足本地神经网络的输入格式或时机的需求。依然可选地,基础感知单元的计算单元对传感器的输出做处理。计算单元还通过例如基于先验知识的的数据处理方法处理传感器的输出,或者将传感器的输出直接馈入本地神经网络的输入层。
图5A展示了3个基础感知单元(对应3个本地神经网络)构成的同类感知系统。依然可选地,同类感知系统可包括其他数量的基础感知单元。
图5B与图5C各自展示了根据本申请实施例的同类感知系统的本地神经网络与共享神经网络的连接方式。
本地神经网络与共享神经网络各自包括完整、独立的输入层、中间层与输出层。本地神经网络输出层神经元的输出可经过进一步信息处理或者直接输出到对应的共享神经网络的输入层神经元,并作为其输入,其中每个本地神经网络与每个共享神经网络均包含完整的输入层、中间层(隐藏层)和输出层,并可被独立训练。本地神经网络的输入层神经元的输入来自其所属基础感知单元的一个或多个传感器或计算单元。本地神经网络的中间层或输出层神经元的输入来自本地神经网络的一个或多个神经元。共享神经网络的输入层神经元的输入来其所属同类感知系统的各个基础感知单元的本地神经网络的输出层神经元。共享神经网络的中间层或输出层神经元的输入来自共享神经网络的一个或多个神经元。由于共享神经网络的神经元可由其所属同类感知系统的任何基础感知单元的共享神经单元提供,因而,共享神经网络的神经元之间的数据传输可能发生在耦合各个基础感知单元的网络上。因而共享神经网络工作时,在网络上产生数据传输,消耗了网络带宽与能量。而本地神经网络的神经元之间的数据传输发生在基础感知单元内部,不在网络上产生数据量,不消耗网络带宽。属于某个本地神经网络的所有神经元都来自该本地神经网络所属的基础感知单元,而不会来自其所属同类感知系统的其他基础感知单元。从而某个基础感知单元的本地神经单元提供的神经元通常仅连接到该基础感知单元的本地神经单元的神经元,仅少数作为本地神经网络的输出层的神经元才可能连接到其他基础感知单元的共享神经单元的神经元,从而极大地限制了本地神经网络的神经元所连接的目的神经元的范围,从而目的神经元地址的取值空间较小,可以用较短的比特序列来表达,进而降低了数据路由器的开销。进一步地,还限制了本地神经网络的规模和复杂度,从而对本地神经网络的训练变得简单。
在用于感知的分布式系统中包括多个同类感知系统的情况,或者存在一个或多个基础感知单元不属于某同类感知系统的情况下,同类感知系统的共享神经网络的神经元仅来自该同类感知系统所包括的基础感知单元的共享神经单元,从而便于同类感知系统的复制与部署。
图5C给出了传感器的输出信息与本地神经网络的连接方式。在图5C的例子中,基础感知单元分别包括2个传感器。图5C的左下的本地神经网络所属的基础感知单元包括传感器1与传感器2,而右下的本地神经网络所属的基础感知单元包括传感器3与传感器4。作为举例,传感器1与传感器2,同传感器3与传感器4的类型对应相同(例如,传感器1与传感器3都是电容传感器,而传感器2与传感器4都是压力传感器)。从而图5C中的两个本地神经网络可具有相同的初始网络参数(神经元权重与网络拓扑结构)。通过在研发阶段训练单一的本地神经网络,而在生产或部署阶段将所训练的该神经网络的参数配置到同类感知系统的各个本地神经网络,使得各个本地神经网络都可工作。进一步地,各本地神经网络在工作中可能发生演进,使得各本地神经网络的参数不再相同。
在可选的实施方式中,同一个基础感知系统中本地神经网络的输入层信息不仅可以来自其自身传感器获取的环境信息,也可来自同类感知系统中的其他基础感知单元的传感器获取的数据。通过网络在同类感知系统的各基础感知单元之间路由或传输传感器获取的数据,和/或通过模拟路由器在各基础感知单元之间路由或传输要采集的模拟信号。在申请号为202110964601.4与202110957229.4的中国专利申请中提供了模拟信号路由器的例子。可以理解地,根据本申请的实施例,还可利用其他的现有或将来出现的模拟信号路由器。可选地,本地神经网络无需意识到传感器为其提供的输入来自其所属基础感知单元或其他基础感知单元。
图6A与6B分别展示了根据本申请实施例的同类感知系统处理待感知对象的示意图。
如图6A所示,同类感知系统包括4个基础感知单元。每个基础感知单元具有自己所在的位置,从而通过部署4个基础感知单元,使得同类感知单元能覆盖更大的面积或三维空间范围,进而通过不同位置的传感器采集待感知对象在不同位置或待感知对象的不同部分所产生的对物理量的影响。在图6A的例子中,待感知对象的尺寸较大,呈四角星形,并出现在4个基础感知单元所围成的矩形的内部。4个基础感知单元的传感器各自采集数据,并提供给各自的本地神经网络处理。4个基础感知单元的本地神经网络的处理结果提供给同类感知系统的共享神经网络,共享神经网络根据4个本地神经网络的输出产生自己的输出。由于单个基础感知单元的传感器邻近待感知对象的局部,从其采集的数据中一般无法识别该感知对象的全貌,而由本地神经网络输出对其局部特征的识别结果。共享神经网络依据4个本地神经网络各自识别的待感知对象的局部特征的识别结果,整体上识别该待感知对象。
在图6A的例子中,基础感知单元包括单一的神经单元。神经单元的部分资源被用来构建其所在基础感知单元的本地神经网络,而其他部分资源被用来构建同类感知系统的共享神经网络。
在图6B的例子中,基础感知单元包括本地神经单元与共享神经单元。本地神经网络的神经元仅由其所属基础感知单元的本地神经单元提供。共享神经网络所需的神经单元由4个基础感知单元的一个或多个基础感知单元的共享神经单元提供,共享神经网络构建所需的共享神经单元可不必来自感知到带感知对象的基础感知单元,也可以来自其它的基础感知单元。
图7展示了根据本申请实施例的同类感知系统的工作原理。
一个待感知对象的完整信息可划分为若干个部分(例如A、B、C、D……,各部分可相交或不相交)。各个部分可以是待感知对象物理的组成部分,如汽车的各个部件,人的手、脚、头、躯干等等。例如:A、B、C、D是卡车的四个轮子,E(未示出)是卡车底盘)。这些信息分别被一个或多个基础感知单元的传感器获取,各个基础感知单元的本地神经网络(独立完整的本地神经网络NA、NB、NC、ND……)对感知到的信息分别进行处理获得对各个部分的感知结果(例如A部分是否汽车轮子的判断、E部分是否车身底盘的判断等)。这些本地神经网络(NA、NB、NC、ND……)的感知结果又作为共享神经网络NS(包含输入层、隐藏层、输出层)的输入。共享神经网络NS对来自各个本地神经网络NA、NB、NC与ND的感知结果(输出)进行处理,得到待感知对象整体(A∪B∪C∪D∪……)的感知结果(例如通过A部分、B部分、C部分与D部分是否都是轮子、E部分是否是底盘的判断结果,给出待感知对象整体是否卡车的判断)。以图7为例,处理待感知对象的各部分(A、B、C、D)的各本地神经网络具有相同的初始参数,并作为单一的神经网络被训练,然后将具有相同参数(神经元权重/网络拓扑结构)的本地神经网络随基础感知单元分别部署在各个区域来得到本地神经网络(NA、NB、NC、ND……)。可选地,各个本地神经网络也不必相同,但每一个本地神经网络均可独立训练和实施推断(感知其邻近物体)。
由于A、B、C、D……各部分有明确的物理意义,例如,轮子、地盘、手,从而各本地神经网络可被独立训练来学习如何感知这些部分。进一步地,共享神经网络NS的感知目标(例如卡车、人)与来自各本地神经网络的输出(是车轮、是地盘或者是手等)也有明确的物理意义,从而共享神经网络也可被独立训练来学习如何感知待感知对象。可选地,对本地神经网络之一的训练结果(训练好的网络参数)可被复制到其他本地神经网络,以简化训练和部署过程。训练好的本地神经网络的网络参数可以不同于共享神经网络。
图8展示了根据本申请又一实施例的同类感知系统处理待感知对象的示意图。
图8给出了一种同类感知系统的构成方式。同图6B展示的同类感知系统的实施例相比,图8的同类感知系统的基础感知单元还包括多个(2个)传感器。以及除了同类感知系统所包括的4个基础感知单元,图8的例子中还包括不属于同类感知系统的基础感知单元(左下角的基础感知单元)。
图8的同类感知系统的基础感知单元中本地神经网络的输入信息可来自一个或多个基础感知单元的传感器,提供这些传感器的基础感知单元可以属于或不属于该同类感知系统。在一个例子中,构成同类感知系统的共享神经网络的神经元都来自属于该同类感知系统的基础感知单元的共享神经单元。可选地,构成共享神经网络的神经元的一部分或全部也可来自不属于该同类感知系统的其它基础感知单元的共享神经单元。
依然可选地,同类感知系统工作中,一些基础感知单元可能没有感知到待感知对象的信息,但这不影响这些基础感知单元的本地神经网络向同类感知系统的共享神经网络提供处理结果,也不影响这些基础感知单元的共享神经单元向共享神经网络提供神经元,甚至不影响这些基础感知单元的传感器或传感器的部分组件(例如电容极板)向其他基础感知单元的本地神经网络/传感器提供信息。
图9展示了根据本申请实施例的包括多个同类感知系统的分布式系统的示意图。
图9的用于感知的分布式系统的例子中,包括多个基础感知单元。图9中的多个基础感知单元在空间上构成阵列。当待感知对象出现在该分布式系统覆盖的范围内,待感知对象的位置和各基础感知单元的位置,对应了各基础感知单元的传感器采集的不同数据。一个或多个待感知对象处于该基础感知单元阵列的感知范围内,覆盖不同待感知对象的基础感知单元数量可以相同也可以不同。
该基础感知单元阵列中可包括多个相同或不同的同类感知系统。
图9中,左上角给出了由两个基础感知单元构成同类感知系统910的例子,即用两个基础感知单元构建同类感知系统来感知特定的待感知对象。图9中右中部分给出了由四个基础感知单元构成的同类感知系统920的例子。与同类感知系统910相比,同类感知系统920包括四个基础感知单元,并更加适合对较大尺寸的待感知对象进行感知。依次类推,由多个基础感知单元构成的阵列,可以根据待感知对象特征的不同,构建不同数量规模的同类感知系统。这些同类感知系统中每个基础感知单元都具有本地神经单元和共享神经单元,这些神经单元可用来构建基础感知单元的本地神经网络和所需要的共享神经网络。
由于待感知对象的多样性、复杂性,待感知区域的覆盖范围广阔,在对计算资源、通信资源的大规模需求与基础感知单元的成本与有限资源之间存在矛盾。
根据本申请的实施例,提供了协同计算系统。协同计算系统解决用于感知的分布式系统的多种、多个传感器(每个传感器覆盖的感知区域有限、每个传感器节点拥有的计算资源有限)分布式泛在布置在待测区域时,待监测事件频繁发生时,分布式系统硬件节点计算资源的优化配置、动态分配以及降低分布式计算系统信息传递量的需求,通过这些优化配置从计算角度降低分布式感知系统、分布式计算系统的计算能耗、提高信息传递的效率。
图10A展示了根据本申请实施例的协同计算系统。
协同计算系统是由多个神经网络形成的神经网络系统。协同计算系统中的各个神经网络由基础感知单元提供的计算资源构建起来的独立、完整的神经网络。每个神经网络各自拥有属于自身的独立的输入层、输出层与中间层,并且可被独立训练以得到自身的网络参数。协同计算系统的多个神经网络彼此连接,形成例如树形结构,每个神经网络称为树形结构的节点。协同系统计算系统的各神经网络之间的连接,不同于单个神经网络内部的神经元之间的连接。各神经网络之间的连接,是神经网络的输出层神经元到另一神经网络的输入层神经元之间的连接。为了描述清楚的目的,将一对连接的两个神经网络分别称为源神经网络与宿神经网络,源神经网络的输出由其输出层神经元产生,并作为宿神经网络的输入,宿神经网络的输入由其输入层神经元接收。在基础感知单元的路由表中配置了从源神经网络的输出层神经元到宿神经网络的输入层神经元的路由信息,从而源神经网络的输出层神经元的输出在协同计算系统中被传递给宿神经元的输入层神经元。
协同计算系统的树形结构,按照节点在树形结构中的位置,例如节点在树形结构中的深度和/或与树形结构的高度可以将节点划分为不同的层级。图10A中,展示了层级L1、L2与L3。越小的数字代表越低的层级。层级的高低反映了神经网络距离树形结构的最下层的距离远近(这里将树形结构的根节点称为树形结构的最上层)。图10A的例子中,L1层是树形结构的最下层,而L2层是中间层,L3层是树形结构的最上层(根节点)。作为举例,低层级的神经网络的输出耦合到高层级的神经网络的输入。
可以理解地,树形结构可具有不同的层级与不同的形状。在树状结构退化为仅包括1个神经网络时,是例如同类感知系统的共享神经网络。
协同计算系统的每个节点是独立的神经网络,各神经网络包含完整的输入层、中间层与输出层,并可被独立训练。同时,每个节点还具有这样的特征:1)单一节点可以接受一个或多个节点的输出,从而该一个或多个节点作为该单一节点的输入节点,该单一节点自身的输出也可作为其自身的输入;2)单一节点整体只有一个输出,但这一个输出可以作为多个节点的输入,当这个单一节点输出给多个节点时,收到信息的多个节点获得的关于这个单一节点的输出信息是相同的。
根据本申请实施例的协同计算系统的树形结构不必是数学意义上严格的树形结构,而是用于模拟智慧生物的层次化神经系统。诸如人类的神经系统包括外周神经系统与中枢神经系统,中枢神经系统又包括脑和脊髓,从而人类的神经系统呈现出类似树状结构的层次性。但神经系统的关系又是复杂的。
图10B展示了根据本申请又一实施例的协同计算系统。
图10B的协同计算系统,同图10A相比,包括更多的层级(L1、L2、L3与L4层级),而且,其L1层级的神经网络1020的输出同时提供给L2层级的2个神经网络(神经网络1022与神经网络1024)。这种连接关系同通常意义的树形结构不同。根据本申请实施例的协同计算系统,其树形结构的节点的连接关系可以是灵活多样,并根据应用的特点而设置。
返回参看图10A,图10A所展示的协同计算系统一个实例为:手掌的每个手指的三个指节分别布置三个传感器及三个小型神经网络(这三个小型神经网络属于L1级,这三个小型神经网络分别对三个指节的传感器的输出进行计算),L1级神经网络对三个指节的传感器的输出处理得到的感知结果(例如指节弯曲的角度,或者有外界物体邻近该指节)通过L2级的神经网络整合为一个手指的整体触觉感知结果,两个手指的触觉感知结果(由2对应这2个手指的两个L2级神经网络分别提供)作为一个触觉动作(例如抚摸)的感觉结果,这个结果由L3级神经网络感知得到。
续上例说明,图10B所展示的协同计算系统一个实例为:图10B中,L2级最左边节点的输出是例如食指的感知结果,L2级中间节点(神经网络1022)的输出是食指与大拇指中间部分的感知结果,L2级右边的节点(1024)的输出是拇指的感觉结果。由于食指和拇指在抓握过程中紧密耦合,食指与拇指中间区域的结果既需要与食指进行联合信息计算,也需要与拇指指节的信息进行联合计算,并进而获取食指、拇指的联合抓取动作的触觉感知识别。
图11A给出了协同计算系统中节点间跨层级连接的示例。图11B给出了协同计算系统中节点间平级连接的示例。
图11A的协同计算系统中,L1层的最左侧节点的输出被跨层级直接提供给L3层级的最左侧节点,而L1层的节点(神经网络1120)的输出被跨层级直接提供给L4层级的节点(神经网络1140)。L3层级的该最左侧节点还接收来自L2层级的两个节点的输出,L4层级的根节点(神经网络1120)还接收来自L3层级的两个节点的输出。
图11B的协同计算系统中,L2层级的中间两个节点之间存在平级连接,其左侧的节点的输出提供给右侧节点;在L3层级的两个节点之间存在平级连接,其左侧的节点的输出提供给右侧节点。
在本申请的说明书的上下文中,将具有平级连接、跨级连接、反层级连接(从高层级到低层级的连接)以及从源节点(源神经网络)到宿节点(宿神经网络)的一对多连接的节点层级结构,都称为树形结构。
图12给出了协同计算系统中节点间平级与跨级连接关系所适用的应用场景。
作为一个例子,也参看图12,其中各框代表了协同计算系统的树形结构的节点,左手掌、右手掌指的是协同计算系统树状结构的叶子节点(最底层节点)所代表的独立完整神经网络输出表示的触觉意义,越靠近协同计算系统根节点(最上层节点)的神经网络的计算结果表示的身体部位的范围越大,例如左手臂包含左手掌,左胳膊包含左手臂进而包括以及左手掌,包含左肩的左边部位包括左胳膊(进而包括左手臂,而左手臂包括左手掌),依次类推;根节点神经网络的输出表示双臂的触觉感知结果。
在一些动作中,左手会触摸到自身(例如手指触摸手掌),或摸右手,或左手拿个锤子对右手掌、右手臂等部位进行锤击(例如养生锤),会导致左手和右手触觉信息的融合(由树形结构的节点间的平级连接来反应这种信息传递关系)、或左手和右手臂的触觉信息融合(由树形结构的节点间的跨级连接来反应这种信息传递关系)。或左手手持养生锤,锤击右手臂,锤击右胳膊等部位;此时右手其它部位可以有触觉信息输入,也可以没有触觉信息输入;左手的触感信息作为相应的输入信息给同级节点、或高一级节点的神经网络,这两个信息的联合可以更好的判断锤击引起的触觉信息;同时左手也可以抓握左肩,或持锤敲击左肩,这种节点的跨级连接,可以更好的表征触觉信息发生的偶然性和关联性。平级连接、跨级连接并不局限于图12的实例。
图13A展示了协同计算系统中反层级连接关系示例。图13B与图13C给出了协同计算系统中节点间反层级连接关系所适用的应用场景。
在该示例中,协同计算系统中不仅具有跨级向上的节点间连接关系,而且具有跨级向下输出计算结果的节点间连接关系。例如,图13A的例子中,L3层级的最左侧节点的输出被提供给L1层级的最左侧节点,而L4层级的根节点的输出被提供给L2层级最右侧的节点。
如图13B左图所示,在机器手手部应用中,在t1时刻手部对应抓握小球的动作,此时,如图13C的上半部分所示,食指、中指、掌心等及整个手掌对应的触觉信息处理神经网络均有信息的输入和输出,手掌的神经网络(例如,图13A的根节点)给出判断此时手部握住的是球。
下一时刻t2,如图13B右图所示,手部动作变为指尖顶起旋转的小球。此时,如图13C下半部分所示,对应的神经网络仅食指处的节点(神经网络)具有信息输入和输出,由于食指指尖对应的神经网络只能判断出指尖旋转的感觉,但不能判断出旋转的是什么,但t1时刻神经网络的结果(根节点)作为t1时刻食指处的神经网络(根节点的下级节点)的输入信息,两个时刻的信息联合可以判断出来食指指尖旋转的是球体。
通过上面的多个例子可以理解,在分布式的感知应用中,待感知对象与应用场景具有多样性。根据本申请实施例的协同计算系统,除了组合多个独立且完整的神经网络,进一步通过对多样性的神经网络系统的结构的支持,来适用于多样性的感知应用。根据本申请实施例的协同计算系统,还在于提供构建多样性的神经网络系统的能力。从而在不同的应用场景,或者相同应用场景中而待感知对象不同或变化时,依然能有效实现对待感知对象的感知。
构建协同计算系统还需要为其提供硬件资源。根据本申请的实施例,基础感知单元为协同计算系统提供计算资源。为协同计算系统提供计算资源的基础感知单元,不受协同计算系统所处理的待感知事件的位置限制,也不受采集待感知事件相关数据的传感器所属的基础感知单元的限制,而可以利用用于感知的分布式系统中的任意基础感知单元的资源。然而,可以理解地,用邻近待感知事件的基础感知单元为协同计算系统提供计算资源,将有助于降低神经网络的神经元的输入/输出数据在网络上传输的距离,并降低对网络带宽和能量的消耗,也有助于降低数据传输的延时。
图14展示了根据本申请实施例的协同计算系统中节点的神经网络所需计算资源的构成。
协同计算系统中各个节点的神经网络所需的计算资源(神经元)均来自基础感知单元的神经单元。协同计算系统中一个节点的神经网络的神经元可来自一个或多个基础感知单元的神经单元,一个基础感知单元的神经单元的神经元可同时分配给协同计算系统中的一个或多个节点。这种分配一般采取就近的原则分配:即协同计算系统中节点的神经元通常来源于邻近该节点所感知的待感知对象的空间位置或待感知事件的发生地的一个或多个基础感知单元。这个发生地由一个或多个基础感知单元根据感知事件定义。进一步地,还充分利用分布式系统中的闲置的计算资源(空闲的基础感知单元、基础感知单元中神经单元中未被分配使用的神经元等),并避开忙碌状态的计算资源(神经单元中已被分配来构建神经网络的神经元)。
为感知待感知对象,基础感知单元的传感器采集因待感知对象所引起的信号或信号变化,并将采集的传感数据直接或经处理后提供给神经网络。该传感器所属的基础感知单元同为处理该待感知对象的协同计算系统提供神经元的基础感知单元可以是相同或不同的基础感知单元。由例如基础感知单元的计算单元处理传感数据。
参看图14,协同计算系统包括三个层级(L1、L2与L3)的神经网络,4个基础感知单元(1410、1420、1430与1440)的神经单元为该协同计算系统的神经网络提供计算资源(神经元)。在根据本申请实施例的用于感知的分布式系统中,基础感知单元通过点对点接口或共享介质网络(例如,以太网或无线网络)互连,从而任意基础感知单元可为任意神经网络提供神经元。作为举例,神经单元1410为神经网络1412、1414与1416提供神经元。在图14中,基础感知单元到神经网络之间的虚线表示基础感知单元为该神经网络提供神经元,而神经网络之间的带箭头实线表示神经网络之间的数据传输关系,箭头的前端指示宿神经网络而尾端指示源神经网络。
继续参看图14,神经单元1420为神经网络1412、1422与1424提供神经元;神经单元1430为神经网络1414、1432与1434提供神经元;神经单元1440为神经网络1434、1442与1444提供神经元。还注意到构成同一神经网络的神经元可由一个、两个或其他数量的基础感知单元的神经单元提供。
基础感知单元还为神经元之间的数据传输提供路由,以在网络中将来自一个基础感知单元的神经单元的神经元路由到该神经单元的其他神经元或其他基础感知单元的神经单元的神经元。现有技术中已经存在在神经元之间路由所传输数据的方式。
图15展示了根据本申请又一实施例的协同计算系统中节点的神经网络所需计算资源由基础感知单元中的共享神经单元构成的情形。
在图15的例子中,同图14相比,基础感知单元包括本地神经单元与共享神经单元以及控制单元。基础感知单元的本地神经单元用于为本地神经网络提供计算资源(神经元)。也参看本申请的图4A到图9,结合同类感知系统的实施例,描述了基础感知单元提供的本地神经网络。
在图15的例子中,这些本地神经网络构成协同计算系统的L0层级。L0层级节点的输出信息作为协同计算系统中L1级或其他层级的节点的输入信息或部分输入信息。依次类推,协同计算系统的神经网络之间的连接关系或数据传递关系定义了协同计算系统的层级,包括L1、L2、L3……LN级等。通常情况下,更低层级的神经网络的输出数据被作为更高层级的神经网络的输入数据。如前面已经介绍地,在协同计算系统中,也存在逆层级连接、平级连接、跨级连接等关系。
在可选的例子中,同类感知系统的共享神经网络作为协同计算系统的L0层级,而同类感知系统的本地神经网络不作为协同计算系统的一部分。
继续参看图15,协同计算系统中L1、L2与L3级节点的神经网络所需的计算资源(神经元)均来自基础感知单元中的共享神经单元。这也体现了区分本地神经单元与共享神经单元的目的。本地神经单元专用于为本地神经网络提供神经元,从而本地神经网络的神经元之间的数据传输仅限于其所属基础感知单元内部,以减少泄露到分布式系统的网络中的数据量,减少对网络带宽的占用,也为本地神经网络预留的足够的计算资源,防止因共享神经网络或协同计算系统所需的资源而导致基础感知单元内部的基本处理无法被完成的情况。而用专门的共享神经单元为共享神经网络/协同计算系统提供资源,也简化了协同计算系统/同类感知系统的构建中对所使用资源的描述的复杂度。
此外,协同计算系统中L0级、L1级或任意级节点的输出信息均可作为基础感知单元中控制单元的输入信息,用于控制单元进行必要的计算操作。
图15的例子中,基础感知单元的控制单元驱动基础感知单元的外部的执行机构,以产生对外部世界或待感知对象的物理作用,例如,弯曲某个手指。从而本地神经网络与控制单元的组合可模拟一些低层级的神经反射活动,例如,手指接触到火焰或被针扎而产生的下意识的躲避动作。参看图15,左下角的本地神经网络的输出还耦合到其所属基础感知单元的控制单元,从而该本地神经网络感知的结果可被直接提供给该控制单元,由控制单元驱动执行机构产生动作。将本地神经网络的输出与控制单元在基础感知单元内部直接耦合,最大程度地降低了控制信号或控制命令传输到执行机构延迟,有助于加快基于感知结果的反应或应对速度。
图16展示了根据本申请实施例的协同计算系统运行时的一个实例。
待感知对象存在多样性,且出现的时间也不确定。因而在用于感知的分布式系统中,不是任何时间、任意基础感知单元的传感器都能采集到有意义的信号。在图16的实例中,作为举例,待感知对象出现在邻近最右侧基础感知单元的空间区域,并且仅由阴影标记的本地神经网络1610与神经网络(1620与1630)处于工作状态。进一步地,本地神经网络(L0级节点)首先处于工作状态,其运行结果作为事件信息激发或使能神经网络1620(L1级节点)的工作、并进一步激发神经网络(1630)L2级节点的工作。运行的节点中神经网络所需的计算资源来自基础感知单元中的神经单元。进一步地,未处于工作状态的神经网络或本地神经网络可处于休眠状态以降低整体的功耗。依然进一步地,未处于工作状态的神经网络或本地神经网络的计算资源(神经元)可以被释放或再被分配,这些计算资源可被用于其他场合。例如,未被利用的共享神经单元的神经元被用于构建其他协同计算系统。依然可以理解地,在图16的例子中,神经网络(1620、1630与1640)构成了一个协同计算系统,而被激活或使能的神经网络(1620与1630)也构成了一个协同计算系统,只要其能有效完成对待感知对象的感知。依然可选地,尝试激活神经网络(1620与1630)构成的协同计算系统来处理待感知对象,若无法完成感知则再尝试激活神经网络(1620、1630与1640)构成的协同计算系统。
图17A、图17B分别给出了协同计算系统、传感器与待感知对象位置关系的工作实例。
应用中,多个基础感知单元构成基础感知单元阵列。图17A的例子中,基础感知单元包括共享神经单元与传感器。待感知对象出现在图17A的基础感知单元阵列的右侧。基础感知单元1710与1720的一个或多个传感器感知到其空间位置附近的待感知对象引起的传感数据,这些传感数据作为协同计算系统中一个节点(神经网络1750)的输入信息,且构建该神经网络1750的计算资源由基础感知单元1710、1720与1730的共享神经单元提供。在基础感知单元阵列中,基础感知单元1710、1720与1730在空间位置上是相邻的。由基础感知单元1710、1720与1730来为神经网络1750提供计算资源,来处理图17A的例子中的待感知对象是有利的,因为该待感知对象的传感数据来自基础感知单元1710与1720的传感器,这样构建的协同计算系统,使得传感器产生的数据能被更快(经过更少的数字路由器或网络传输距离)提供给神经网络的计算资源。而且,产生传感数据的传感器所属的基础感知单元(1710与1720)与为神经网络1750提供计算资源的基础感知单元(1710、1720与1730)不必完全相同,甚至可以完全不同。从而在距离传感器较近的共享神经单元的计算资源不足时,也能找到由一个或多个神经网络构成的协同计算系统来完成对待感知对象的处理。
图17B给出的是多个传感器获得的待感知对象的传感数据传递到更远一点处的基础感知单元中共享神经单元构建的协同计算系统节点中作为输入信息。
参看图17B,基础感知单元1710与1720的传感器针对待感知对象产生传感数据。传感数据被提供给神经网络1755处理。神经网络1755的神经元由基础感知单元1715、1730与1725提供。基础感知单元1715、1730与1725的物理位置同待感知对象相对较远(同基础感知单元1710与1720到待感知对象的距离相比)。虽然,较远的距离导致了更长的数据传输时间与功耗,但在一些情况下,这是有利的,例如,待感知对象较快速地从邻近基础感知单元1715的位置移动到邻近基础感知单元1710的位置。由于重新构建神经网络需要额外的时间,因而用已经存在的神经网络1755有利于迅速对移动后的待感知对象作出识别。
图18A和图18B展示了待感知对象运动时协同计算系统的动态构建的示意图。
在图18A中,基础感知单元包括本地神经单元、共享神经单元、控制单元与传感器。本地神经单元的神经元构成本地神经网络(未示出)。传感器采集的传感数据被提供给本地神经网络,本地神经网络的输出被提供给协同计算系统。为了简单的目的,图18A中,仅示出了包括神经网络1850的协同计算系统。
基础感知单元1810与1820的传感器采集待感知对象1800的传感数据。由基础感知单元1810与1820的共享神经单元为神经网络1850提供神经元。基础感知单元1810与1820的空间位置在待感知对象1800附近。
作为举例,神经网络1850基于待感知对象1800的物理特征(例如,运动速度与方向),给出待感知对象1800运动路径的预测;预测出待感知对象运动1800的下一个位置在图18A中由待感知对象1800’所指示的位置。
继续参看图18B,对于待感知对象1800’,如果还用前面时刻由图18A所展示的基础感知单元1810与1820的共享神经单元来构建的协同计算系统的神经网络进行处理,那么新位置处关于待感知对象1800’的传感数据(由基础感知单元1815与1825的传感器采集)需要传输到之前的位置(基础感知单元1810与1820的共享神经单元提供的神经元),会造成额外的数据通信,占用额外的网络带宽资源并增加功耗与数据传输延迟。
而根据本申请的实施例,根据图18A所示的对待感知对象1800’运动位置预测或基础感知单元(1815与1825)对待感知对象事件1800’的感知,在待感知对象事件1800’新位置处利用该新位置附近的基础感知单元(1815、1825与1818)的共享神经单元重新构建协同计算系统中的计算节点(神经网络1855)。从而基础感知单元(1815与1825)的传输器采集的传感数据经其所属的基础感知单元的本地神经网络处理后提供给神经网络1855,可使传感数据就近输入处理待感知对象1800’的神经网络1855中,避免了额外的基础感知单元间的数据传输,从而降低协同计算系统的通信能耗和通信量。
根据本申请的实施例,即使属于协同计算系统的一部分,协同计算系统中的一个或多个神经网络能够独立工作来感知待感知对象或处理对其的输入,而不依赖于协同计算系统中的所有神经网络共同工作。从而协同计算系统中的一个或多个神经网络可被根据需要而使能或创建。被使能或创建的神经网络是例如协同计算系统的部分而非整体。在一个例子中,被使能或创建的是单一的神经网络。可选地,在分布式系统中,多个协同计算系统(每个协同计算系统为组织为树形结构的多个神经网络)同时存在,而一个或一些协同计算系统被使用,而其他协同计算系统则处于休眠状态。
根据本申请的实施例,使能协同计算系统或者使能协同计算系统的神经网络,指的是协同计算系统中的某个特定节点(神经网络)中的各神经元已经确定,且已分配给节点,各神经元的权重、神经元之间的连接关系以及可选的节点之间的连接关系已配置完毕,但当前处于诸如休眠的低功耗状态,未在进行计算或处理,或者作为处于就绪状态但尚未被调度执行(对于例如由进程或线程实现的神经元),通过使能操作,使协同计算系统整体或部分节点被唤醒、进入工作状态或被调度执行;或者由于协同计算系统中的事件信息和/或数据流传递到该节点的输入端,该协同计算系统整体或部分节点被隐式地使能,使得该构建好的神经网络进入工作状态或计算状态。
可选地,根据事件来创建一个或多个神经网络,从而使得这些神经网络来处理事件或待感知对象。创建协同计算系统或者创建协同计算系统的神经网络,指协同计算系统尚未被配置,其基础感知单元的神经元尚未被分配给该协同计算系统,为了利用协同计算系统进行事件或数据处理,分配所需要的神经元、设置各神经元的初始权重与连接关系,设置神经网络的节点间的连接关系,并使其进入工作状态。
为了描述的清楚与简便,将引起同类感知系统/协同计算系统的处理的对象或信息称为事件。事件包括例如,基础感知单元中传感器的传感数据输出事件、神经网络的输出事件、已经发生的需要被感知的事件、尚未发生的需要被感知的事件等。尚未发生的需要被感知的事件包括被预测将发生的需要被感知的事件。同类感知系统/协同计算系统处理的事件不同于计算机系统中的事件,而是能够且需要被同类感知系统/协同计算系统处理的事件。
下面提供多种适合被同类感知系统/协同计算系统处理的事件的例子。在电子地理皮肤应用中,一个或多个基础感知单元及其电容传感器构成一块标准的电子地理皮肤。多个电子地理皮肤铺设在道路或房间上,当人、车辆、动物或物品等的存在及运动发生时,例如基础感知单元中的电容传感器感知存在或运动的人或物时,会产生数据采集、处理及发送动作,从传感器到神经网络的数据发送即构成传感器的传感数据输出事件;传感器输出的传感数据经基础感知单元的计算单元、本地神经网络或同类感知系统的共享神经网络处理后会在协同计算系统中的神经网络(节点)之间流动。一个神经网络(节点)处理后在其输出层产生信号,该信号向该节点(神经网络)所连接的下一个节点传输并引起该下一个节点(神经网络)的计算动作,其中节点向另一节点提供输出数据构成了神经网络的输出事件。尚未发生、需要被感知的事件的例子如人或车在电子地理皮肤上的运动时的情形。运动的人或车,当前尚未到达、但后一时刻将到达电子地理皮肤的某位置,在该位置虽然还没有事件的发生,但因为预测到该位置将发生人或物的存在,因而是被预测将发生的需要被感知的事件。协同计算系统例如会在预测到的位置处使能或创建对应的神经网络。
传感器基于自身的工作原理产生传感数据。而传感器并不知晓待感知事件是否存在。在实际环境中,传感器可能被干扰信号影响而生成了传感数据。因而需要做相应的判断来确认“干扰信号”是否是“待感知事件”。例如,通过对传感器提供的感知数据做滤波来滤除干扰信号或无关信息。
根据本申请的实施例,传感器的传感数据输出给基础感知单元的计算单元。计算单元对传感数据做滤波,根据应用已知的需求、信号是否符合任务特征等来确定是否要将传感数据提供给神经网络。作为又一个例子,计算单元实施常规的滤波或不实施滤波,而由基础感知单元的本地神经网络来处理过滤干扰信号的任务。对于干扰信号或者不需要处理的信号,本地神经网络对其不产生对后级神经网络(例如共享神经网络)的输出。在又一个例子中,计算单元实施滤波处理后对输入信号依然产生输出,而本地神经网络也产生输出,这样的输出才被提供给后级神经网络。在另一个例子中神经网络内部还判断当前是否是有效输入,在确定输入有效后,神经网络再正常运行。可以理解的,对于脉冲神经网络,其存在激活阈值,并且前次输入可能对脉冲神经网络的激活产生累积效果,或者不产生效果(“忘记/忽略”机制),这也能实现对干扰信号/无关信号的过滤。
通过过滤传感器的感知数据,实现了对待感知事件的筛选,一些不必处理的事件不会引起部分或全部神经网络的工作,从而降低了系统能耗与开销,提高了资源利用率。
根据本申请中的实施例,可被创建的协同计算系统有多种,以适用于感知或处理多种事件。例如,基础感知单元中预先存储了一个或多个神经网络的配置信息。在响应于事件而创建协同计算系统时,根据事件的特征从基础感知单元中预先存储的一个或多个神经网络(协同计算系统)的配置信息(其神经元权重,神经元之间的连接关系等描述信息已存在,但这些预先存储的多个神经网络的完成的功能可以不同)中选取一个适用于已发生事件的处理的协同计算系统的配置信息,并在控制单元的作用下,创建对应的协同计算系统(或者一个或多个神经网络)。用所创建的神经网络对传入该神经网络的事件进行处理。可选地或进一步地,如果在协同计算系统中或基础感知单元中的监督信息反馈出已创建的神经网络不适合事件的处理,那么,基础感知单元中的控制单元,可再从预先存储的神经网络配置信息中选取其它的配置信息,并创建相应的协同计算系统来处理事件。可选地,事件的特征同协同计算系统整体对应,或者对应协同计算系统的一个或多个神经网络。
根据本申请的实施例,还依据事件的特征,确定为要创建的神经网络提供资源(例如神经元)的基础感知单元。事件的特征包括事件的空间位置、事件的发生时间、事件发生同其他事件的间隔等。
在多种应用场景中,基础感知单元常常分布式的布置在物理世界当中,如道路、家庭、楼宇、家电表面等等场合。在这些场景中,不同位置处的基础感知单元在时间序列上会感受到多种多样的事件,对应的协同计算系统会对基础感知单元感受到的事件进行处理。协同计算系统作为一个逻辑信息处理架构需要相应地利用基础感知单元的计算资源进行创建或使能。需要避免对事件的处理的神经网络的计算资源远离事件的发生位置,因为计算资源远离事件的发生位置会造成基础感知单元之间或协同计算系统的物理实现上需要大量、远距离信息通信,导致信息处理滞后、信号干扰增大等问题。
根据本申请的实施例,采用基于事件地理位置邻近的方法分配协同计算系统所需的基础感知单元的计算资源(神经元)。如某基础感知单元所在位置处发生待感知事件,在该基础感知单元地理位置邻近寻找及分配处理该待感知事件的神经网络的计算资源。再如协同计算系统中某一节点的神经网络的计算资源(基础感知单元)位置已配置完毕,那么该节点(作为源节点)指向节点(作为宿节点)的神经网络所需的计算资源(基础感知单元)采取在该节点计算资源位置邻近处寻找及分配的配置策略。计算资源的配置策略还考虑事件的发生时间,或事件发生同其他事件发生的间隔等因素,来选择基础感知单元。
对于多个事件发生的时间、空间位置邻近的情形,本申请的实施例针对两种情况采用多种方法解决计算资源分配问题。1)各个事件对应的基础感知单元的传感器互不耦合感应情况下,对各个事件处理的协同计算系统或协同计算系统的某个或某些节点(神经网络)的计算资源分配采用邻近且不冲突原则分配,如3个事件的时空位置邻近,那么各个事件所需的计算资源从其发生地到稍微更远地方的基础感知单元中进行选取和分配;2)各个事件对应的基础感知单元的传感器存在耦合感应的情况下,采用事件融合的方法,即将被各个事件所激发的所有的基础感知单元的传感器输出的传输数据作为一个更大规模的神经网络的输入信息,该更大规模的神经网络的计算资源在各个事件邻近位置进行寻找和配置。对于持续发生的事件及运动事件,计算资源的分配和调度方法依据基础感知单元及协同计算系统的能力进行资源分配,例如基础感知单元和协同计算系统的处理能力为10Hz/次,那么对持续发生的事件,其计算资源配置频率需低于10Hz/次,以保证所有事件能被正确的处理。
时间邻近的事件存在资源冲突的可能,在有两个时间邻近的事件发生时,对基础感知单元的选择策略产生影响。同一空间内,存在多个时间邻近事件的情况下,处理各事件的协同计算系统可能存在基础感知单元的冲突需要解决,例如,按先来先服务、优先级、加权优先级等策略选择基础感知单元。而事件本身的持续时间,事件之间间隔的时间,也影响对基础感知单元的选择。
对于多个事件发生的时间、空间分离的情形,例如协同计算系统中在货架类物品的存在性的监测中的应用,货架的每个格子下面布置一个或几个基础感知单元,货架的每个格子对应一个同级别的协同计算系统的神经网络(树形结构的节点)。这些同级别的神经网络的每个均用于判断自身对应货架格子是否摆放有货物或摆放的是什么货物,但这些同级别的节点的计算结果之间没有互相传递关系,这种关系对应于货架格子之间没有物理耦合关系,各节点的神经网络彼此独立;进一步的,还可以用更高级别的协同计算系统的神经网络接收上述一部分节点或全部节点的神经网络的处理结果的输出,给出相应货架区域内货品是否充足、匮乏或摆放是否合理灯的判断。对于这种由基础感知单元分布式布置的应用,其上发生的一个或多个时空可分离的事件而言,这种处理方法是相似的。
前面提供的一个或多个实施例中,协同计算系统的神经元来自两个或更多的基础感知单元。然而,单一的基础感知单元提供的多个神经元,也可被组织为一个或多个神经网络,并形成协同计算系统。
图19A和图19B展示了由单一的基础感知单元提供计算资源所构建的协同计算系统的示意图。
在图19A中,由单一的基础感知单元构建协同计算系统。图19A的基础感知单元包括单一的神经单元与例如两个传感器。可选地,基础感知单元包括其他数量的传感器。传感器的输出数据是由其传感器感受到待感知对象或事件后自发输出的数据。基础感知单元的计算单元(未示出)用于对这些传感器的传感数据进行处理。可选地,计算单元对传感器的传感数据的处理有两方面目的。其一在于将传感数据提供给神经网络进行后续处理;其二在于提供给控制单元来创建或使能处理传感数据的神经网络。对于第二个目的,作为举例,计算单元对传感数据进行判别,判别的结果传递给该基础感知单元的控制单元(未示出),控制单元根据判别结果选取适合对待感知对象或事件的处理的一个或多个神经网络(多个神经网络的配置信息预存在基础感知单元中),以及创建或使能神经网络。构建或使能后的神经网络可接收传感器数据的输出并给出相应的处理结果。在图19A的示例中,利用该基础感知单元的神经单元提供的神经元构建了3个神经网络来处理传感器的输出。所构建的3个神经网络形成树形结构,两个传感器的输出分别被提供到树形结构的2个叶节点(下层神经网络),两个叶节点的输出又被提供到树形结构的根节点。由这3个神经网络形成的该树形结构也构成了协同计算系统。
由单一的基础感知单元构建协同计算系统具有易于部署,硬件资源占用少的优势。对于一些待感知对象或事件相对简单的场景,适合于由单一的基础感知单元构建协同计算系统,例如,识别商品货架的指定位置的商品是否存在(被取走)。并且,由单一的基础感知单元构建协同计算系统无需提供基础感知单元之间的互连,也降低了部署成本。甚至在基础感知单元中无需集成具有通信功能的部件,进一步降低了基础感知单元的硬件成本。
图19B的基础感知单元包括本地神经单元、共享神经单元与例如两个传感器。
本地神经单元和共享神经单元是两种计算资源。作为举例,本地神经网络提供的神经元用于构建神经网络(1910、1912),共享神经单元提供的神经元用于构建神经网络(1920、1922与1930)。可选地,由于图19B的例子中,仅包括单一的基础感知单元,从而可以无需区分本地神经网络、共享神经网络或其他神经网络,因为这些神经网络均是由该同一个基础感知单元提供的神经元构建的。区分本地神经网络与共享神经网络,得以用本申请说明书中有关本地神经网络与共享神经网络的例子来说明图19B的例子的实现方式。依然可选地,虽然仅有单一的基础感知单元,其传感器、本地神经网络(1910、1912)与神经网络(1922)构成了“类”同类感知系统,而神经网络(1920、1922与1930)也形成了树形结构,并构成了协同计算系统。
继续参看图19B,该基础感知单元的一个或多个传感器输出传感数据。这些传感数据是由其传感器感受到待感知对象的事件后自发输出的数据。基础感知单元的计算单元对这些传感器的传感数据进行初步处理。基础感知单元的本地神经单元用来构建神经网络(1910与1912),其共享神经单元被用来构建协同计算系统更高层级的神经网络(1920、1922与1924)。传感器输出传感数据后,其数据分别流经神经网络(1910与1912)进行处理。神经网络(1910与1912)的计算结果又流向由基础感知单元共享神经单元构成的协同计算系统高级别的神经网络节点(1920、1922与1924)进行计算。
基础感知单元覆盖的空间范围是有限的,同类感知系统通过整合多个基础感知单元来覆盖更大的空间范围。但是,为了便于标准化、大规模生产和部署,同类感知系统的规模也不适于很大,这导致其覆盖的空间范围依然有限。
对于一个或几个基础感知单元构成的同类感知系统不能覆盖大面积感知区域的问题,根据本申请的实施例,通过将标准化的基础感知单元组成依然是标准化并可大规模生产与部署的协同计算系统(作为例如预制件),并采用更多数量的协同计算系统在大的空间区域内进行分布式布置,构成用于感知的分布式系统。同类感知系统就像铺设房间的地板砖一样,依靠数量的增加解决单个传感器或单个基础感知单元的感知区域无法覆盖大区域的问题。同时,感知区域的增大也带来对多个同类感知系统各自的感知结果的综合处理问题,以及基础感知单元/同类感知系统的计算资源合理分配及如何应用的问题。
根据本申请的实施例,通过一个或多个树形结构的神经网络整合或扩展多个同类感知系统的处理能力。提供神经网络系统,神经网络系统包括例如多个同类感知系统,这多个同类感知系统各自的共享神经网络的输出被耦合到更高层级的树形结构的神经网络。从而通过增加同类感知系统的数量来覆盖更大的空间范围,而更高层级的树形结构的神经网络得以综合处理从更大空间范围所获取的数据。
用于感知的分布式系统上发生的事件多种多样、并且异步和同步事件混合存在,事件本身也具有以分布式系统中基础感知单元为地理坐标的时空特征,需要依据分布式系统上事件的特征进行计算资源的合理分配。神经网络系统还解决了上述问题的一个或多个。对事件发生地时空局部区域或在对应的基础感知单元局部区域利用邻近的基础感知单元的计算资源创建或使能适用于局部事件感知、计算的完整的、独立的神经网络,并以同样的方式,创建或使能高一层级的含有完整输入层、中间层、输出层的完整、独立神经网络,这个高一级的神经网络对多个局部区域的神经网络的计算结果进行综合,用于完成处理更大区域内事件集合的任务。
并且该高一级神经网络的计算资源来自距离低一级神经网络计算资源的邻近、空闲区域(指可用的基础感知单元的计算资源)。以此类推,构成以基础感知单元为硬件资源,以完整的具有输入层、中间层、输出层的神经网络为节点的树形结构的计算系统,称之为神经网络系统。该神经网络系统的构成策略包括例如为节点分配计算资源时,选择邻近待感知事件位置的基础感知单元,选择邻近提供了待感知事件的传感数据的传感器所在基础感知单元位置的基础感知单元,或使得为节点分配的计算资源邻近以该节点作为宿节点的对应的源节点神经网络的输出层神经元的计算资源所在位置。这些策略具有降低分布式系统中网络通信量的作用,同时多个低一级节点到高一级节点的信息综合方式具有降低分布式系统中事件处理神经网络的连接数量的作用。同时该神经网络系统中的特征还在于各级节点的神经网络是独立的,可根据对象、任务或事件等特征创建或使能。可选地还依据其他神经网络(例如为其提供输入的神经网络)的输出结果而选择并创建或使能一个或多个神经网络。
图20A展示了根据本申请实施例的神经网络系统的示意图。
图20A中的神经网络系统包括两个同类感知系统,每个同类感知系统包括两个基础感知单元、两个本地神经网络与单一的共享神经网络。每个同类感知系统中的每个基础感知单元的本地神经单元用于构建本地神经网络,其共享神经单元被用来构建同类感知系统的共享神经网络。每个同类感知系统的共享神经单元的神经元还被用来构建神经网络系统中较高层级的神经网络。图20A中的神经网络系统包括两个同类感知系统与3个较高层级的神经网络。同类感知系统的本地神经网络作为L0层级的神经网络,共享神经网络作为L1层级的神经网络。这3个较高层级的神经网络(处于L2与L3层级的神经网络)各自是独立、完整的神经网络,并形成树形结构,接收共享神经网络的输出并进行处理。
神经网络系统工作时,根据事件特征可同步或异步工作,每个神经网络处理结果信息的流向如图中箭头所示。
可以理解地,虽然图20A中展示的神经网络系统包括2个同类感知系统与3个神经网络形成的树形结构,但在神经网络系统的多种其他实施例中,可包括其他数量的多个同类感知系统,以覆盖几乎任意的空间区域,还可包括任意规模节点、层级与结构的树形结构,来提供不同规模的神经网络系统以及不同的处理能力。可选地,树形结构的多个神经网络的连接关系无需是严格的树,其节点之间的连接关系,可以存在同层级连接、跨层级连接和/或逆层级连接。
图20A的例子中还标注了神经网络的层级。由多个神经网络所形成的树形结构具有层级。图20A中,各基础感知单元的本地神经网络处于L0层,同类感知系统的共享神经网络处于L1层,接收共享神经网络的输出的神经网络处于L2层,而接收L2层神经网络的输出的神经网络处于L3层。将字母L后跟随的更大的数字所代表的层级称为更高的层级。
根据本申请实施例的神经网络系统适用于处理任务。任务包括多个分任务。神经网络系统中的多个神经网络(包括共享神经网络与本地神经网络)的每个分别处理所述多个分任务之一。在本申请上下文中,分任务不同于子任务。子任务暗示了其同任务之间的逻辑关联,而分任务可以包括其同任务逻辑依赖不强的情形。分任务的含义指每个分任务是任务的充分条件而非必要条件,即任务的实现并不要求每个分任务的实现或动作。
在神经网络系统中,每个神经网络通过独立的训练而能完成一个特定(分)任务。由于分任务之间可以不具有依赖性,从而各节点的(分)任务并不必须实现或动作。例如,某高层级节点的待处理的(分)任务存在时,直接为该高层级节点神经网络提供输入的相对低层级节点的神经网络并不必须实现、动作或提供结果。例如:以对应家庭房间的每个房间的地板砖的电子地理皮肤为例,为监测房屋内人员存在情况,每个地板砖电子皮肤有一个基础感知单元并对应一个本地神经网络,每个房间由若干地板砖组成,由例如3x3块地板砖的基础感知单元形成同类感知系统。假设某室内有10个同类感知系统,其10个共享神经网络与1个更高层级的神经网络组成树形结构(例如,构成一个协同计算系统),该更高层级的神经网络作为节点对房间内所有地板砖的测量结果进行综合。房间的人员存在情况可由该更高层级神经网络描述。当该房间内只有少数地板砖的基础感知单元检测到人员存在时,那么其余同级的地板砖的基础感知单元并不需要工作,即可完成该房间内人员存在情况的监测任务。这里,每个神经网络(本地神经网络、共享神经网络与更高层级神经网络)各自处理的都是分任务。对各神经网络的训练也基于分任务的训练数据得以独立完成。以及每个地板砖对应的本地神经网络可以是相同的,从而仅对一个本地神经网络进行训练,而通过复制训练好的本地神经网络的参数来得到其他地板砖对应的本地神经网络。类似地,每个3x3块地板砖对应的同类感知系统也是相同的,从而仅需对一个共享神经网络进行训练。从而简化了训练与部署的复杂度。
同理,当家庭内所有成员均在一个房间时,其余房间内的协同计算系统和家庭整体的神经网络系统并不必须存在或工作;此外,对每个房间内人员存在情况监测的协同计算系统之间并无依赖关系,处于并列关系。显然,神经网络系统的应用并不限于电子地理皮肤应用。
图20B展示了根据本申请又一实施例的神经网络系统的示意图。
图20B中的神经网络系统包括两个同类感知系统。与图20A示例不同的是,图20B中的各个同类感知系统中的基础感知单元的共享神经单元资源被用来用于构建两个彼此独立的协同计算系统。每个协同计算系统各自利用不同的神经元资源并完成不同的任务和分任务。以上文中的例子为例,房间内地板砖电子皮肤的基础感知单元构建的神经网络系统包括两个同类感知系统与两个协同计算系统。协同计算系统之一用于房间内监测人员存在的情况,如上文所述;另一个协同计算系统用于监测家庭房间内是否发生漏水。两个协同计算系统可同时工作,也可以分时工作,也可以一个协同计算系统工作,另一个协同计算系统不工作。
在一种实施方式中,神经网络系统的各同类感知系统的输出被同时提供给两个或多个彼此独立的协同计算系统。从而两个协同计算系统利用基本相同的输入数据各自处理不同的任务或分任务。在又一种实施方式中,神经网络系统的多个同类感知系统,其中部分的输出被提供给协同计算系统之一,而同类感知系统的另一些输出被提供给另一个协同计算系统。
参看图20B,在又一个实施方式中,神经网络系统的两个同类感知系统所提供的硬件资源构建了协同计算系统2010与2012,图20B中两个同类感知系统的输出被提供给协同计算系统2010,但没有提供给协同计算系统2012。由在图20B中的神经网络系统之外(未示出)的基础感知单元或同类感知系统为协同计算系统2012提供输入数据。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
- 一种基于神经网络系统的图像处理方法及神经网络系统
- 神经网络系统和基于神经网络系统的图像人群计数方法