基于感觉运动的输入数据的推理和学习的制作方法

文档序号:17124038发布日期:2019-03-16 00:08阅读:178来源:国知局
基于感觉运动的输入数据的推理和学习的制作方法

本申请根据35u.s.c.§119(e)要求2016年5月13日提交的美国专利申请第62/335,995号的优先权,其通过引用整体并入本文中。



背景技术:

1.本公开内容的领域

本公开内容涉及对所接收到的输入数据执行推理,并且具体地涉及基于感觉运动的(sensorimotor)输入数据执行推理。

2.相关技术的描述

对象检测系统旨在找到或识别输入数据中存在的不同类型的对象。用于对象检测的输入数据可以是图像数据、视频数据、触觉数据或其他类型的传感器数据的形式。例如,对象检测系统可以识别包括在由相机捕获或由触觉传感器感测到的视觉图像中的不同对象,例如咖啡杯、门等。

常规的对象检测系统面临许多挑战。这些挑战之一是相同的对象可以以不同的位置和/或取向放置。对象的位置和/或取向与原始习得的位置和/或取向的变化可能使常规的对象检测系统将相同的对象识别为不同的对象。当使用例如机械手上的触觉传感器来识别对象时,这种问题可能更严重。诸如卷积神经网络模型(cnn)的现有的对象检测模型并不总是足以解决一个位置和/或多个位置的变化,并且即使它们确实解决了这些变化,也经常需要大量的训练数据。

此外,不管传感器的类型如何,包括对象的表示的输入数据具有将与另一对象的表示区分开的空间特征。缺乏空间上与众不同的特征可能导致对于正在被识别的对象的模糊性。常规的对象检测系统不能充分解决被识别对象的这种模糊性。



技术实现要素:

实施方式涉及通过生成位置和特征对的输入表示以及生成指示可能与位置和特征对相关联的候选的输出表示来执行推理。第一输入处理器生成第一输入表示,该第一输入表示指示正在被检测的第一位置和第一位置处的第一特征的第一对的可能性。第一输出处理器确定与第一输入表示对应的第一输出表示。第一输出表示指示可能与第一对相关联的一个或更多个候选。第一输入处理器生成第二输入表示,该第二输入表示指示在生成第一输入表示之后正在被检测的第二位置和第二位置处的第二对的第二特征的可能性。第一输出处理器确定与第一输入表示和第二输入表示对应的第二输出表示。第二输出表示指示可能与第一对和第二对相关联的一个或更多个候选。

在一个实施方式中,基于第一输出表示在第一输出处理器中生成表示对第二输入表示的预测的反馈信号。进一步基于反馈信号在第一输入处理器中生成第二输入表示。

在一个实施方式中,在训练期间在第一输出处理器中将与原因对应的输出表示保持激活。在第一输入处理器中生成与原因相关联的、针对位置和相应特征的对的训练输入表示,用于所述训练。训练输入表示与对应于原因的输出表示相关联。

在一个实施方式中,第一输入表示是第一输入处理器中的输入单元的第一子集的激活状态,以及第二输入表示是第一输入处理器中的输入单元的第二子集的激活状态。

在一个实施方式中,第一位置是可能与第一对相关联的一个或更多个候选中的多个潜在位置中的一个潜在位置。

在一个实施方式中,第一输入表示指示第一特征和潜在位置中的每一个潜在位置的对的并集的激活。

在一个实施方式中,第一输出表示还指示可能与第一特征和潜在位置中的每一个潜在位置的对的并集相关联的一个或更多个候选。

在一个实施方式中,第二位置是通过将多个潜在位置中的每一个潜在位置移位预定距离而生成的另外多个潜在位置中的一个潜在位置。

在一个实施方式中,第二输入表示指示第二特征和另外多个潜在位置中的一个或更多个潜在位置的对的并集的激活,所述另外多个潜在位置与由第一输出表示指示的一个或更多个候选相关联。

在一个实施方式中,响应于第一输入处理器中的输入单元的第二子集接收到表示第二位置的位置信号以及与第二特征相关联的激活信号,来激活所述输入单元的第二子集。

在一个实施方式中,进一步基于与第一输出表示相关联的反馈信号来激活第一输入处理器中的输入单元的第二子集。

在一个实施方式中,由第一输出处理器中的输出单元的子集的相应激活状态表示所述一个或更多个候选中的每一个候选,并且反馈信号指示输出单元的子集的激活状态。

在一个实施方式中,第二输出表示是第一输出处理器中的输出单元的子集的激活状态。

在一个实施方式中,响应于第一输出处理器中的输出单元的子集接收到与第二输入表示对应的前馈信号,来激活输出单元的子集。

在一个实施方式中,将前馈信号从第一输入处理器中的与第二输入表示相关联的激活的输入单元的子集发送到第一输出处理器中的连接至激活的输入单元的子集的输出单元的子集。

在一个实施方式中,接收以稀疏分布式表示指示第一位置的第一位置信息。基于第一位置信息生成第一输入表示。接收以稀疏分布式指示第二位置的第二位置信息。基于第二位置信息生成第二输入表示。

在一个实施方式中,在第一输入处理器中接收来自传感器的指示第一特征的第一传感输入。基于第一传感输入生成第一输入表示。在接收到第一传感输入之后,在第一输入处理器中接收来自传感器的指示第二特征的第二传感输入。基于第二传感输入生成第二输入表示。

在一个实施方式中,在第二输入处理器处接收来自另一传感器的指示第三特征的第三传感输入。在第二输出处理器处生成第三特征和与第三特征对应的第三位置的第三对的第三输入表示。确定第二输出处理器中与第三输入表示对应的其他输出单元的子集的激活状态。其他输出单元的子集的激活状态指示可能与第三对相关联的一个或更多个候选。将第二输出处理器中的其他输出单元的子集的激活状态发送到第一输出处理器中的连接至其他输出单元的一个或更多个输出单元。第一输出处理器中的一个或更多个输出单元的激活还基于第二输出处理器中的其他输出单元的子集的激活状态。

在一个实施方式中,通过第二输入处理器生成第三位置和第三位置处的第三特征的第三对的第三输入表示。在第二输出处理器处确定与第三输入表示对应的第三输出表示。第三输出表示指示可能与第三对相关联的一个或更多个候选。将第三输出表示从第二输出处理器发送到第一输出处理器以用于确定第二输出表示。

在一个实施方式中,一个或更多个候选是对象,以及第一位置和第二位置是候选对象的分配中心位置。

实施方式还涉及通过在两个或更多个输入处理器和相应的输出处理器处并行处理位置和特征对来执行推理。在第一输入过程处生成第一输入表示,第一输入表示指示正在被检测的第一位置和第一位置处的第一特征的第一对的可能性。第二输入处理器生成第二输入表示,第二输入表示指示正在被检测的第二位置和第二位置处的第二特征的第二对的可能性。第一输出处理器确定与第一输入表示对应的第一输出表示。第一输出表示指示可能与第一对相关联的一个或更多个候选。第二输入处理器生成第二输入表示,第二输入表示指示正在被检测的第二位置和第二位置处的第二特征的第二对的可能性。第二输出处理器确定与第一输出表示和第二输入表示对应的第二输出表示。第二输出表示指示可能与第一对和第二对相关联的一个或更多个候选。

在一个实施方式中,第一输出处理器基于第一输出表示和第二输出表示生成更新后的第一输出表示,以指示可能与第一对和第二对相关联的一个或更多个候选。

附图说明

通过结合附图考虑以下详细描述,可以容易地理解实施方式的教导。

图1是根据实施方式的推理系统的概念图。

图2是根据一个实施方式的以分层方式组织的推理系统的概念图。

图3是根据一个实施方式的以推理系统为特征的立方体对象和楔形对象的示例图。

图4是示出根据一个实施方式的推理系统的架构图。

图5a是示出根据一个实施方式的在推理系统中执行推理的方法的流程图。

图5b是示出根据一个实施方式的学习用于推理的连接的方法的流程图。

图6是示出根据一个实施方式的输入处理器的详细框图。

图7是示出根据一个实施方式的与输入处理器中的单元相关联的信号的概念图。

图8a至图8c是示出根据一个实施方式的输入处理器中的单元的示例性激活状态的图。

