人工神经网络中的时间池化和相关的制作方法

文档序号:20686470发布日期:2020-05-08 18:52阅读:794来源:国知局
人工神经网络中的时间池化和相关的制作方法

本发明是在美国政府支持下,按照国防先进研究项目局(darpa)授予的第n66001-15-c-4034号合同被做出的。政府对本发明具有一定权利。

本发明总体上涉及人工神经网络领域。更具体地,本发明涉及用于人工神经网络中的时间池化和相关的计算方法。



背景技术:

人工神经网络(ann)在解决人工智能中的问题方面日益成功,特别是需要大量数据和长时间处理的问题。这样的网络通常以层级方式被组织,其中数据从层级的较低级别向上面的那些级别被前馈。图1示出了由三个级别上的7个区域组成的层级网络的示例,其中实线箭头示出了数据从较低级别向较高级别的前馈路径,并且其中接收区域将来自下方的数据池化并将来自下方的数据相关。在最简单的情况中,数据表示静态特征,并且网络的作用是信令存在某个特征或特征组。可选地,信号可以沿层级被后馈(图1中的虚线箭头),以在较低区域处理它们的输入时向较低区域提供附加的上下文。

作为一个具体示例,考虑由若干像素组成的静态图像。关于每个像素、颜色和(相对)位置的数据被“池化”,即,组合成复合数据集,并且被馈送到层级的最低级别中。在本发明的描述中,我们使用术语池、被池化、池化等来排他地指示来自不同源的数据的合并或组合。

如果某个像素是黑色的,并且其上方和下方的像素也是黑色的,但是所有三个像素的左边和右边的像素是白色的,则这三个像素一起指示垂直线(的一部分)。所有九个像素(三个黑色和六个白色)是相关的,在这是频繁出现的模式的意义上。层级中的最低区域将它们的池化的数据相关,以形成每个具体特征的(新的)表示。垂直线的表示被向上传递到层级的下一级别,在该级别它可以例如与水平线被组合。取决于它们的相对位置,这两个特征一起可以形成更复杂的部分特征的一部分,这些特征诸如是l形拐角、十字形+符号、t形或者可能是字母e的一部分。通过这样的合成的连续步骤,越来越复杂的特征在层级网络的较高级别处被表示。

当数据在时间上是串行的时,如最常见的情况,网络应当不仅识别对象,而且还识别它如何移动以及因此它接下来最可能在哪里。考虑球被抛向观察者的情况。静态表示是相当简单的-它仅仅是一个圆。然而,随着时间的推移,圆变得更大,并且其在视场中的位置或相对背景的位置或更可能是相对背景和视场两者的位置都改变。观察者从这一系列输入数据确定球的运动,并且能够估计球何时将到达它,以及可能必须做什么来避开它、抓住它、击打它等。

处理这一时间相关数据的网络必须形成更复杂的表示。在最低级别,特征仍然可以仅被表示为圆,但是该圆的属性(它的大小和位置)正在改变—存在观察的时间序列,其合起来指示“球接近”。

简言之,ann包括多个“节点”,这些节点被编程以在某种程度上像脑的神经元那样起作用。每个节点通过充当突触的连接而被连接到许多其他节点。每个节点的活动经由轴突被传递到它的突触中的每个突触。突触被分配了特定的权重,其指示活动的什么部分被传递到目标节点的树突中。在数学上,这被表示为乘积xiwij,其中xi是节点i在级别x中的活动,wij是连接节点i和j的突触的权重,其中j是针对层级中与节点y不同的级别的索引。每个节点的基本操作是对来自其它被连接到的所有节点的加权输入求和,并且然后应用非线性(“压制”或阈值)函数(σ)来确定它自身的活动,即yj=σ(∑ixiwij)。学习通过调整权重(w)以便将误差或成本函数最小化而被完成。

静态ann简单地通过层级向上馈送数据。在循环神经网络(rnn)中,时间相关行为通过获取网络中的每个节点在时间t的输出活跃,并将其路由到(潜在地)任何其他节点在时间t+1的输入而被处理。取决于时变输出被路由到何处,存在rnn的许多变型。rnn已经被证明在时变数据的分析中是有用的,但是它们未被设计为形成具有清楚的语义含义的表示,诸如“球逼近”。

