解释和改进循环神经网络的处理结果的制作方法

文档序号:31549844发布日期:2022-09-17 03:01阅读:107来源:国知局
解释和改进循环神经网络的处理结果的制作方法

1.本发明涉及循环神经网络,并且更具体地涉及解释(interpret)和/或提高循环神经网络中的决策(decision making)的鲁棒性。


背景技术:

2.人工神经网络是受生物神经元网络的结构和功能方面启发的设备。具体地,人工神经网络使用被称为节点(node)的互连构造的系统来模拟生物神经元网络的信息编码和其他处理能力。人工神经网络中的节点之间的连接的布置和强度确定由人工神经网络进行信息处理或信息存储的结果。
3.神经网络可以被训练以在网络中产生期望的信号流,并且实现期望的信息处理或信息存储结果。一般而言,训练神经网络将在学习阶段期间改变节点之间的连接的布置和/或强度。训练将指向实现某些处理结果。处理结果应与一组示例(即,训练集)一致。当对于给定的数组输入由神经网络实现足够适当的处理结果时,神经网络可以被认为经训练的。
4.因为训练是由神经网络执行的处理的基础,所以神经网络一般不能够处理在形式上或在类型上偏离训练集中的数据的数据。实际上,即使当相同类型的内容存在时,看似无关紧要的扰动(perturbation)——至少在人类看来——可以导致明显不同的处理结果。
5.一个示例是图像分类中的所谓的“对抗性示例”。许多图像分类器是对输入数据的小的(再一次,在人类观察者看来)非随机扰动敏感的。尽管一种图像分类器可以将一个图像正确地分类,但是该同一图像的小的扰动可以导致该图像分类器将受扰动的图像错误地分类。换句话说,在图像空间中,种类似乎在对抗性示例的区域中相交——即使它们在其他地方是明确定义的。


技术实现要素:

6.本发明的方法和装置解释循环神经网络中的决策并且提高循环神经网络中的决策的鲁棒性。简言之,循环神经网络固有地表现出时间动态行为。响应于输入的循环神经网络中的活动随时间发生。例如,信息处理的结果可以被反馈到已经执行其他处理操作的节点。作为另一示例,通过网络的前向传播可以包括协调信息的到达的延迟。
7.因为此时间动态行为,循环神经网络对一个给定的输入的响应可以反映到该网络的先前输入。例如,静止的循环神经网络对一个给定的输入的响应可能与若其仍在对前一输入作出响应的话所做的响应不同。
8.本发明的方法和装置利用循环神经网络的时间动态行为来提供改进的信息处理和更鲁棒的输出——以及对该输出的解释。循环神经网络的时间动态行为被解释为一种过程,由此相关的处理结果被逐步地增强或甚至被放大,并且不相关的处理结果被逐步地减弱或甚至被丢弃。增强和/或减弱可以反映基于以下的决策:
[0009]-随着时间改变的输入的较大样本(诸如,例如,视频或音频流的较长样本);
[0010]-不改变的输入的重复输入;
[0011]-不同种类的输入数据(例如,音频、视频、图像、物理参数);以及
[0012]-来自循环神经网络中的非专用或甚至通用处理活动的结果的集合。
[0013]
循环神经网络中的这样的特征的实施方式可以帮助提高循环神经网络中的决策的鲁棒性——以及对循环神经网络的输出的解释。循环神经网络中的信息处理可以随时间被逐步地增强。对不同种类的输入数据和输入数据的较长持续时间的依赖防止噪声、故障、或甚至一个种类的对抗性扰动过度地干扰通过该网络的信息处理。非专用处理活动允许在决定中使用上下文(context)。
[0014]
在一个方面,描述了包括被编码在计算机存储介质上的计算机程序的方法、系统以及装置。例如,一种方法包括:在循环人工神经网络中定义多个不同的时间窗,其中不同的窗中的每个具有不同的持续时间、具有不同的开始时间、或既具有不同的持续时间又具有不同的开始时间;识别在所述不同的时间窗中所述循环人工神经网络中的活动的拓扑模式(topological pattern)的发生;比较在不同的窗中活动的所述拓扑模式的发生;以及基于所述比较的结果,将第一决策分类为比第二决策更不鲁棒,所述第一决策由发生在所述窗中的第一窗中的活动的第一拓扑模式表示,所述第二决策由发生在所述窗中的第二窗中的活动的第二拓扑模式表示。
[0015]
在另一个方面,描述了包括被编码在计算机存储介质上的计算机程序的方法、系统以及装置。例如,一种方法包括:在循环人工神经网络中定义第一时间窗和第二时间窗,其中所述第一时间窗在所述第二时间窗之前开始;识别在所述第一时间窗中但不在所述第二时间窗中发生的所述循环人工神经网络中的活动的拓扑模式;以及调整所述循环人工神经网络的一个或多个特性以减弱或消除在所述第一时间窗中所述拓扑模式的发生。
[0016]
这些和其他方面可以包括以下特征中的一个或多个。所述第一窗可以在所述第二窗之前开始。可以相继地将数据输入到所述循环人工神经网络中,并且可以相继地识别在不同的时间窗中所述拓扑模式的发生,所述不同的时间窗是相对于所述数据的相继输入而定义的。所述不同的时间窗中的每个可以定义多个开始时间、定义多个持续时间、或既定义多个开始时间又定义多个持续时间,以用于识别拓扑模式。所述不同的时间窗中的每个可以定义至少两个持续时间,其中较长的持续时间被定义以用于识别活动的较复杂的拓扑模式,并且较短的持续时间被定义以用于识别活动的较不复杂的拓扑模式。所述不同的时间窗中的每个可以定义至少两个开始时间,其中较早的开始时间被定义以用于识别循环神经网络的主要由单一种类的输入数据扰动的一个区域中的活动的拓扑模式,并且较晚的开始时间被定义以用于识别循环神经网络中的融合多个种类的输入数据的一个区域中的活动的拓扑模式。可以调整所述循环人工神经网络的一个或多个特性以减弱或消除由发生在第一窗中的活动的第一拓扑模式表示的所述第一决策。可以通过从二进制数字的第二集合减去二进制数字的第一集合来比较活动的所述拓扑模式的发生,其中每个二进制数字指示是否发生了一个相应的拓扑模式。可以通过识别活动的单纯形(simplex)模式的发生来识别活动的拓扑模式的发生。例如,所述单纯形模式可以包围空腔。可以通过比较发生在所述第一时间窗中的活动的拓扑模式的集合与发生在所述第二时间窗中的活动的拓扑模式的集合来识别活动的所述拓扑模式。可以通过从二进制数字的第二集合减去二进制数字的第一集合来比较活动的所述拓扑模式的集合,其中每个二进制数字指示是否发生了一个相应的拓扑模式。可以在一时间将第一数据输入到所述循环人工神经网络中,使得所述循环人工
神经网络在所述第一时间窗期间由所述第一数据扰动。可以在一时间将第二数据输入到所述循环人工神经网络中,使得所述循环人工神经网络在所述第二时间窗期间由所述第二数据扰动。所述第一数据和所述第二数据可以是以相同主题为特征的第一图像和第二图像,或是共享文本特性的第一文本片段和第二文本片段。所述第一时间窗和所述第二时间窗中的每个可以定义一个用于识别活动的较复杂的拓扑模式的较长的持续时间以及一个用于识别活动的较不复杂的拓扑模式的较短的持续时间。所述第一时间窗可以被定义以用于识别所述循环神经网络的主要由单一种类的输入数据扰动的一个区域中的活动的拓扑模式。所述第二时间窗可以被定义以用于识别所述循环神经网络的融合多个种类的输入数据的一个区域中的活动的拓扑模式。可以通过识别活动的单纯形模式的发生来识别活动的拓扑模式的发生。所述单纯形模式可以包围空腔。
[0017]
在附图和下文的描述中阐述本发明的一个或多个实施方案的细节。根据说明书、附图和权利要求书,本发明的其他特征、目的和优点将是明显的。
附图说明
[0018]
图1是对源自多个不同的传感器的数据进行抽象(abstract)和聚类(cluster)的人工神经网络系统的一个实施方式的示意性表示。
[0019]
图2和图3是可以从神经网络识别并且“读取”以生成数字的集合的活动的模式的表示。
[0020]
图4是表示模式的发生作为时间的函数的图表。
[0021]
图5是用于将源自不同的传感器的数据输入到神经网络中的一种方法的示意性表示。
[0022]
图6是由窗定义单元定义的窗如何可以在各种上下文中被使用的示意性表示。
[0023]
图7是由窗定义单元定义以识别对抗性攻击的窗如何可以被用来提高网络对对抗性攻击的抵抗力的示意性表示。
[0024]
各个附图中的相同的参考符号指示相同的元件。
具体实施方式
[0025]
循环人工神经网络可以被构造为实施随时间在网络上传送信息的各种不同的连接。所述连接可以在网络中向前或向后馈送信息,并且可以在各种不同的水平和时间标度上被实施。例如,连接可以在一个区域或其他集合或主要由一种类型的输入数据扰动的节点的水平上被实施。作为另一示例,连接可以在主要由不同类型的输入数据扰动的不同的区域之间实施。在这样多样的情况下用于信息传输的时间标度也可以变化。
[0026]
考虑到这一点,在某个实施方式中,循环神经网络对输入的响应可以被视为逐步确定(progressive certainty)的过程。响应于一种类型的输入数据的瞬时扰动不仅与响应于其他类型的输入数据的扰动融合或组合,而且它还与响应于在不同的时间出现的相同类型的输入数据的扰动融合或组合。融合或组合可以逐步地放大相关的扰动和/或逐步地抑制不相关的扰动。循环神经网络中的相关的子网络可以被激活。如果接收到足够的输入,甚至可以得出低可能性的结论。此外,结论是鲁棒的并且是对噪声、故障或甚至对抗性攻击不敏感的。
[0027]
图1是对源自多个不同的传感器的数据50进行抽象和聚类的人工神经网络系统100的一个实施方式的示意性表示。神经网络系统100包括输入105的集合、循环神经网络110、输出115的集合以及窗定义单元125。窗定义单元130可以被用来确定某些决策不如其他决策一样鲁棒并且例如可能是噪声、故障或甚至对抗性攻击的结果。在一些实施方式中,窗定义单元130可以被用来提高循环神经网络110的鲁棒性,如下文进一步讨论的。
[0028]
数据50
[0029]
在一些实施方式中,循环神经网络110可以被耦合为接收源自多个不同的传感器的数据50。传感器可以是例如将不同的物理属性转换成数据的换能器或仅感测数据的设备,诸如,例如感测文档或数据流的内容的设备。数据50可以具有不同的格式或其他特性。例如,某些种类的数据50(例如,视频或音频数据)可以在时间上相对快速地改变,而其他种类的数据50(例如,静态图像或温度)可以相对缓慢地改变或根本不改变。
[0030]
在所例示的实施方式中,数据50包括以下中的一个或多个:源自例如麦克风的声音数据60、源自例如静态摄像机的静态图像数据62、源自例如视频摄像机的视频数据64以及源自例如温度传感器的温度数据66。这仅是出于例示性目的。数据50不必包括以下中的一个或多个:声音数据60、静态图像数据62、视频数据64、温度数据66。此外,数据50可以包括各种其他不同类型的数据——包括例如,压力数据、化学成分数据、加速度数据、电数据、位置数据等——中的一个或多个。源自一个传感器的数据50可以在被输入到神经网络110中之前经历一或多个处理动作。这样的处理动作的示例包括例如人工神经网络设备中的振幅缩放、时间编码、时移或相移、和/或非线性处理。
[0031]
在其他实施方式中,仅接收单种类型的输入数据。
[0032]
网络输入105
[0033]
在所例示的实施方式中,输入105被示意性地表示为节点的明确定义的输入层,每个所述节点被动地将输入中继到神经网络110中的一个或多个位置。然而,情况未必如此。例如,在一些实施方式中,输入105中的一个或多个可以在数据被传送到神经网络110之前对输入数据的某一部分或全部进行缩放、延迟、相移或以其他方式进行处理。作为另一个示例,数据50可以被注入到整个神经网络110中的不同的层和/或边缘或节点中,即,无这样的正式的输入层。例如,用户可以指定数据将被注入到分布在整个网络110中的特定节点或链接(link)中。作为另一个示例,神经网络110不必被限制为以已知的、先前定义的方式接收输入(例如,总是将第一位注入到第一节点中,将第二位注入到第二节点中,
……
等)。相反,用户可以指定数据中的某些位将被注入到边缘而非节点中,注入的顺序不必遵循位出现的顺序、或这些和其他参数的组合。然而,为方便起见,在本文中将维持作为输入层的输入105的表示。
[0034]
循环神经网络110
[0035]
在循环神经网络中,节点之间的连接沿着一时间序列形成有向图表(directed graph),并且网络表现出时间动态行为。在一些实施方式中,循环神经网络110是在生物系统上建模的相对复杂的神经网络。换句话说,循环神经网络110本身可以对生物系统的形态学、化学和其他特性的程度进行建模。一般而言,在生物系统上建模的循环神经网络110是在具有相对高水平的计算性能的一个或多个计算设备上实施的。
[0036]
与例如传统的前馈神经网络相比,在生物系统上建模的循环神经网络110可以显
示不响应于输入数据的背景或其他活动。实际上,甚至在不存在输入数据的情况下,活动可以存在于这样的神经网络110中。然而,在输入数据时,循环神经网络110将被扰动。由于这样的神经网络110对扰动的响应可能部分地取决于在输入数据时神经网络110的状态,因此这样的神经网络110对数据的输入的响应也可能取决于已经存在于神经网络110中的背景或其他活动。然而,即使神经网络中的这样的活动不仅响应于数据的输入,而且它响应于输入数据。
[0037]
神经网络110对输入数据的响应可以被读取为拓扑模式的集合。具体地,在输入数据时,神经网络110将以某个活动作出响应。该活动将包括:
[0038]-与所定义的拓扑模式不相称的活动,以及
[0039]-的确与所定义的拓扑模式相称的活动。
[0040]
神经网络110中的与所定义的拓扑模式不相称的活动在一些情况下可以是输入数据的特性的、不正确或不完整的抽象或对输入数据的其他操作。神经网络110中的的确与拓扑模式相称的活动可以抽象输入数据的不同的特性。被抽象的特性中的每个可能或多或少是有用的,这取决于应用程序。通过将表示120限制为某些拓扑模式的表示,不正确或不完整的抽象以及对与一特定应用程序不相关的特性的抽象二者可以被“过滤掉”并且被从表示120排除。
[0041]
有时,神经网络110将用一个或多个相同的拓扑模式来对源自不同的传感器的数据的输入作出响应,即使其他拓扑模式是不同的。例如,神经网络110可以用表示“热的”的定性评估的拓扑模式来对温度读数或沙漠的静态图像作出响应,即使其他拓扑模式也是对每个输入的响应的一部分。类似地,神经网络110可以用表示“已完成”的定性评估的拓扑模式来对音乐作品的结尾或具有碎屑的盘子的静态图像作出响应,即使其他拓扑模式也是对每个输入的响应的一部分。因此,有时,可以从具有不同的来源和不同的格式的数据抽象相同的特性。
[0042]
有时,神经网络110将用表示来自那些传感器的数据的特性的合成或融合的一个或多个拓扑模式来对源自不同的传感器的数据的输入作出响应。换句话说,单个这样的模式可以表示对存在于不同的类型的数据中的相同特性的抽象。一般而言,来自不同的传感器的数据的融合或合成将起作用以导致这样的模式出现或这样的模式的活动的强度增加。换句话说,来自不同的传感器的数据可以充当存在于多样的输入数据中的相同的特性的“佐证证据”。
[0043]
在一些情况下,只有在来自不同的传感器的数据中存在某些特性时,表示来自不同的传感器的数据的特性的合成或融合的拓扑模式才出现。神经网络110实际上可以充当与门(and gate),并且要求来自不同的传感器的数据中的某些特性以使活动的某些模式出现。然而,情况不必如此。相反,可以响应于来自不同的传感器的数据,形成一个模式的活动的幅度可以增加,或该活动的特定时间(timing)可以被缩短。实际上,活动的拓扑模式——以及其在表示120中的表示——表示在一非常丰富的状态空间中对输入数据的特性的抽象。换句话说,活动的拓扑模式以及其表示未必是处理输入数据的预定义“结果”,在某种意义上,例如,是/否分类是由分类器产生的预定义结果,一组相关输入是由聚类设备(clustering device)产生的预定义结果,或预测是由预报模型产生的预定义结果。确切地说,拓扑模式是对输入数据的特性的抽象。尽管状态空间有时可以包括诸如是/否分类的抽
象,但是状态空间不仅限于那些预定义结果。
[0044]
此外,拓扑模式可以抽象输入数据的仅一部分(例如,图像的一特定区域、或视频或音频流中的一特定时刻、或诸如像素的输入的一特定细节)的特性,而不是输入数据的全部。因此,抽象的状态空间不限于预定义类型的结果(例如,分类、聚类或预报),也不限于对输入数据的全部的抽象。确切地说,拓扑模式是允许读取由高维、非线性、循环动态系统(即,神经网络110)进行的处理的工具。拓扑模式提取在神经网络110中出现的输入数据的相关性——包括将数据融合成更完整的“整体”的相关性。此外,由于神经网络的循环性质,融合随时间发生。当完成初始操作或抽象时,这些初始操作或抽象的结果可以与同时或甚至稍后完成的其他操作或抽象融合。因此,融合发生在与初始操作或抽象不同的、稍后的时间。
[0045]
尽管不同的来源和格式,但是神经网络110仍可以从数据抽象特性。例如,神经网络110可以抽象:
[0046]-物理特点(例如,颜色、形状、定向、速度),
[0047]-类别(例如,汽车、猫、狗),和/或
[0048]-抽象定性特点(例如,“活的”对“死的”、“平滑的”对“粗糙的”、“有生命的”对“无生命的”、“热的”对“冷的”、“打开的”对“关闭的”)。
[0049]
如果要将输入数据限制为源自少量的传感器,神经网络110可能不太可能以某些方式抽象来自所述传感器的数据。通过示例的方式,神经网络110可能不太可能将温度数据本身抽象成对应于像形状或定向的空间特点的活动的模式。然而,当来自不同的传感器的数据被输入到神经网络110中时,由多样的输入数据引发的扰动互相相遇,并且可以共同地影响神经网络110中的活动。作为结果,神经网络110可以将输入数据抽象成活动的不同的或更确定的模式。
[0050]
例如,可能存在与模式的存在或不存在相关联的一定程度的不确定性。如果输入数据包括来自多样的范围的传感器的数据,随着源自不同的传感器的数据在神经网络110中被合成或融合,模式的多样性和模式的确定性二者可以增加。通过类比的方式,坐在位于火车站的火车内的乘客可以向窗外看,并且看到似乎正在移动的相邻的火车。该同一乘客也可以例如感觉到来自座位的向前压力。此信息的融合或合成增加了乘客的确定性的程度,即该乘客的火车正在移动而不是相邻的火车正在移动。当神经网络接收多样的输入数据时,由该数据引发的扰动可以被共同地抽象成活动的不同的或更确定的模式。
[0051]
循环神经网络110处理来自多样的传感器的输入数据的能力也为对该数据的抽象提供一定程度的鲁棒性。通过示例的方式,一组中的一个传感器可能变得不准确或甚至不起作用,而神经网络110仍可以继续对来自其他传感器的数据进行抽象。常常,循环神经网络110将来自其他传感器的数据抽象成若所有的传感器如所设计的那样起作用则将出现的活动的相同的模式。然而,在一些情况下,那些抽象的确定性可能降低。然而,即使这样的问题出现,抽象也可以继续。
[0052]
此外,存在形成循环神经网络110的链接和节点的、可以提高循环神经网络的鲁棒性的数个特性。一个示例特性是连接到节点的链接的相对大的扇出和/或相对大的扇入。在此上下文中,扇出是从一个节点或链接的单个输出接收输入的节点或链接的数目。扇入是一个节点或链接接收的输入的数目。大的扇入和扇出由上文所讨论的虚线链接示意性地例
示。
[0053]
在一些实施方式中,单个节点可以将信号输出到10至10^6个其他节点,例如10^3至10^5个其他节点。在一些实施方式中,单个节点可以从10至10^6个其他节点——例如10^3至10^5个其他节点——接收信号。这样的相对大的扇出导致由每个节点进行的处理的结果的非常显著的分布。此外,这样的相对大的扇入允许每个节点基于源自大量不同的节点的输入进行处理。任何特定的错误——无论是在输入数据中,还是在循环神经网络本身内的节点和链接中——不太可能导致灾难性故障。
[0054]
能够提高循环神经网络的鲁棒性的另一个示例特性是在该神经网络中信息的非线性传输。例如,循环神经网络110中的链接可以是例如基于一给定的时间内的尖峰的数目的、承载信息的尖峰状传输。作为另一个示例,循环神经网络110中的节点和链接可以具有非线性激活功能——包括与生物神经元的激活功能类似的激活功能。
[0055]
能够提高循环神经网络的鲁棒性的另一个示例特性是单独的节点之间的多链接连接。在一些情况下,这样的多个链接可以是完全冗余的,并且以完全相同的方式在连接的节点之间传送完全相同的信息。然而,一般而言,多个链接将不以完全相同的方式传送完全相同的信息。例如,不同的处理结果可以由不同的链接传送。作为另一个示例,多个链接可以传送相同的结果,使得该结果在不同的时间到达目的地节点和/或在接收节点处具有不同的结果。
[0056]
在一些实施方式中,循环神经网络中的链接可以是抑制性的或兴奋性的。抑制性链接使接收节点输出特定的信号不太可能,而兴奋性链接使接收节点输出特定的信号更有可能。在一些实施方式中,节点可以由多个兴奋性链接(例如,2至20个链接或3至10个链接)连接。在一些实施方式中,节点可以由多个抑制性链接(例如,5至40个链接或10至30个链接)连接。
[0057]
多链接连接既在节点之间提供鲁棒的连接,又有助于避免完全确定性处理。如下文进一步讨论的,能够有助于鲁棒性的另一个特性是在节点之间信息的非确定性传输。任何特定的错误——无论是在输入数据中,还是在循环神经网络本身内的节点和链接中——不太可能导致灾难性故障,因为非确定性信息通过多链接连接的分布式传输。
[0058]
能够提高循环神经网络的鲁棒性的另一个示例特性是单独的节点之间的非确定性传输。确定性系统是一种在无随机性的情况下发展未来的状态的系统。对于一个给定的输入,确定性系统将一直产生相同的输出。在目前的上下文中,对于给定的一组输入数据,节点之间的非确定性传输允许被传输到另一个节点(或甚至从循环神经网络输出)的信号中的一定程度的随机性。输入数据不仅是作为整体被输入到循环神经网络中的数据,而且包含由循环神经网络中的单独的节点接收的信号。
[0059]
这样的随机性可以各种方式被引入到信号传输中。例如,在一些实施方式中,节点的行为可以是非确定性的。决策阈值、时间常数和其他参数可以是随机变化的,以确保一个给定的节点不始终对相同的输入信号相同地作出响应。作为另一个示例,链接本身可以是非确定性的。例如,传输时间和振幅衰减可以是随机变化的,以确保一个给定的链接不始终相同地传送相同的输入信号。
[0060]
作为又一个示例,循环神经网络的行为整体上可以是非确定性的,并且此行为可以影响节点之间的信号传输。例如,循环神经网络可以显示背景或不取决于输入数据的其
他活动,例如甚至在不存在输入数据的情况下呈现。即使节点和链接本身是确定性地定义的,这样的活动的背景水平可能导致单独的节点之间的非确定性传输。
[0061]
通过将一定程度的可变性引入到信号传输中,循环神经网络中的处理将固有地容忍较小的偏差。具体地,如果在输入数据中或在循环神经网络本身内的节点和链接中存在故障,可以产生有意义的结果的循环神经网络——尽管在循环神经网络中的信号传输中的一定量的可变性——也将能够产生有意义的结果。循环神经网络的性能将优雅地降级,而不是灾难性地降级。
[0062]
出于完整性的目的,单个循环神经网络110不必同时拥有所有这些特性,以具有提高的鲁棒性。确切地说,这些特性的组合或甚至这样的特性中的单独一个可以在某种程度上提高鲁棒性。
[0063]
网络输出115和表示120
[0064]
通过神经网络110对数据的抽象可以从输出115被读取为例如(一般二进制)数字的集合,每个数字表示响应于输入数据的神经网络110中的活动的相应拓扑模式的存在或不存在。在一些情况下,表示120中的每个数字表示神经网络110中的活动的一相应的模式的存在或不存在。表示120仅被示意性地例示,并且表示120可以是例如数字的一维向量、数字的二维矩阵或数字的其他集合。一般而言,表示120中的数字将是二进制的,并且以是/否的方式指示活动的模式是否存在。然而,情况未必如此。相反,在一些实施方式中,表示120中的数字将是多值的。值可以表示神经网络110中的活动的一相应的模式的存在或不存在的特性。例如,值可以指示活动的强度或活动的一特定的模式实际上存在的统计概率。通过示例的方式,幅度相对大或在一相对短的时间窗内发生的活动可以被认为指示一特定的决策已经被做出或很可能已经被做出。相比之下,幅度相对小或在一相对较长的时间内发生的活动可以被认为不太可能指示一特定的决策已经被做出。
[0065]
在任何情况下,活动的响应模式表示由神经网络110对输入数据执行的一特定的操作。该操作可以是任意复杂的。因此,单个数字可以对任意复杂的操作进行编码,并且一组数字可以传送一组操作,每个操作具有任意水平的复杂度。
[0066]
此外,活动的拓扑模式——以及其在表示120中的表示——可以是“通用的”:在某种意义上,它们不取决于被输入到神经网络中的数据的来源,也不取决于表示129被应用于的应用程序。确切地说,活动的拓扑模式表达被输入到神经网络110中的数据的抽象特性——不管该数据的来源。
[0067]
通常,活动的多个拓扑模式将响应于单个输入而出现,无论输入是离散的(例如,静态照片或来自测量物理参数的换能器的单个读数)还是连续的(例如,视频或音频流)。因此,输出表示120可以表示存在或不存在响应于输入数据的活动的模式中出现的拓扑结构,即使在在生物系统上建模的相对复杂的循环神经网络中。
[0068]
在所例示的实施方式中,输出115被示意性地表示为多节点输出层。然而,输出115不必是多节点输出层。例如,输出节点115可以是单独的“读取器节点”,所述“读取器节点”识别神经网络110中的一特定的节点集合处的活动的一特定的模式的发生,并且因此读取神经网络110的输出。当且仅当一特定的节点集合处的活动满足特定时间(并且可能地满足幅度或其他)标准时,读取器节点才能启动。例如,输出节点115可以连接到神经网络110中的一节点集合,并且基于例如以下来指示存在或不存在拓扑结构:跨越一相应的阈值激活
水平的每个单独的节点的活动水平、跨越一阈值激活水平的那些节点的活动水平的加权和、或跨越一阈值激活水平的那些节点的活动水平的非线性组合。
[0069]
表示120中的信息被全息地表示:在某种意义上,关于单个数字的值的信息被分布在表示120中的其他数字的值上。换句话说,表示120中的数字的随机子集也包含关于由神经网络110对输入执行的操作的信息,只是以比表示120中的所有数字都存在时将存在的更低分辨率。如下文进一步论述的,不同的拓扑模式具有不同程度的复杂度。一些相对更复杂的模式可以包括相对不太复杂的模式。此外,简单的模式可以被组装成更复杂的模式。此外,由一些数字表示的相对高水平的抽象可以在某种程度上与由其他数字表示的其他抽象相关。例如,表示像“活的”的抽象定性特点的发生的数字可以与表示像“有生命的”的定性特点的数字相关。因此,关于一些拓扑模式的发生的信息固有地包括关于其他拓扑模式的发生的一些信息。
[0070]
为了方便起见,本技术的剩余部分将表示120称为二进制位的集合,并且附图将像这样地例示它们。然而,应理解,在所有情况下,表示120的数字也可以是多值的,以对由网络执行的操作的各方面进行编码。
[0071]
窗定义单元125
[0072]
如上文所讨论的,循环神经网络对输入的响应可以被视为逐步确定的过程,在该过程中,响应于瞬时输入的扰动与响应于前一输入的扰动融合或组合。干扰引起由表示120中的数字表示的活动的拓扑模式。
[0073]
窗定义单元125是一种被配置为定义不同的时间窗以用于检测活动的拓扑模式和表示120中的对应的表示的设备。一般而言,窗定义单元125可以定义窗的持续时间和窗的时间安排(timing)二者。
[0074]
此外,在人工循环神经网络设备中,时间是人工的并且使用数学构造来表示。例如,信号从节点到节点传输不要求真实世界的时间推移,而是这样的信号可以按照通常与真实世界的时间推移无关的人工单位(artificial unit)来表示——如以计算机时钟循环或其他方式测量的。然而,人工循环神经网络设备的状态可以被描述为“动态的”,因为它关于这些人工单位而改变。为了方便起见,在本文中这些人工单位被称为“时间”。然而,应理解,这些单位是人工的——即使当它们被缩放到在生物系统上紧密建模的循环神经网络中的真实世界的时间时——并且通常不对应于真实世界的时间推移。
[0075]
此外,如本文所使用的,用于检测活动的拓扑模式的“窗”不必被限制为时间的单个持续时间。如下文进一步讨论的,存在可以影响循环神经网络中的活动的拓扑模式的特定时间的各种因素。这些因素包括例如拓扑模式的复杂度和在其中识别活动的拓扑模式的区域。考虑到这样的因素,单个“窗”可以被定义为具有不同的持续时间和/或不同的开始时间以用于识别不同的模式。通过示例的方式,单个“窗”可以被定义为具有相对短的持续时间以用于识别活动的相对简单的拓扑模式,而具有相对较长的持续时间以用于识别活动的相对复杂的拓扑模式。可以基于诸如例如与循环神经网络中的各种参数相关联的传输延迟、响应时间和衰减时间的因素来定义持续时间。作为另一示例,单个“窗”可以被定义为具有各种不同的开始时间以用于识别神经网络的不同区域中的活动的不同的模式。例如,用于主要仅由单一种类的输入数据扰动的一个区域的、单个窗的开始时间可以在用于融合多个种类的输入数据一个的区域的、相同的单个窗的开始时间之前。再一次,可以基于诸如例
如与循环神经网络中的各种参数相关联的传输延迟、响应时间和衰减时间的因素来定义开始时间。
[0076]
返回到窗定义单元125,不同的时间窗可以被定制以实现许多不同的目的。例如:
[0077]
内部模式窗定义:如下文进一步讨论的,活动的不同的拓扑模式可以具有不同的复杂度。在一些实施方式中,窗定义单元125可以定义不同的持续时间的窗以适应不同的模式的不同的复杂度。例如,与当要识别与相对简单的拓扑模式相称的活动时相比,当要识别与相对复杂的拓扑模式相称的活动时,窗定义单元125可以定义更长的持续时间的窗。
[0078]
用于响应于输入持续时间的窗定义:一些类型的输入固有地在相对长的持续时间内发生(例如,视频或音频流),而其他类型的输入固有地在相对短的持续时间内发生(例如,静态图像或单个数据点)。根据输入的持续时间和输入的发生的特定时间,响应于不同的输入而出现的活动的拓扑模式可以在时间上被缩放并且偏移。在一些实施方式中,与当要识别响应于相对较短的持续时间的输入的活动时相比,当要识别响应于相对较长的持续时间的输入的活动时,窗定义单元125可以定义更长的持续时间的窗和/或在时间上较晚发生的窗。
[0079]
用于捕获融合的输入的抽象的窗定义:在一些实施方式中,与源自不同的传感器的输入数据的抽象相比,源自不同的传感器的输入数据的抽象在时间上更晚并且在相对更长的持续时间内进行。例如,如下文在图5中所例示的,循环神经网络的不同的区域可以主要由单一种类的输入数据扰动。与基于单一种类的输入数据的决策和抽象相比,融合不同种类的输入数据的决策和抽象可以在时间上更晚发生并且要求相对较长的持续时间。与当要识别响应于单个传感器的活动时相比,当要识别响应于源自不同的传感器的数据的活动时,窗定义单元125可以定义更长的持续时间的窗和/或在时间上较晚发生的窗。
[0080]
用于测量确定性的窗定义:在一些实施方式中,窗可以被定义以监测决策的确定性的改变。具体地,输入数据的初始抽象可能是不完整和/或不准确的。由于循环神经网络随着时间处理信息、具有反馈回路以及节点和/或链接的状态的持久的改变,因此相关的处理结果可以被逐步地增强或甚至被放大,并且不相关的处理结果可以被逐步地减弱或甚至被丢弃。与当要识别不太确定的活动时相比,当要识别表示较高确定性结果的活动时,窗定义单元125可以定义更长的持续时间的窗和/或在时间上较晚发生的窗。
[0081]
用于识别对抗性攻击的窗定义:在一些实施方式中,窗可以被定义以识别网络上的对抗性攻击。图像分类器和其他神经网络可以是对输入数据的小的、非随机的扰动敏感的。这样的小的、非随机的扰动的影响在短的时间标度上——即,在相关的处理结果可以被逐步地增强之前、在不相关的处理结果可以被逐步地减弱之前、在在相对长的持续时间内发生的输入已经全部被输入之前,和/或在源自不同的传感器的输入数据可以被融合之前——最大。当识别在输入之后不久或在短的持续时间的时间标度上出现的活动时,窗定义单元125可以便于对循环神经网络上的(企图的)对抗性攻击的识别。
[0082]
图2是可以从神经网络110(图1)识别并且“读取”以生成集合120的活动的模式400的表示。
[0083]
模式400是循环人工神经网络中的活动的表示。为了读取模式400,功能图表(functional graph)被视为以节点作为点的拓扑空间。与模式400相称的节点和链接中的活动可以被识别为有序的,不管参与该活动的特定的节点和/或链接的身份。在所例示的实
施方式中,模式400全都是有向团或有向单纯形(directed simplice)。在这样的模式中,活动源自将信号传输到模式中的每一个其他节点的源节点。在模式400中,这样的源节点被指定为点0,而其他节点被指定为点1、2、
……
。此外,在有向团或单纯形中,节点中的一个充当汇聚器(sink)并且接收从模式中的每一个其他节点传输的信号。在模式400中,这样的汇聚节点被指定为模式中的最高编号的点。例如,在模式405中,汇聚节点被指定为点2。在模式410中,汇聚节点被指定为点3。在模式415中,汇聚节点被指定为点3,以此类推。因此,由模式400表示的活动以可区分的方式排序。
[0084]
模式400中的每个具有不同数目的点并且反映不同数目的节点中的有序活动。例如,模式405是二维单纯形并且反映三个节点中的活动,模式410是三维单纯形并且反映四个节点中的活动,以此类推。随着模式中的点的数目增加,活动的排序程度和复杂度也增加。例如,对于在一窗内具有一定水平的随机活动的节点的大集合,所述活动中的一些可能出于偶然与模式405相称。然而,随机活动将逐步地越来越不可能与模式410、415、420
……
中的相应的模式相称。因此,与模式405相称的活动的存在相比,与模式430相称的活动的存在指示活动中的相对较高的排序程度和复杂度。
[0085]
可以为活动的复杂度的不同确定定义不同持续时间的窗。例如,与当要识别与模式405相称的活动时相比,当要识别与模式430相称的活动时,可以使用更长持续时间的窗。
[0086]
图3是可以从神经网络110(图1)识别并且“读取”以生成二进制数字集合120的活动的模式300的表示。
[0087]
模式300是相同维度(即,具有相同数目的点)的有向团或有向单纯形的组,其定义了涉及比单独的团或单纯形更多的点的模式并且在有向单纯形的组内包围空腔。
[0088]
通过示例的方式,模式305包括一起定义了级别二的同调类(homology class)的六个不同的三点、二维模式405,而模式310包括一起定义了级别二的第二同调类的八个不同的三点、二维模式405。模式305、310中的三点、二维模式405中的每个可以被认为包围一个相应的空腔。与有向图表相关联的第n个betti数提供拓扑表示中的这样的同调类的计数。
[0089]
由诸如模式300的模式表示的活动表示了不太可能因随机偶然出现的网络中的活动的相对高的排序程度。模式300可以被用来将该活动的复杂度特征化。
[0090]
在一些实施方式中,识别活动的仅一些模式和/或丢弃或以其他方式忽略识别的活动的模式的某个部分。例如,参考图2,与五点、四维单纯形模式415相称的活动固有地包括与四点、三维和三点、二维单纯形模式410、405相称的活动。例如,图2的四维单纯形模式415中的点0、2、3、4和点1、2、3、4都与三维单纯形模式410相称。在一些实施方式中,包括较少点——并且因此具有较低维度——的模式可以被丢弃或以其他方式被忽略。作为另一个示例,需要识别活动的仅一些模式。例如,在一些实施方式中,仅具有奇数的点(3、5、7、
……
)或偶数的维度(2、4、6、
……
)的模式被识别。尽管识别了仅一些模式,但是关于神经网络中的活动的信息仍可以被全息地表示,即,以与在输出中全部模式被识别和/或表示时更低的分辨率。
[0091]
如上文所讨论的,响应于输入数据50的活动的模式表示由神经网络110对该输入数据50执行的任意复杂度的一特定的操作。在一些实施方式中,操作的复杂度将被反映在拓扑模式的复杂度中。例如,由五点、四维单纯形模式415表示的操作或抽象可以比由四点、
三维和三点、二维单纯形模式410、405表示的操作或抽象更复杂。在这样的情况下,表示活动的存在的数字表示在神经网络110中执行一组操作或抽象,其中这些操作或抽象中的每个具有任意水平的复杂度。
[0092]
图4是具有可区分的复杂度的活动模式的特定时间的确定的示意性表示。图4中表示的确定可以作为从神经网络110(图1)中对活动的模式进行识别或“读取”以生成二进制数字集合120的一部分来执行。
[0093]
图4包括图表605和图表610。图表605表示作为沿着x轴的时间的函数的模式的发生。具体地,各个发生被示意性地表示为竖直线606、607、608、609。每一行的发生可以是活动匹配一相应的模式或一类模式的实例。例如,顶行的发生可以是活动匹配模式405(图2)的实例,第二行的发生可以是活动匹配模式410(图2)的实例,第三行的发生可以是活动匹配模式415(图2)的实例,以此类推。
[0094]
图表605还包括示意性地描绘在活动模式具有可区分的复杂度时的不同的时间窗的虚线矩形615、620、625。如所示出的,在由虚线矩形615、620、625描绘的窗期间,循环人工神经网络中的活动匹配指示复杂度的模式的可能性比在那些窗外部更高。
[0095]
图表610表示与作为沿着x轴的时间的函数的这些发生相关联的复杂度。图表610包括:复杂度的第一峰630,其与由虚线矩形615描绘的窗一致;以及复杂度的第二峰635,其与由虚线矩形620、625描绘的窗一致。如所示出的,由峰630、635表示的复杂度是与可以被认为是复杂度的基线水平640的复杂度可区分的。
[0096]
在一些实施方式中,循环人工神经网络的输出将被读取的时间与具有可区分的复杂度的活动模式的发生一致。例如,在图4的例示性上下文中,可以在峰630、635处,即,在由虚线矩形615、620、625描绘的窗期间,读取循环人工神经网络的输出。
[0097]
在一些实施方式中,不仅具有可区分的复杂度的活动模式的内容而且所述活动模式的特定时间可以从循环人工神经网络输出。具体地,不仅参与与活动模式相称的活动的节点的身份和活动,而且活动模式的特定时间可以被认为循环人工神经网络的输出。因此,所识别的活动模式以及将读取此决策的特定时间可以表示通过神经网络进行的处理的结果。
[0098]
图5是用于将源自不同的传感器的数据50输入到神经网络110中的方法的示意性表示。在所例示的实施方式中,网络输入105的不同的子集105’、105”、105
”’
专用于接收不同类型的输入数据。例如,第一子集105’可以专用于接收第一种类的输入数据(例如,源自第一传感器的数据),而第二子集105”可以专用于接收第二种类的输入数据(例如,源自第二传感器的数据)。
[0099]
在一些实施方式中,神经网络110的对应的“区域”505、510从网络输入105的不同的子集105’、105”、105
”’
接收不同种类的输入数据。例如,在示意性例示中,区域505、510被示出为节点和边缘的空间离散集合,每个区域之间具有相对少的节点到节点连接。情况未必如此。确切地说,每个区域505、510的节点和边缘可以在神经网络110中空间分布,但仍接收一特定种类的输入数据。
[0100]
不管每个区域505、510中的节点的分布,每个区域505、510中的处理主要——但未必是排他地——分别由接收的种类的输入数据扰动。可以基于在相应的种类的输入数据存在和不存在的情况下、在一区域中发生的活动来测量扰动的程度。例如,主要由第一种类的
输入数据扰动的区域可以大致相同的方式对该第一种类的输入数据作出响应,不管其他种类的输入数据是否同时扰动网络110。由每个区域505、510执行的处理和抽象主要由所接收的种类的输入数据影响。然而,在每个区域505、510中出现的活动的拓扑模式可以被读取为数字集合120。对于循环神经网络110的其他区域也是如此。
[0101]
这通过单独地指定网络输出115的不同的子集115’、115”、115
”’
而在神经网络系统500中被示意性地表示。具体地,子集115’可以专用于输出表示在神经网络110的区域505中出现的活动的拓扑模式的数字,而子集115
”’
可以专用于输出表示在神经网络110的区域5100中出现的活动的拓扑模式的数字。然而,子集115”输出在区域505、510中的任一个中都不存在的数字。实际上,在子集115”中输出的数字可以表示在区域505、510中出现的抽象表示和处理结果的融合或进一步抽象至更高水平的复杂度。
[0102]
例如,当且仅当子集115’中的一个或多个数字以及子集115
”’
中的一个或多个数字二者都具有某些值时,子集115”中的一个给定的数字才可以出现。因此,子集115”中的该数字可以表示任意更高水平的抽象——在区域505、510中生成的抽象还有输入数据本身二者。
[0103]
当不同的区域主要由单一种类的输入数据扰动时,那些区域中的处理可以根据输入数据的性质而被定制。例如,连接的深度和网络回路的拓扑可以根据输入数据而被定制。在在生物系统上建模的循环神经网络中,神经元动力学和突触可塑性也可以根据输入数据而被定制。定制例如捕获不同的时间标度。例如,为处理相对快速地改变的种类的输入数据(例如,视频或音频数据)而定制的区域中的处理可以比为处理相对缓慢地改变或根本不改变的种类的输入数据而定制的区域中的处理更快。
[0104]
此外,当循环神经网络的不同的区域主要由单一种类的输入数据扰动时,人类更容易将循环神经网络中出现的表示归因于特定的输入数据。在一个特定的区域中出现的表示可以被归因于主要扰动该区域的种类的输入数据。一旦在一个特定的区域中出现的表示被归因,响应于一个特定的区域中的表示而出现的更高水平的并且更复杂的抽象也可以被更容易地理解。
[0105]
此外,训练可以针对于循环神经网络的、不主要由单一种类的输入数据扰动的部分,即针对于循环神经网络的、融合主要由单一种类的输入数据扰动的区域的处理结果的部分。实际上,主要由单一种类的输入数据扰动的区域将生成通用的输入数据的表示——不仅用于从循环神经网络的输出,而且用于使用循环神经网络的进一步抽象和其他操作。
[0106]
图6是由窗定义单元125定义的窗如何可以在各种上下文中被使用的示意性表示,所述上下文诸如识别响应于不同的持续时间的输入的活动、捕获融合的输入的抽象、测量确定性以及识别对抗性攻击。系统100的所例示的实施方式包括多个数据缓冲器605、610以及比较器615。数据缓冲器605、610可以被实施为许多不同的数据存储设备中的任何一个。比较器615是一种被配置为比较二进制或其他数字的集合和/或确定它们之间的差异的设备。比较器615可以被实施为硬件和/或软件。尽管仅两个数据缓冲器605、610被例示,但是在一些上下文中可以使用不止两个数据缓冲器。
[0107]
在操作中,窗定义单元125定义不同的窗的持续时间和/或时间安排以用于输出拓扑模式的不同的表示120。不同的表示120可以表示在如下窗内发生的拓扑模式:例如,具有相同的持续时间但是在不同的时间发生的窗、在重叠的时间发生但是具有不同的持续时间
的窗、或在不同的时间发生并且具有不同的持续时间的窗。数据缓冲器605被耦合为存储拓扑模式的表示120的第一集。数据缓冲器610被耦合为存储拓扑模式的表示120的第二集。在所例示的实施方式中,存储的表示120被示意性地例示为二进制数字的二维矩阵。在其他实施方式中,表示120可以例如被存储为一维向量和/或多值的数字。
[0108]
比较器615被耦合为接收被存储在数据缓冲器605、610中的表示120的集、比较它们并且输出该比较的结果。根据应用程序上下文,该比较可以采用许多不同的形式。该比较的结果也可以采用多个形式,但是一般而言将是表示满足某些标准的拓扑模式的数字的集合。因此,尽管比较器615被例示为具有单个输出620,但是比较器615也可以包括数个输出以并行地输出多个数字。
[0109]
例如,在要识别响应于相对长的持续时间的输入的活动的实施方式中,比较器615可以识别在输入的持续时间期间的不同的时间发生的表示120中的数字。例如,不同的特征矩阵或向量共有的数字可以由比较器615识别。共有的数字可以例如串行地或并行地被输出。
[0110]
作为另一示例,在要识别响应于相对短的持续时间的输入的活动的实施方式中,比较器615可以识别在输入短的持续时间的输入之后立即发生的表示120中的、但是不存在于在其他时间发生的其他表示120中的数字。例如,比较器可以从包括在输入短的持续时间的输入之后不久发生的表示的特征矩阵或向量减去包括在该输入之前不久发生的表示的特征矩阵或向量。
[0111]
作为另一示例,在要识别融合的输入的抽象的实施方式中,比较器615可以被用来识别在输入数据之后在某个时间出现的表示120中的数字。例如,剩余的数字(即,从在输入之后相对长的时间出现的数字减去在输入之后相对短的时间出现的数字之后剩余的数字)的集合可以被识别为由融合来自不同的传感器的输入所产生的抽象。
[0112]
作为另一示例,在要测量决策或抽象的确定性的实施方式中,比较器615可以被用来识别在不同的表示120中重复发生或甚至被增强的数字。重复发生或被增强的数字可以例如在相继输入相对缓慢的改变的数据——诸如,例如,以相同的主题为特征的一系列图像、共享文本特性(例如,主题、题目、时态)的一系列文本片段等——之后被识别。在一些实施方式中,可以基于非二进制数字的值来识别出数字的增强,其中该值反映了例如形成一个拓扑模式的活动的水平和/或该拓扑模式的持续时间。
[0113]
作为另一示例,在要识别对抗性攻击的实施方式中,比较器615可以被用来识别在输入之后不久发生的并且在随后的表示120中被逐步减弱的数字。减弱的数字可以在例如相继输入相对缓慢的改变的数据——诸如,例如,可以或不可以以相同的主题为特征的一系列图像、一系列文本片段等——之后被识别。在一些实施方式中,可以基于非二进制数字的值来识别数字的减弱,其中该值反映了例如形成一个拓扑模式的活动的水平和/或该拓扑模式的持续时间。
[0114]
图7是由窗定义单元125定义以识别对抗性攻击的窗如何可以被用来提高网络110对对抗性攻击的抵抗力的示意性表示。除了数据缓冲器605、610以及比较器615之外,系统100的所例示的实施方式还包括训练单元705。
[0115]
训练单元705是一种被配置为基于被确定为表示神经网络110中的不太鲁棒的决策或抽象的数字来迭代地更改循环神经网络110的一个或多个属性的设备。例如,在输入之
后不久发生的拓扑模式可以被逐步地减弱或甚至从随后的表示120消除。作为另一示例,在相继输入例如以相同主题为特征的一系列图像、共享一个文本特性的一系列文本片段之后不重复发生的拓扑模式可以被逐步地减弱或甚至从随后的表示120消除。
[0116]
为了减弱或消除决策或抽象,训练单元705可以在神经网络110中添加或从神经网络110移除节点或链接、改变链接的权重、改变被表示在数字集合120中的拓扑模式,或以其他方式修改循环神经网络110。在循环神经网络110是在生物系统上建模的相对复杂的神经网络的实施方式中,训练单元705可以更改例如模型的形态学、化学或其他特性。
[0117]
训练循环神经网络110以产生例如抵抗对抗性攻击的更鲁棒的数字集合120,可以通过超出仅识别(企图的)对抗性攻击的方式而是有益的。例如,如上文所讨论的,在用于图像分类的循环神经网络中,对对抗性攻击的敏感性(susceptibility)可以被视为种类在对抗性示例的区域中相交的标记。通过训练循环神经网络110以抵抗对抗性示例,可以更好地定义种类。
[0118]
甚至在不存在对抗性攻击的情况下,训练也可以是有用的,例如以确保神经网络110对噪声足够不敏感和/或对输入数据的内容足够敏感或不敏感。
[0119]
本说明书中所描述操作和主题的实施方案可以数字电子电路实施,或以计算机软件、固件或硬件——包括本说明书中所公开的结构以及其结构等同物——实施,或以它们中的一个或多个的组合实施。本说明书中所描述的主题的实施方案可以被实施为一个或多个计算机程序,即,计算机程序指令的一个或多个模块,所述一个或多个计算机程序被编码在计算机存储介质上以用于由数据处理装置执行或以控制数据处理装置的操作。可选地或附加地,程序指令可以被编码在人工生成的传播信号(例如,机器生成的电信号、光信号或电磁信号)上,所述传播信号被生成以编码信息以用于传输到合适的接收器装置以用于由数据处理装置执行。计算机存储介质可以是计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备或它们中的一个或多个的组合或被包括在其中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是被编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质还可以是一个或多个单独的物理部件或介质(例如,多个cd、盘(disk)或其他存储设备)或被包括在其中。
[0120]
本说明书中所描述的操作可以被实施为数据处理装置对存储在一个或多个计算机可读存储设备上的或从其他源接收的数据执行的操作。
[0121]
术语“数据处理装置”包含用于处理数据的所有种类的装置、设备和机器,通过示例的方式包括可编程处理器、计算机、片上系统或前述中的多个或前述的组合。该装置可以包括专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。除硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。该装置和执行环境可以实现各种不同的计算模型基础设施,诸如网络服务、分布式计算和网格计算基础设施。
[0122]
计算机程序(也被称为程序、软件、软件应用程序、脚本或代码)可以任何形式的编程语言——包括编译或解释语言、声明性或过程性语言——编写,并且它可以任何形式被部署,包括作为独立的程序或作为模块、部件、子例程、对象或适合在计算环境中使用的其他单元。计算机程序可以但不必对应于文件系统中的文件。程序可以被存储在保存其他程
序或数据的文件的一部分(例如,存储在标记语言文档中的一个或多个脚本)、专用于所讨论的程序的单个文件或多个协调文件(例如,存储一个或多个模块、子程序或代码的部分的文件)中。计算机程序可以被部署以在一个计算机上被执行或在位于一个站点或分布在多个站点并且通过通信网络互连的多个计算机上被执行。
[0123]
本说明书中所描述的过程和逻辑流可以由一个或多个可编程处理器执行,所述一个或多个可编程处理器执行一个或多个计算机程序以通过对输入数据操作并且生成输出来执行动作。过程和逻辑流也可以由专用逻辑电路(例如,fpga(现场可编程门阵列)或asic(专用集成电路))执行,并且装置也可以被实施为专用逻辑电路(例如,fpga(现场可编程门阵列)或asic(专用集成电路))。
[0124]
适合于执行计算机程序的处理器通过示例的方式包括通用和专用微处理器二者,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或二者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘),或被操作性地耦合以从用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘)接收数据,或将数据传送到用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘)或二者。然而,计算机不必具有这样的设备。此外,计算机可以被嵌入在另一个设备(例如,移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或便携式存储设备(例如,通用串行总线(usb)闪盘驱动器)中,仅举几例。适合于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,通过示例的方式包括半导体存储器设备,例如,eprom、eeprom和闪存设备;磁盘,例如,内部硬盘或可移动磁盘;磁光盘;和cd-rom和dvd-rom盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
[0125]
为了提供与用户的交互,本文所描述的主题的实施方案可以在具有用于向用户显示信息的显示设备(例如,crt(阴极射线管)或lcd(液晶显示器)监视器)和用户可以向计算机提供输入所通过的键盘和定点设备(例如,鼠标或追踪球)的计算机上实施。也可以使用其他种类的设备来允许与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且可以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网络浏览器接收的请求而向用户的客户端设备上的网络浏览器发送网页。
[0126]
虽然本说明书包含许多具体实施细节,但是这些细节不应被解释为对任何发明或可能要求保护的内容的范围的限制,而是应被理解为对特定于特定发明的特定实施方案的特征的描述。在本说明书中在单独的实施方案的上下文中描述的某些特征也可以在单个实施方案中组合实施。相反地,在单个实施方案的上下文中描述的多个特征也可以在多个实施方案中单独地或以任何合适的子组合实施。此外,尽管上文可以将特征描述为以某些组合起作用并且甚至这样最初要求保护,但是在一些情况下可以从组合删除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以指向子组合或子组合的变体。
[0127]
类似地,虽然在附图中以特定顺序描述了操作,但是这不应被理解为要求以所示
出的特定顺序或以连续顺序执行这样的操作,或要求执行所有所例示的操作以获得期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上文所描述的实施方案中的多种系统部件的分离不应被理解为在所有实施方案中都要求这样的分离,并且应理解,所描述的程序部件和系统通常可以在单个软件产品中集成在一起或被打包成多个软件产品。
[0128]
因此,已经描述了主题的特定实施方式。其他实施方式在随附的权利要求书的范围内。在某些情况下,权利要求书中所记载的动作可以不同的顺序执行,并且仍可以获得期望的结果。另外,在附图中所描绘的过程未必需要所示出的特定顺序或连续顺序来获得期望的结果。在某些实施方式中,多任务和并行处理可能是有利的。
[0129]
已经描述了多个实施方式。然而,应理解,可以作出各种改型。因此,其他实施方式在随附的权利要求书的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1