图9是示出根据一个实施方式的图7的输入处理器中的单元的功能框图。

图10是示出根据实施方式的基于多个规则激活输入处理器中的单元或者抑制输入处理器中的单元的激活的图。

图11是示出根据一个实施方式的输出处理器的详细框图。

图12是示出根据一个实施方式的与输出处理器中的单元相关联的信号的概念图。

图13a至图13c是示出根据一个实施方式的输出处理器中的单元的示例性激活状态的图。

图14是示出根据一个实施方式的输出处理器的单元的功能框图。

图15是示出根据实施方式的基于多个规则激活输出处理器中的单元或抑制输出处理器中的单元的激活的图。

图16是根据实施方式的用于实现推理系统的计算设备的框图。

具体实施方式

在以下实施方式的描述中,阐述了许多具体细节以便提供更透彻的理解。然而,注意,可以在没有这些具体细节中的一个或更多个的情况下实践本发明。在其他情况下,没有详细描述公知的特征以避免使该说明书不必要地复杂化。

现在参照附图描述优选实施方式,其中相同的附图标记表示相同的或功能相似的元件。同样在附图中,每个附图标记的最左边的数字对应于首次使用该附图标记的图。

实施方式的某些方面包括以算法的形式在本文描述的处理步骤和指令。应当注意,实施方式的处理步骤和指令可以以软件、固件或硬件实现,并且当以软件实现时,可以被下载以驻留在各种操作系统所使用的不同平台上并且可以通过不同平台操作。

实施方式还涉及用于执行本文的操作的装置。该装置可以针对所需目的而专门构造,或者该装置可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这样的计算机程序可以存储在计算机可读存储介质中,例如但不限于任何类型的盘,包括软盘、光盘、cd-rom、磁光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁或光卡、专用集成电路(asic)或适用于存储电子指令的并且均耦合到计算机系统总线的任何类型的介质,。此外,说明书中提到的计算机可以包括单个处理器,或者可以是采用多个处理器设计以提高计算能力的架构。

说明书中使用的语言主要是出于可读性和指导目的而选择的,并且不会被选择以描绘或限制本发明的主题。因此,本文所述的公开内容旨在说明而非限制在权利要求中阐述的范围。

实施方式涉及基于从传感器接收到的传感输入和与传感输入相关联的位置信息来执行诸如对象识别的推理。传感输入描述对象的一个或更多个特征。位置信息描述产生传感输入的传感器的已知或潜在位置。推理系统通过表征对象的多个特征-位置表示来学习对象的表示,然后通过识别或更新与根据传感输入数据和位置信息观察到的特征-位置表示一致的候选对象来执行推理。在一个实例中,推理系统学习针对每个传感器的对象的表示。针对每个传感器的候选对象的集合被更新为与针对其他传感器的候选对象以及针对该传感器的观察到的特征-位置表示一致的那些候选对象。

推理系统的高级概述

图1是根据一个实施方式的推理系统104的概念图。推理系统104基于从相对于周围事物移动的一组传感器接收的传感输入数据110和与传感输入数据110相关联的位置信息120来执行推理。在本说明书的其余部分中引用的一个特定实施方式中,推理系统104对对象执行推理并生成推理输出数据130。例如,推理系统104可以接收与未知对象上的不同位置上的传感器相对应的传感输入数据110,并基于所接收到的输入执行对象识别。作为另一示例,推理系统104可以预测给定对象上的特定位置处的传感输入数据110。然而,应当理解,在其他实施方式中,推理系统104可以应用于一组传感器来探测系统的不同位置的任何情况。例如,推理系统104可以应用于从在线探测器接收到的输入,该在线探测器导航并测量云中网络的不同部分。

传感输入数据110可以包括图像、视频、音频信号、传感器信号(例如,触觉传感器信号)、与网络流量相关的数据、金融交易数据、通信信号(例如,电子邮件、文本消息和即时消息)、文档、保险记录、生物特征信息、制造过程的参数(例如,半导体制造参数)、库存模式、能量或电力使用模式、表示基因的数据、科学实验的结果或与机器操作(例如,车辆操作)相关联的参数以及医疗数据等。基础表示(例如,照片、音频等)可以存储在非暂时性存储介质中。在下文中,主要参考机械手上的一组触觉传感器来描述实施方式,仅为了便于说明和理解推理系统104。在一个实施方式中,将传感输入数据110编码为矢量信号并且馈送到推理系统104。

位置信息120表示与生成传感输入数据110的传感器相关联的位置。该位置可以是物理位置、逻辑位置、或者物理位置和逻辑位置的组合。利用例如美国专利公开第2016/0217164号中描述的方法以稀疏分布式表示对接收到的位置信息120进行编码,该专利公开通过引用整体并入本文中。

在一个实施方式中,位置信息120利用分配中心(allocentric)参考帧或以对象为中心的参考帧对位置进行编码。换言之,相对于对象本身而不是相对于包含传感器的系统来确定位置坐标。如以下更详细描述的,位置信息120可以包含传感器的已知分配中心位置,或传感器的潜在位置的集合。

推理系统104可以处理传感输入数据110和位置信息120以产生输出,该输出表示对象的识别、识别的手势的确认、数字图像为色情或非色情的分类、电子邮件为未经请求的批量电子邮件(“垃圾邮件”)或合法电子邮件(“非垃圾邮件”)的消息的确认、录音中的说话者的确认、贷款申请人为良好信用风险或不良信用风险的分类、网络流量为恶意或良性的确认、出现在图像中的人的身份、处理的自然语言处理、天气预报结果、人的行为模式、机器的控制信号(例如,自动车辆导航)、基因表达和蛋白质相互作用、关于网络资源访问的分析信息、优化制造过程的参数、保险记录中异常模式的确认、实验结果的预测、人可能经历的疾病的指示、用户可能感兴趣的内容的选择、对人的行为的预测的指示(例如,购票、未示出的行为)、对选举的预测、不良事件的预测/检测、图像中的一串文本、表示文本中的主题的指示、以及对医学治疗的反应的文本概述或预测。在下文中,主要参考识别对象的推理系统来描述实施方式,以便于说明和理解推理系统104。

图2是根据一个实施方式的以分层方式组织的多个推理系统的概念图。这种分层结构化系统被称为分层推理系统200。在分层推理系统200中,多个推理系统学习执行推理并在不同的抽象级进行预测。系统200具有三个级l1、l2和l3,其中级l1是最低级,级l3是最高级,以及级l2是级l1与l3之间的中间级。分层推理系统200被分层地结构化,使得当级上升时处理节点覆盖更大的输入空间。级l1包括推理系统210a、210b、210c和210d;级l2包括推理系统220a和220b;以及级l3具有推理系统230。推理系统210a、210b、210c、210d、220a、220b和230以树状结构分层连接,使得每个推理系统具有多个子节点(即,在较低级处连接的推理系统)和一个父节点(即,在较高级处连接的推理系统)。在一个实施方式中,子节点处的推理系统可以连接至多个父节点。例如,推理系统210b可以在220a和220b处连接至推理系统。

此外,分层推理系统200沿层级向上传播推理输出数据,并沿层级向下传播自上而下的信号。也就是说,每个推理系统210a、210b、210c、210d、220a、220b和230可以被布置成(i)沿层级向上将信息传播到连接的父节点,以及(ii)沿层级向下将信息传播到任何连接的子节点。

这种分层推理系统200是有利的,其中一个原因是,当由第一组传感器执行学习时,由与第一组不同的第二组传感器执行推理。例如,与一组触觉传感器相关联的推理系统220a可用于学习对象,而与一组图像传感器相关联的推理系统220b可用于对对象执行推理。另一优点是增加了利用多个推理系统学习的能力。图1和图2中的级数和处理模式的布置仅仅是说明性的。可以根据具体应用来开发和部署分层推理系统的许多变体。

示例性对象识别

可以通过相应位置处的特征的集合来表征对象。可以通过在对象上呈现的特征和位置的不同对的集合来限定不同的对象。通过识别在推理期间出现的不同特征-位置表示,可以识别不同的对象。如果两个对象共有一些特征-位置表示,则在遇到可区别的位置-特征组合之前,这两个对象可能是不可区分的。