numenta的hawkins及其同事描述了一种非常不同类型的层级网络。本质上,他们描述了网络的网络。我们称为“区域”的子网络(参见图1)包含许多神经元,它们被排列在对应于哺乳动物皮层的层和微柱的结构中。每层神经元负责具体的认知功能集。特别地,如同大脑的皮层4(l4),存在其树突从层级中的较低水平以及从丘脑的核心细胞接收自下而上数据的神经元。修改l4树突的突触的权重的hebbian学习规则导致输入之间的相关;即,同时活跃的轴突倾向于连接到相同的l4神经元。相反,该神经元的放电表示它的连接到的轴突之间的活动的相关。l4是相关器。

当l4神经元激发时,它们激活它们之上的层2和3的微柱中的神经元中的一些神经元。(在现代神经科学中不再进行层级2和3之间的历史区分;皮层的这一部分被简单地标识为l2/3)。l2/3用作序列存储器。不同微柱中的神经元之间的侧面连接不引起立即激发,而是它们在它们的行为上进行调节:接收神经元被置于这样的状态中,该状态使得当其从其微柱底部的l4神经元接收输入时,其更可能激发。这可以被称为“预测”,并且类似于生物去极化。如果该列随后确实是活跃的,则学习规则加强对正确预测有贡献的突触的权重。因为在每个微柱中存在多个细胞,其中仅有少量细胞响应于l4输入而激发,所以正确地预测的细胞的具体集合对关于负责预测的先前活跃的细胞的信息编码。换句话说,先前活跃的细胞格提供针对现在活跃的细胞的上下文,并且随时间以此类推。l2/3学习激发模式的序列。

然而,在序列中,任何单个激发模式几乎没有语义意义-需要附加处理以便形成整个序列的新表示。这通过l2/3神经元的激发活动的时间相关而被实现,并且是本发明的主题。

习惯上将一组神经元的激发模式称为稀疏分布表示(sdr)。这只不过是一个大的二进制阵列,通常是一和零的矢量。阵列中的每个元素表示单个神经元。当神经元活跃时,它的位是一(1),否则它是零(0)。该矢量是“稀疏的”,因为只有一小部分位同时是打开的,这些位小于20%,更典型地小于5%。它是“分布式的”,因为活跃位遍布整个矢量。

在他们的网站上,numenta描述了时间池化器,因为它涉及他们的层级时间存储器(htm)的实现。numenta池化器与本发明有很大的不同,并且更加复杂。它需要两个不同sdr的前馈(层级上的ff)。ff输入被分别处理,并被组合成加权和,然后被传递到阈值函数。结果被赋予“持久性”,其如果活动继续则增加,否则衰减。最持久的结果被馈送到第二池中。这一算法不仅具有许多步骤,还存在许多可调整的参数:求和权重、阈值、持久性的衰减速率、针对持续活跃的增加以及第二池化器的参数。

theyel等人提供了来自神经生理研究的数据,其显示从一个皮层区域到另一个皮层区域存在针对前馈的两条途径:直接地或间接地通过丘脑。因此,接收皮质区接收相同数据的(至少)两个版本。跨丘脑途径通过更多的中间神经元,并且因此(假定)需要更长的时间到达它的目的地。这种实现形成了针对本发明的启发。

本发明的实施例试图提供对现有技术方法的改进。



技术实现要素:

在一个实施例中,本发明提供了一种用于层级人工神经网络(ann)的模拟的计算方法,其中单个相关器在单个时间步期间将来自一个或多个较低级别的先前预测并且现在活跃的神经元的两个或更多个连续的前馈输入池化。

在另一实施例中,本发明提供了一种用于层级人工神经网络(ann)的模拟的计算方法,该方法包括:(a)针对所有时间t,将来自时间步t的s(t)和来自时间步t-1的s(t-1)这两个池化的前馈输入相关;(b)间接地学习输入s(t)和s(t-t’)之间的相关,其中t’是大于等于2的正整数;以及(c)输出在(a)和(b)中学习到的相关。

在又一实施例中,本发明提供了一种用于层级人工神经网络(ann)的模拟的计算方法,该方法包括:(a)针对所有时间t,将来自时间步t的s(t)、来自时间步t-1的s(t-1)以及来自时间步t-2的s(t-2)这三个池化的前馈输入相关;(b)间接地学习输入s(t)和s(t-t’)之间的相关,其中t’是大于等于3的正整数;以及(c)输出在(a)和(b)中学习到的相关。

在另一实施例中,本发明提供了一种存储计算机可读程序代码的制品,该计算机可读程序代码实现用于层级人工神经网络(ann)的模拟的计算方法,该介质包括:(a)其针对所有时间t将来自时间步t的s(t)和来自时间步t-1的s(t-1)这两个池化的前馈输入相关的计算机可读程序代码;(b)间接地学习输入s(t)和s(t-t’)之间的相关的计算机可读程序代码,其中t’是大于等于2的正整数;以及(c)输出在(a)和(b)中学习到的相关的计算机可读程序代码。

