本发明涉及数据分布的编码、计算、存储和传送。数据可以是数据样本的分布。数据分布可以表示测量装置(例如,传感器)中的测量不确定性,且特别地但非排他地,可以表示概率分布。
背景技术:
1、测量设备(例如,传感器)几乎遍及现代生活的所有方面。从对车辆操作(例如,发动机和性能)的监视,到制造设备和操作、配电网络、交通控制和电信网络。此监视产生的技术数据对于帮助管理这些复杂的机器、结构和布置以实现更好的效率和安全性至关重要。‘大数据’分析的出现与此技术数据的指数级增长齐头并进。
2、然而,从此类技术数据集合的分析获益的能力是基于数据自身的准确性和可靠性。如果所分析的数据质量差,则基于所述分析的结果作出的决策也差。引用一句古老的谚语:‘垃圾进,垃圾出’。
3、在所有测量设备中,不管如何复杂,‘测量’永远不会与‘被测量’相同。根据计量学的标准术语,由测量设备测量的输入信号的真值被称为‘被测量’。类似地,作为测量过程的结果由测量设备获得的被测量的估计被称为‘测量’。
4、‘被测量’的值与‘测量’的值之间的这种差异要么是因为测量仪器/传感器中的干扰(例如,诸如约翰逊-奈奎斯特噪声之类的电路噪声,或随机电报噪声,或换能器漂移),要么是因为其中进行测量或感测的环境的性质(例如,在lidar中,所谓的‘多路径’会导致读数异常)。
5、测量仪器/传感器中的噪声和由于环境或其它非仪器因素带来的测量误差可统称为‘测量不确定性’。
6、对与技术数据集合相关联的测量不确定性的了解准许用户知晓基于所述数据作出的分析结果和决策的不确定性,并因此还知晓其可靠性。对此测量不确定性的忽视可能导致不良决策。这可能是安全关键的,并且当所讨论的决策是由无法作出可接受的风险评估判断的机器(例如,无人驾驶汽车、飞机自动驾驶系统、自动交通灯系统等)作出时,这一点至关重要。
7、鉴于以上考虑设计了本发明。
技术实现思路
1、不确定的数据是普遍存在的。常见示例是传感器测量,其中物理测量的真正性质意味着在所记录值(测量)与所测量的量(被测量)之间始终存在某种程度的不确定性。此形式的测量不确定性经常通过在被测量名义上固定的情况下执行重复测量且使用统计分析观察各个测量的变化来量化。此类值不确定性是因为关于其应当采取的值的信息不完整而产生的,并且在现代计算系统中越来越重要。现代计算机架构既不支持有效地表示不确定性,更不用说此类值的算术和控制流。当今计算机架构用单点值或“颗粒”值(即,无相关联不确定性分布的数据)表示不确定值,通常将平均值用作计算中使用的表示。下文为了简洁性,我们将单点值(即,不具有相关联分布的数据)称为“颗粒”值。
2、本发明提供一种用于对与不确定性现实世界数据相关的数据(例如,与来自传感器的测量值相关联的功能数据,或与物理系统的状态相关联的值)的数据结构内的信息进行编码的编码方法,用于有效地存储(例如,物理上在寄存器堆中,在缓冲存储器或其它存储器存储装置中)所述信息和/或通过后续计算有效地传播所存储信息。
3、本发明可以编码、表示和传播表示由测量设备(例如,传感器)得到的测量数据或与物理系统的状态相关联的值的不确定性的分布信息/数据(例如,概率分布、频率分布等)。
4、编码方法及其生成的数据结构中背后的技术考虑与经编码数据的预期用途有关:即,在对表示数据值不确定性的分布执行的计算中的使用。这些考虑允许计算架构使用数据结构内的参数有效地工作,所述参数对描述现实世界数据不确定性的概率分布进行编码。其结果是提供了一种用于生成新参数的高效方法,所述参数符合/遵守通用数据结构格式和要求,且对表示对两个(或更多个)其它概率分布应用算术运算的结果的概率分布进行编码。这使得当计算通过应用附加算术运算计算的量的不确定性时能够一致地对新参数应用附加的此类计算。因此,对两个或更多个“颗粒”值执行以获得新“颗粒”值的计算也可以并行地对所述两个或更多个“颗粒”值的对应不确定性分布执行,以便有效且一致地获得与新“颗粒”值相关联的新不确定性分布。
5、在第一方面中,本发明可以提供一种用于数据分布的编码和计算的计算机实施的方法,所述方法包括:
6、获取数据项目的第一集合;
7、获取数据项目的第二集合;
8、生成第一元组,所述第一元组含有对表征第一集合的数据项目的分布的概率分布进行编码的参数;
9、生成第二元组,所述第二元组含有对表征第二集合的数据项目的分布的概率分布进行编码的参数,其中用于对第二集合的数据项目的分布进行编码的参数与用于对第一集合的数据项目的分布进行编码的参数相同;
10、使用包含于第一元组内的参数且使用包含于第二元组内的参数生成第三元组,所述第三元组含有对表示对第一概率分布和第二概率分布应用算术运算的结果的概率分布进行编码的参数;
11、输出所述第三元组。
12、以此方式,每一元组提供数据结构,在所述数据结构内对表示概率分布(例如,相关联“颗粒”值的不确定性)的分布信息进行编码。本文对“元组”的参考可被视为包含对由界定构成记录的有序数据集合的多个部分组成的数据结构的参考,如此项技术中通常理解的。在数学中,元组是元素的有限有序列表(序列),例如具有n个元素的序列(或有序列表),其中n是非负整数。因此根据本发明的优选实例的包含于第一元组、第二元组和第三元组内的参数是有序的,符合通用参数排序或序列,所述通用参数排序或序列控制/指示计算系统实施关于如何计算将与新“颗粒”数据项目相关联的新分布数据(即,经一致编码的新元组)的方法,所述新颗粒数据项目是通过对各自具有自身相应的相关联分布数据(即,经一致编码的相应元组)的两个或更多个其它“颗粒”数据项目进行算术运算生成的。这些经编码数据结构(元组)不同于数据(分布)自身。数据结构可以由实施所述方法的计算系统自动辨识,使得其可以相应地操作。以此方式,数据结构的编码、计算系统为使用数据结构内的数据执行计算而对数据结构进行的解译以及当针对计算的新“颗粒”数据项目计算新分布信息时由计算系统获得的技术/操作效率之间存在因果关系。
13、“变量”可被视为作为用于表达可变化或可改变的量的占位符起作用的符号。举例来说,“变量”可用于表示函数的自变量或集合的任意元素。在数学中,参数可被视为变量,其可能值范围识别问题中的一系列相异情况。举例来说,用参数表示的任何方程都是是参数方程。举例来说,呈梯度-截距形式的直线的一般方程y=mx+c是参数方程的示例,其中m和c是参数。此方程的不同实例可以称为使用“相同”参数(即,梯度参数m和截距参数c),无论那些参数的实际值是否相同:第一实例y=m1x+c1;第二实例y=m2x+c2使用相同参数(梯度-截距),无论m1和m2的实际值是否相等(即,m1=m2)且无论c1和c2的实际值是否相等(即,c1=c2)。在此意义上,含有对相应概率分布进行编码的参数的任何两个元组可以称为使用“相同”参数(例如,参数用途相同)。作为非限制性示例,在下文更详细地论述,用于对数据项目的分布进行编码的参数可以是以下参数:狄拉克δ函数的“位置”xi和“概率”pi。不同数据集合的不同分布可以使用这两个参数,且因此使用彼此“相同”的参数。当然,如该共享参数形式中所定义的,针对每一集合中的数据指派到这些参数(位置、概率)的实际值通常不相同。相同参数的使用使得方法能够使用元组对数据项目的分布进行编码来实现相同格式的表示,并且根据所述格式,可以再产生分布自身的相同格式的表示。
14、优选地,第三元组的输出包括以下各项中的一个或多个:在存储器中(例如,寄存器堆中、缓冲存储器或其它存储器存储装置中)存储第三元组;传输传达第三元组的信号(例如,经由电信号或经由电磁信号/载波)。因此,编码方法提高了存储和/或传输通过第三元组的数据结构编码的概率分布信息传输的效率。
15、根据所述方法,算术运算可以包括加法、减法、乘法、除法中的一个或多个,或通过用前述基本算术运算表示的更复杂的算术运算,例如,融合乘法和加法或平方根,或任何双变量运算,例如指数运算,这对于本领域的技术人员是显而易见的。因此,恰如新“颗粒”数据项目可以通过对各自具有其自身相应的相关联分布数据的两个或更多个其它“颗粒”数据项目进行任何此类算术运算而生成,类似地,针对新“颗粒”数据项目可以通过对与所述两个或更多个其它“颗粒”数据项目(例如,第一元组和第二元组)相关联的分布数据应用相同算术运算来计算新分布信息(例如,第三元组)。
16、第三元组可以含有对表征第三数据项目集合的数据项目的分布的概率分布进行编码的参数,其中用于对第三集合的数据项目的分布进行编码的参数与用于对第一集合的数据项目的分布进行编码的参数相同。因此,第三元组可以是含有根据与第一元组中采用的参数排序或序列相同的参数排序或序列进行排序的参数的数据结构。其优点是,当第一元组、第二元组和第三元组中的任一个或多个随后用于控制/指示计算系统计算将与又一新“颗粒”数据项目相关联的又一新分布数据(即,经一致编码的新元组)时提供这些元组中的共同数据结构,所述又一新“颗粒”数据是通过对各自具有其自身相应的相关联分布数据(即,经一致编码的相应元组)的两个或更多个“颗粒”数据项目进行算术运算生成的。
17、优选地,第一数据集合包括第一随机变量的样本,且第二数据集合包括第二随机变量的样本。
18、优选地,所述方法包括通过以下各项中的一个或多个输出第一元组:在存储器中(例如,寄存器堆中、缓冲存储器或其它存储器存储装置中)存储第一元组;传输传达第一元组的信号(例如,经由电信号或经由电磁信号/载波)。优选地,所述方法包括通过以下各项中的一个或多个输出第二元组:在存储器中(例如,寄存器堆中、缓冲存储器或其它存储器存储装置中)存储第二元组;传输传达第二元组的信号(例如,经由电信号或经由电磁信号/载波)。
19、所述方法可以包括通过以下各项中的一个或多个获得输出第一元组:从存储器检索输出第一元组;接收传达输出第一元组的信号。所述方法可以包括通过以下各项中的一个或多个获得输出第二元组:从存储器检索输出第二元组;接收传达输出第二元组的信号。所述方法可以包括使用包含于所获得的第一元组内和所获得的第二元组内的参数生成第三元组。
20、合意地,第一元组含有对表征第一集合的数据项目的分布的概率分布内的数据项目的位置进行编码的参数。举例来说,数据项目的位置可以是狄拉克δ函数的位置。优选地,第二元组含有对表征第二集合的数据项目的分布的概率分布内的数据项目的位置进行编码的参数。举例来说,数据项目的位置可以是狄拉克δ函数的位置。合意地,第三元组含有对表征第三数据项目集合的数据项目的分布的概率分布内的数据项目的位置进行编码的参数。举例来说,数据项目的位置可以是狄拉克δ函数的位置。
21、合意地,第一元组含有对表征第一集合的数据项目的分布的概率分布内的数据间隔的位置和/或宽度进行编码的参数。优选地,第二元组含有对表征第二集合的数据项目的分布的概率分布内的数据间隔的位置和/或宽度进行编码的参数。合意地,第三元组含有对表征第三数据项目集合的数据项目的分布的概率分布内的数据间隔的位置和/或宽度进行编码的参数。
22、合意地,第一元组含有对表征第一集合的数据项目的分布的概率分布内的数据项目的概率进行编码的参数。举例来说,在第一元组内编码的数据项目的概率可以是狄拉克δ函数的振幅或加权,所述函数可以根据对数据项目的位置进行编码的一个或多个参数来定位。优选地,第二元组含有对表征第二集合的数据项目的分布的概率分布内的数据项目的概率进行编码的参数。举例来说,在第二元组内编码的数据项目的概率可以是狄拉克δ函数的振幅或加权,所述函数可以根据对数据项目的位置进行编码的一个或多个参数来定位。合意地,第三元组含有对表征第三数据项目集合的数据项目的分布的概率分布内的数据项目的概率进行编码的参数。举例来说,在第三元组内编码的数据项目的概率可以是狄拉克δ函数的振幅或加权,所述函数可以根据对数据项目的位置进行编码的一个或多个参数来定位。
23、合意地,第一元组含有对表征第一集合的数据项目的分布的概率分布的一个或多个统计矩的值进行编码的参数。优选地,第二元组含有对表征第二集合的数据项目的分布的概率分布的一个或多个统计矩的值进行编码的参数。合意地,第三元组含有对表征第三数据项目集合的数据项目的分布的概率分布的一个或多个统计矩的值进行编码的参数。
24、合意地,表征第一集合的数据项目的分布的概率分布包括狄拉克δ函数的分布。优选地,表征第二集合的数据项目的分布的概率分布包括狄拉克δ函数的分布。合意地,表征第三集合的数据项目的分布的概率分布包括狄拉克δ函数的分布。
25、合意地,第一元组是n元组,其中n>1且为整数。优选地,第二元组是n元组,其中n>1且为整数。合意地,第三元组是m元组,其中n2/2<m<2n2,且其中n>1且为整数。举例来说,对于下文更详细论述的基于sodd的表示(即,除cmr外的所有表示),如果n是具有ndd个狄拉克δ的给定表示方法的存储器使用,则作为输入n元组的算术传播计算的初始m元组将使用个数字对个狄拉克δ进行编码(个数字足以满足需求的pqhr除外)。换句话说,(pqhr除外)下表1给出给定方法的n与ndd之间的关系。对于ttr和mqhr,n=2ndd,这表明
26、所述方法可以包括将第三元组(m元组表示)的大小减小为与第一元组和第二元组相同的大小(n元组),以提供作为n元组的经减小第三元组。其优点是实现了所计算的元组的固定大小(即,全部为n元组),从而实现所导出元组(即,对分布进行的算术的结果)的进一步计算。这可以通过以下来实现:将由第三元组表示的数据视为新“获得”数据集合(即,所获得的第三数据项目集合,作为算术运算的结果而获得)且从其生成“经压缩”第三元组,所述“经压缩”第三元组含有对表征第三集合的数据项目的分布的概率分布进行编码的参数。在经压缩第三元组中用于对第三集合的数据项目的分布进行编码的参数不仅可以与用于对第一集合的数据项目的分布进行编码的参数相同,而且经压缩第三元组还可以被构造成与第一元组和第二元组两者相同的大小(即,n元组;大小从m减小到n)。以此方式,本文公开的用于从所获得的数据项目集合生成元组的方法和设备中的任一个可以同等地应用于对分布应用算术运算的输出结果,以允许将所述输出表示为与表示所述算术应用的数据集合的元组具有相同大小的元组。本文对“第三元组”的参考在适当时可被视为包含对“经压缩第三元组”的参考。
27、在另一方面中,本发明在其第一方面中可以提供包括计算机程序的计算机程序产品,所述计算机程序当在计算机上执行时实施上文描述的本发明的方法。
28、在第二方面中,本发明可以提供一种用于实施数据分布的编码和计算的设备,所述设备包括:
29、存储器,其用于存储数据项目的第一集合和数据项目的第二集合;
30、处理器,其被配置成执行以下处理步骤:
31、生成第一元组,所述第一元组含有对表征第一集合的数据项目的分布的概率分布进行编码的参数;
32、生成第二元组,所述第二元组含有对表征第二集合的数据项目的分布的概率分布进行编码的参数,其中用于对第二集合的数据项目的分布进行编码的参数与用于对第一集合的数据项目的分布进行编码的参数相同;
33、使用包含于第一元组内的参数且使用包含于第二元组内的参数生成第三元组,所述第三元组含有对表示对第一概率分布和第二概率分布应用算术运算的结果的概率分布进行编码的参数;以及
34、输出所述第三元组。
35、优选地,处理器可以实施为微处理器,或专用数字逻辑电路,或被配置成执行处理步骤的模拟电路。优选地,所述设备被配置成通过以下各项中的一个或多个输出第三元组:在存储器中存储第三元组;传输传达第三元组的信号。
36、优选地,所述设备被配置成通过以下各项中的一个或多个输出第一元组:在存储器中存储第一元组;传输传达第一元组的信号。优选地,所述设备被配置成通过以下各项中的一个或多个输出第二元组:在存储器中存储第二元组;传输传达第二元组的信号。
37、所述设备被配置成通过以下各项中的一个或多个获得输出第一元组:从存储器检索输出第一元组;接收传达输出第一元组的信号。所述设备被配置成通过以下各项中的一个或多个获得输出第二元组:从存储器检索输出第二元组;接收传达输出第二元组的信号。所述设备被配置成使用包含于所获得的第一元组内和所获得的第二元组内的参数生成第三元组。
38、所述设备可以被配置成通过以下各项中的一个或多个执行第一元组的输出的步骤:在存储器中存储第一元组;传输传达第一元组的信号。所述设备可以被配置成通过以下各项中的一个或多个执行输出第二元组的步骤:在存储器中存储第二元组;传输传达第二元组的信号。所述设备可以被配置成通过以下各项中的一个或多个执行输出第三元组的步骤:在存储器中存储第三元组;传输传达第三元组的信号。
39、所述设备可以被配置成通过以下各项中的一个或多个执行获得输出第一元组的步骤:从存储器检索输出第一元组;接收传达输出第一元组的信号。所述设备可以被配置成通过以下各项中的一个或多个执行获得输出第二元组的步骤:从存储器检索输出第二元组;接收传达输出第二元组的信号。
40、所述设备可以被配置成执行包括以下各项中的一个或多个的算术运算:加法;减法;乘法;除法。
41、所述设备可以被配置成使得第三元组含有对表征第三数据项目集合的数据项目的分布的概率分布进行编码的参数,其中用于对第三集合的数据项目的分布进行编码的参数与用于对第一集合的数据项目的分布进行编码的参数相同。
42、所述设备可以被配置成使得第一元组含有对表征第一集合的数据项目的分布的概率分布内的数据项目的位置进行编码的参数。所述设备可以被配置成使得第二元组含有对表征第二集合的数据项目的分布的概率分布内的数据项目的位置进行编码的参数。所述设备可以被配置成使得第三元组含有对表征第三数据项目集合的数据项目的分布的概率分布内的数据项目的位置进行编码的参数。
43、所述设备可以被配置成使得第一元组含有对表征第一集合的数据项目的分布的概率分布内的数据间隔的位置和/或宽度进行编码的参数。所述设备可以被配置成使得第二元组含有对表征第二集合的数据项目的分布的概率分布内的数据间隔的位置和/或宽度进行编码的参数。所述设备可以被配置成使得第三元组含有对表征第三数据项目集合的数据项目的分布的概率分布内的数据间隔的位置和/或宽度进行编码的参数。
44、所述设备可以被配置成使得第一元组含有对表征第一集合的数据项目的分布的概率分布内的数据项目的概率进行编码的参数。所述设备可以被配置成使得第二元组含有对表征第二集合的数据项目的分布的概率分布内的数据项目的概率进行编码的参数。所述设备可以被配置成使得第三元组含有对表征第三数据项目集合的数据项目的分布的概率分布内的数据项目的概率进行编码的参数。
45、所述设备可以被配置成使得第一元组含有对表征第一集合的数据项目的分布的概率分布的一个或多个统计矩的值进行编码的参数。所述设备可以被配置成使得第二元组含有对表征第二集合的数据项目的分布的概率分布的一个或多个统计矩的值进行编码的参数。所述设备可以被配置成使得第三元组含有对表征第三数据项目集合的数据项目的分布的概率分布的一个或多个统计矩的值进行编码的参数。
46、所述设备可以被配置成使得表征第一集合的数据项目的分布的概率分布包括狄拉克δ函数的分布。所述设备可以被配置成使得表征第二集合的数据项目的分布的概率分布包括狄拉克δ函数的分布。所述设备可以被配置成使得表征第三集合的数据项目的分布的概率分布包括狄拉克δ函数的分布。
47、所述设备可以被配置成使得第一元组是n元组,其中n>1且为整数。所述设备可以被配置成使得第二元组是n元组,其中n>1且为整数。所述设备可以被配置成使得第三元组是m元组,其中n2/2<m<2n2,且其中n>1且为整数。
48、在另一方面中,本发明可以提供一种用计算机程序编程的计算机,所述计算机程序当在计算机上执行时实施根据上文在本发明的第一方面中描述的方法。
49、本发明包含所描述的方面和优选特征的组合,除非明显不允许或明确避免此类组合。这意味着例如本发明的第一方面(方法)可以根据本发明的第三方面(下文)通过提供实施方法的微架构来实施。类似地,本发明的第二方面(设备)可以根据本发明的第四方面(下文)实施为微架构。
50、计算机用点值数字实行算术。然而,主导当代计算系统的数据是来自例如传感器的测量过程。所有测量固有地是不确定的,且此不确定性经常以统计方式表征且形成偶然不确定性。另外,概率分布的许多其它当代应用,例如机器学习,包括也具有固有的认知不确定性(例如,关于神经网络的权重)的模型。硬件和软件可利用测量中的这种不确定性来得到改进的性能,并用性能换取功率耗散优点或结果的质量。然而所有这些潜在应用都受益于更有效的方法来表示任意现实世界概率分布并通过算术传播那些分布。
51、本发明人已认识到,分布的域中的每一实数都可以通过狄拉克δ描述,所述狄拉克δ具有位于所述实数的值处的某一概率质量。分布在其域内用狄拉克δ进行的此表示不同于概率质量函数(pmf)的表示,其中分布的域按照定义是离散值,且积分可被和代替。因为狄拉克δ分布不是函数而是分布,所以分布表示为狄拉克δ的集合也不同于概率密度函数(pdf)的概念。因此本发明人在此将包括狄拉克δ的总和的表示称为概率密度分布(pdd)。
52、概率密度分布(pdd)和有限维表示
53、大体来说,实值随机变量的特征在于其在实数上定义的pdd。因为我们关注计算机表示,所以关于此概率分布的信息是通过有限多的实数表示来表示。由于有限大小的实数表示(例如,32位浮点表示)提供实直线的离散且有限的表示,因此常规的是以概率质量函数(pmf)而不是pdd来工作。然而,在本公开中,我们忽略实数表示中的误差,且假定每一实数可精确表示。这去除了随机变量采用的所有容许值的离散性质,因此我们采用的是使用pdd而不是pmf的形式。因此,可以通过使用有限多的(比如n个)(精确表示的)实数来表示而封装计算机在表示给定抽象pdd时的有限能力,我们将这称为具有大小n的有限维表示。
54、对pdd的计算首先需要用于从随机变量的pdd的给定描述计算有限维表示的算法,其次需要用于在给定算术运算下传播此类表示的算法。在本公开中,我们将这两个类型的算法分别称为有限维表示方法和算术传播方法。本公开呈现了用于具有随机变量的计算的此类方法的示例。
55、pdd的描述可以是分析表达式,或者可以呈从自身产生离散pdd的分布抽取的样本的形式。本公开呈现了对于从任何pdd(无论是连续还是离散)计算表示所通用的方法。本公开的应用涉及物理测量中的偶然不确定性(例如,自主交通工具中的有噪声的传感器)和认知不确定性(例如,神经网络中的权重)的计算。本公开的应用涉及根据从离散分布抽取的样本计算的表示。本公开在相互独立的随机变量的情况下考虑算术传播。
56、作为实数的一般化的实值随机变量。
57、在实值随机变量的一般化情境中,给定实数可以视为随机变量,其pdd集中于单个点,即x=x0。此点值变量的pdd由狄拉克δ分布给出。假设表示上的连续函数的空间。我们将下式定义的有界线性函数性
58、
59、称为狄拉克δ分布。应注意,δ不是函数,因为常规的积分记法可能误导推断。但我们仍将可互换地采用记法x0:=:δ(x-x0)来代表具有在x=x0处的评估的狄拉克δ分布,因为此记法与积分记法中的变量改变的应用是一致的。此后,我们将所有实数视为具有由δx0给定的相关联pdd的点值随机变量。
60、本文中我们称pddfx在其具有以下形式时是‘狄拉克δ总和’(sodd)表示:
61、
62、其中pn∈[0,1]且:
63、
64、有限维表示
65、为了提供一些示例实现对本发明的更好理解,本公开介绍了五种有限维表示方法。呈现了用于从给定pdd计算用于给定方法的表示的算法,以及用于从给定有限维表示导出近似pdd的算法以及控制其在加法和乘法的算术运算下的传播的规则。
66、有限维表示方法
67、对于给定有限维表示方法表示是随机变量(或其pdd)到中的映射,其中我们将n称为表示的维度。本公开针对此处考虑的每一方法描述对应表示关于fx的信息可以由数据样本提供。
68、对于给定的基于sodd的表示,我们通过ndd表示对应sodd分布中的狄拉克δ的数目。ndd不与维度n相同,维度n等于在给定表示方法的上下文内指定近似sodd分布所需的实数的最小数目。一般来说,我们使ndd<n。表1针对本文公开且在下文更详细论述的基于sodd的表示方法的每一示例概括ndd与n的关系。
69、表1
70、
71、示例1:规则量化直方图表示(rqhr)
72、此表示方法假定给定变量x的值范围r(x)是已知且有限的,即,|r(x)|<1。应注意,如果x的pdd是由有限多的样本构成,则情况始终是这样。基本想法是通过将r(x)划分为ndd个相等大小的(规则)间隔来创建近似sodd分布,且通过位于每一间隔的中心的经加权狄拉克δ表示给定pdd,所述经加权狄拉克δ的权重等于在对应间隔上的pdd的概率质量。如果我们定义x0:=inf r(x)且lx:=|r(x)|/n,则前述规则间隔具有以下形式:
73、in=(x0+(n-1)lx,x0+nlx),1≤n≤ndd
74、这些间隔上的概率pn给出如下:
75、
76、随后,x的n维规则量化直方图表示(rqhr)被定义为有序n元组:
77、
78、此处ndd=n-2。rqhr的对应近似sodd分布具有以下形式:
79、
80、示例2:概率量化直方图表示(pqhr)
81、如同其中x的值范围经规则量化的rqhr方法,此方法也将范围量化为间隔,但间隔具有相同的概率质量。
82、首先,间隔定义如下:
83、
84、函数是fx的逆,其中fx是随机变量x的累积分布函数。
85、对所有间隔共同的概率质量的在给定间隔内的xn的期望值μxn是:
86、
87、随后,x的n维概率量化直方图表示(pqhr)被定义为有序n元组:
88、
89、此处ndd=n。pqhr的对应近似sodd分布具有以下形式:
90、
91、示例3:矩量化直方图表示(mqhr)
92、给定具有pdd fx和期望值μx的随机变量x,假设cmfx是x的累积矩函数,由下式定义:
93、
94、应注意cmfx是单调增加的,因此我们得到:
95、
96、其中tmx是围绕μx的x的总矩(即,设定x0=μx)且由下式给出:
97、
98、此处我们假定tmx是有限的,这对于由有限多的样本生成的pdd的实际情况也成立。我们通过将累积矩tmx量化来分割x的值范围,例如实直线。因此,我们将间隔定义如下:
99、
100、如前所述,给定x∈in来考虑x的期望值:
101、
102、此处,
103、
104、随后,x的n维矩量化直方图表示(mqhr)被定义为有序n元组:
105、
106、此处,ndd=n/2。mqhr的对应近似sodd分布具有以下形式:
107、
108、示例4:伸缩扭矩表示(ttr)
109、对于具有pdd fx和期望值μx的随机变量x,我们定义:
110、
111、且
112、x-:=x|x∈ω-,x+:=x|x∈ω+
113、以下算法是ttr方法的基础。
114、假设x是具有pdd fx和期望值μx的随机变量。存在呈具有大小2的sodd分布的形式的唯一近似pdd即:
115、其中p-+p+=1
116、使得:
117、(1)
118、(2)
119、(3)
120、此外,这个具有大小2的唯一sodd分布的上述参数p±和x±满足:
121、p-=prx(ω-),p+=prx(ω+),x-=e[x-],x+=e[x+]
122、此处所围绕的直觉是期望值是pdd fx的质量中心,例如在具有由fx描述的质量密度的杆中,如果受到来自x=μx的支持,它保持平衡,并且人们可以完整地知晓平衡扭矩(sodd分布中的2个狄拉克δ),即力(重量或概率质量)和距离(位置),前提是知道从两侧施加的总矩的量值(上述性质(2))和两侧的重量的比率(上述性质(3))。可以迭代此唯一2-sodd分布的想法,即以伸缩方式保持关于期望值的扭矩信息(ttr方法的名称来源于此),以得到一个唯一2n-sodd分布,其含有关于被局限于上文给出的ω-和ω+形式的特殊归纳定义的间隔的x的期望值的所有扭矩信息。
123、x的ttr归纳公式如下。我们将x的第0阶ttr定义为其期望值,记录为n=2x20=2元组:
124、
125、此元组将实数表示为采用具有概率1的值μx,具有大小为1的对应近似sodd分布:
126、
127、x的第1阶ttr由n=2x 21=4元组给出:
128、
129、这对应于由上述等式给出的具有大小2的唯一sodd分布。一般来说,x的第n阶ttr将是n=2x 2n元组:
130、
131、这具有大小为ndd=2n的对应sodd分布。对于较高阶ttr,我们将引入上文给出的定义的归纳扩展。为此我们引入以下索引记法。假设α代表“-”和“+”符号的串接序列,例如,α=-+-或α=+,假设|α|是序列α的长度,且假设α=+和α=-分别意味着通过向α的右端串接“-”符号或“+”符号获得的长度为|α|+1的序列。我们随后归纳定义:
132、ωα-:={x∈ωα:x<e[xα]},ωα+:={x∈ωα:x≥e[xα]}
133、且
134、xα-:=x|x∈ωα-,xα+:=x|x∈ωα+
135、应注意,对于给定n≥1,存在具有长度n的2n个相异序列和实际上是间隔的对应2n个域ωα。这2n个间隔分割且根据枚举排序,其中对于1≤i≤2n,是通过用“-”和“+”符号分别替换i-1的长度n二进制表示中的0和1而获得的序列。举例来说,和随后,x的第n阶ttr被定义为有序n元组(n=2n+1):
136、
137、此处:
138、
139、且
140、
141、ttr的对应近似sodd分布具有以下形式:
142、
143、示例5:集中式矩表示(cmr)
144、x的第n集中式矩μn(x)(其中n≥0)被定义为:
145、μ0(x)∶=1,,
146、
147、
148、随后,x的n维集中式矩表示(cmr)被定义为有序n元组
149、
150、此集中式矩的定义不同于文献中的典型定义:第一集中式矩μ1(x)常规地以期望值为中心来计算且因此为0。相比之下,在本公开中,我们将μ1(x)定义为等于x的期望值。此公式允许我们在较低阶集中式矩方面递归地定义所有集中式矩,其中第零阶集中式矩μ0(x):=1为递归的基本条件。
151、因为pdd是狄拉克δ分布的集合,所以存在若干种根据对集中式矩的了解近似pdd的方法。可能的方法包含gram-charlier级数[参考文献1]和edgeworth型展开[参考文献2]。另外,可以使用bhattacharya等人描述的正式edgeworth级数[参考文献3]来从cmr构造近似pdd。
152、算术运算
153、在此部分,我们概括了刚才介绍的有限维表示的算术运算(传播)的规则。对于给定的两个随机变量x和y,以下公开内容描述了如何传播给定类型的x和y的表示以找到用于随机变量z:=(x;y)的相同类型的表示。用于所有基于sodd的表示方法,即除cmr外的所有方法的传播规则是相同的,因为它们适用于底层sodd分布而非表示的方法。因此,以下公开内容描述了两组算术传播规则,一组用于cmr,一组用于基于sodd的表示。为了简单起见,在cmr的算术传播的情况下,我们将仅注意加法和乘法的算术运算。然而,应理解,基于sodd的表示中值与变量的加法或乘法会导致表示的狄拉克δ的位置偏移或按比例缩放,因此可以通过与-1相乘将减数的基于sodd的表示(即,将与另一量或数字相减的量或数字的基于sodd的表示)取否来实现两个不确定变量的减法。对于基于sodd的表示中的变量除法的情况,我们将其定义为使用除数变量的倒数进行的乘法。基于sodd的表示中的变量的倒数可通过计算输入狄拉克δ位置的倒数来构造。举例来说,sodd狄拉克混合体表示的两个随机变量的除法可以实施为被除数与除数倒数的乘法。除数的倒数可以通过计算其狄拉克混合体表示的位置的倒数来构造。
154、示例5:基于sodd的表示的传播
155、假设我们被给定固定类型的n维基于sodd的表示,即,rqhr、pqhr、mqhr或ttr,且将其称为fdr。对于两个相互独立的随机变量x和y,其中具有大小ndd的近似sodd分布给定为:
156、
157、呈具有大小ndd的sodd分布的形式的这两个pdd的传播完成以获得即呈具有大小的sodd分布的形式的pdd,由下式给出:
158、
159、接着,可以从此pdd生成“经压缩”第三元组使得:
160、
161、这是随机变量的算术传播的n维表示:
162、z=重φ(x,y)
163、其被建立为由pdd描述的随机变量的n维表示,即:
164、
165、此方程是其中较大m元组表示减小回到n元组的情况。这可以优选地完成以实现所计算的元组的固定大小。因此,为了实现用导出的元组(上述m元组)的进一步计算,可以将这些m元组减小回到n元组。这可以通过将由表示的数据视为新的“所获”数据集合(即,作为算术运算的结果获得的所获第三数据项目集合)且从其生成“经压缩”第三元组来实现,所述第三元组含有对表征由定义的第三集合的数据项目的分布的概率分布进行编码的参数。
166、算术运算
167、举例来说,在对各自被定义为相应有序n元组的两个rqhr表示进行的算术的情况下:
168、
169、rqhr的对应近似sodd分布具有以下形式:
170、
171、当然,对于变量y中的分布,我们简单地用如下取代来重写上述方程:x→y,x→y,x0→y0和lx→ly。因此,传播结果的φ(xn,ym)内的xn、ym如下给出:
172、
173、
174、在进行分布加法的情况下,传播结果是:
175、
176、其中
177、φ(xn,ym)=φ+(xn,ym)=xn+ym
178、在进行分布乘法的情况下,传播结果是:
179、
180、其中
181、φ(xn,ym)=φ×(xn,ym)=xn×ym
182、举例来说,在对各自被定义为相应有序n元组的两个pqhr表示进行的算术的情况下:
183、
184、pqhr的对应近似sodd分布具有以下形式:
185、
186、当然,对于变量y中的分布,我们简单地用如下取代来重写上述方程:x→y,x→y和μxn→μym。因此,传播结果的φ(xn,ym)内的xn、ym如下给出:
187、xn=μxn
188、ym=μym
189、在进行分布加法的情况下,传播结果是:
190、
191、其中
192、φ(xn,ym)=φ+(xn,ym)=xn+ym
193、在进行分布乘法的情况下,传播结果是:
194、
195、其中
196、φ(xn,ym)=φ×(xn,ym)=xn×ym
197、举例来说,在对各自被定义为相应有序n元组的两个mqhr表示进行的算术的情况下:
198、
199、mqhr的对应近似sodd分布具有以下形式:
200、
201、当然,对于变量y中的分布,我们简单地用如下取代来重写上述方程:x→y,x→y和xn→ym。因此,传播结果的φ(xn,ym)内的xn、ym直接由相应sodd分布的xn和yn给出。在进行分布加法的情况下,传播结果是:
202、
203、其中
204、φ(xn,ym)=φ+(xn,ym)=xn+ym
205、在进行分布乘法的情况下,传播结果是:
206、
207、其中
208、φ(xn,ym)=φ×(xn,ym)=xn×ym
209、举例来说,在对各自被定义为相应有序n元组的两个ttr表示进行的算术的情况下:
210、
211、ttr的对应近似sodd分布具有以下形式:
212、
213、当然,对于变量y中的分布,我们简单地用如下取代来重写上述方程:x→y,x→y和因此,传播结果的φ(xn,ym)内的xn、ym如下给出:
214、
215、
216、在进行分布加法的情况下,传播结果是:
217、
218、其中
219、φ(xn,ym)=φ+(xn,ym)=xn+ym
220、在进行分布乘法的情况下,传播结果是:
221、
222、其中
223、φ(xn,ym)=φ×(xn,ym)=xn×ym
224、cmr的传播
225、对于给定的两个随机变量x和y,以下公开内容描述了如何传播给定类型的x和y的表示以找到用于随机变量z:=(x;y)的相同类型的表示。围绕x和y的期望值,即围绕(μx;μy)使用φ(x;y)的多变量泰勒展开得到:
226、
227、针对以下情况:
228、z+=φ+(x,y)=x+y
229、和
230、z×=φ×(x,y)=x×y
231、上述泰勒展开精简为:
232、φ+(x,y)=μx+μy+(x-μx)+(y-μy)
233、和
234、φ×(x,y)=μxμy-μy(x-μx)-μx(y-μy)+(x-μx)(y-μy)
235、这是在相互独立的随机变量的情况下,即,fx;y=fxfy。此结果用于生成在上文定义的函数内出现的φ(xn,ym)的值(例如,在适当时φ(x;y)=φ+(x,y)或φ(x;y)=φ×(x,y))。
236、对于随机变量z=(x;y)的第n集中式矩,我们得到:
237、
238、
239、在x和y的集中式矩方面对此积分进行近似使用的是上文所定义的围绕x和y的期望值,即围绕(μx;μy)的多变量泰勒展开。这在x和y的前n个集中式矩方面给出z+和z×的前n个集中式矩的近似为:
240、
241、
242、以及
243、
244、
245、
246、举例来说,假设x和y分别是具有n维cmr的两个相互独立随机变量:
247、且
248、随后,可以分别经由给出的关系确切地计算随机变量z+=x+y和z×=x×y的n维cmr:
249、且
250、本发明可以编码、表示和传播表示由测量设备(例如,传感器)得到的测量数据的不确定性的分布信息/数据(例如,概率分布、频率分布等)和/或可以传播定义人工神经网络的分布权重的分布信息/数据。
251、大体来说,可以使用第一元组(即,表示第一分布)的参数(例如,狄拉克δ位置、高度/概率)且使用第二元组(即,表示第二分布)的参数(例如,狄拉克δ位置、高度/概率)执行算术运算以生成第三元组,所述第三元组包括具有界定由应用于第一分布和第二分布的算术运算生成的分布的值的参数(例如,狄拉克δ位置、高度/概率)。此第三元组可以随后优选地用于生成本文所描述的“经压缩”第三元组,其具有与第一元组和第二元组相同的大小(例如,n元组)。第一元组和第二元组优选地具有相同大小(例如,都是n元组)。
252、表示第三分布的数据的狄拉克δ函数的位置可以通过使用表示第一数据分布和第二数据分布的数据的狄拉克δ函数的位置计算的位置值(例如,如本文所公开)来定义。第一数据分布和第二数据分布的这些位置值可以包含于第一元组和第二元组内。表示第三分布的数据的狄拉克δ函数的高度/概率可以通过计算表示第一数据分布和第二数据分布的数据的狄拉克δ函数的高度/概率的乘积来生成。第一数据分布和第二数据分布的这些高度/概率值可以包含于第一元组和第二元组内。
253、第三元组可以含有各自根据第一元组中的相应概率值和第二元组中的相应概率值(例如,当算术运算是乘法运算或加法运算等时第一元组中的相应概率值和第二元组中的相应概率值的乘积)生成的概率值(例如,狄拉克δ高度/概率)。概率值可以表示由第三元组表示的分布内的狄拉克δ函数的振幅、高度或加权。
254、第三元组可以含有各自根据第一元组中的相应位置值和第二元组中的相应位置值(例如,当算术运算是乘法运算(或加法运算)等时第一元组中的相应位置值和第二元组中的相应位置值的乘积(或加法))生成的位置值。位置值可以表示由第三元组表示的分布内的狄拉克δ函数的位置。
255、本发明不限于基于狄拉克δ函数的表示(例如mqhr),且第一元组、第二元组和第三元组通常可以含有根据其它表示的参数,例如对表征第一分布、第二分布和第三分布的数据项目的分布的概率分布内的数据间隔的位置和/或宽度进行编码的参数。举例来说,第一元组、第二元组和第三元组可以含有对表征数据项目分布的概率分布的一个或多个统计矩的值进行编码的参数。
256、算术过程允许使用第一元组和第二元组的参数生成第三元组的每一参数。一旦计算出第三元组的参数,则这以极高效形式将第三分布的分布信息完全编码,从而准许在需要时再生第三分布,且准许第三元组存储于存储器介质中和/或作为信号传输。
257、在其它方面中,单独地或与本文的任何其它方面结合,本发明可以涉及以下方面。换句话说,下文描述的方面中的任何一个或多个可以被视为与上文描述的任一个方面分开或组合地应用。举例来说,上文描述的设备可以包括下文描述的微架构,且对于上文描述的方法和下文描述的方法,也是如此。
258、在第三方面中,本发明可以提供一种用于数据分布的计算的方法,所述方法包括提供微架构,所述微架构包括:
259、第一寄存器,其含有数据项目;
260、第二寄存器,其含有表示作为与相应所述数据项目相关联的不确定性表示的分布的分布数据;
261、第一算术逻辑单元,其用于对选自所述第一寄存器的数据项目执行算术;
262、第二算术逻辑单元,其用于对选自所述第二寄存器的分布数据执行算术;
263、所述方法包括由所述微架构实施的以下步骤:
264、由所述第一算术逻辑单元对选自所述第一寄存器的数据项目执行算术运算,且输出结果;
265、由所述第二算术逻辑单元对表示与选自所述第一寄存器的所述数据项目相关联的选自所述第二寄存器的分布的分布数据执行算术运算,且输出结果;
266、其中对选自所述第二寄存器的所述分布数据执行的所述算术运算与对选自所述第一寄存器的所述数据项目执行的所述算术运算相同,由此生成表示与对选自所述第一寄存器的所述数据项目执行的所述算术运算的结果相关联的不确定性的附加分布数据。
267、以此方式,第一寄存器(例如,图6a的项目‘f0’)可以含有可以是单个项目的数据。第二寄存器(例如,图6a的项目‘df0’)可以含有第一寄存器中含有的单个项目的不确定性表示的分布数据。本文对含有数据项目的第一寄存器的参考可被视为包含对含有数据项目的第一寄存器集合的参考。类似地,本文对含有表示分布的分布数据的第二寄存器的参考可被视为包含对含有表示分布的分布数据的第二寄存器集合的参考。寄存器集合可被视为寄存器堆。
268、优选地,第一寄存器可以包括第一寄存器集合和/或可以包括寄存器堆。优选地,第二寄存器可以包括第一寄存器集合和/或可以包括寄存器堆。
269、在所述方法中,微架构可以包括例如被配置成含有浮点数据的浮点寄存器堆。浮点寄存器堆可以含有被配置成用于含有颗粒数据项目的第一寄存器堆,和被配置成用于含有分布数据的第二寄存器堆。微架构可以包括例如被配置成含有整数数据的整数寄存器堆。整数寄存器堆可以含有被配置成用于含有颗粒数据项目的第一寄存器堆,和被配置成用于含有分布数据的第二寄存器堆。分布数据可以表示作为与第一寄存器堆中的相应“颗粒”数据项目相关联的不确定性表示的分布(例如,基于sodd的表示)。在所述方法中,通过对第一寄存器堆内的给定“颗粒”数据值和将与所讨论的“颗粒”数据相关联的第二寄存器堆中的分布数据条目指派一个共同寄存器堆条目识别符,浮点寄存器堆可以使第一寄存器堆中的给定“颗粒”数据项目与其在第二寄存器堆内的相关联分布数据关联。以此方式,微架构中的浮点和/或整数寄存器堆可以使所有浮点和/或整数寄存器与分布信息关联。
270、微架构,以及一般来说本发明,可以通过用前述基本算术运算表示来计算更复杂的算术运算,例如融合乘法和加法或平方根,这对于本领域的技术人员是显而易见的。
271、合意地,所述第二算术逻辑单元对所述算术运算的执行是由触发所述第一算术逻辑单元对所述算术运算的执行的命令触发的。算术运算优选地包括以下各项中的一个或多个:加法;减法;乘法;除法。本发明一般来说可以通过用前述基本算术运算表示来计算更复杂的算术运算,例如融合乘法和加法或平方根,这对于本领域的技术人员是显而易见的。
272、所述方法可包含提供包括存储器单元的所述微架构,所述存储器单元被配置成将所述数据项目存储在其中的所寻址存储器位置处,所述方法包括由所述微架构实施的以下步骤:获取当第一算术逻辑单元执行算术运算时贡献于由第一算术逻辑单元执行的算术运算的数据项目的发源存储器位置地址;以及在存储器单元内的存储位置存储获得的发源存储器位置地址且使存储位置与所述附加分布数据关联。所获发源存储器位置可以组合形式存储,使得多个发源存储器位置地址可以一起存储于例如表中,其中多个发源存储器位置地址存储于相同表条目/位置中。
273、算术运算的结果可以输出到随机存取存储器。这些输出结果可以包括“颗粒”数据值和分布数据。每一“颗粒”数据值可以存储于提供物理地址空间的存储器单元中,且可以与存储于分布存储器单元中的分布表示相关联。可以提供存储器存取单元和寄存器回写单元以定义寄存器堆与微架构的算术逻辑单元之间的接口。可以提供指令提取单元,其与“颗粒”存储器单元通信以存取存储器单元,从而从其提取指令。可以提供与分布存储器单元直接通信的加载/存储单元,且可以提供指令提取单元但并不如此连接。这意味着对分布数据执行算术运算可以自动发生而不需要或不会干扰指令提取单元的操作。以此方式,由对“颗粒”数据及其相关联分布数据的算术运算生成的分布数据的计算可以在微架构层级发生。因此,微架构可以被配置成仅允许加载/存储指令存取随机存取存储器。因此,可以此方式提供扩展存储器,微架构可将微架构寄存器的“颗粒”和分布信息两者加载和存储到所述扩展存储器。
274、在所述方法中,微架构可以被配置成跟踪在任何时间点存储器单元的哪些存储器地址已贡献于任何给定浮点或整数寄存器的值的计算。当由算术运算生成的“颗粒”值从微架构的寄存器输出时,由算术运算生成的颗粒值的输出数据可以存储于存储器中。关于贡献于输出结果的颗粒数据项目的原始地址或发源地址(在本文中被称作“起源地址”或“祖先地址”:这两个术语指代相同事物)的信息也可以存储于存储器单元内。处理器可以被配置成随后当从存储器加载寄存器的内容(例如,存储的“颗粒”值)以供进一步使用时重新调用起源地址。这在下文更详细地论述,且我们将此相关性跟踪称为“起源地址跟踪”机制。在本发明中,在优选实施例中,每一浮点/整数寄存器的值发源于存储器单元的一个或多个地址。通过维持和传播这些地址,本发明能够动态地识别任何两个浮点/整数寄存器之间的相关性。此信息可以例如使用“起源地址”的动态链表来维持。
275、在所述方法中,第一寄存器优选地含有第一数据项目和第二数据项目。举例来说,第一寄存器可以包括含有数据项目的第一寄存器集合,所述数据项目包含第一数据项目和第二数据项目。优选地,第一数据项目包括第一随机变量的值,且第二数据项目包括第二随机变量的值。类似地,第二寄存器可以包括含有表示分布的分布数据的第二寄存器集合。举例来说,第一寄存器和第二寄存器可以各自为寄存器堆。合意地,所述第二寄存器含有包括第一元组的第一分布数据,所述第一元组含有对表征与所述第一数据项目相关联的不确定性表示的概率分布进行编码的参数。优选地,所述第二寄存器含有包括第二元组的第二分布数据,所述第二元组含有对表征与所述第二数据项目相关联的所述不确定性表示的概率分布进行编码的参数,其中用于对所述第二分布数据进行编码的参数与用于对所述第一分布数据进行编码的参数相同。
276、合意地,所述由所述第二算术逻辑单元对分布数据执行算术运算包括选择所述第一元组和所述第二元组且随即使用包含于所述第一元组内的参数且使用包含于所述第二元组内的参数生成第三元组,所述第三元组含有对所述附加分布数据进行编码的参数。所述方法可以包括输出第三元组。输出元组可以包括将其输出到存储器以用于存储,或输出到传输器以用于传输。
277、优选地,所述第三元组含有对所述附加分布数据进行编码的参数,所述参数与用于对表征与所述第一数据项目相关联的所述不确定性表示的所述概率分布进行编码的所述参数相同。当然,如果第二元组含有与第一元组中用于对第一分布数据进行编码的参数相同的对概率分布进行编码的参数,如上文所论述,则这些参数也将是与第三元组中所用相同的参数(即,在本质上“相同”,但通常值不“相同”)。
278、合意地,分布数据包括相应数据项目的概率分布。
279、优选地,所述第一元组含有对表征与所述第一数据项目相关联的所述不确定性表示的所述概率分布内的数据项目的位置进行编码的参数。合意地,所述第二元组含有对表征与所述第二数据项目相关联的所述不确定性表示的所述概率分布内的数据项目的位置进行编码的参数。优选地,所述第三元组含有对表征所述附加分布数据的概率分布内的数据项目的位置进行编码的参数。
280、合意地,所述第一元组含有对表征与所述第一数据项目相关联的所述不确定性表示的所述概率分布内的数据间隔的位置和/或宽度进行编码的参数。优选地,所述第二元组含有对表征与所述第二数据项目相关联的所述不确定性表示的所述概率分布内的数据间隔的位置和/或宽度进行编码的参数。合意地,所述第三元组含有对表征所述附加分布数据的概率分布内的数据间隔的位置和/或宽度进行编码的参数。
281、优选地,所述第一元组含有对表征与所述第一数据项目相关联的所述不确定性表示的所述概率分布内的数据项目的概率进行编码的参数。合意地,所述第二元组含有对表征与所述第二数据项目相关联的所述不确定性表示的所述概率分布内的数据项目的概率进行编码的参数。优选地,所述第三元组含有对表征所述附加分布数据的概率分布内的数据项目的概率进行编码的参数。
282、优选地,所述第一元组含有对表征与所述第一数据项目相关联的所述不确定性表示的所述概率分布的一个或多个统计矩的值进行编码的参数。合意地,所述第二元组含有对表征与所述第二数据项目相关联的所述不确定性表示的所述概率分布的一个或多个统计矩的值进行编码的参数。优选地,所述第三元组含有对表征所述附加分布数据的概率分布的一个或多个统计矩的值进行编码的参数。
283、优选地,表征与所述第一数据项目相关联的所述不确定性表示的所述概率分布包括狄拉克δ函数的分布。合意地,表征与所述第二数据项目相关联的所述不确定性表示的所述概率分布包括狄拉克δ函数的分布。优选地,表征所述附加分布数据的所述概率分布包括狄拉克δ函数的分布。
284、优选地,第一元组是n元组,其中n>1且为整数。优选地,第二元组是n元组,其中n>1且为整数。合意地,第三元组是m元组,其中n2/2<m<2n2,且其中n>1且为整数。从第一算术逻辑单元和/或第二算术逻辑单元输出结果可以包括以下各项中的一个或多个:在存储器中存储输出;传输传达输出的信号。
285、在另一方面中,本发明可以提供一种包括计算机程序的计算机程序产品,所述计算机程序当在计算机上执行时实施上文在本发明的第三方面中描述的方法。在又一方面中,本发明可以提供一种用计算机程序编程的计算机,所述计算机程序当在计算机上执行时实施上文在本发明的第三方面中描述的方法。
286、在第四方面中,本发明可以提供用于数据分布的计算的微架构,其包括:
287、第一寄存器,其被配置成用于含有数据项目;
288、第二寄存器,其被配置成用于含有表示作为与相应所述数据项目相关联的不确定性表示的分布的分布数据;
289、第一算术逻辑单元,其被配置成用于对选自所述第一寄存器的数据项目执行算术;
290、第二算术逻辑单元,其被配置成用于对选自所述第二寄存器的分布数据执行算术;
291、所述微架构被配置成实施以下步骤:
292、由所述第一算术逻辑单元对选自所述第一寄存器的数据项目执行算术运算,且输出结果;
293、由所述第二算术逻辑单元对表示与选自所述第一寄存器的所述数据项目相关联的选自所述第二寄存器的分布的分布数据执行算术运算,且输出结果;
294、其中对选自所述第二寄存器的所述分布数据执行的所述算术运算与对选自所述第一寄存器的所述数据项目执行的所述算术运算相同,由此生成表示与对选自所述第一寄存器的所述数据项目执行的所述算术运算的结果相关联的不确定性的附加分布数据。
295、优选地,第一寄存器可以包括第一寄存器集合和/或可以包括寄存器堆。优选地,第二寄存器可以包括第一寄存器集合和/或可以包括寄存器堆。
296、本文对含有数据项目的第一寄存器的参考可被视为包含对含有数据项目的第一寄存器集合的参考。类似地,本文对含有表示分布的分布数据的第二寄存器的参考可被视为包含对含有表示分布的分布数据的第二寄存器集合的参考。寄存器集合可被视为寄存器堆。
297、微架构可以包括例如被配置成含有浮点数据的浮点寄存器堆。浮点寄存器堆可以含有被配置成用于含有颗粒数据项目的第一寄存器堆,和被配置成用于含有分布数据的第二寄存器堆。微架构可以包括例如被配置成含有整数数据的整数寄存器堆。整数寄存器堆可以含有被配置成用于含有颗粒数据项目的第一寄存器堆,和被配置成用于含有分布数据的第二寄存器堆。分布数据可以表示作为与第一寄存器堆中的相应“颗粒”数据项目相关联的不确定性表示的分布(例如,基于sodd的表示)。
298、通过对第一寄存器堆内的给定“颗粒”数据值和将与所讨论的“颗粒”数据相关联的第二寄存器堆中的分布数据条目指派一个共同寄存器堆条目识别符,浮点寄存器堆可以使第一寄存器堆中的给定“颗粒”数据项目与其在第二寄存器堆内的相关联分布数据关联。以此方式,微架构中的浮点和/或整数寄存器堆可以使所有浮点和/或整数寄存器与分布信息关联。
299、微架构可被配置成执行包括加法、减法、乘法、除法中的一个或多个的算术运算,或通过用前述基本算术运算表示的更复杂的算术运算,例如,融合乘法和加法或平方根,或任何双变量运算,例如指数运算,这对于本领域的技术人员是显而易见的。
300、微架构可以被配置成将算术运算的结果输出到随机存取存储器。这些输出结果可以包括“颗粒”数据值和分布数据。微架构可以被配置成将每一“颗粒”数据值存储于提供物理地址空间的存储器单元中,且可以与存储于分布存储器单元中的分布表示相关联。微架构可以包括存储器存取单元和寄存器回写单元以定义寄存器堆与微架构的算术逻辑单元之间的接口。微架构可以包括指令提取单元,指令提取单元被配置成与“颗粒”存储器单元通信以存取存储器单元,从而从其提取指令。微架构可以包括被配置成与分布存储器单元直接通信的加载/存储单元,且微架构可以包括并不如此连接的指令提取单元。这意味着对分布数据执行算术运算可以自动发生而不需要或不会干扰指令提取单元的操作。因此,微架构可以被配置成仅允许加载/存储指令存取随机存取存储器。因此,微架构可以被配置成加载和存储微架构寄存器的“颗粒”和分布信息两者。
301、微架构可以被配置成跟踪在任何时间点存储器单元的哪些存储器地址已贡献于任何给定浮点或整数寄存器的值的计算。当由算术运算生成的“颗粒”值从微架构的寄存器输出时,由算术运算生成的颗粒值的输出数据可以存储于存储器中。关于贡献于输出结果的颗粒数据项目的原始地址或发源地址(在本文中被称作“起源地址”或“祖先地址”:这两个术语指代相同事物)的信息也可以存储于存储器单元内。处理器可以被配置成随后当从存储器加载寄存器的内容(例如,存储的“颗粒”值)以供进一步使用时重新调用起源地址。这在下文更详细地论述,且我们将此相关性跟踪称为“起源地址跟踪”机制。在本发明中,在优选实施例中,每一浮点/整数寄存器的值发源于存储器单元的一个或多个地址。通过维持和传播这些地址,本发明能够动态地识别任何两个浮点/整数寄存器之间的相关性。此信息可以例如使用“起源地址”的动态链表来维持。
302、微架构可以被配置成当被触发所述第一算术逻辑单元对所述算术运算的执行的命令触发时由所述第二算术逻辑单元执行所述算术运算。微架构的输出可以包括以下各项中的一个或多个:在存储器中存储输出;传输传达输出的信号。
303、微架构可以包括存储器单元,所述存储器单元被配置成将所述数据项目存储在其中的所寻址存储器位置处。微架构优选地被配置成获得当第一算术逻辑单元执行算术运算时贡献于由第一算术逻辑单元执行的算术运算的数据项目的发源存储器位置地址。微架构优选地被配置成在存储器单元内的存储位置处存储所获发源存储器位置地址且使存储位置与所述附加分布数据关联。所获发源存储器位置可以组合形式存储,使得多个发源存储器位置地址可以一起存储在例如表中,其中多个发源存储器位置地址存储于相同表条目/位置中。
304、所述第一寄存器优选地被配置成含有第一数据项目和第二数据项目。举例来说,第一寄存器可以包括含有数据项目的第一寄存器集合,所述数据项目包含第一数据项目和第二数据项目。优选地,第一数据项目包括第一随机变量的值,且第二数据项目包括第二随机变量的值。类似地,第二寄存器可以包括含有表示分布的分布数据的第二寄存器集合。举例来说,第一寄存器和第二寄存器可以各自为寄存器堆。优选地,所述第二寄存器被配置成含有包括第一元组的第一分布数据,所述第一元组含有对表征与所述第一数据项目相关联的所述不确定性表示的概率分布进行编码的参数。合意地,所述第二寄存器被配置成含有包括第二元组的第二分布数据,所述第二元组含有对表征与所述第二数据项目相关联的所述不确定性表示的概率分布进行编码的参数,其中用于对所述第二分布数据进行编码的参数与用于对所述第一分布数据进行编码的参数相同。
305、所述微架构可以被配置成由所述第二算术逻辑单元对分布数据执行算术运算,包括选择所述第一元组和所述第二元组且随即使用包含于所述第一元组内的参数且使用包含于所述第二元组内的参数生成第三元组,所述第三元组含有对所述附加分布数据进行编码的参数。微架构可以被配置成输出第三元组。
306、合意地,所述第三元组含有对所述附加分布数据进行编码的参数,所述参数与用于对表征与所述第一数据项目相关联的所述不确定性表示的所述概率分布进行编码的所述参数相同。
307、优选地,分布数据包括相应数据项目的概率分布。
308、所述第一元组可以含有对表征与所述第一数据项目相关联的所述不确定性表示的所述概率分布内的数据项目的位置进行编码的参数。所述第二元组可以含有对表征与所述第二数据项目相关联的所述不确定性表示的所述概率分布内的数据项目的位置进行编码的参数。所述第三元组可以含有对表征所述附加分布数据的概率分布内的数据项目的位置进行编码的参数。
309、所述第一元组可以含有对表征与所述第一数据项目相关联的所述不确定性表示的所述概率分布内的数据间隔的位置和/或宽度进行编码的参数。所述第二元组可以含有对表征与所述第二数据项目相关联的所述不确定性表示的所述概率分布内的数据间隔的位置和/或宽度进行编码的参数。所述第三元组可以含有对表征所述附加分布数据的概率分布内的数据间隔的位置和/或宽度进行编码的参数。
310、所述第一元组可以含有对表征与所述第一数据项目相关联的所述不确定性表示的所述概率分布内的数据项目的概率进行编码的参数。所述第二元组可以含有对表征与所述第二数据项目相关联的所述不确定性表示的所述概率分布内的数据项目的概率进行编码的参数。所述第三元组可以含有对表征所述附加分布数据的概率分布内的数据项目的概率进行编码的参数。
311、所述第一元组可以含有对表征与所述第一数据项目相关联的所述不确定性表示的所述概率分布的一个或多个统计矩的值进行编码的参数。所述第二元组可以含有对表征与所述第二数据项目相关联的所述不确定性表示的所述概率分布的一个或多个统计矩的值进行编码的参数。所述第三元组可以含有对表征所述附加分布数据的概率分布的一个或多个统计矩的值进行编码的参数。
312、表征与所述第一数据项目相关联的所述不确定性表示的所述概率分布可以包括狄拉克δ函数的分布。表征与所述第二数据项目相关联的所述不确定性表示的所述概率分布包括狄拉克δ函数的分布。表征所述附加分布数据的所述概率分布包括狄拉克δ函数的分布。
313、第一元组可以是n元组,其中n>1且为整数。第二元组可以是n元组,其中n>1且为整数。第三元组可以是m元组,其中n2/2<m<2n2,且其中n>1且为整数。
314、在其它方面中,单独地或与本文的任何其它方面结合,本发明可以涉及以下方面。换句话说,下文描述的方面中的任何一个或多个可以被视为与上文描述的任一个方面分开或组合地应用。举例来说,上文描述的设备可以包括下文描述的设备,且对于上文描述的方法和下文描述的方法,也是如此。
315、在另一方面中,单独地或与本文的任何其它方面结合,本发明可以涉及一种可在微处理器、fpga或其它数字计算装置的硬件内的软件中实施的方法,所述方法用于表示包含数值(例如,整数和浮点近似实数)以及分类值(例如,不具有数值解释的项目的集合)两者的项目的概率分布。本发明可以表示传统统计学意义上的分布,也可以表示集合论系列,其中集合的元素具有不同的隶属度概率。在集合中的值是整数或浮点数的特殊情况中,本发明可用作计算系统的数据表示,所述计算系统自然地以传统微处理器对整数和浮点值执行运算的相同方式对数字的概率分布执行计算,且可使用本文公开的用于对分布执行算术的方法和设备。
316、在其它方面中,单独地或与本文的任何其它方面结合,本发明可以涉及以下方面。换句话说,下文描述的方面中的任何一个或多个可以被视为与上文描述的任一个方面分开或组合地应用。举例来说,上文描述的设备可以包括下文描述的设备,且对于上文描述的方法和下文描述的方法,也是如此。
317、在第五方面中,本发明可以提供一种用于数据分布的编码的计算机实施的方法,所述方法包括:
318、获取数据项目集合;
319、确定所获数据项目的概率(或频率)分布;
320、选择所获数据集合内具有超过预设阈值概率值的概率或包括在所获数据集合内具有最高出现概率的预设数目个数据项目的数据项目子集,所述概率例如是在所获数据集合内的聚合出现概率,其;
321、生成用于所述子集内的每一个数据项目的元组,由此相应元组包括第一值和第二值,其中第一值是相应数据项目的值,且第二值是相应数据项目在所获数据集合内的出现概率的值;
322、将每一相应选定数据项目的出现概率归一化以使得所有选定数据项目的所述出现概率的总和等于1.0;
323、提供存储器,且对于每一元组,在所述存储器中在相应存储器位置处存储所述元组的第一值;
324、提供表(在软件或硬件中),且对于每一元组,在所述表中与被配置成识别所述元组的第一值的相应存储器位置的指针相关联地存储所述元组的第二值。
325、应理解,生成用于子集中的每一个数据项目的元组的步骤可以在选择数据项目子集的步骤之后或之前实施。如果在之后实施,则生成元组的后续步骤包括生成仅用于子集内的那些数据项目的元组。如果在之前实施,则生成元组的在前/先前步骤包括生成用于所获数据集合的所有数据项目的元组,并且接着选择数据项目子集的后续步骤简单地通过以下方式继续:选择那些具有超过预设阈值概率值的概率值或界定为数据集合生成的所有元组当中具有最高概率值的预设数目个元组的元组。以此方式,数据项目子集可以通过代理经由表示所述数据项目的元组来选择。
326、数据项目集合可以包括数值集合,可以包括分类值的集合,也可以表示值范围(例如,分布或直方图中的值‘区间’)。数据项目集合可以从测量设备(例如,传感器)获得,可以从机器学习模型的输出获得(例如,人工神经网络的权重等),也可以在量子计算机的量子位的状态的测量以相关联概率从其叠加状态收缩到测得值“1”或“0”(例如,伯努利随机变量的向量)时从量子计算机的输出获得以用于经典计算机。数据项目集合可以从数据项目(数值或分类)的数据库或存储器获得。
327、确定概率分布的步骤可以包括确定统计数据集合(或群体),其包括示出数据的所有可能值(或间隔、范围/区间等)和它们出现的频率的列表或函数。分布可以是示出数据集合内的数据项目的值和它们出现的频率的函数(经验或分析)。概率分布可以是给出数据集合的数据项目的不同可能/观测值的出现概率的函数(经验或分析)。
328、所述方法可包含确定所获数据集合内不超过预设阈值概率(或阈值频率)的值或不在预设数目当中的数据项目的出现概率。换句话说,所述方法可包含确定所获数据集合内不属于所述子集的数据项目的附加出现概率。将子集内的每一相应选定数据项目的出现概率归一化的步骤可以使得所述附加概率和所有选定数据项目的所述出现概率的总和等于1.0。以此方式,所述附加概率可以考虑到所获数据集合的数据项目在所述子集之外的概率且进而提供‘溢出’概率。
329、所述方法可以包含生成所获数据集合中的不在所述子集内的数据项目的、包括第一值和第二值的集合元组,其中第一值是共同表示所获数据集合中的不在所述子集内的数据项目的值,且第二值是在所获数据集合内但不在所述子集内的数据项目的经归一化附加出现概率的值。
330、所述方法可以包含在所述存储器中将集合元组的第一值存储在相应存储器位置,且在所述表中与指针相关联地存储集合元组的第二值,所述指针被配置成识别集合元组的第一值的相应存储器位置。
331、所述方法可以包含使用所述子集的多个前述元组(例如,使用全部元组)的第一值和第二值生成数据项目子集的分布概率分布的表示。所述方法可以包含使用所述子集的多个前述元组的第一值和第二值且使用集合元组的第一值和第二值生成所获数据项目的分布概率分布的表示。
332、分布概率分布的表示可以根据本文公开的任何表示(例如,基于sodd的表示)。所述方法可以包含对两个分布执行算术运算,其中所述分布中的一个或两个是如上文所描述那样生成的。
333、前述表可以是电路结构中的结构化存储器而不是计算机存储器中的阵列。所述方法可以包含提供逻辑单元,所述逻辑单元被配置成用于接收所述元组(例如,子集的元组,任选地还有集合元组),且用于在元组的第一值遵守由逻辑单元定义的准则的情况下在所述表的子表内的位置与相应指针相关联地存储所述元组的第二值。以此方式,所述方法可以将表结构化为包括多个子表,其中每个子表含有来自满足特定准则集合的元组的数据。当然,界定子表中的任一个的准则可以不同于界定其它子表中的任一个的准则。
334、所述方法可以包括提供系词(copula)结构,其用于组合使用单独表(每个表如上文描述那样形成)或单独子表的元组表示的各个分布以实现联合分布。所述系词结构可以被配置成生成多变量累积分布函数,其中每一变量的边际概率分布在间隔[0,1]上是均匀的。系词用于描述随机变量之间的相依性。系词允许通过单独地估计边际和系词来对随机变量的分布进行建模和估计。存在许多参数系词系列可供本领域的技术人员用于此目的。
335、逻辑单元可以被配置成针对被配置成返回概率(p)(即,而非布尔型‘真’/‘假’值)的表,针对表的对应于所述第一值(即,相应数据项目的值)的每一元素实施概率性的(例如,非布尔型)谓词(predicate)。可以此方式实施界定不同子表的准则。由于可以根据谓词树考虑谓词,因此这准许使用所述树的所有节点的前序遍历或后序遍历将谓词展平为字符串,且在需要时此展平的树可用作分布表示。这可以将表示的大小显著地减小为随着表示的大小以线性方式而非以指数方式缩放的大小。用于树的所有节点的前序遍历或后序遍历的技术可以根据本领域的技术人员容易获得的技术。
336、元组可以采用由多个部分组成的数据结构的形式;例如构成记录的有序数据集合。本文对“元组”的参考可被视为包含对元素的有限有序列表的参考。本文对“n元组”的参考可被视为包含对具有n个元素的序列的参考,其中n是非负整数。
337、在第六方面中,本发明可以提供一种用于数据分布的编码的设备,所述设备被配置成实施以下步骤,包括:
338、获取数据项目集合;
339、确定所获数据项目的概率分布;
340、选择所获数据集合内具有超过预设阈值概率值的所获数据集合内的出现概率(例如,聚合概率)或包括在所获数据集合内具有最高出现概率的预设数目个数据项目的数据项目子集;
341、生成用于所述子集内的每一个数据项目的元组,由此相应元组包括第一值和第二值,其中第一值是相应数据项目的值,且第二值是所获数据集合内相应数据项目的出现概率的值;
342、将每一相应选定数据项目的出现概率归一化,以使得所有选定数据项目的所述出现概率的总和等于1.0;
343、提供存储器,且对于每一元组,在所述存储器中在相应存储器位置处存储所述元组的第一值;
344、提供表(在软件或硬件中),且对于每一元组,在所述表中与被配置成识别所述元组的第一值的相应存储器位置的指针相关联地存储所述元组的第二值。
345、所述设备可以被配置成通过确定统计数据集合(或群体)来实施确定概率分布的步骤,所述统计数据集合(或群体)包括示出数据的所有可能值(或间隔、范围/区间等)和它们出现的频率的列表或函数。优选地,所述设备可以实施为微处理器,或专用数字逻辑电路,或被配置成执行处理步骤的模拟电路。
346、所述设备可以被配置成确定所获数据集合内不超过预设阈值概率值或不在预设数目当中的数据项目的出现概率。所述设备可以被配置成实施将所述子集内的每一相应选定数据项目的出现概率归一化的步骤,使得所述附加概率和所有选定数据项目的所述出现概率的总和等于1.0。
347、所述设备可以被配置成生成所获数据集合中的不在所述子集内的数据项目的、包括第一值和第二值的集合元组,其中第一值是共同表示所获数据集合中的不在所述子集内的数据项目的值,且第二值是在所获数据集合内但不在所述子集内的数据项目的经归一化附加出现概率的值。
348、所述设备可以被配置成在所述存储器中将集合元组的第一值存储在相应存储器位置,且在所述表中与指针相关联地存储集合元组的第二值,所述指针被配置成识别集合元组的第一值的相应存储器位置。
349、所述设备可以被配置成使用所述子集的多个前述元组(例如,使用全部元组)的第一值和第二值生成数据项目子集的分布概率分布的表示。所述设备可以被配置成使用所述子集的多个前述元组的第一值和第二值且使用集合元组的第一值和第二值生成所获数据项目的分布概率分布的表示。
350、所述设备可以被配置有电路结构中的结构化存储器而不是计算机存储器中的阵列。所述设备可以提供逻辑单元,所述逻辑单元被配置成用于接收所述元组(例如,子集的元组,任选地还有集合元组),且用于在元组的第一值遵守由逻辑单元定义的准则的情况下在所述表的子表内的位置与相应指针相关联地存储所述元组的第二值。
351、所述设备可以提供系词结构,其用于组合使用单独表(每个表如上文描述那样形成)或单独子表的元组表示的各个分布以实现联合分布。逻辑单元可以被配置成针对被配置成返回概率(p)(即,而非布尔型‘真’/‘假’值)的表,针对表的对应于所述第一值(即,相应数据项目的值)的每一元素实施概率性的(例如,非布尔型)谓词。可以此方式实施界定不同子表的准则。
352、在另一方面中,本发明可以提供包括计算机程序的计算机程序产品,所述计算机程序当在计算机上执行时实施上文描述的本发明的方法。在另一方面中,本发明可以提供一种用计算机程序编程的计算机,所述计算机程序当在计算机上执行时实施根据上文描述的方法。
353、本文对“阈值”的参考可被视为包含对为了使某一反应、现象、结果或条件发生或体现而必须相等或超过的值、量值或量的参考。
354、本文在统计数据集合(或群体)的上下文中对“分布”的参考可被视为包含对示出数据的所有可能值(或间隔)和它们出现的频率的列表或函数的参考。统计数据中的分布可被视为示出变量的可能值和它们出现的频率的函数(经验或分析)。在概率论和统计学中,概率分布可被视为给出变量的测量的不同可能结果的出现概率的函数(经验或分析)。
355、本发明包含所描述的方面和优选特征的组合,除非明显不允许或明确避免此类组合。
356、在其它方面中,单独地或与本文的任何其它方面结合,本发明可以涉及以下方面。换句话说,下文描述的方面中的任何一个或多个可被视为与上文描述的任一个方面分开或组合地应用。举例来说,上文描述的设备可以包括下文描述的设备,且对于上文描述的方法和下文描述的方法,也是如此。
357、在其它方面中,单独地或与本文的任何其它方面结合,本发明可以涉及以下方面。换句话说,下文描述的方面中的任何一个或多个可被视为与上文描述的任一个方面分开或组合地应用。举例来说,上文描述的设备可以包括下文描述的设备,且对于上文描述的方法和下文描述的方法,也是如此。
358、在另一方面中,单独地或与本文的任何其它方面结合,本发明可以涉及重新布置指令序列以减小跨越指令序列所操作的计算状态(例如,寄存器)传播不确定性中的数值误差。
359、在第七方面中,本发明可以提供一种用于计算多步数值计算结果的不确定性的数字值的计算机实施的方法,所述多步数值计算包括在共同“基本块(basic block)”内定义的一系列单独计算指令,所述方法包括:
360、(a)识别“基本块”的“出口活跃(live-out)”变量;
361、(b)识别计算指令,“出口活跃”变量的值取决于所述计算指令的输出;
362、(c)提供组合在步骤(b)识别的计算指令的数学表达式;
363、(d)使用在步骤(c)提供的数学表达式来计算“出口活跃”变量的不确定性的数字值;
364、其中在步骤(d)计算的不确定性值是所述多步数值计算的结果的不确定性。已发现此过程不仅使计算的最终结果更准确,而且使计算过程更高效。
365、优选地,在所述方法中,对于基本块的出口活跃变量,并非计算结果决定所述出口活跃变量的每一指令的经更新不确定性,而是可以将结果决定出口活跃变量的值的指令序列组合成单个表达式,以用于计算出口活跃变量的经更新不确定性。
366、对作为“出口活跃”的变量的参考可被视为包含对在(例如,指令序列的)节点处“出口活跃”的变量的参考,前提是所述变量在从所述节点的任一个出口边缘上都是活跃的。将变量称为“出口活跃”可被视为包含对变量为活跃寄存器条目(例如,其值在被覆写之前会被再次读取的寄存器)的参考。
367、对“基本块”的参考可被视为包含对不具有介入控制流指令的指令序列的参考。基本块的“入口活跃(live-in)”变量可被视为其值在基本块内被覆写之前会被读取的程序变量或机器寄存器。基本块的“出口活跃”变量可被视为其值将在基本块退出之后使用的程序变量或机器寄存器。对于基本块的出口活跃变量,并非计算结果决定所述出口活跃变量的每一指令的经更新不确定性,而是可以将结果决定出口活跃变量的值的指令序列组合成单个表达式,以用于计算出口活跃变量的经更新不确定性。
368、在另一方面中,本发明可以提供一种包括计算机程序的计算机程序产品,所述计算机程序当在计算机上执行时实施上文描述的本发明第一方面的方法。
369、在另一方面中,本发明可以提供一种用计算机程序编程的计算机,所述计算机程序当在计算机上执行时实施上文在本发明的第一方面中描述的方法。
370、在第八方面中,本发明可以提供一种用于计算多步数值计算的结果的不确定性的数字值的设备,所述多步数值计算包括在共同“基本块”内定义的一系列单独计算指令,所述设备被配置成实施以下步骤,包括:
371、(a)识别“基本块”的“出口活跃”变量;
372、(b)识别计算指令,“出口活跃”变量的值取决于所述计算指令的输出;
373、(c)提供组合在步骤(b)识别的计算指令的数学表达式;
374、(d)使用在步骤(c)提供的数学表达式来计算“出口活跃”变量的不确定性的数字值;
375、其中在步骤(d)计算的不确定性值是所述多步数值计算的结果的不确定性。
376、本发明包含所描述的方面和优选特征的组合,除非明显不允许或明确避免此类组合。