出于说明的目的,假设推理系统104基于所接收到的传感输入数据110(例如,以触觉传感器数据的形式)和指示机械臂上的触觉传感器的位置的相应位置信息120来检测对象。当接收到特征的组合(如由传感输入数据110所示)和位置信息120时,推理系统104识别与观察到的特征-位置表示一致的一个或更多个候选对象。当接收到另外的传感输入数据110和位置信息120时,推理系统104将候选对象缩小为与新观察到的特征-位置表示一致的候选对象。推理系统104输出当前候选对象的集合作为推理输出数据130。

图3是根据一个实施方式的以推理系统104为特征的立方体对象和楔形对象的示例图。如图3所示,例如,为对象定义了分配中心位置的集合{f1,f2,f3,f4}。立方体对象可以由空间特征和位置对来表征,即,空间特征a表示位置f1处的90°角,空间特征b表示位置f2处的竖直边,以及空间特征a表示位置f3。类似地,楔形对象可以由不同的空间特征和位置对表征,即,空间特征c表示位置f1处的锐角,空间特征a表示位置f3,以及空间特征d表示位置f4处的斜边。

在图3的示例中,推理系统104首先接收表示对象的位置f3处的空间特征a的传感输入数据110。推理系统104生成候选对象的集合{立方体,楔形},因为两个对象在位置f3处具有空间特征a。推理系统104从机械手指接收表示位置f2处的空间特征b的另外的传感输入数据110。推理系统104将候选对象的集合减少为{立方体},因为立方体对象是与观察到的特征-位置表示一致的唯一对象。推理系统104输出立方体对象作为推理输出数据130。

在另一实施方式中,当传感器的位置最初未知时,推理系统104生成候选对象的集合和候选特征-位置表示的集合。推理系统104随时间接收与对象相关联的传感输入数据110和位置信息120。推理系统104将候选对象的集合和候选特征-位置表示的集合更新为与观察到的传感输入数据110和位置信息120一致的那些候选对象的集合和候选特征-位置表示的集合,直到剩余单个对象和单个特征-位置表示为止。推理系统104输出剩余对象作为推理输出数据130。以这种方式,即使对象上的分配中心位置最初是未知的,推理系统104也可以识别对象。

具体地,推理系统104从对象上的未知位置处的传感器接收传感输入数据110。推理系统104生成与所接收到的传感输入数据110一致的候选特征-位置表示的集合。因此,该集合表示与特定特征相关联的所有潜在位置。随后,推理系统104生成与所述候选特征-位置表示的集合一致的候选对象的集合。因此,该集合表示与候选特征-位置表示一致的所有对象。

返回到图3中的示例,推理系统104从表示对象的未知位置上的空间特征a的触觉传感器接收传感输入数据110。推理系统104生成候选特征-位置表示的集合{a-f3,a-f1},其包括与空间特征a相关联的位置。这意味着在当前时间段处传感器位于对象的潜在位置的集合{f1,f3}处。推理系统104随后生成候选对象的集合{立方体,楔形},因为两个对象都与位置f1或f3处的空间特征a的特征-位置表示关联。

然后,推理系统104从对象上的传感器在新位置处接收另外的传感输入数据110和指示更新的潜在位置的集合的位置信息120。具体地,基于所确定的在对象上的传感器的先前位置与传感器的当前位置之间的位置偏移来生成更新的潜在位置的集合。更新的位置的集合表示当前时间段处传感器的新的潜在位置。在一个实施方式中,基于如由控制致动器的移动以将传感器移动到新位置的一个或更多个控制器所确定的传感器从先前位置到当前位置的移动来确定位置偏移。例如,控制器可以利用机械手指中的陀螺仪或加速计传感器来确定机械手指移动了多少。确定的距离可以转换为分配中心空间中的位置偏移。推理系统104将候选特征-位置表示的集合更新为与新的传感输入数据110和位置信息120以及候选对象的集合一致的候选特征-位置表示的集合。随后,推理系统104将候选对象的集合更新为与更新后的特征-位置表示的集合一致的候选对象的集合。在一个实施方式中,重复该过程,直到剩余单个候选对象和单个特征-位置表示为止。

在图3的示例中,推理系统104从触觉传感器接收表示对象上新位置处的空间特征d的另外的传感输入数据110。推理系统104还接收包括基于向右一个单位的位置偏移确定的潜在位置的集合{f2,f4}的位置信息120。具体地,f2是前一潜在位置f1向右一个单位的位置,以及f4是前一潜在位置f3向右一个单位的位置。随后,推理系统104将候选特征-位置表示的集合更新为{d-f4},因为d-f4是与更新后的传感输入数据110和位置信息120以及候选对象的集合一致的唯一组合。推理系统104将候选对象的集合更新为{楔形},因为楔形对象是与特征-位置表示d-f4一致的唯一对象。对象检测系统104输出楔形对象作为最终检测的对象,因为在该候选对象的集合中只剩下一个对象。推理系统104输出楔形对象作为推理输出数据130。

在另一实施方式中,当执行推理时,可以已知对象上的传感器的位置。推理系统104随时间接收与对象相关联的传感输入数据110和位置信息120。推理系统104生成候选对象的集合并将所述候选对象的集合更新为与观察到的特征-位置表示一致的候选对象的集合,并输出所述候选对象作为推理输出数据130。

在又一实施方式中,推理系统104可以仅接收传感输入数据110,而不接收位置信息120。推理系统104可以利用从传感输入数据110接收到的仅特征信息来生成候选对象的集合。返回图3的示例,推理系统104接收对应于特征b的传感输入数据110。即使没有位置信息120,推理系统104也可以确定该对象是立方体对象,因为立方体对象是具有特征b的唯一对象。

在另外的实施方式中,推理系统104可以接收传感输入数据110,其中针对某些传感输入数据110而非针对其他传感输入数据110接收相应的位置信息120。在这样的实施方式中,推理系统104生成候选对象的集合并将所述候选对象的集合更新为与特征-位置表示(其中,提供有位置信息)以及特征(在没有相应位置的情况下)相一致的候选对象的集合。

在一个实施方式中,推理系统104基于从每个特定传感器接收到的传感输入数据110和位置信息120,针对该组传感器中的每个传感器学习对象的单独表示。因此,响应于接收到关于未知对象的信息,推理系统104基于至少针对传感器接收到的特征-位置表示来生成针对每个传感器的候选对象的集合。在一个实施方式中,推理系统104不仅基于所接收到的针对传感器的特征-位置表示,还基于针对其他传感器的候选对象的集合来确定针对传感器的候选对象的集合。具体地,对于给定时间段,推理系统104将候选对象的集合更新为不仅与观察到的特征-位置表示一致,而且与针对其他传感器的候选对象一致的候选对象的集合。以这种方式,推理系统104可以在给定传感输入数据110和来自更多数目的传感器的位置信息120的情况下执行更快的推理,因为针对每个传感器的候选对象的集合将快速选定为针对所有传感器均一致的对象表示。

返回图3的示例,机械手指上的第一触觉传感器可以接收与对象的集合{立方体,楔形}一致的特征-位置表示。不同机械手指上的第二触觉传感器可以接收与对象{立方体}一致的特征-位置表示。基于其他传感器的候选对象,针对第一触觉传感器的候选对象的集合可以被更新为单个对象{立方体},因为立方体对象是针对第一触觉传感器和第二触觉传感器一致的唯一对象。

除了上述优点之外,图1中所示的推理系统104可以独立于对象相对于传感器的集合的取向或位置来进行推理。例如,推理系统104可以对易拉罐对象执行推理,而不管该对象是由树立的传感器感测到的还是由置于其侧面上的传感器感测到的。推理系统104还可以利用来自与用于学习对象表示的传感器子集不同的传感器子集的传感输入数据110来执行推理。例如,推理系统104可以利用来自与用于学习咖啡杯对象表示的第一机械手指和第四机械手指上的触觉传感器不同的第二机械手指和第三机械手指上的触觉传感器的传感输入数据110对咖啡杯执行推理。

推理系统的架构