在又一实施例中,本发明提供了一种存储计算机可读程序代码的制品,该计算机可读程序代码实现用于层级人工神经网络(ann)的模拟的计算方法,该介质包括:(a)针对所有时间t将来自时间步t的s(t)、来自时间步t-1的s(t-1)以及来自时间步t-2的s(t-2)这三个池化的前馈输入相关的计算机可读程序代码;(b)间接地学习输入s(t)和s(t-t’)之间的相关的计算机可读程序代码,其中t’是大于等于3的正整数;以及(c)输出在(a)和(b)中学习到的相关的计算机可读程序代码。

附图说明

根据一个或多个不同的实施例,参考以下附图详细描述本公开。附图仅出于说明的目的而被提供,并且仅描绘本公开的示例。提供这些附图是为了便于读者理解本公开,而不应被认为是对本公开的广度、范围或适用性的限制。应当注意,为了清楚和容易说明,这些附图不一定按比例绘制。

图1示出了由三个级别上的7个区域组成的层级网络的示例。

图2示出了层级网络的每个区域中的两个组件,即相关器和序列存储器。

图3示出了实施本发明的时间池化和相关的样本伪码。

图4示出了仅两个区域r1和r2的简化网络的学习度量,其中仅有从r1到r2的单个前馈输入,即没有时间池化。

图5示出了针对简化的两区域网络的区域r2中的相关器输出的持久性度量,其中仅有r1到r2的单个前馈输入。

图6示出了针对区域2中的相关器输出的学习度量,其中具有从区域1到区域2的两个连续的前馈输入的池化。

图7示出了针对区域2中相关器输出的持久性度量,其中具有从区域1到区域2的两个连续的前馈输入的池化。

图8示出了针对两个区域的学习度量,其中具有从区域1到区域2的三个连续的前馈输入的池化。

图9示出了针对区域2中相关器输出的持久性度量,其中具有从区域1到区域2的三个连续的前馈输入的池化。

图10描绘了用于实现本发明的方法的系统。

具体实施方式

尽管本发明参照优选实施例被说明和描述,但是本发明可以按照许多不同的配置而被做出。本发明的优选实施例在附图中被描述,并且在这里将被详细描述,应当理解,本公开应当被认为是本发明的原理和针对它的构造的相关联的功能说明的示例,而不是将本发明限制于所示的实施例。本领域技术人员将预见本发明的范围内的许多其他可能的变化。

注意,在本说明书中,对“一个实施例”或“一实施例”的引用意指所引用的特征被包括在本发明的至少一个实施例中。此外,在本说明书中对“一个实施例”的单独引用不一定是指同一实施例;然而,除非这样说明并且除非针对本领域普通技术人员来说是显而易见的,否则这些实施例也不是相互排斥的。因此,本发明可以包括本文所述实施例的任何各种组合和/或集成。

本发明涉及形成输入数据的序列的表示(sdr)。它通过将来自较低级别的两个或更多个连续的前馈输入池化和相关来操作。所得到的表示针对不同的输入序列是高度正交的,从而提供高容量。此外,当(多个)较低级别的学习和更准确地预测较长的序列时,表示趋于稳定。

运行层级神经网络的算法如下操作:网络中的每个区域从其下方的一个或多个区域接收数据。最低级别的区域例如从传感器、从照相机接收(编码的)输入数据,作为文本字符等。每个区域至少包括执行不同任务的两个组件:相关器和序列存储器。图2示出了显示每个区域的两个组件的示例架构。例如,较低级别的区域1的组件包括:(1)第一相关器,其接收输入数据流并将特征标识为它们之间的相关,以及(2)第一序列存储器,接收来自第一相关器的输出s1并将其存储在与区域1相关联的第一存储器中。类似地,较高级别的区域2的组件包括:(1)第二相关器,其接收从下面的第一序列存储器传递的输入v1,并且标识接收的输入之间的特征,以及(2)第二序列存储器,其接收来自第二相关器的输出s2,并且将其存储在与区域2相关联的第二存储器中。因此,每个区域中的相关器来自下面的不同数据流池化,并且将特征标识为它们之间的相关,即,在相同时间步期间趋向于开启的位。