图4是示出根据一个实施方式的推理系统104的详细框图。图4中所示的推理系统104包括:输入处理器410a、410b、410c;输出处理器412a、412b、412c;控制器422;以及其他部件。输入处理器410a和输出处理器412a均对应于一组传感器中的传感器a。输入处理器410b和输出处理器412b均对应于所述一组传感器中的传感器b。输入处理器410c和输出处理器412c均对应于所述一组传感器中的传感器c。尽管图4中示出了与一组三个传感器a、b、c对应的输入处理器410a、410b、410c和输出处理器412a、412b、412c,实际上,根据传感器的数目,可以存在较少或较多的输入处理器和输出处理器。所述一组传感器可以是相同类型的传感器(例如,触觉传感器)或不同类型的传感器的组合(例如,视觉传感器和触觉传感器)。

输入处理器410生成候选特征-位置表示。输入处理器410还包括组织成列的多个单元,以及其他部件。特定特征-位置表示(例如,位置f3处的空间特征a)的存在由输入处理器410中的激活单元的子集表示。因此,通过激活与输入处理器410中的各个表示相关联的单元来生成候选特征-位置表示的集合。具体地,响应于接收到传感输入数据110和指示与单元相关联的特征-位置表示的存在的位置信息120来激活输入处理器410中的单元。还可以响应于从输出处理器412接收到指示与单元相关联的特征-位置表示存在于当前候选对象集合中的至少一个候选对象中的反馈输入460来激活输入处理器410中的单元。输入处理器410将单元的激活状态(即,特征-位置表示的存在)作为前馈信号440提供给输出处理器412。

控制器422是硬件、或者硬件和软件的组合,用于将操作信号发送到与提供传感输入110a、110b、110c的传感器的移动相关联的致动器(例如,机械臂)。控制器422还用作位置信息源,其可以生成传感器的分配中心位置并将该分配中心位置作为位置信息120a、120b、120c提供给输入处理器410a、410b、410c。为此目的,控制器422可以包括处理器、存储器、以及用于与致动器和传感器通信的接口设备,以及其他部件。存储器可以包括用于控制和操作致动器的软件组件(例如,运动规划模块和致动器控制算法)。

输出处理器412基于前馈信号440并且可选地基于横向信号480确定候选对象的集合。输出处理器412包括多个单元,以及其他部件。在一个实施方式中,多个单元被组织成列。输出处理器412中的激活单元的子集表示特定对象(例如,咖啡杯)的存在。因此,通过激活与输出处理器412中的每个对象相关联的单元的并集来表示候选对象的集合。具体地,响应于从输入处理器410接收到指示与单元表示的对象相关联的特征-位置表示的前馈信号440来激活输出处理器412中的单元。前馈信号440经由前馈连接接收,前馈连接是输入处理器410中的所有单元或单元的子集与输出处理器412中的单元的子集之间的用于传输前馈信号440的连接。因此,前馈连接表示由输出处理器412中的单元的子集表示的对象与由输入处理器410中的单元的子集表示的特征-位置表示之间的关联。在一个实施方式中,可以在学习过程期间切断或生成单元之间的前馈连接。

在一个实施方式中,用于相应传感器的每个输出处理器412基于在用于相应传感器的输入处理器410中存在的特征-位置表示来生成其自己的候选对象的集合。例如,输出处理器412a可以基于输入处理器410a中的激活的单元的子集生成候选对象的集合,并且输出处理器412b可以基于输入处理器410b中的激活的单元的子集生成候选对象的另一集合。

响应于从同一输出处理器412中的单元或其他输出处理器412中的与同一对象相关联的单元接收横向信号480,也可以激活输出处理器412中的单元。经由横向连接接收横向信号480,横向连接是输出处理器412中的单元的子集与同一输出处理器412或不同输出处理器412中的单元的另一子集之间的用于传输横向信号480的连接。输出处理器412中的通过横向连接而连接在一起的单元的子集可以表示相同的对象。因此,输出处理器412中的表示与在其他输出处理器412中表示的对象共同的对象的单元通过横向连接来加强。同一输出处理器412中的各单元的子集之间的横向连接的集合可以被称为承载横向内输入的横向内连接。不同输出处理器412中的单元的子集之间的横向连接的集合可以被称为承载横向间输入的横向间连接。在一个实施方式中,可以在学习过程期间切断或生成单元之间的横向连接。

然而,图4中所示的横向信号480仅仅是示例,并且应当理解,可以对图4中所示的配置进行各种修改。每个输出处理器412可以提供横向信号480并且可以接收来自一个或更多个其他输出处理器412的横向信号480。例如,输出处理器412a可以向输出处理器412c以及输出处理器412b提供横向信号480并且可以接收来自输出处理器412c和输出处理器412b的横向信号480。

输出处理器412将单元的激活状态提供给输入处理器410中的单元作为反馈输入460。反馈输入460经由反馈连接提供,所述反馈连接是输出处理器412中的单元的子集与输入处理器410中的单元的子集之间的用于传输反馈输入460的连接。因此,类似于前馈连接,反馈连接表示由输出处理器412中的单元的子集表示的对象与由输入处理器410中的单元的子集表示的特征-位置表示之间的关联。输入处理器410和输出处理器412中具有反馈连接的单元的子集可以与具有前馈连接的单元的子集相同。在一个实施方式中,可以在学习过程期间切断或生成单元之间的反馈连接。

在一个实施方式中,通过选择和保持输出处理器412中的针对对象的单元的子集的激活以及基于在对象上的各个位置处的传感输入数据110在输入处理器410中的单元与输出处理器412中的单元之间形成连接,来学习单元之间的连接。具体地,每个输出处理器412选择对应于特定对象的用于激活的单元的子集。保持输出处理器412中的单元的激活状态。输出处理器412中的激活的单元选择同一输出处理器412中的激活的单元的子集,并与所选择的单元的子集形成横向内连接。输出处理器412中的激活的单元还选择不同输出处理器412中的激活的单元的子集,并与所选择的单元的子集形成横向间连接。

在一个实施方式中,每个横向连接与指示该连接的发生率的持久性值相关联。换言之,横向连接的持久性值指示由于通过横向连接连接至激活单元的单元的激活而在输出处理器412中单元激活的发生率。可以通过学习过程来调整持久性值以切断现有的横向连接或产生新的横向连接。

随后,针对传感器的输入处理器410在特定对象上的给定位置处接收传感输入数据110。响应于接收到传感输入数据110和包括传感器在对象上的位置的位置信息120,输入处理器410激活与相应的特征-位置表示相关联的单元的子集。具体地,如果先前已知所感测的特征-位置表示,则可以激活输入处理器410中的与特征-位置表示相关联的单元。如果感测的特征-位置表示先前未知,则推理系统104选择与感测输入110中的特征对应的每列中的随机单元,并且这些单元与包括在接收的位置信息120中的位置关联。激活所选择的单元。

输入处理器410中的激活的单元选择相应的输出处理器412中的单元的子集,并与所选择的单元的子集形成前馈连接。输出处理器412中的激活的单元选择相应的输入处理器410中的单元的子集,并与所选择的单元的子集形成反馈连接。当传感器感测到对象上的新位置时,重复该过程,从而产生新的传感输入数据110和位置信息120。

在一个实施方式中,每个前馈连接和反馈连接与指示连接的发生率的持久性值关联。换言之,前馈连接的持久性值指示输出处理器412中的由于在输入处理器410中的通过前馈连接而连接至激活单元的单元的激活而引起的单元激活的发生率。反馈连接的持久性值指示输出处理器412中的由于在输入处理器410中的通过反馈连接连接至激活单元的单元的激活而引起的单元激活的发生率。可以通过学习过程调整持久性值以切断现有的前馈连接或反馈连接或者生成新的连接。

当例如每个传感器已经感测到对象上的一组分配中心位置上的传感特征时,针对特定对象完成学习过程。当学习新对象时,输入处理器410和输出处理器412中的单元被去激活,并且对于新对象重复上述过程。

利用推理系统执行推理

图5a是示出根据一个实施方式的在推理系统104中执行推理的方法的流程图。输入处理器410接收510相应传感器的传感输入数据110,并激活与传感输入数据110中描述的特征相关联的单元。因此,输入处理器410中的激活单元的组合表示与特定特征相关联的候选特征-位置表示的集合。输入处理器410生成单元的激活状态并将所述单元的激活状态作为前馈信号440提供给输出处理器412中的与输入处理器410中的激活单元具有前馈连接的单元。