层级的最低级别通常具有静态(或空间)相关器。它找到与单个时间步有关的特征,这形成表示这些特征的sdr并将其传递到序列存储器,如其名称所暗示的,该序列存储器学习标识特征的序列。例如,到底层级别的输入可以是形成字母‘d’的图像的像素,并且‘d’的所有出现将被标识为与由空间相关器编码的sdr被相同地编码的特征。然而,‘and’中的‘d’与‘bland’或‘brand’中的‘d’不同。因此,序列存储器针对字母‘d’的这三个不同上下文激活不同的神经元组(即,不同的sdr)。然后,该序列,比方说,“blan”,生成针对“d”细胞的真子集的预测。如果下一字母确实是“d”,则预测的细胞被激活。这些经验证的细胞(例如,v1、v2等)是序列存储器的输出,其被馈送到层级中的下一级别。

层级中的较高区域经由轴突从其下方的一个或多个区域接收ff数据。由于每个轴突起源于较低级别中的具体神经元,所以这些输入数据以sdr的形式表示较低级别中的活动的最近历史,即,它们在其之前的任何事物的上下文中的当前活动。在本发明中,通过例如经由逻辑or将两个或更多个连续的ff输入池化来实现时间相关。如在示例中所讨论的,两个输入是足够的,并且第三个输入提高了该方法的性能。超过三个的附加输入提供了连续的较小的改进。

本发明以如下方式操作。为了简单起见,考虑仅两个池化的输入的情况。在这一实施例中,本发明提供了一种用于层级人工神经网络(ann)的模拟的计算方法,其中该方法包括步骤:(a)针对所有时间t,将来自时间步t的s(t)和来自时间步t-1的s(t-1)这两个池化的前馈输入相关;(b)间接地学习输入s(t)和s(t-t’)之间的相关,其中t’是大于等于2的正整数;以及(c)输出在(a)和(b)中学习到的相关。通过这种方式,可以找到持续任意长时间的相关,并将其反映在相关器的输出sdr中。最重要的是,当序列针对系统是“已知的”时,如在来自较低级别的模式以可预测的方式改变的事实中所反映的,时间相关器的输出是稳定的,并且比在层级中的较低的输出变化得慢得多。

相同的概念可以被扩展到三个池化的输入,等等。例如,在存在三个池化的输入的情况中,本发明提供了一种用于层级人工神经网络(ann)的模拟的计算方法,包括:(a)针对所有时间t,将来自时间步t的s(t)、来自时间步t-1的s(t-1)以及来自时间步t-2的s(t-2)这三个池化的前馈输入相关;(b)间接地学习输入s(t)和s(t-t’)之间的相关,其中t’是大于等于3的正整数;以及(c)输出在(a)和(b)中学习到的相关。在(b)中。

图3描绘了用于时间池化和相关的伪码的示例。伪码概括了本发明中所采用的计算过程的一个示例。在迭代的并且旨在连续地学习的这一实施例中,针对每个时间步(t),每个过程被重复,其中在每个时间步(t),对网络的每个区域(r)中的传入数据执行完全相同的过程的序列。

数据进入被称为相关器的部分中的每个区域。来自层级的(多个)较低区域的每个时间步的输入数据是在网络设计期间被设置的已知长度的矢量的形式。来自多个较低区域的数据通过级联而被组合,从而使得所得到的输入矢量(i0,其中零下标指示当前输入;参见图2)的长度为较低区域的输出矢量中的所有输出矢量的长度的和。级联的顺序确定来自每个输入数据的矢量元素在输入矢量中的位置。伪码涉及二进制矢量。显然,级联也可以被应用于实数的矢量。通过级联的数据的这样的组合被称为“空间池化”。

本发明的一个特征是被称为“时间池化”的过程。如果区域被选择以采用时间池化(通常是在层级的第一级别之上的区域),则连续的输入矢量被组合。在这一实施例中,使用二进制矢量来说明时间池化或组合过程,针对这些二进制矢量,适当的池化过程是联合的(也被称为逻辑or)。更一般地,可以采用其他矢量操作来组合连续的输入矢量,诸如加权和或(平坦的)外积。以这种方式被组合的连续(级联)的矢量的数量可以是两个或更多个。如果两个输入要被组合,则结果是ir=or(i0,i-1),其中下标-1表示先前的输入时间步。可以使用or的关联属性类似地组合附加的先前时间步。该过程将在下一个时间步用于时间池化的所需数量的输入保存到存储器,从而相应地改变下标。

因此,对相关器的输入矢量是来自层级中的较低的一个或多个区域的一个(无池化)或两个或更多个连续(临时池化)输入的临时池化。相关器是突触权重的矩阵,其指示输入(轴突或矩阵的行)到输出(矩阵的树突或列)之间的连接的强度。使用公知的乘法、累加和阈值机制来激活输出。乘法和累加通过输入矢量与突触权重矩阵的矩阵乘法而被完成。针对二进制矢量和矩阵,这导致针对每个输出列的整数值。将该值与(例如,heaviside步)阈值比较以确定该列是否活跃。使用模拟输入、模拟权重和连续阈值函数的其他非二进制实现也将是显而易见的。输出活动,另一二进制矢量sr,是对区域的序列存储器的输入。

当输入和输出神经活动已知时,使用例如hebbian学习规则来确定突触更新。针对给定突触,如果输入神经元和输出神经元都是活跃的,则该突触被加强或创建。如果只有输入或只有输出是活跃的,则突触被弱化。如果输入和输出都不是活跃的,则突触强度没有变化。

序列存储器由神经元的微柱组成,其中每个微柱由(永久)突触连接到相关器的输出神经元。如果相关器输出神经元是活跃的,则微柱变为活跃的,意指微柱中的一个或多个神经元激发。用于激发的规则是如果预测了微型列中的任何神经元(参见以下讨论),则它激发。如果没有神经元被预测,则微柱中的所有细胞激发。

微柱中的神经元(潜在地)与序列存储器中的其他神经元形成突触,即,在该区域中所有神经元的轴突和树突之间存在侧向连接的阵列。在当前实现中,神经元的激发模式由二进制矢量(ar)表示,并且突触权重由二进制矩阵表示。权重矩阵和活动矢量的乘积是另一矢量,将该另一矢量的元素与阈值比较以确定每个树突输出是否是活跃的。活跃的树突的神经元不立即激发;相反,如果它们在下一个或稍后的时间步从相关器接收到输入,则预测它们将激发。这种调制的行为类似于生物去极化,其使得神经元对输入信号更敏感,并且更可能激发。预测的细胞由二进制矢量p0表示。

在先前时间步中预测(例如,矢量p-1)且现在由相关器的输出激活(ar)的细胞被“验证”,即,vr=and(ar,p-1)。较低区域的经验证的神经元的矢量(vr)向较高区域提供输入。

突触根据通常的hebbian规则而被更新。将先前的活跃的细胞(a-1)连接到经验证的细胞(vr)的那些细胞,即,贡献于正确预测的那些细胞,被加强。对预测的贡献未被证实的那些细胞或被激发但未被预测的细胞的树突上的细胞被弱化。

最后,当前的活动(ar)和预测(p0)矢量被保存为a-1、p-1,以准备下一时间步。

例如,通过将两个连续的输入池化,经验证的序列‘..and’在一种情况中被与先前经验证的序列‘..ran’相关,并且在另一种情况中被与‘..lan’相关。因此,‘brand’和‘bland’的表示完全不同。由于稀疏二进制矢量的属性,这些表示被容易地彼此区分。

在人工神经网络中没有理由将连续的输入的数量限制为仅两个。三个或更多个提供更快的学习。实际上,没有像两个的可标识序列这样的事情:如果‘b’总是跟随‘a’,则跟随‘b’是什么?它或者是另一个字符,或者是通知诸如周期或间隔的序列的结束的事物。在任一情况中,该顺序至少是三个时间步。

使用相关器以用于形成sdr以表示序列的另一优点是它同时减少了数据的维数。每个序列存储器的输出不仅在每个时间步上都改变,而且由于序列存储器工作的方式,它是非常大且极其稀疏的矢量。通常,它可以具有10,000位的量级(每个位对应于一个神经元),其中小于100位被设置为1(指示活跃的神经元)。然而,再次由于序列存储器的操作,其可“仅”采用约1060到1070个不同值。在接收这一输入的相关器中,在仅1024位的输出sdr中可以达到相同的容量,其中32位是有效的。相关过程将矢量的长度减小一个数量级。

示例:

在以下描述的所有三个示例中,建立了仅由两个区域组成的网络,区域1(r1)在较低级别1,区域2(r2)在较高级别2。测试数据利用三个任意句子而被生成,每个句子大约40-50个字符,随机挑选三个中的一个并将它们串在一起以创建10,000个字符长的序列。针对每个字符的ascii码被稀疏化,并一次一个字符地被馈入r1。在几百次迭代(每个时间步一个字符)之后,r1的序列存储器开始针对序列中的下一个字符进行正确预测。由正确地预测的(经验证的)神经元形成的稀疏分布表示(sdr)被前馈到r2的相关器中,其中通过逻辑or进行连续的步的池化。r1的经验证的神经元有些相关,相同的神经元趋向于在相同的序列中针对相同的字符是活跃的。