输出处理器412基于指示输入处理器410中的单元的激活状态的前馈信号440来激活514输出处理器412的单元。因此,输出处理器412中的激活的单元的集合表示与候选特征-位置表示一致的候选对象的集合。输出处理器412生成单元的激活状态并将所述单元的激活状态提供为横向信号480和反馈输入460。也就是说,将一个输出处理器412中的单元的激活状态以横向输入(包括横向内输入和横向间输入)的形式提供给同一输出处理器中的单元或其他输出处理器412中的单元,以及将一个输出处理器412中的单元的激活状态以反馈输入的形式提供给输入处理器410中的单元。

由于例如传感器的移动,输入处理器410接收518在新位置处的传感输入数据110。输入处理器410还基于确定的传感器相对于先前位置的位置偏移来接收指示更新的潜在位置的集合的位置信息120。可以例如从通过一个或更多个致动器来控制传感器(例如,其位于机械手上)的移动的控制器422接收位置信息120。在其他示例中,可以从单独的编码器接收位置信息120,该单独的编码器基于接收到传感器的位置偏移信息来确定更新的潜在位置的集合。

输入处理器410基于新的传感输入数据110和位置信息120并且还基于指示输出处理器412中的单元的激活状态的反馈输入460来更新522单元的激活。因此,输入处理器412中的激活的单元的集合表示与更新的传感输入数据110和位置信息120以及候选对象的集合一致的特征-位置表示。输入处理器410再次将单元的激活状态作为前馈信号440提供给输出处理器412中的单元。

输出处理器412基于指示输入处理器410中的单元的激活状态的新的前馈信号440以及指示同一输出处理器412或其他输出处理器412中的单元的激活状态的横向信号480来更新526单元的激活。因此,输出处理器412中的激活单元的集合表示与更新的候选特征-位置表示的集合以及其他输出处理器412中的候选对象一致的候选对象。如果输出处理器412中的激活的单元匹配单个对象,则完成了推理。否则,重复该过程以接收在新位置处的另一传感输入数据110。

在一个实施方式中,如果输出处理器412中的预定阈值的激活单元与给定对象关联,则输出处理器412确定激活的单元的子集与对象匹配。例如,如果输出处理器412中的90%的激活的单元与咖啡杯对象关联,则输出处理器412可以输出咖啡杯对象。在一个实施方式中,如果不能识别单个对象,则输出处理器412可以输出候选对象的当前列表作为输出。

图5a中所示的步骤仅仅是说明性的。这些步骤中的一个或更多个在推理过程的操作期间可以结合使用、选择性地选择或丢弃、和/或改变。例如,这些步骤中的一个或更多个可以以并行操作执行而不是以特定顺序执行。

用于推理的连接的学习

图5b是示出根据一个实施方式的学习用于推理的连接的方法的流程图。选择输出处理器412中的单元的子集以在所述单元被激活550时表示对象。跨一个或更多个输出处理器412的激活的单元的组合在被激活时指示检测到对象。

在输出处理器412的一个或更多个激活单元之间形成552横向间连接和横向内连接。具体地,横向内连接是同一输出处理器412的不同列中的单元之间的连接。横向间连接是与不同传感器对应的输出处理器中的单元之间的连接。

推理系统104接收554与对象上的分配中心位置相关联的传感输入数据110。激活556输入处理器410中与特征-位置表示对应的单元的子集。在输出处理器412的激活单元与输入处理器410的所有激活的单元或激活的单元的子集之间形成558前馈连接和反馈连接。如果学习过程没有完成,则重复该过程,使得传感器接收在对象上的新位置上的新的传感输入数据110。

在完成对对象的学习之后,可以通过在输出处理器412中激活550单元的不同的子集来执行对新对象的学习,以在单元被激活时表示新对象,并且重复如图5b所示的后续处理。

图5b中所示的步骤仅仅是说明性的。这些步骤中的一个或更多个在学习过程的操作期间可以结合使用、选择性地选择或丢弃、和/或改变。例如,这些步骤中的一个或更多个可以以并行操作执行而不是以特定顺序执行。

输入处理器的示例性架构

图6是示出根据一个实施方式的输入处理器410的详细框图。输入处理器410可以包括输出生成器612、单元11到单元mk的列(在虚线框中),列激活器618、以及其他部件。

列激活器618是软件、硬件或其组合,列激活器618接收传感输入数据110并且基于所接收到的传感输入数据110生成指示要激活哪些单元列的列激活信号634。一个或更多个列激活信号634可以表示传感输入数据110中的特定特征的存在。

输入处理器410还从相应的输出处理器接收反馈信号460。反馈信号460通过与发起反馈信号的单元的反馈连接被馈送到输入处理器410中的单元的子集,并且反馈信号460指示输入处理器410中与在由输出处理器412中的单元表示的候选对象的集合中的至少一个候选对象相关联的一个或更多个单元的潜在激活。输入处理器410还接收位置信息120。位置信息120作为位置信号被馈送到输入处理器410中的单元,并且指示相应的传感器可以是与单元相关联的对象上的已知或潜在位置。

在一个实施方式中,每列包括相同数目(n)的单元。输入处理器410中的单元具有三种状态:未激活的、预测的和激活的。如下面参照图7更详细地描述的那样,如果在单元先前处于预测的状态的情况下单元接收到列激活信号634,则单元可以变为激活的(即,处于激活的状态)。当列中的单元变为激活的时,除了在某些有限的情况下,激活的单元抑制同一列中其他单元的激活。预测的状态表示在下一个时间段处单元将被列激活信号634激活的预测。响应于接收到位置信号,单元可以变为预测的(即,处于预测的状态)。响应于通过反馈连接接收到来自输出处理器中的单元的反馈信号,单元也可以变为预测的。既不处于激活的状态也不处于预测的状态的单元被称为未激活的(即,处于未激活的状态)。

在一个实施方式中,如果单元先前处于预测的状态并且在后续时间段接收到列激活信号634,则激活所述单元。例如,响应于接收到位置信息120,接收到位置信号的单元的子集可以变为预测的。接收到基于接收的传感输入数据110而生成的列激活信号634的预测的单元被激活。以这种方式,仅输入处理器410中与传感输入数据110和位置信息120一致的单元的子集被激活。作为另一示例,接收到反馈信号的单元可以由于相应输出处理器中向所述单元提供反馈信号的单元的激活而变为预测的。接收到基于传感输入数据110而生成的列激活信号634的预测的单元被激活。以这种方式,仅输入处理器410中与传感输入数据110和当前候选对象的集合一致的单元的子集被激活。作为又一示例,接收到位置信号和反馈信号两者的单元可以变为预测的。在这种情况下,输入处理器410中与传感输入数据110、位置信息120以及候选对象的集合一致的单元的子集被激活。

在一个实施方式中,如果处于预测的状态的单元由于通过反馈连接传输的反馈信号而被预测为是激活的,并且传感输入数据110导致单元的正确激活,则关于所述单元至输出处理器412中的激活的单元的反馈连接的持久性值增加,而关于至输出处理器412中的未激活的单元的连接的持久性值减小。另一方面,如果处于预测的状态的单元未跟随单元的激活,则关于至输出处理器412中的激活的单元的反馈连接的持久性值减小。如果关于连接的持久性值降低至阈值以下,则可能会切断连接。以这种方式,具有低持久性值的单元之间的反馈连接不再有助于输入处理器410中的单元的激活。

继续该示例,如果列中没有当前处于预测的状态的单元,则可以随机选择和激活单元(例如,列中的所有单元)中一个或更多个。当列中没有当前处于预测的状态的单元时,可以基于最近的激活状态来激活列中的单元。具体地,可以选择最近在列中激活的单元用于激活。可替选地,如果列中没有当前处于预测的状态的单元,则可以激活列中的所有单元。

在另一实施方式中,即使在同一列中的其他单元处于预测的状态,也激活所述列中的一个或更多个单元。