在每个示例中,通过学习度量的计算来评估网络的性能。如在处理随机序列中的通常实践,利用了预测可能是由随机机会做出的概率。具体地,计算输入sdr和预测的sdr的重叠(交集)。针对随机sdr,众所周知,重叠遵循超几何分布。由于随机概率的可能值的极端范围(针对1或2位的重叠为~0.1,针对10-20位指数级的小),方便的是使用概率的负对数,将其称为负对数似然或nll。由于概率小于一,因此这是正数。为了比较不同大小的网络,通过除以可能的sdr的总数(h0)的对数来对nll进行归一化。最后,通过计算一定数量的迭代的运行平均值来“平滑”数据可能是方便的。学习度量则是:

可以使用其他学习度量,但是理想地,它们应当在系统已经学习进行任何准确预测之前在第一次迭代时开始接近于零,并且在正确地预测每个输入时接近已知的最大值(诸如这里的最大值)。

另外,当完成多次迭代时,期望评估由区域2的相关器生成的表示的稳定性(或“持久性”)。这通过对在连续迭代中保持活跃的列的数目计数而被完成,该列的数目被归一化为活跃的列的数目。结果在几次迭代上被平均。

示例1:无池化。

没有进行连续的输入的相关,也就是说,只有每个当前输入被用于训练相关器。r2的相关器将经验证的神经元之间的相关编码成较低维度的另一sdr,该sdr转而被传递到r2的序列存储器中。在几千次迭代(对应于每个句子的大约100次观察)之后,r2的序列存储器开始对它的输入sdr中的每个输入sdr进行正确预测。学习度量被应用于两个区域的序列存储器中的预测的和实际的sdr之间的重叠。

在10,000次迭代之后,r1和r2中的平均学习分别达到0.41和0.32(见图4)。上部区域(r2)中的学习开始于4000次迭代。平均持久性在0.016结束(见图5)。

示例2:将2个连续的输入池化。

在这一示例中,r2相关器被编程以在每个步将当前前馈sdr和来自先前时间步的前馈sdr这两个连续的输入池化。

在10,000次迭代之后,r1和r2中的平均学习分别达到0.44和0.46(参见图6)。如所预期的,下部区域的行为没有显著变化。上部区域示出了明显更精确的学习。而且,上部区域(r2)中的学习更早开始,在3000次迭代处。平均持久性达到0.46(见图7)。这些结果清楚地示出了由于池化而导致的网络在上部区域中的学习的速度和准确性方面以及在创建的表示的稳定性方面的改进的性能。

示例3:将3个连续的输入池化。

在这一示例中,区域2相关器被编程以在每个步将当前前馈sdr和来自两个先前时间步的前馈sdr这三个连续的输入池化。

在10,000次迭代之后,r1和r2中的平均学习分别达到0.42(相对于示例2的微小变化)和0.51(改进的)(见图8)。上部区域(区域2)中的学习开始于2000次迭代。平均持久性在0.63结束(见图9)。这些结果再次示出了由于池化而导致的网络在上部区域中的学习的速度和准确性方面以及在创建的表示的稳定性方面的改进的性能。

对于本领域技术人员而言明显的是,可以将多于三个连续的输入池化。除了所示出的示例之外,4个和5个连续的输入的池化分别被应用于相同的数据和网络。除了学习的更急剧的开始,4的性能适度地提高超过3,并且5和4之间的差异非常小。这些示例证明了在层级神经网络的时间相关器中将多个连续的输入池化的有效性。

各种实施例的逻辑操作被实现为:(1)在通用计算机内的可编程电路上运行的计算机实现的步骤、操作或过程的序列,(2)在专用可编程电路上运行的计算机实现的步骤、操作或过程的序列;和/或(3)可编程电路内的互连的机器模块或程序引擎。图10中所示出的系统1000可以实践所记载的方法的全部或部分,可以是所记载的系统的一部分,和/或可以根据所记载的非瞬态计算机可读存储介质中的指令来操作。参考图10,示例性系统包括通用计算设备1000,其包括处理单元(例如,cpu)1002和将包括诸如只读存储器(rom)516和随机存取存储器(ram)1012的系统存储器的各种系统组件耦合到处理单元1002的系统总线1026。其他系统存储器1014也可以可用于使用。可以领会到,本发明可在具有多于一个处理单元1002的计算设备上或在被联网在一起以提供更大处理能力的一组计算设备或计算设备的群集上操作。处理单元1020可以包括由软件控制的通用cpu以及专用处理器。

计算设备1000还包括诸如存储设备1004(诸如但不限于磁盘驱动器、光盘驱动器、磁带驱动器等)的存储设备。存储设备1004可以通过驱动器接口被连接到系统总线1026。驱动器和相关联的计算机可读介质提供对计算设备1000的计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。在一个方面中,执行特定功能的硬件模块包括被存储在有形计算机可读介质中的软件组件,其与诸如cpu、总线、显示器等的必要硬件组件结合以执行功能。基本组件针对本领域技术人员是已知的,并且适当的变型取决于设备的类型,诸如设备是小型手持式计算设备、台式计算机还是计算机服务器,而被构想出。

尽管这里描述的示例性环境使用硬盘,但是本领域的技术人员应当领会到,在示例性操作环境中也可以使用可以存储由计算机可访问的数据的其他类型的计算机可读介质,诸如磁带盒、闪存卡、数字多功能盘、盒式磁带、随机存取存储器(ram)、只读存储器(rom)、包含比特流的电缆或无线信号等。

为了支持与计算设备1000的用户交互,输入设备1020表示任何数量的输入机构,诸如用于语音的麦克风、用于手势或图形输入的触敏屏幕、键盘、鼠标、运动输入、语音等。输出设备1022也可以是本领域技术人员已知的多种输出机构中的一种或多种。在一些实例中,多模态系统使用户能够提供多种类型的输入以与计算设备1000通信。通信接口1024通常支配和管理用户输入和系统输出。对本发明在任何特定硬件布置上操作没有限制,并且因此这里的基本特征可以容易地被替换成改进的硬件或固件布置,如它们被开发的那样。

逻辑操作可以被实现为模块,这些模块被配置为控制处理器1002以根据模块的编程来执行特定功能。图10还示出了三个模块mod11006、mod21008和mod31010,它们是控制处理器1002执行特定步骤或一系列步骤的模块。这些模块可以被存储在存储设备1004上,并且在运行时被加载到ram1012或存储器1014中,或者可以如本领域中已知的那样被存储在其他计算机可读存储器位置中。

在一个实施例中,模块mod11006、mod21008和mod31010可以例如是控制处理器502执行以下步骤的模块:实现单个相关器,该单个相关器在单个时间步期间将来自一个或多个较低级别的先前预测并且现在活跃的神经元的两个或更多个连续的前馈输入池化。

在另一实施例中,模块mod11006、mod21008和mod31010可以例如是控制处理器1002执行以下步骤的模块:(a)针对所有时间t,将来自时间步t的s(t)和来自时间步t-1的s(t-1)的这两个池化的前馈输入相关;(b)间接地学习输入s(t)和s(t-t’)之间的相关的计算机可读程序代码,其中t’是大于等于2的正整数;以及(c)输出在(a)和(b)中学习的到相关的计算机可读程序代码。

在另一实施例中,模块mod11006、mod21008和mod31010可以例如是控制处理器1002执行以下步骤的模块:(a)针对所有时间t,将来自时间步t的s(t)、来自时间步t-1的s(t-1)以及来自时间步t-2的s(t-2)这三个池化的前馈输入相关;(b)间接地学习输入s(t)和s(t-t’)之间的相关的代码,其中t’是大于等于3的正整数;以及(c)输出在(a)和(b)中学习到的相关的计算机可读程序代码。

上述特征和应用可以被实现为软件过程,其被指定为被记录在计算机可读存储介质(也被称为计算机可读介质)上的一组指令。当这些指令由一个或多个处理单元(例如,一个或多个处理器、处理器的核或其他处理单元)执行时,它们使得(多个)处理单元执行在指令中被指示的动作。本公开的范围内的实施例还可以包括用于承载或具有被存储在其上的计算机可执行指令或数据结构的有形和/或非瞬态计算机可读存储介质。这样的非瞬态计算机可读存储介质可以是可以由包括任何专用处理器的功能设计的通用或专用计算机访问的任何可用介质。通过示例而非限制的方式,这样的非瞬态计算机可读介质可以包括闪存、ram、rom、eeprom、cd-rom或其他光盘存储装置、磁盘存储装置或其他磁存储设备、或可以被用于承载或存储以计算机可执行指令、数据结构或处理器芯片设计形式的所需程序代码装置的任何其他介质。计算机可读介质不包括无线地或通过有线连接传递的载波和电子信号。