单元单独地将识别单元11到mk的状态的合并输出(poolingoutput)622发送到输出生成器612。在一个实施方式中,合并输出622指示哪些单元是激活的和/或哪些单元是预测的并且变为激活的。例如,每个单元的合并输出622可以表示为二进制值,例如两位二进制值,其中一个位指示所述单元是否是激活的,以及一个位指示所述单元是否是预测的并且变为激活的。在一些实施方式中,合并输出622指示哪些单元是激活的以及哪些单元是预测的。例如,每个单元的合并输出622可以表示为二进制值,例如两位二进制值,其中一个位指示所述单元是否是激活的,以及一个位指示所述单元是否是预测的。虽然合并输出622在大多数情况下采用二进制值,但合并输出622也可以是非二进制值。例如,合并输出622可以包括指示单元的激活状态的强度的整数或实数值。

输出生成器412是软件、硬件、固件或其组合,输出生成器基于单元11至mk的激活来生成前馈信号440。在一个实施方式中,输出生成器412从单元或列收集合并输出622并将这些输出级联成矢量。可以将级联的矢量作为输入处理器410的前馈信号440发送到输出处理器412。

输入处理器中单元的示例图

图7是示出根据一个实施方式的与输入处理器410中的单元790相关联的信号的概念图。单元790可以是物理的或逻辑的构造,该构造基于其先前状态和其接收到的各种信号变成非激活的、预测的和激活的中之一。

如参照图6所讨论的那样,单元790接收指示相应的传感器可以位于与单元790相关联的对象上的已知位置或潜在位置处的位置信号732。单元790还接收指示在具有到所述单元的反馈连接的相应输出处理器中的一个或更多个单元的激活的反馈信号736。

如参照图6所讨论的那样,当单元790接收到位置信号732和/或反馈信号736时,单元790可变为预测的。单元790还接收可以激活单元790的列激活信号634。

在一个实施方式中,单元790在下述情况下变为激活的:在(i)单元790处于预测的状态,然后响应于列激活信号634而转变为激活的状态,和/或(ii)单元790未处于预测的状态但仍然响应于列激活信号634而被激活。例如,如果包括单元790的列接收到列激活信号634但是该列中没有处于预测的状态的单元,则包括单元790的列中的所有单元可以被激活。

输入处理器中单元的示例操作和功能

图8a至图8c是示出根据一个实施方式的输入处理器410中的与学习和识别包括对象a和对象b的不同对象相关联的单元的示例性激活状态的图。每个圆圈表示输入处理器410中的一个单元。当每个单元变为激活的时,单元发出合并输出622。

图8a示出了输入处理器410在没有先前训练的初始状态下接收传感输入数据110。基于所接收到的传感输入数据110,生成对应于输入处理器410的列1和列m的列激活信号634。由于最初没有单元处于预测的状态,因此激活了列1和列m中的所有单元作为接收列激活信号634的结果。单元的激活状态以由单元的列生成的合并输出622表示。

然后,输入处理器410中的激活的单元引起输出处理器412中与候选对象a和b相关联的具有到输入处理器410中的激活的单元的前馈连接的单元的激活。输出处理器412中的单元的激活然后提供参照图8b描述的反馈信号。

图8b示出了根据一个实施方式的在下一时间段中输入处理器410中的单元的操作。如图8b所示,单元v、单元y和单元z连接至输出处理器412中的激活的单元,因此,单元v、单元y和单元z接收来自输出处理器412中与候选对象a和b相关联的单元的由输出处理器412中单元的激活表示的反馈信号736。反馈信号736将单元v、单元y和单元z置于预测的状态。输入处理器410的单元v、单元y和单元w还接收指示潜在位置f3和f4的集合的位置信息120。基于当生成关于图8a的传感输入数据110时传感器的位置与传感器的当前位置之间的估计的位置偏移来生成潜在位置f3和f4。单元v、单元y和单元w接收位置信号732,因为单元v、单元y和单元w与这些位置相关联。单元v、单元y和单元z保持其预测的状态,以及单元w也变为预测的。

如图8c所示,输入处理器410接收新的传感输入数据110。基于新的传感输入数据110,列激活器618产生对应于输入处理器410的列1和列m的列激活信号634。由于单元v先前处于预测的状态,所以选择单元v进行激活。尽管单元w和单元y都处于预测的状态,但由于单元y对单元w的抑制,所以仅选择单元y进行激活,这是因为单元y接收到反馈信号和位置信号而单元w仅接收到位置信号。以下将参照图10更详细地描述各种激活和抑制规则。

输入处理器中单元的功能框图

图9是示出根据一个实施方式的单元790的功能框图。单元790可以包括反馈信号监视器910、位置信号监视器912、单元激活预测器916、单元激活器918、列抑制器924以及其他部件。这些部件中的一个或更多个可以以软件、固件、硬件或其组合实现。此外,单元790可以包括图9中未示出的其他部件。

反馈信号监视器910是软件、固件、硬件或其组合,其用于监视相应输出处理器412中的单元的激活状态。为此,反馈信号监视器910接收来自输出处理器412中的连接至单元790的单元的反馈信号736。如果反馈信号736指示具有到单元790的反馈连接的一个或更多个单元是激活的,则反馈信号监视器910向单元激活预测器916发送反馈命中信号934。

位置信号监视器912是软件、固件、硬件或其组合,其用于接收位置信号732。如果位置信号732指示对象上的位置与单元790关联,则位置信号监视器912向单元激活预测器916发送位置命中信号930。

单元激活预测器916是软件、固件、硬件或其组合,其基于位置命中信号930和/或反馈命中信号934将单元置于预测的状态。在一个实施方式中,如果生成位置命中信号930和反馈命中信号934中至少之一,则单元激活预测器916将单元790置于预测的状态,并向单元激活器918发送指示单元790处于预测的状态的预测信号941。

单元激活器918是软件、固件、硬件或其组合,其根据一组激活和抑制规则确定是否将单元790置于激活的状态。为此目的,单元激活器918接收列激活信号634、预测信号941以及抑制信号926。

用于单元激活的一个另外的条件可以是不存在来自同一列或不同列中的其他单元的抑制信号926。如果接收到来自其他单元的抑制信号926,则不激活单元790而不管列激活信号634。如果单元790处于激活的状态,则单元激活器918生成指示该单元是激活的或者是由预测的变为激活的合并输出622。在一个实施方式中,无论单元790被激活的原因如何,都生成合并输出622。以下将参照图10更详细地描述各种激活和抑制规则。

响应于单元激活器918对单元790的激活,列抑制器924产生抑制信号928。将抑制信号928发送到同一列或不同列中的其他单元以抑制同一输入处理器410中其他单元的激活。

输入处理器中单元的激活规则示例

图10是示出根据实施方式的基于多个规则激活输入处理器410中的单元或抑制输入处理器410中的单元的激活的图。在图10的示例中,一些单元生成反馈命中信号934和/或位置命中信号930。这些单元以列的形式布置(列1至列5),并且一些列接收列激活信号cas,而一些列没有接收到列激活信号cas。“反馈”箭头(虚线)指示该单元已生成反馈命中信号934,以及“位置”箭头(实线)指示该单元已生成位置命中信号930。如以上参照图6至图8详细讨论的那样,如果一列单元接收到列激活信号634,而不包含任何预测的单元,则列中的所有单元或单元的子集变为激活的。与以下参照图10描述的单元的操作相关联的规则仅用于说明。这些规则中的一个或更多个可以在处理节点的操作期间结合使用、选择性地选择或丢弃、和/或改变。

规则之一是使生成位置命中信号930和反馈命中信号934两者的单元抑制在同一列中的仅生成位置命中信号930的单元的激活。如图10的列1所示,单元13生成位置命中信号930,并且单元c14生成位置命中信号930和反馈命中信号934。在接收到列激活信号cas1之后,仅激活单元c14而不激活单元c12,这是因为单元c14(生成位置命中信号930和反馈命中信号934两者)抑制单元c13的激活(生成仅位置命中信号930)。

另一规则是如果存在仅生成反馈命中信号934的单元,则在接收到列激活信号634之后激活这些单元。如列2中所示,单元c22和单元c24生成反馈命中信号934。在接收到列激活信号cas2之后,激活单元c22和单元c24两者。

可替选地,另一规则是如果没有生成位置命中信号930的单元,则在接收到列激活信号634时激活列中的所有单元。如列3中所示,尽管单元c32和单元c34生成反馈命中信号934,但是在接收到列激活信号cas3之后,激活列中的所有单元,这是因为列3中不存在生成位置命中信号930的单元。