计算机可执行指令包括例如使得通用计算机、专用计算机或专用处理设备执行特定功能或一组功能的指令和数据。计算机可执行指令还包括由计算机在独立或网络环境中执行的程序模块。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构、对象和专用处理器设计的中固有的功能等。计算机可执行指令、相关联的数据结构和程序模块表示用于执行这里公开的方法的步骤的程序代码装置的示例。这样的可执行指令或相关联的数据结构的特定序列表示用于实现在这样的步骤中被描述的功能的对应动作的示例。

在本说明书中,术语“软件”意指包括驻留在只读存储器中的固件或被存储在例如固态驱动器的磁存储装置或闪存中的应用,它们可以被读取到存储器中以用于由处理器处理。此外,在一些实现中,多种软件技术可以被实现为较大程序的子部分,同时保持不同的软件技术。在一些实现中,多种软件技术也可被实现为单独的程序。最后,一起实现这里描述的软件技术的单独的程序的任何组合都在本主题技术的范围内。在一些实现中,当被安装以在一个或多个电子系统上操作时,软件程序定义执行和实施软件程序的操作的一个或多个特定机器实现。

计算机程序(也被称为程序、软件应用、脚本或代码)可以按照任何形式的编程语言被编写,这些编程语言包括编译或解释语言、说明性或过程语言,并且它可以按照任何形式被部署,包括作为独立程序或作为模块、组件、子例程、对象或适合用于在计算环境中使用的其他单元。计算机程序可以但不必对应于文件系统中的文件。程序可以被存储在保持其他程序或数据的文件的一部分(例如,被存储在标记语言文档中的一个或多个脚本)中、被存储在专用于所讨论的程序的单个文件中或被存储在多个协同文件(例如,存储一个或多个模块、子程序或代码的部分的文件)中。计算机程序可以被部署为在一个计算机上被执行,或在位于一个地点或跨多个地点而被分布并且通过通信网络互连的多个计算机上被执行。

上述这些功能可以在数字电子电路中、在计算机软件、固件或硬件中被实现。这些技术可以使用一个或多个计算机程序产品而被实现。可编程处理器和计算机可以被包括在移动设备中或被封装为移动设备。这些过程和逻辑流可以由一个或多个可编程处理器以及由一个或多个可编程逻辑电路执行。通用和专用计算设备和存储设备可以通过通信网络而被互连。

一些实现包括电子组件组件,例如微处理器、将计算机程序指令存储在机器可读或计算机可读介质(备选地被称为计算机可读存储介质、机器可读介质或机器可读存储介质)中的存储装置和存储器。这样的计算机可读介质的一些示例包括ram、rom、只读光盘(cd-rom)、可记录光盘(cd-r)、可重写光盘(cd-rw)、只读数字多功能盘(例如,dvd-rom、双层dvd-rom)、各种可记录/可重写dvd(例如,dvd-ram、dvd-rw、dvd+rw等)、闪存(例如,sd卡、迷你sd卡、微型sd卡等)、磁或固态硬盘驱动器、只读和可记录blu-盘、超密度光盘、任何其他光或磁介质以及软盘。计算机可读介质可以存储由至少一个处理单元可执行并且包括用于执行各种操作的指令集的计算机程序。计算机程序或计算机代码的示例包括例如由编译器产生的机器代码,以及包括由计算机、电子组件或微处理器使用解释器执行的更高级代码的文件。

虽然以上讨论主要涉及执行软件的微处理器或多核处理器,但是一些实现由例如专用集成电路(asic)或现场可编程门阵列(fpga)的一个或多个集成电路执行。在一些实施方案中,这样的集成电路执行被存储在电路本身上的指令。

将理解,所公开的过程中的步骤的任何具体顺序或层级是示例方式的说明。基于设计偏好,将理解,过程中的步骤的具体顺序或层级可以被重新布置,或所有被说明的步骤都被执行。步骤中的一些步骤可以被同时执行。例如,在某些情况中,多任务和并行处理可能是有利的。此外,以上示出的各种系统组件的分离不应当被理解为需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起被集成在单个软件产品中或被封装到多个软件产品中。

上述各种实施例仅通过说明的方式而被提供,并且不应当被解释为限制本公开的范围。本领域技术人员将容易地认识到,在不遵循本文所图示和描述的示例实施例和应用并且不脱离如由所附权利要求限定的本发明的范围的情况下,可以对本文所描述的原理进行各种修改和改变。

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