另一规则是如果存在仅生成位置命中信号930的单元,则在接收到列激活信号634之后激活这些单元。如列4中所示,单元c41和单元c43生成位置命中信号930。在接收到列激活信号cas4之后,激活单元c41和单元c43两者。

另一规则是使生成仅位置命中信号930的单元抑制在同一列中的仅生成反馈命中信号934的单元的激活。如列5中所示,单元c51和单元c53生成反馈命中信号934。单元54生成位置命中信号930。在接收到列激活信号cas5之后,仅激活单元54,而不激活单元c51和c53,这是因为单元c54(生成仅位置命中信号930)抑制单元c51和c53的激活(生成仅反馈命中信号934)。

另一规则是要求激活生成位置命中信号930和反馈命中信号934两者的单元。换言之,即使生成仅位置命中信号930或仅反馈命中信号934的单元可以预测地处于激活的状态,也不激活该单元。

结合图10说明的规则仅仅是示例,并且本领域技术人员将理解用于推理系统104的其他激活和抑制规则。

输出处理器的示例性架构

图11是示出根据一个实施方式的输出处理器412的详细框图。输出处理器412可以包括输出生成器1108、单元11至单元nj的集合(以虚线框表示)、信号分配器1118、以及其他部件。如先前结合图4所描述的,在一个实施方式中,输出处理器412的单元可以可选地以列的形式布置。在这样的实施方式中,每列中可以存在单个单元。输出处理器412接收指示输入处理器410中的单元的激活状态的前馈信号440。前馈信号440可以表示输入处理器410中特定特征-位置表示的存在。前馈信号440通过前馈信号1146被馈送到输出处理器412中的适当单元。

输出处理器412还接收来自其他输出处理器中的单元的横向间输入1182。本文描述的横向间输入是指在输出处理器中的单元处接收到的来自连接至该单元的其他输出处理器中的单元的信号。横向间输入1182通过横向间连接馈送到输出处理器412中的单元。至输出处理器412中的单元的横向间信号指示其他输出处理器中的与该单元相同的对象相关联的一个或更多个单元的激活。输出处理器412中的一个或更多个单元还接收来自同一输出处理器412中的其他单元的横向内输入1184。横向内输入1184通过横向内信号被馈送到输出处理器412中的单元。本文描述的横向内输入是指在输出处理器中的接收单元处接收到的来自同一输出处理器中的发送单元的信号。横向间输入和横向内输入共同形成横向输入。在一个实施方式中,单个单元可以接收来自同一输出处理器412或其他输出处理器中的单元的多个横向信号。

输出处理器412还生成指示输出处理器412中的单元的激活状态的反馈信号460。如以上参照图6所描述的,反馈信号460被馈送到相应的输入处理器410。

与输入处理器410中的单元类似,输出处理器412中的单元具有三种状态:未激活的、预测的和激活的。如果单元接收到前馈信号1146,则单元可以变为激活的(即,处于激活的状态)。当输出处理器412中的单元变为激活的时,激活的单元可以抑制在距激活的单元在预定距离内的输出处理器412中的单元的子集的激活。在另一个实施方式中,当输出处理器412的单元以列的形式布置时,除了在某些有限的情况下,激活的单元会抑制与激活的单元同一列的其他单元的激活。在一个实施方式中,一旦输出处理器412中的单元被激活,该单元就将其激活的状态保持预定时间长度。预测的状态表示单元将由前馈信号1146激活的预测。响应于接收到横向间信号和/或横向内信号,单元可以变为预测的(即,处于预测的状态)。在一个实施方式中,一旦输出处理器412中的单元是预测激活的,该单元就将其预测的状态保持预定时间长度。既不处于激活的状态也不处于预测的状态的单元被称为未激活的(即,处于未激活的状态)。

在一个实施方式中,处于预测的状态的单元在接收到前馈信号之后变为激活的。例如,响应于接收到横向间输入1182和横向内输入1184,接收到一个或更多个横向信号的单元可以变为预测的。可以激活接收到前馈信号的预测的单元。以这种方式,输出处理器412中的与观察到的输入处理器410中的特征-位置表示和其他输出处理器中的候选对象一致的单元的子集被激活。通常,输出处理器中的与正在被检测的对象相关联的单元更可能通过至与该对象相关联的其他单元的横向连接而成为预测激活的。随着时间的推移,响应于接收到指示存在与对象相关联的特征-位置表示的前馈信号440,进而激活这些单元。因此,在迭代更新输入处理器410和输出处理器412中的单元的激活状态的过程之后,与对象相关联的单元的子集将保持是激活的。

在一个实施方式中,如果处于预测的状态的单元由于通过横向信号发送的横向信号而成为预测激活的,并且前馈信号导致单元的正确激活,则关于至输出处理器412中的激活单元的横向连接的持久性值增加而关于至输出处理器412中的未激活单元的连接的持久性值减小。另一方面,如果处于预测的状态的单元未跟随单元的激活,则关于至输出处理器412中的激活的单元的横向连接的持久性值减小。如果关于连接的持久性值降低至阈值以下,则可能会切断连接。以这种方式,输出处理器412中的具有低持久性值的单元之间的连接不再有助于单元的激活。

继续该示例,如果列中没有当前处于预测的状态的单元,则激活接收到前馈信号1146的单元。例如,如果列中没有当前处于预测的状态的单元,则可以激活列中的所有单元。

作为列的单元单独地或共同地向输出生成器1108发送合并输出1120。合并输出1120识别单元的状态。在一个实施方式中,合并输出1120指示哪些单元是激活的和/或哪些单元是预测的并且变为激活的。例如,每个单元的合并输出1120可以表示为二进制值,例如两位二进制值,其中一个位指示该单元是否被激活,以及一个位指示该单元是否是预测的并且变为激活的。在一些实施方式中,合并输出1120指示哪些单元是激活的以及哪些单元是预测的。例如,每个单元的合并输出1120可以表示为二进制值,例如两位二进制值,其中一个位指示该单元是否是激活的,以及一个位指示该单元是否是预测的。虽然合并输出1120在大多数情况下采用二进制值,但合并输出1120也可以是非二进制值。例如,合并输出1120可以包括整数或实数值,其指示单元的单元激活状态的强度或在预测的状态之后是激活的状态的强度。

在一个实施方式中,输出生成器1108收集来自单元的合并输出1120并将这些输出级联成矢量。输出生成器1108生成级联的矢量作为对象输出1122。推理系统104确定在对象输出1122中指示的激活的单元的集合是否与已知的对象表示匹配,并生成候选对象的集合。

输出处理器中单元的示例图

图12是示出根据一个实施方式的与输出处理器412中的单元1290相关联的信号的概念图。如参照图11所讨论的,单元1290接收指示其他输出处理器412中的单元的激活的横向间信号1270。单元1290还接收来自同一输出处理器412中的其他单元的横向内信号1268。单元1290可以接收来自输出处理器412中的一个或更多个单元的横向信号。如参照图11所讨论的,当单元1290接收到横向间信号1270和/或横向内信号1268时,单元1290可以变为预测的。单元1290还通过到单元1290的前馈连接来接收指示输入处理器410中的单元的激活的前馈信号1146。

在一个实施方式中,单元1290在下述情况下变为激活的:在(i)单元1290处于预测的状态并且接收到前馈信号114,和/或(ii)单元1290未处于预测的状态但仍响应于前馈信号1146而被选择性地激活。单元1290响应于被激活可以通过到单元1290的反馈连接来向输入处理器410中的单元提供指示单元1290的激活状态的反馈信号460。

如以上参照图11所描述的,当单元1290变为激活的或者预测激活的时,单元1290的激活状态可以持续预定量的时间。

输出处理器中单元的示例操作和功能

图13a至图13c是示出根据一个实施方式的输出处理器412a和输出处理器412b中的单元的示例性激活状态的图。每个圆圈代表输出处理器中的一个单元。当每个单元变为激活时,单元发出合并输出1120。

在图13a中,没有单元处于预测的状态,并且输出处理器412a、输出处理器412b最初接收前馈信号440。单元p、单元q、单元r和单元s接收前馈信号1146,这是因为它们具有到相应输入处理器410a、输出处理器412b中的激活的单元的前馈连接。由于没有其他单元处于预测的状态,因此单元p、单元q、单元r和单元s被激活。因此,激活的单元的子集表示与输入处理器410a、输入处理器410b中的激活的特征-位置表示一致的候选对象的集合。生成单元的激活状态作为合并输出1120。

如图13b所示,在下一个时间段,输出处理器412a的单元t接收到来自输出处理器412b的单元r的横向间信号1270并且变为预测的。输出处理器412a的单元u接收到来自输出处理器412a的单元q的横向内信号1268并且变为预测的。类似地,单元v或输出处理器412b接收到来自输出处理器412b的单元s的横向内信号1268并且变为预测的。另外,激活的单元p和单元r生成反馈信号460,通过至这些单元的反馈连接来将反馈信号460提供给输入处理器410中的单元。

如图13c所示,在下一个时间段,输入处理器410接收新的传感输入数据110和位置信息120,并且输出处理器412接收到指示输入处理器410中的另一个激活的单元的子集的更新后的前馈信号440。先前激活的单元p、单元q、单元r和单元s在当前时间段仍然保持激活的状态。单元u和单元v基于新的前馈信号440接收到前馈信号1146。单元u和单元v都被激活,这是因为它们先前处于预测的状态并且接收到前馈信号1146。尽管单元t处于预测的状态,但由于单元u对单元t的抑制而仅选择激活单元u。这是因为单元u接收到前馈信号1146和横向内信号1268,而单元t仅接收到横向间信号1270。

随着时间的推移,随着输入处理器410和输出处理器412中的单元的激活状态被迭代地更新,与检测到的对象相关联的单元子集将保持激活。

输出处理器中单元的功能框图

图14是示出根据一个实施方式的单元1290的功能框图。单元1290可以包括横向间信号监视器1410、横向内信号监视器1412、单元激活预测器1416、单元激活器1418、列抑制器1424、以及其他部件。横向间信号监视器1410是软件、固件、硬件或其组合,其用于接收来自输出处理器412中的其他单元的横向间信号1270。横向内信号监视器1412是软件、固件、硬件或其组合,其用于接收来自输出处理器412中的其他单元的横向内信号1268。前馈信号监视器1414是软件、固件、硬件或其组合,其用于接收来自输入处理器410中的单元的前馈信号1146。

如果横向间信号1270指示其他输出处理器中的具有到单元1290的横向连接的单元是激活的,则横向间信号监视器1410向单元激活预测器1416发送横向间命中信号1434。横向内信号1268指示输出处理器412中具有到单元1290的横向连接的其他单元是激活的,横向内信号监视器1412向单元激活预测器1416发送横向内命中信号1430。横向间命中信号1434和横向内命中信号1430指示单元1290处于预测的状态。单元激活预测器1416接收横向间命中信号1434和/或横向内命中信号1430。单元激活预测器1416将单元的先前的预测的状态的指示作为预测信号1441发送给单元激活器1418。例如,单元激活预测器1416向单元激活器1418指示单元1290在最后时间段期间是否处于预测的状态以及预测的状态是否是由于横向间信号1270或横向内信号1268引起的。

单元激活器1418接收前馈信号1146、预测的信号1441和抑制信号926,并根据一组激活和抑制规则将单元1290置于激活的状态,如以下参照图15进一步详细描述的那样。合并输入1443可以特别指示与单元1290在同一列中的其他单元的预测的状态。用于单元激活的一个另外的条件是在输出处理器412中没有来自其他单元的抑制信号1426。如果接收到来自其他单元的抑制信号1426,则不激活单元1290而不管前馈信号1146。例如,如果单元1290接收到来自距单元1290在预定距离内的其他单元的抑制信号1426,则不激活单元1290而不管前馈信号1146。如果单元1290被置于激活的状态,则单元激活器1418生成指示单元是激活的还是预测的并且变为激活的合并输出1120,。在一个实施方式中,无论单元1290被激活的原因如何,都生成合并输出1120。

响应于单元激活器1418对单元1290的激活,单元抑制器1424生成抑制信号1428。抑制信号1428被发送到同一列或不同列中的其他单元以抑制其他单元的激活。

输出处理器中单元的激活规则示例

图15是示出根据实施方式的基于多个规则激活单元或抑制输出处理器412中的单元的激活的图。在图15的示例中,一些单元生成横向间命中信号1434、横向内命中信号1430和/或前馈命中信号1438。这些单元以组的形式排列(组1至4),这些单元在输出处理器412中距离彼此在预定的距离内,这些单元影响彼此之间的激活和抑制状态。然而,图15中的每个组还可以表示一列单元。“横向内”箭头(实线)表示该单元已生成横向内命中信号1430,“横向间”箭头(虚线)表示该单元已生成横向间命中信号1434以及“前馈”箭头(点划线)表示该单元已经接收到前馈信号1146。与以下参照图15描述的单元的操作相关联的规则仅用于说明。这些规则中的一个或更多个可以在处理节点的操作期间结合使用、选择性地选择或丢弃、和/或改变。

规则之一是如果没有单元生成横向命中信号1430、1434,则激活接收到前馈信号1146的单元。如组1中所示,单元c11和单元c14接收到前馈信号1146。由于没有其他单元生成横向命中信号,所以单元c11和单元c14被激活。

另一规则是使接收到前馈信号1146并且生成至少一个横向命中信号1434、1430的单元抑制在同一列中的仅生成横向命中信号1434、1430的单元的激活。如组2中所示,单元c24接收到前馈信号1146和横向内命中信号1430,并且单元c22生成横向间命中信号1434。仅单元c24被激活而单元c22未被激活,这是因为单元c24(接收到前馈信号1146并且生成横向内命中信号1430)抑制单元c22(生成仅横向间命中信号1434)的激活。

另一规则是响应于接收到前馈信号1146而使生成较多数目的横向命中信号1430、1434的单元而抑制在同一列中的或在输出处理器中的单元的子集中的生成较少数目的横向命中信号1430、1434的单元的激活。如列3中所示,单元c31接收到前馈信号1146并生成两个横向内命中信号1430,以及单元c34接收到前馈信号1146并生成一个横向内命中信号1430。仅单元c31被激活而单元c34没有被激活,这是因为单元c31与单元c34相比生成较多数目的横向命中信号。

另一规则是响应于接收到前馈信号1146而使生成横向间命中信号1434的单元抑制生成横向内命中信号1430的单元的激活。如组4中所示,单元c44接收到前馈信号1146并生成横向间命中信号1434,并且单元c41接收到前馈信号1146并生成横向内命中信号1430。仅单元c44被激活而单元c41未被激活,这是因为单元c44生成横向间命中信号1434。

另一规则是选择先前是激活的单元用于激活。例如,与仅在当前时间段中是预测激活的单元相比,可以选择在前一时间段中是激活的并且在当前时间段中是预测激活的单元用于激活。

另一规则是要求在给定的组内一定数目的单元是激活的。在这种情况下,可以利用上述激活和抑制规则来激活单元,直到所需数目的单元被激活为止。

结合图15所示出的规则仅仅是示例。还可以实现用于推理系统104的其他激活和抑制规则。

图16是根据实施方式的用于实现推理系统的计算设备1600的框图。计算设备1600可以包括处理器1602、存储器1606、输入接口1610、输出接口1614、网络接口1618、连接这些部件的总线1620、以及其他部件。处理器1602检索并执行存储在存储器1606中的命令。存储器1606存储软件组件,包括例如用于实例化和执行如本文所述的节点的操作系统和模块。输入接口1610接收来自诸如传感器数据或动作信息的外部源的数据。输出接口1614是用于以各种形式(例如,图像或音频信号)提供计算结果的组件。网络接口1618使计算设备1600能够通过网络与其他计算设备通信。当以多个计算设备实现多个节点或单个节点的组件时,可以经由网络接口1618在计算设备之间传送与时间排序、空间合并以及节点管理相关联的信息。

在阅读本公开内容后,本领域技术人员将理解用于处理节点的其他可替选设计。因此,虽然已经示出和描述了特定实施方式和应用,但是应该理解,本发明不限于本文公开的精确构造和部件,并且在不脱离本公开内容的精神和范围的情况下,可以在本文公开的布置、方法的操作和细节以及装置方面进行对于本领域技术人员来说明显的各种修改、改变和变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1