CN117730308A - 数据分布的编码和计算的改进以及与数据分布的编码和计算相关的改进 - Google Patents

数据分布的编码和计算的改进以及与数据分布的编码和计算相关的改进 Download PDF

Info

Publication number
CN117730308A
CN117730308A CN202280052652.2A CN202280052652A CN117730308A CN 117730308 A CN117730308 A CN 117730308A CN 202280052652 A CN202280052652 A CN 202280052652A CN 117730308 A CN117730308 A CN 117730308A
Authority
CN
China
Prior art keywords
distribution
tuple
data items
data
probability
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202280052652.2A
Other languages
English (en)
Inventor
P·斯坦利-马贝尔
V·特索索拉斯
B·比勒金
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cambridge Venture Ltd
Original Assignee
Cambridge Venture Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cambridge Venture Ltd filed Critical Cambridge Venture Ltd
Priority claimed from PCT/EP2022/064486 external-priority patent/WO2022248714A1/en
Publication of CN117730308A publication Critical patent/CN117730308A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

一种用于数据分布的编码和计算的计算机实施的方法,所述方法包括:获取数据项目的第一集合;获取数据项目的第二集合;生成第一元组,所述第一元组含有对表征所述第一集合的数据项目的分布的概率分布进行编码的参数;生成第二元组,所述第二元组含有对表征所述第二集合的数据项目的分布的概率分布进行编码的参数,其中用于对所述第二集合的数据项目的分布进行编码的所述参数与用于对所述第一集合的数据项目的分布进行编码的所述参数相同;使用包含于所述第一元组内的参数且使用包含于所述第二元组内的参数生成第三元组,所述第三元组含有对表示对第一概率分布和第二概率分布应用算术运算的结果的概率分布进行编码的参数;输出所述第三元组。

Description

数据分布的编码和计算的改进以及与数据分布的编码和计算 相关的改进
本申请要求2021年5月27日提交的GB2107604.7和2021年5月27日提交的GB2107606.2的优先权,上述案的内容和要素出于所有目的以引用的方式并入本文中。
技术领域
本发明涉及数据分布的编码、计算、存储和传送。数据可以是数据样本的分布。数据分布可以表示测量装置(例如,传感器)中的测量不确定性,且特别地但非排他地,可以表示概率分布。
背景技术
测量设备(例如,传感器)几乎遍及现代生活的所有方面。从对车辆操作(例如,发动机和性能)的监视,到制造设备和操作、配电网络、交通控制和电信网络。此监视产生的技术数据对于帮助管理这些复杂的机器、结构和布置以实现更好的效率和安全性至关重要。‘大数据’分析的出现与此技术数据的指数级增长齐头并进。
然而,从此类技术数据集合的分析获益的能力是基于数据自身的准确性和可靠性。如果所分析的数据质量差,则基于所述分析的结果作出的决策也差。引用一句古老的谚语:‘垃圾进,垃圾出’。
在所有测量设备中,不管如何复杂,‘测量’永远不会与‘被测量’相同。根据计量学的标准术语,由测量设备测量的输入信号的真值被称为‘被测量’。类似地,作为测量过程的结果由测量设备获得的被测量的估计被称为‘测量’。
‘被测量’的值与‘测量’的值之间的这种差异要么是因为测量仪器/传感器中的干扰(例如,诸如约翰逊-奈奎斯特噪声之类的电路噪声,或随机电报噪声,或换能器漂移),要么是因为其中进行测量或感测的环境的性质(例如,在LIDAR中,所谓的‘多路径’会导致读数异常)。
测量仪器/传感器中的噪声和由于环境或其它非仪器因素带来的测量误差可统称为‘测量不确定性’。
对与技术数据集合相关联的测量不确定性的了解准许用户知晓基于所述数据作出的分析结果和决策的不确定性,并因此还知晓其可靠性。对此测量不确定性的忽视可能导致不良决策。这可能是安全关键的,并且当所讨论的决策是由无法作出可接受的风险评估判断的机器(例如,无人驾驶汽车、飞机自动驾驶系统、自动交通灯系统等)作出时,这一点至关重要。
鉴于以上考虑设计了本发明。
发明内容
不确定的数据是普遍存在的。常见示例是传感器测量,其中物理测量的真正性质意味着在所记录值(测量)与所测量的量(被测量)之间始终存在某种程度的不确定性。此形式的测量不确定性经常通过在被测量名义上固定的情况下执行重复测量且使用统计分析观察各个测量的变化来量化。此类值不确定性是因为关于其应当采取的值的信息不完整而产生的,并且在现代计算系统中越来越重要。现代计算机架构既不支持有效地表示不确定性,更不用说此类值的算术和控制流。当今计算机架构用单点值或“颗粒”值(即,无相关联不确定性分布的数据)表示不确定值,通常将平均值用作计算中使用的表示。下文为了简洁性,我们将单点值(即,不具有相关联分布的数据)称为“颗粒”值。
本发明提供一种用于对与不确定性现实世界数据相关的数据(例如,与来自传感器的测量值相关联的功能数据,或与物理系统的状态相关联的值)的数据结构内的信息进行编码的编码方法,用于有效地存储(例如,物理上在寄存器堆中,在缓冲存储器或其它存储器存储装置中)所述信息和/或通过后续计算有效地传播所存储信息。
本发明可以编码、表示和传播表示由测量设备(例如,传感器)得到的测量数据或与物理系统的状态相关联的值的不确定性的分布信息/数据(例如,概率分布、频率分布等)。
编码方法及其生成的数据结构中背后的技术考虑与经编码数据的预期用途有关:即,在对表示数据值不确定性的分布执行的计算中的使用。这些考虑允许计算架构使用数据结构内的参数有效地工作,所述参数对描述现实世界数据不确定性的概率分布进行编码。其结果是提供了一种用于生成新参数的高效方法,所述参数符合/遵守通用数据结构格式和要求,且对表示对两个(或更多个)其它概率分布应用算术运算的结果的概率分布进行编码。这使得当计算通过应用附加算术运算计算的量的不确定性时能够一致地对新参数应用附加的此类计算。因此,对两个或更多个“颗粒”值执行以获得新“颗粒”值的计算也可以并行地对所述两个或更多个“颗粒”值的对应不确定性分布执行,以便有效且一致地获得与新“颗粒”值相关联的新不确定性分布。
在第一方面中,本发明可以提供一种用于数据分布的编码和计算的计算机实施的方法,所述方法包括:
获取数据项目的第一集合;
获取数据项目的第二集合;
生成第一元组,所述第一元组含有对表征第一集合的数据项目的分布的概率分布进行编码的参数;
生成第二元组,所述第二元组含有对表征第二集合的数据项目的分布的概率分布进行编码的参数,其中用于对第二集合的数据项目的分布进行编码的参数与用于对第一集合的数据项目的分布进行编码的参数相同;
使用包含于第一元组内的参数且使用包含于第二元组内的参数生成第三元组,所述第三元组含有对表示对第一概率分布和第二概率分布应用算术运算的结果的概率分布进行编码的参数;
输出所述第三元组。
以此方式,每一元组提供数据结构,在所述数据结构内对表示概率分布(例如,相关联“颗粒”值的不确定性)的分布信息进行编码。本文对“元组”的参考可被视为包含对由界定构成记录的有序数据集合的多个部分组成的数据结构的参考,如此项技术中通常理解的。在数学中,元组是元素的有限有序列表(序列),例如具有n个元素的序列(或有序列表),其中n是非负整数。因此根据本发明的优选实例的包含于第一元组、第二元组和第三元组内的参数是有序的,符合通用参数排序或序列,所述通用参数排序或序列控制/指示计算系统实施关于如何计算将与新“颗粒”数据项目相关联的新分布数据(即,经一致编码的新元组)的方法,所述新颗粒数据项目是通过对各自具有自身相应的相关联分布数据(即,经一致编码的相应元组)的两个或更多个其它“颗粒”数据项目进行算术运算生成的。这些经编码数据结构(元组)不同于数据(分布)自身。数据结构可以由实施所述方法的计算系统自动辨识,使得其可以相应地操作。以此方式,数据结构的编码、计算系统为使用数据结构内的数据执行计算而对数据结构进行的解译以及当针对计算的新“颗粒”数据项目计算新分布信息时由计算系统获得的技术/操作效率之间存在因果关系。
“变量”可被视为作为用于表达可变化或可改变的量的占位符起作用的符号。举例来说,“变量”可用于表示函数的自变量或集合的任意元素。在数学中,参数可被视为变量,其可能值范围识别问题中的一系列相异情况。举例来说,用参数表示的任何方程都是是参数方程。举例来说,呈梯度-截距形式的直线的一般方程y=mx+c是参数方程的示例,其中m和c是参数。此方程的不同实例可以称为使用“相同”参数(即,梯度参数m和截距参数c),无论那些参数的实际值是否相同:第一实例y=m1x+c1;第二实例y=m2x+c2使用相同参数(梯度-截距),无论m1和m2的实际值是否相等(即,m1=m2)且无论c1和c2的实际值是否相等(即,c1=c2)。在此意义上,含有对相应概率分布进行编码的参数的任何两个元组可以称为使用“相同”参数(例如,参数用途相同)。作为非限制性示例,在下文更详细地论述,用于对数据项目的分布进行编码的参数可以是以下参数:狄拉克δ函数的“位置”xi和“概率”pi。不同数据集合的不同分布可以使用这两个参数,且因此使用彼此“相同”的参数。当然,如该共享参数形式中所定义的,针对每一集合中的数据指派到这些参数(位置、概率)的实际值通常不相同。相同参数的使用使得方法能够使用元组对数据项目的分布进行编码来实现相同格式的表示,并且根据所述格式,可以再产生分布自身的相同格式的表示。
优选地,第三元组的输出包括以下各项中的一个或多个:在存储器中(例如,寄存器堆中、缓冲存储器或其它存储器存储装置中)存储第三元组;传输传达第三元组的信号(例如,经由电信号或经由电磁信号/载波)。因此,编码方法提高了存储和/或传输通过第三元组的数据结构编码的概率分布信息传输的效率。
根据所述方法,算术运算可以包括加法、减法、乘法、除法中的一个或多个,或通过用前述基本算术运算表示的更复杂的算术运算,例如,融合乘法和加法或平方根,或任何双变量运算,例如指数运算,这对于本领域的技术人员是显而易见的。因此,恰如新“颗粒”数据项目可以通过对各自具有其自身相应的相关联分布数据的两个或更多个其它“颗粒”数据项目进行任何此类算术运算而生成,类似地,针对新“颗粒”数据项目可以通过对与所述两个或更多个其它“颗粒”数据项目(例如,第一元组和第二元组)相关联的分布数据应用相同算术运算来计算新分布信息(例如,第三元组)。
第三元组可以含有对表征第三数据项目集合的数据项目的分布的概率分布进行编码的参数,其中用于对第三集合的数据项目的分布进行编码的参数与用于对第一集合的数据项目的分布进行编码的参数相同。因此,第三元组可以是含有根据与第一元组中采用的参数排序或序列相同的参数排序或序列进行排序的参数的数据结构。其优点是,当第一元组、第二元组和第三元组中的任一个或多个随后用于控制/指示计算系统计算将与又一新“颗粒”数据项目相关联的又一新分布数据(即,经一致编码的新元组)时提供这些元组中的共同数据结构,所述又一新“颗粒”数据是通过对各自具有其自身相应的相关联分布数据(即,经一致编码的相应元组)的两个或更多个“颗粒”数据项目进行算术运算生成的。
优选地,第一数据集合包括第一随机变量的样本,且第二数据集合包括第二随机变量的样本。
优选地,所述方法包括通过以下各项中的一个或多个输出第一元组:在存储器中(例如,寄存器堆中、缓冲存储器或其它存储器存储装置中)存储第一元组;传输传达第一元组的信号(例如,经由电信号或经由电磁信号/载波)。优选地,所述方法包括通过以下各项中的一个或多个输出第二元组:在存储器中(例如,寄存器堆中、缓冲存储器或其它存储器存储装置中)存储第二元组;传输传达第二元组的信号(例如,经由电信号或经由电磁信号/载波)。
所述方法可以包括通过以下各项中的一个或多个获得输出第一元组:从存储器检索输出第一元组;接收传达输出第一元组的信号。所述方法可以包括通过以下各项中的一个或多个获得输出第二元组:从存储器检索输出第二元组;接收传达输出第二元组的信号。所述方法可以包括使用包含于所获得的第一元组内和所获得的第二元组内的参数生成第三元组。
合意地,第一元组含有对表征第一集合的数据项目的分布的概率分布内的数据项目的位置进行编码的参数。举例来说,数据项目的位置可以是狄拉克δ函数的位置。优选地,第二元组含有对表征第二集合的数据项目的分布的概率分布内的数据项目的位置进行编码的参数。举例来说,数据项目的位置可以是狄拉克δ函数的位置。合意地,第三元组含有对表征第三数据项目集合的数据项目的分布的概率分布内的数据项目的位置进行编码的参数。举例来说,数据项目的位置可以是狄拉克δ函数的位置。
合意地,第一元组含有对表征第一集合的数据项目的分布的概率分布内的数据间隔的位置和/或宽度进行编码的参数。优选地,第二元组含有对表征第二集合的数据项目的分布的概率分布内的数据间隔的位置和/或宽度进行编码的参数。合意地,第三元组含有对表征第三数据项目集合的数据项目的分布的概率分布内的数据间隔的位置和/或宽度进行编码的参数。
合意地,第一元组含有对表征第一集合的数据项目的分布的概率分布内的数据项目的概率进行编码的参数。举例来说,在第一元组内编码的数据项目的概率可以是狄拉克δ函数的振幅或加权,所述函数可以根据对数据项目的位置进行编码的一个或多个参数来定位。优选地,第二元组含有对表征第二集合的数据项目的分布的概率分布内的数据项目的概率进行编码的参数。举例来说,在第二元组内编码的数据项目的概率可以是狄拉克δ函数的振幅或加权,所述函数可以根据对数据项目的位置进行编码的一个或多个参数来定位。合意地,第三元组含有对表征第三数据项目集合的数据项目的分布的概率分布内的数据项目的概率进行编码的参数。举例来说,在第三元组内编码的数据项目的概率可以是狄拉克δ函数的振幅或加权,所述函数可以根据对数据项目的位置进行编码的一个或多个参数来定位。
合意地,第一元组含有对表征第一集合的数据项目的分布的概率分布的一个或多个统计矩的值进行编码的参数。优选地,第二元组含有对表征第二集合的数据项目的分布的概率分布的一个或多个统计矩的值进行编码的参数。合意地,第三元组含有对表征第三数据项目集合的数据项目的分布的概率分布的一个或多个统计矩的值进行编码的参数。
合意地,表征第一集合的数据项目的分布的概率分布包括狄拉克δ函数的分布。优选地,表征第二集合的数据项目的分布的概率分布包括狄拉克δ函数的分布。合意地,表征第三集合的数据项目的分布的概率分布包括狄拉克δ函数的分布。
合意地,第一元组是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,这表明
所述方法可以包括将第三元组(M元组表示)的大小减小为与第一元组和第二元组相同的大小(N元组),以提供作为N元组的经减小第三元组。其优点是实现了所计算的元组的固定大小(即,全部为N元组),从而实现所导出元组(即,对分布进行的算术的结果)的进一步计算。这可以通过以下来实现:将由第三元组表示的数据视为新“获得”数据集合(即,所获得的第三数据项目集合,作为算术运算的结果而获得)且从其生成“经压缩”第三元组,所述“经压缩”第三元组含有对表征第三集合的数据项目的分布的概率分布进行编码的参数。在经压缩第三元组中用于对第三集合的数据项目的分布进行编码的参数不仅可以与用于对第一集合的数据项目的分布进行编码的参数相同,而且经压缩第三元组还可以被构造成与第一元组和第二元组两者相同的大小(即,N元组;大小从M减小到N)。以此方式,本文公开的用于从所获得的数据项目集合生成元组的方法和设备中的任一个可以同等地应用于对分布应用算术运算的输出结果,以允许将所述输出表示为与表示所述算术应用的数据集合的元组具有相同大小的元组。本文对“第三元组”的参考在适当时可被视为包含对“经压缩第三元组”的参考。
在另一方面中,本发明在其第一方面中可以提供包括计算机程序的计算机程序产品,所述计算机程序当在计算机上执行时实施上文描述的本发明的方法。
在第二方面中,本发明可以提供一种用于实施数据分布的编码和计算的设备,所述设备包括:
存储器,其用于存储数据项目的第一集合和数据项目的第二集合;
处理器,其被配置成执行以下处理步骤:
生成第一元组,所述第一元组含有对表征第一集合的数据项目的分布的概率分布进行编码的参数;
生成第二元组,所述第二元组含有对表征第二集合的数据项目的分布的概率分布进行编码的参数,其中用于对第二集合的数据项目的分布进行编码的参数与用于对第一集合的数据项目的分布进行编码的参数相同;
使用包含于第一元组内的参数且使用包含于第二元组内的参数生成第三元组,所述第三元组含有对表示对第一概率分布和第二概率分布应用算术运算的结果的概率分布进行编码的参数;以及
输出所述第三元组。
优选地,处理器可以实施为微处理器,或专用数字逻辑电路,或被配置成执行处理步骤的模拟电路。优选地,所述设备被配置成通过以下各项中的一个或多个输出第三元组:在存储器中存储第三元组;传输传达第三元组的信号。
优选地,所述设备被配置成通过以下各项中的一个或多个输出第一元组:在存储器中存储第一元组;传输传达第一元组的信号。优选地,所述设备被配置成通过以下各项中的一个或多个输出第二元组:在存储器中存储第二元组;传输传达第二元组的信号。
所述设备被配置成通过以下各项中的一个或多个获得输出第一元组:从存储器检索输出第一元组;接收传达输出第一元组的信号。所述设备被配置成通过以下各项中的一个或多个获得输出第二元组:从存储器检索输出第二元组;接收传达输出第二元组的信号。所述设备被配置成使用包含于所获得的第一元组内和所获得的第二元组内的参数生成第三元组。
所述设备可以被配置成通过以下各项中的一个或多个执行第一元组的输出的步骤:在存储器中存储第一元组;传输传达第一元组的信号。所述设备可以被配置成通过以下各项中的一个或多个执行输出第二元组的步骤:在存储器中存储第二元组;传输传达第二元组的信号。所述设备可以被配置成通过以下各项中的一个或多个执行输出第三元组的步骤:在存储器中存储第三元组;传输传达第三元组的信号。
所述设备可以被配置成通过以下各项中的一个或多个执行获得输出第一元组的步骤:从存储器检索输出第一元组;接收传达输出第一元组的信号。所述设备可以被配置成通过以下各项中的一个或多个执行获得输出第二元组的步骤:从存储器检索输出第二元组;接收传达输出第二元组的信号。
所述设备可以被配置成执行包括以下各项中的一个或多个的算术运算:加法;减法;乘法;除法。
所述设备可以被配置成使得第三元组含有对表征第三数据项目集合的数据项目的分布的概率分布进行编码的参数,其中用于对第三集合的数据项目的分布进行编码的参数与用于对第一集合的数据项目的分布进行编码的参数相同。
所述设备可以被配置成使得第一元组含有对表征第一集合的数据项目的分布的概率分布内的数据项目的位置进行编码的参数。所述设备可以被配置成使得第二元组含有对表征第二集合的数据项目的分布的概率分布内的数据项目的位置进行编码的参数。所述设备可以被配置成使得第三元组含有对表征第三数据项目集合的数据项目的分布的概率分布内的数据项目的位置进行编码的参数。
所述设备可以被配置成使得第一元组含有对表征第一集合的数据项目的分布的概率分布内的数据间隔的位置和/或宽度进行编码的参数。所述设备可以被配置成使得第二元组含有对表征第二集合的数据项目的分布的概率分布内的数据间隔的位置和/或宽度进行编码的参数。所述设备可以被配置成使得第三元组含有对表征第三数据项目集合的数据项目的分布的概率分布内的数据间隔的位置和/或宽度进行编码的参数。
所述设备可以被配置成使得第一元组含有对表征第一集合的数据项目的分布的概率分布内的数据项目的概率进行编码的参数。所述设备可以被配置成使得第二元组含有对表征第二集合的数据项目的分布的概率分布内的数据项目的概率进行编码的参数。所述设备可以被配置成使得第三元组含有对表征第三数据项目集合的数据项目的分布的概率分布内的数据项目的概率进行编码的参数。
所述设备可以被配置成使得第一元组含有对表征第一集合的数据项目的分布的概率分布的一个或多个统计矩的值进行编码的参数。所述设备可以被配置成使得第二元组含有对表征第二集合的数据项目的分布的概率分布的一个或多个统计矩的值进行编码的参数。所述设备可以被配置成使得第三元组含有对表征第三数据项目集合的数据项目的分布的概率分布的一个或多个统计矩的值进行编码的参数。
所述设备可以被配置成使得表征第一集合的数据项目的分布的概率分布包括狄拉克δ函数的分布。所述设备可以被配置成使得表征第二集合的数据项目的分布的概率分布包括狄拉克δ函数的分布。所述设备可以被配置成使得表征第三集合的数据项目的分布的概率分布包括狄拉克δ函数的分布。
所述设备可以被配置成使得第一元组是N元组,其中N>1且为整数。所述设备可以被配置成使得第二元组是N元组,其中N>1且为整数。所述设备可以被配置成使得第三元组是M元组,其中N2/2<M<2N2,且其中N>1且为整数。
在另一方面中,本发明可以提供一种用计算机程序编程的计算机,所述计算机程序当在计算机上执行时实施根据上文在本发明的第一方面中描述的方法。
本发明包含所描述的方面和优选特征的组合,除非明显不允许或明确避免此类组合。这意味着例如本发明的第一方面(方法)可以根据本发明的第三方面(下文)通过提供实施方法的微架构来实施。类似地,本发明的第二方面(设备)可以根据本发明的第四方面(下文)实施为微架构。
计算机用点值数字实行算术。然而,主导当代计算系统的数据是来自例如传感器的测量过程。所有测量固有地是不确定的,且此不确定性经常以统计方式表征且形成偶然不确定性。另外,概率分布的许多其它当代应用,例如机器学习,包括也具有固有的认知不确定性(例如,关于神经网络的权重)的模型。硬件和软件可利用测量中的这种不确定性来得到改进的性能,并用性能换取功率耗散优点或结果的质量。然而所有这些潜在应用都受益于更有效的方法来表示任意现实世界概率分布并通过算术传播那些分布。
本发明人已认识到,分布的域中的每一实数都可以通过狄拉克δ描述,所述狄拉克δ具有位于所述实数的值处的某一概率质量。分布在其域内用狄拉克δ进行的此表示不同于概率质量函数(PMF)的表示,其中分布的域按照定义是离散值,且积分可被和代替。因为狄拉克δ分布不是函数而是分布,所以分布表示为狄拉克δ的集合也不同于概率密度函数(PDF)的概念。因此本发明人在此将包括狄拉克δ的总和的表示称为概率密度分布(PDD)。
概率密度分布(PDD)和有限维表示
大体来说,实值随机变量的特征在于其在实数上定义的PDD。因为我们关注计算机表示,所以关于此概率分布的信息是通过有限多的实数表示来表示。由于有限大小的实数表示(例如,32位浮点表示)提供实直线的离散且有限的表示,因此常规的是以概率质量函数(PMF)而不是PDD来工作。然而,在本公开中,我们忽略实数表示中的误差,且假定每一实数可精确表示。这去除了随机变量采用的所有容许值的离散性质,因此我们采用的是使用PDD而不是PMF的形式。因此,可以通过使用有限多的(比如N个)(精确表示的)实数来表示而封装计算机在表示给定抽象PDD时的有限能力,我们将这称为具有大小N的有限维表示。
对PDD的计算首先需要用于从随机变量的PDD的给定描述计算有限维表示的算法,其次需要用于在给定算术运算下传播此类表示的算法。在本公开中,我们将这两个类型的算法分别称为有限维表示方法和算术传播方法。本公开呈现了用于具有随机变量的计算的此类方法的示例。
PDD的描述可以是分析表达式,或者可以呈从自身产生离散PDD的分布抽取的样本的形式。本公开呈现了对于从任何PDD(无论是连续还是离散)计算表示所通用的方法。本公开的应用涉及物理测量中的偶然不确定性(例如,自主交通工具中的有噪声的传感器)和认知不确定性(例如,神经网络中的权重)的计算。本公开的应用涉及根据从离散分布抽取的样本计算的表示。本公开在相互独立的随机变量的情况下考虑算术传播。
作为实数的一般化的实值随机变量。
在实值随机变量的一般化情境中,给定实数可以视为随机变量,其PDD集中于单个点,即x=x0。此点值变量的PDD由狄拉克δ分布给出。假设/>表示/>上的连续函数的空间。我们将下式定义的有界线性函数性/>
称为狄拉克δ分布。应注意,δ不是函数,因为常规的积分记法可能误导推断。但我们仍将可互换地采用记法x0:=:δ(x-x0)来代表具有在x=x0处的评估的狄拉克δ分布,因为此记法与积分记法中的变量改变的应用是一致的。此后,我们将所有实数视为具有由δx0给定的相关联PDD的点值随机变量。
本文中我们称PDDfX在其具有以下形式时是‘狄拉克δ总和’(SoDD)表示:
其中pn∈[0,1]且:
有限维表示
为了提供一些示例实现对本发明的更好理解,本公开介绍了五种有限维表示方法。呈现了用于从给定PDD计算用于给定方法的表示的算法,以及用于从给定有限维表示导出近似PDD的算法以及控制其在加法和乘法的算术运算下的传播的规则。
有限维表示方法
对于给定有限维表示方法表示/>是随机变量(或其PDD)到/>中的映射,其中我们将N称为表示的维度。本公开针对此处考虑的每一方法/>描述对应表示/>关于fX的信息可以由数据样本提供。
对于给定的基于SoDD的表示,我们通过Ndd表示对应SoDD分布中的狄拉克δ的数目。Ndd不与维度N相同,维度N等于在给定表示方法的上下文内指定近似SoDD分布所需的实数的最小数目。一般来说,我们使Ndd<N。表1针对本文公开且在下文更详细论述的基于SoDD的表示方法的每一示例概括Ndd与N的关系。
表1
示例1:规则量化直方图表示(RQHR)
此表示方法假定给定变量X的值范围R(X)是已知且有限的,即,|R(X)|<1。应注意,如果X的PDD是由有限多的样本构成,则情况始终是这样。基本想法是通过将R(X)划分为Ndd个相等大小的(规则)间隔来创建近似SoDD分布,且通过位于每一间隔的中心的经加权狄拉克δ表示给定PDD,所述经加权狄拉克δ的权重等于在对应间隔上的PDD的概率质量。如果我们定义x0:=inf R(X)且lX:=|R(X)|/N,则前述规则间隔具有以下形式:
In=(x0+(n-1)lX,x0+nlX),1≤n≤Ndd
这些间隔上的概率pn给出如下:
随后,X的N维规则量化直方图表示(RQHR)被定义为有序N元组:
此处Ndd=N-2。RQHR的对应近似SoDD分布具有以下形式:
示例2:概率量化直方图表示(PQHR)
如同其中X的值范围经规则量化的RQHR方法,此方法也将范围量化为间隔,但间隔具有相同的概率质量。
首先,间隔定义如下:
函数是FX的逆,其中FX是随机变量X的累积分布函数。
对所有间隔共同的概率质量的在给定间隔内的Xn的期望值μXn是:
随后,X的N维概率量化直方图表示(PQHR)被定义为有序N元组:
此处Ndd=N。PQHR的对应近似SoDD分布具有以下形式:
示例3:矩量化直方图表示(MQHR)
给定具有PDD fX和期望值μX的随机变量X,假设CMFX是X的累积矩函数,由下式定义:
应注意CMFX是单调增加的,因此我们得到:
其中TMX是围绕μX的X的总矩(即,设定x0=μX)且由下式给出:
此处我们假定TMX是有限的,这对于由有限多的样本生成的PDD的实际情况也成立。我们通过将累积矩TMX量化来分割X的值范围,例如实直线。因此,我们将间隔定义如下:
如前所述,给定X∈In来考虑X的期望值:
此处,
随后,X的N维矩量化直方图表示(MQHR)被定义为有序N元组:
此处,Ndd=N/2。MQHR的对应近似SoDD分布具有以下形式:
示例4:伸缩扭矩表示(TTR)
对于具有PDD fX和期望值μX的随机变量X,我们定义:
X-:=X|X∈Ω-,X+:=X|X∈Ω+
以下算法是TTR方法的基础。
假设X是具有PDD fX和期望值μX的随机变量。存在呈具有大小2的SoDD分布的形式的唯一近似PDD即:
其中p-+p+=1
使得:
(1)
(2)
(3)
此外,这个具有大小2的唯一SoDD分布的上述参数p±和x±满足:
p-=PrX-),p+=PrX+),x-=E[X-],x+=E[X+]
此处所围绕的直觉是期望值是PDD fX的质量中心,例如在具有由fX描述的质量密度的杆中,如果受到来自x=μX的支持,它保持平衡,并且人们可以完整地知晓平衡扭矩(SoDD分布中的2个狄拉克δ),即力(重量或概率质量)和距离(位置),前提是知道从两侧施加的总矩的量值(上述性质(2))和两侧的重量的比率(上述性质(3))。可以迭代此唯一2-SoDD分布的想法,即以伸缩方式保持关于期望值的扭矩信息(TTR方法的名称来源于此),以得到一个唯一2n-SoDD分布,其含有关于被局限于上文给出的Ω-和Ω+形式的特殊归纳定义的间隔的X的期望值的所有扭矩信息。
X的TTR归纳公式如下。我们将X的第0阶TTR定义为其期望值,记录为N=2x20=2元组:
此元组将实数表示为采用具有概率1的值μX,具有大小为1的对应近似SoDD分布:
X的第1阶TTR由N=2x 21=4元组给出:
这对应于由上述等式给出的具有大小2的唯一SoDD分布。一般来说,X的第n阶TTR将是N=2x 2n元组:
这具有大小为Ndd=2n的对应SoDD分布。对于较高阶TTR,我们将引入上文给出的定义的归纳扩展。为此我们引入以下索引记法。假设α代表“-”和“+”符号的串接序列,例如,α=-+-或α=+,假设|α|是序列α的长度,且假设α=+和α=-分别意味着通过向α的右端串接“-”符号或“+”符号获得的长度为|α|+1的序列。我们随后归纳定义:
Ωα-:={x∈Ωα:x<E[Xα]},Ωα+:={x∈Ωα:x≥E[Xα]}
Xα-:=X|X∈Ωα-,Xα+:=X|X∈Ωα+
应注意,对于给定n≥1,存在具有长度n的2n个相异序列和实际上是间隔的对应2n个域Ωα。这2n个间隔分割且根据枚举/>排序,其中对于1≤i≤2n,/>是通过用“-”和“+”符号分别替换i-1的长度n二进制表示中的0和1而获得的序列。举例来说,/>随后,X的第n阶TTR被定义为有序N元组(N=2n+1):
此处:
TTR的对应近似SoDD分布具有以下形式:
示例5:集中式矩表示(CMR)
X的第n集中式矩μn(X)(其中n≥0)被定义为:
μ0(X)∶=1,,
随后,X的N维集中式矩表示(CMR)被定义为有序N元组
此集中式矩的定义不同于文献中的典型定义:第一集中式矩μ1(X)常规地以期望值为中心来计算且因此为0。相比之下,在本公开中,我们将μ1(X)定义为等于X的期望值。此公式允许我们在较低阶集中式矩方面递归地定义所有集中式矩,其中第零阶集中式矩μ0(X):=1为递归的基本条件。
因为PDD是狄拉克δ分布的集合,所以存在若干种根据对集中式矩的了解近似PDD的方法。可能的方法包含Gram-Charlier级数[参考文献1]和Edgeworth型展开[参考文献2]。另外,可以使用Bhattacharya等人描述的正式Edgeworth级数[参考文献3]来从CMR构造近似PDD。
算术运算
在此部分,我们概括了刚才介绍的有限维表示的算术运算(传播)的规则。对于给定的两个随机变量X和Y,以下公开内容描述了如何传播给定类型的X和Y的表示以找到用于随机变量Z:=(X;Y)的相同类型的表示。用于所有基于SoDD的表示方法,即除CMR外的所有方法的传播规则是相同的,因为它们适用于底层SoDD分布而非表示的方法。因此,以下公开内容描述了两组算术传播规则,一组用于CMR,一组用于基于SoDD的表示。为了简单起见,在CMR的算术传播的情况下,我们将仅注意加法和乘法的算术运算。然而,应理解,基于SoDD的表示中值与变量的加法或乘法会导致表示的狄拉克δ的位置偏移或按比例缩放,因此可以通过与-1相乘将减数的基于SoDD的表示(即,将与另一量或数字相减的量或数字的基于SoDD的表示)取否来实现两个不确定变量的减法。对于基于SoDD的表示中的变量除法的情况,我们将其定义为使用除数变量的倒数进行的乘法。基于SoDD的表示中的变量的倒数可通过计算输入狄拉克δ位置的倒数来构造。举例来说,SoDD狄拉克混合体表示的两个随机变量的除法可以实施为被除数与除数倒数的乘法。除数的倒数可以通过计算其狄拉克混合体表示的位置的倒数来构造。
示例5:基于SoDD的表示的传播
假设我们被给定固定类型的N维基于SoDD的表示,即,RQHR、PQHR、MQHR或TTR,且将其称为FDR。对于两个相互独立的随机变量X和Y,其中具有大小Ndd的近似SoDD分布给定为:
呈具有大小Ndd的SoDD分布的形式的这两个PDD的传播完成以获得即呈具有大小/>的SoDD分布的形式的PDD,由下式给出:
接着,可以从此PDD生成“经压缩”第三元组/>使得:
这是随机变量的算术传播的N维表示:
Z=重Φ(X,Y)
其被建立为由PDD描述的随机变量/>的N维表示,即:
此方程是其中较大M元组表示减小回到N元组的情况。这可以优选地完成以实现所计算的元组的固定大小。因此,为了实现用导出的元组(上述M元组)的进一步计算,可以将这些M元组减小回到N元组。这可以通过将由表示的数据视为新的“所获”数据集合(即,作为算术运算的结果获得的所获第三数据项目集合)且从其生成“经压缩”第三元组来实现,所述第三元组含有对表征由/>定义的第三集合的数据项目的分布的概率分布进行编码的参数。
算术运算
举例来说,在对各自被定义为相应有序N元组的两个RQHR表示进行的算术的情况下:
RQHR的对应近似SoDD分布具有以下形式:
当然,对于变量Y中的分布,我们简单地用如下取代来重写上述方程:X→Y,x→y,x0→y0和lX→lY。因此,传播结果的Φ(xn,ym)内的xn、ym如下给出:
在进行分布加法的情况下,传播结果是:
其中
Φ(xn,ym)=Φ+(xn,ym)=xn+ym
在进行分布乘法的情况下,传播结果是:
其中
Φ(xn,ym)=Φ×(xn,ym)=xn×ym
举例来说,在对各自被定义为相应有序N元组的两个PQHR表示进行的算术的情况下:
PQHR的对应近似SoDD分布具有以下形式:
当然,对于变量Y中的分布,我们简单地用如下取代来重写上述方程:X→Y,x→y和μXn→μYm。因此,传播结果的Φ(xn,ym)内的xn、ym如下给出:
xn=μXn
ym=μYm
在进行分布加法的情况下,传播结果是:
/>
其中
Φ(xn,ym)=Φ+(xn,ym)=xn+ym
在进行分布乘法的情况下,传播结果是:
其中
Φ(xn,ym)=Φ×(xn,ym)=xn×ym
举例来说,在对各自被定义为相应有序N元组的两个MQHR表示进行的算术的情况下:
MQHR的对应近似SoDD分布具有以下形式:
当然,对于变量Y中的分布,我们简单地用如下取代来重写上述方程:X→Y,x→y和xn→ym。因此,传播结果的Φ(xn,ym)内的xn、ym直接由相应SoDD分布的xn和yn给出。在进行分布加法的情况下,传播结果是:
其中
Φ(xn,ym)=Φ+(xn,ym)=xn+ym
在进行分布乘法的情况下,传播结果是:
其中
Φ(xn,ym)=Φ×(xn,ym)=xn×ym
举例来说,在对各自被定义为相应有序N元组的两个TTR表示进行的算术的情况下:
TTR的对应近似SoDD分布具有以下形式:
当然,对于变量Y中的分布,我们简单地用如下取代来重写上述方程:X→Y,x→y和因此,传播结果/>的Φ(xn,ym)内的xn、ym如下给出:/>
在进行分布加法的情况下,传播结果是:
其中
Φ(xn,ym)=Φ+(xn,ym)=xn+ym
在进行分布乘法的情况下,传播结果是:
其中
Φ(xn,ym)=Φ×(xn,ym)=xn×ym
CMR的传播
对于给定的两个随机变量X和Y,以下公开内容描述了如何传播给定类型的X和Y的表示以找到用于随机变量Z:=(X;Y)的相同类型的表示。围绕X和Y的期望值,即围绕(μX;μY)使用Φ(X;Y)的多变量泰勒展开得到:
针对以下情况:
Z+=Φ+(X,Y)=X+Y
Z×=Φ×(X,Y)=X×Y
上述泰勒展开精简为:
Φ+(x,y)=μXY+(x-μx)+(y-μY)
Φ×(x,y)=μXμY-μY(x-μX)-μX(y-μY)+(x-μX)(y-μY)
这是在相互独立的随机变量的情况下,即,fX;Y=fXfY。此结果用于生成在上文定义的函数内出现的Φ(xn,ym)的值(例如,在适当时Φ(X;Y)=Φ+(x,y)或Φ(X;Y)=Φ×(x,y))。
对于随机变量Z=(X;Y)的第n集中式矩,我们得到:
在X和Y的集中式矩方面对此积分进行近似使用的是上文所定义的围绕X和Y的期望值,即围绕(μX;μY)的多变量泰勒展开。这在X和Y的前N个集中式矩方面给出Z+和Z×的前N个集中式矩的近似为:
以及
举例来说,假设X和Y分别是具有N维CMR的两个相互独立随机变量:
且/>
随后,可以分别经由给出的关系确切地计算随机变量Z+=X+Y和Z×=X×Y的N维CMR:
且/>/>
本发明可以编码、表示和传播表示由测量设备(例如,传感器)得到的测量数据的不确定性的分布信息/数据(例如,概率分布、频率分布等)和/或可以传播定义人工神经网络的分布权重的分布信息/数据。
大体来说,可以使用第一元组(即,表示第一分布)的参数(例如,狄拉克δ位置、高度/概率)且使用第二元组(即,表示第二分布)的参数(例如,狄拉克δ位置、高度/概率)执行算术运算以生成第三元组,所述第三元组包括具有界定由应用于第一分布和第二分布的算术运算生成的分布的值的参数(例如,狄拉克δ位置、高度/概率)。此第三元组可以随后优选地用于生成本文所描述的“经压缩”第三元组,其具有与第一元组和第二元组相同的大小(例如,N元组)。第一元组和第二元组优选地具有相同大小(例如,都是N元组)。
表示第三分布的数据的狄拉克δ函数的位置可以通过使用表示第一数据分布和第二数据分布的数据的狄拉克δ函数的位置计算的位置值(例如,如本文所公开)来定义。第一数据分布和第二数据分布的这些位置值可以包含于第一元组和第二元组内。表示第三分布的数据的狄拉克δ函数的高度/概率可以通过计算表示第一数据分布和第二数据分布的数据的狄拉克δ函数的高度/概率的乘积来生成。第一数据分布和第二数据分布的这些高度/概率值可以包含于第一元组和第二元组内。
第三元组可以含有各自根据第一元组中的相应概率值和第二元组中的相应概率值(例如,当算术运算是乘法运算或加法运算等时第一元组中的相应概率值和第二元组中的相应概率值的乘积)生成的概率值(例如,狄拉克δ高度/概率)。概率值可以表示由第三元组表示的分布内的狄拉克δ函数的振幅、高度或加权。
第三元组可以含有各自根据第一元组中的相应位置值和第二元组中的相应位置值(例如,当算术运算是乘法运算(或加法运算)等时第一元组中的相应位置值和第二元组中的相应位置值的乘积(或加法))生成的位置值。位置值可以表示由第三元组表示的分布内的狄拉克δ函数的位置。
本发明不限于基于狄拉克δ函数的表示(例如MQHR),且第一元组、第二元组和第三元组通常可以含有根据其它表示的参数,例如对表征第一分布、第二分布和第三分布的数据项目的分布的概率分布内的数据间隔的位置和/或宽度进行编码的参数。举例来说,第一元组、第二元组和第三元组可以含有对表征数据项目分布的概率分布的一个或多个统计矩的值进行编码的参数。
算术过程允许使用第一元组和第二元组的参数生成第三元组的每一参数。一旦计算出第三元组的参数,则这以极高效形式将第三分布的分布信息完全编码,从而准许在需要时再生第三分布,且准许第三元组存储于存储器介质中和/或作为信号传输。
在其它方面中,单独地或与本文的任何其它方面结合,本发明可以涉及以下方面。换句话说,下文描述的方面中的任何一个或多个可以被视为与上文描述的任一个方面分开或组合地应用。举例来说,上文描述的设备可以包括下文描述的微架构,且对于上文描述的方法和下文描述的方法,也是如此。
在第三方面中,本发明可以提供一种用于数据分布的计算的方法,所述方法包括提供微架构,所述微架构包括:
第一寄存器,其含有数据项目;
第二寄存器,其含有表示作为与相应所述数据项目相关联的不确定性表示的分布的分布数据;
第一算术逻辑单元,其用于对选自所述第一寄存器的数据项目执行算术;
第二算术逻辑单元,其用于对选自所述第二寄存器的分布数据执行算术;
所述方法包括由所述微架构实施的以下步骤:
由所述第一算术逻辑单元对选自所述第一寄存器的数据项目执行算术运算,且输出结果;
由所述第二算术逻辑单元对表示与选自所述第一寄存器的所述数据项目相关联的选自所述第二寄存器的分布的分布数据执行算术运算,且输出结果;
其中对选自所述第二寄存器的所述分布数据执行的所述算术运算与对选自所述第一寄存器的所述数据项目执行的所述算术运算相同,由此生成表示与对选自所述第一寄存器的所述数据项目执行的所述算术运算的结果相关联的不确定性的附加分布数据。
以此方式,第一寄存器(例如,图6A的项目‘f0’)可以含有可以是单个项目的数据。第二寄存器(例如,图6A的项目‘df0’)可以含有第一寄存器中含有的单个项目的不确定性表示的分布数据。本文对含有数据项目的第一寄存器的参考可被视为包含对含有数据项目的第一寄存器集合的参考。类似地,本文对含有表示分布的分布数据的第二寄存器的参考可被视为包含对含有表示分布的分布数据的第二寄存器集合的参考。寄存器集合可被视为寄存器堆。
优选地,第一寄存器可以包括第一寄存器集合和/或可以包括寄存器堆。优选地,第二寄存器可以包括第一寄存器集合和/或可以包括寄存器堆。
在所述方法中,微架构可以包括例如被配置成含有浮点数据的浮点寄存器堆。浮点寄存器堆可以含有被配置成用于含有颗粒数据项目的第一寄存器堆,和被配置成用于含有分布数据的第二寄存器堆。微架构可以包括例如被配置成含有整数数据的整数寄存器堆。整数寄存器堆可以含有被配置成用于含有颗粒数据项目的第一寄存器堆,和被配置成用于含有分布数据的第二寄存器堆。分布数据可以表示作为与第一寄存器堆中的相应“颗粒”数据项目相关联的不确定性表示的分布(例如,基于SoDD的表示)。在所述方法中,通过对第一寄存器堆内的给定“颗粒”数据值和将与所讨论的“颗粒”数据相关联的第二寄存器堆中的分布数据条目指派一个共同寄存器堆条目识别符,浮点寄存器堆可以使第一寄存器堆中的给定“颗粒”数据项目与其在第二寄存器堆内的相关联分布数据关联。以此方式,微架构中的浮点和/或整数寄存器堆可以使所有浮点和/或整数寄存器与分布信息关联。
微架构,以及一般来说本发明,可以通过用前述基本算术运算表示来计算更复杂的算术运算,例如融合乘法和加法或平方根,这对于本领域的技术人员是显而易见的。
合意地,所述第二算术逻辑单元对所述算术运算的执行是由触发所述第一算术逻辑单元对所述算术运算的执行的命令触发的。算术运算优选地包括以下各项中的一个或多个:加法;减法;乘法;除法。本发明一般来说可以通过用前述基本算术运算表示来计算更复杂的算术运算,例如融合乘法和加法或平方根,这对于本领域的技术人员是显而易见的。
所述方法可包含提供包括存储器单元的所述微架构,所述存储器单元被配置成将所述数据项目存储在其中的所寻址存储器位置处,所述方法包括由所述微架构实施的以下步骤:获取当第一算术逻辑单元执行算术运算时贡献于由第一算术逻辑单元执行的算术运算的数据项目的发源存储器位置地址;以及在存储器单元内的存储位置存储获得的发源存储器位置地址且使存储位置与所述附加分布数据关联。所获发源存储器位置可以组合形式存储,使得多个发源存储器位置地址可以一起存储于例如表中,其中多个发源存储器位置地址存储于相同表条目/位置中。
算术运算的结果可以输出到随机存取存储器。这些输出结果可以包括“颗粒”数据值和分布数据。每一“颗粒”数据值可以存储于提供物理地址空间的存储器单元中,且可以与存储于分布存储器单元中的分布表示相关联。可以提供存储器存取单元和寄存器回写单元以定义寄存器堆与微架构的算术逻辑单元之间的接口。可以提供指令提取单元,其与“颗粒”存储器单元通信以存取存储器单元,从而从其提取指令。可以提供与分布存储器单元直接通信的加载/存储单元,且可以提供指令提取单元但并不如此连接。这意味着对分布数据执行算术运算可以自动发生而不需要或不会干扰指令提取单元的操作。以此方式,由对“颗粒”数据及其相关联分布数据的算术运算生成的分布数据的计算可以在微架构层级发生。因此,微架构可以被配置成仅允许加载/存储指令存取随机存取存储器。因此,可以此方式提供扩展存储器,微架构可将微架构寄存器的“颗粒”和分布信息两者加载和存储到所述扩展存储器。
在所述方法中,微架构可以被配置成跟踪在任何时间点存储器单元的哪些存储器地址已贡献于任何给定浮点或整数寄存器的值的计算。当由算术运算生成的“颗粒”值从微架构的寄存器输出时,由算术运算生成的颗粒值的输出数据可以存储于存储器中。关于贡献于输出结果的颗粒数据项目的原始地址或发源地址(在本文中被称作“起源地址”或“祖先地址”:这两个术语指代相同事物)的信息也可以存储于存储器单元内。处理器可以被配置成随后当从存储器加载寄存器的内容(例如,存储的“颗粒”值)以供进一步使用时重新调用起源地址。这在下文更详细地论述,且我们将此相关性跟踪称为“起源地址跟踪”机制。在本发明中,在优选实施例中,每一浮点/整数寄存器的值发源于存储器单元的一个或多个地址。通过维持和传播这些地址,本发明能够动态地识别任何两个浮点/整数寄存器之间的相关性。此信息可以例如使用“起源地址”的动态链表来维持。
在所述方法中,第一寄存器优选地含有第一数据项目和第二数据项目。举例来说,第一寄存器可以包括含有数据项目的第一寄存器集合,所述数据项目包含第一数据项目和第二数据项目。优选地,第一数据项目包括第一随机变量的值,且第二数据项目包括第二随机变量的值。类似地,第二寄存器可以包括含有表示分布的分布数据的第二寄存器集合。举例来说,第一寄存器和第二寄存器可以各自为寄存器堆。合意地,所述第二寄存器含有包括第一元组的第一分布数据,所述第一元组含有对表征与所述第一数据项目相关联的不确定性表示的概率分布进行编码的参数。优选地,所述第二寄存器含有包括第二元组的第二分布数据,所述第二元组含有对表征与所述第二数据项目相关联的所述不确定性表示的概率分布进行编码的参数,其中用于对所述第二分布数据进行编码的参数与用于对所述第一分布数据进行编码的参数相同。
合意地,所述由所述第二算术逻辑单元对分布数据执行算术运算包括选择所述第一元组和所述第二元组且随即使用包含于所述第一元组内的参数且使用包含于所述第二元组内的参数生成第三元组,所述第三元组含有对所述附加分布数据进行编码的参数。所述方法可以包括输出第三元组。输出元组可以包括将其输出到存储器以用于存储,或输出到传输器以用于传输。
优选地,所述第三元组含有对所述附加分布数据进行编码的参数,所述参数与用于对表征与所述第一数据项目相关联的所述不确定性表示的所述概率分布进行编码的所述参数相同。当然,如果第二元组含有与第一元组中用于对第一分布数据进行编码的参数相同的对概率分布进行编码的参数,如上文所论述,则这些参数也将是与第三元组中所用相同的参数(即,在本质上“相同”,但通常值不“相同”)。
合意地,分布数据包括相应数据项目的概率分布。
优选地,所述第一元组含有对表征与所述第一数据项目相关联的所述不确定性表示的所述概率分布内的数据项目的位置进行编码的参数。合意地,所述第二元组含有对表征与所述第二数据项目相关联的所述不确定性表示的所述概率分布内的数据项目的位置进行编码的参数。优选地,所述第三元组含有对表征所述附加分布数据的概率分布内的数据项目的位置进行编码的参数。
合意地,所述第一元组含有对表征与所述第一数据项目相关联的所述不确定性表示的所述概率分布内的数据间隔的位置和/或宽度进行编码的参数。优选地,所述第二元组含有对表征与所述第二数据项目相关联的所述不确定性表示的所述概率分布内的数据间隔的位置和/或宽度进行编码的参数。合意地,所述第三元组含有对表征所述附加分布数据的概率分布内的数据间隔的位置和/或宽度进行编码的参数。
优选地,所述第一元组含有对表征与所述第一数据项目相关联的所述不确定性表示的所述概率分布内的数据项目的概率进行编码的参数。合意地,所述第二元组含有对表征与所述第二数据项目相关联的所述不确定性表示的所述概率分布内的数据项目的概率进行编码的参数。优选地,所述第三元组含有对表征所述附加分布数据的概率分布内的数据项目的概率进行编码的参数。
优选地,所述第一元组含有对表征与所述第一数据项目相关联的所述不确定性表示的所述概率分布的一个或多个统计矩的值进行编码的参数。合意地,所述第二元组含有对表征与所述第二数据项目相关联的所述不确定性表示的所述概率分布的一个或多个统计矩的值进行编码的参数。优选地,所述第三元组含有对表征所述附加分布数据的概率分布的一个或多个统计矩的值进行编码的参数。
优选地,表征与所述第一数据项目相关联的所述不确定性表示的所述概率分布包括狄拉克δ函数的分布。合意地,表征与所述第二数据项目相关联的所述不确定性表示的所述概率分布包括狄拉克δ函数的分布。优选地,表征所述附加分布数据的所述概率分布包括狄拉克δ函数的分布。
优选地,第一元组是N元组,其中N>1且为整数。优选地,第二元组是N元组,其中N>1且为整数。合意地,第三元组是M元组,其中N2/2<M<2N2,且其中N>1且为整数。从第一算术逻辑单元和/或第二算术逻辑单元输出结果可以包括以下各项中的一个或多个:在存储器中存储输出;传输传达输出的信号。
在另一方面中,本发明可以提供一种包括计算机程序的计算机程序产品,所述计算机程序当在计算机上执行时实施上文在本发明的第三方面中描述的方法。在又一方面中,本发明可以提供一种用计算机程序编程的计算机,所述计算机程序当在计算机上执行时实施上文在本发明的第三方面中描述的方法。
在第四方面中,本发明可以提供用于数据分布的计算的微架构,其包括:
第一寄存器,其被配置成用于含有数据项目;
第二寄存器,其被配置成用于含有表示作为与相应所述数据项目相关联的不确定性表示的分布的分布数据;
第一算术逻辑单元,其被配置成用于对选自所述第一寄存器的数据项目执行算术;
第二算术逻辑单元,其被配置成用于对选自所述第二寄存器的分布数据执行算术;
所述微架构被配置成实施以下步骤:
由所述第一算术逻辑单元对选自所述第一寄存器的数据项目执行算术运算,且输出结果;
由所述第二算术逻辑单元对表示与选自所述第一寄存器的所述数据项目相关联的选自所述第二寄存器的分布的分布数据执行算术运算,且输出结果;
其中对选自所述第二寄存器的所述分布数据执行的所述算术运算与对选自所述第一寄存器的所述数据项目执行的所述算术运算相同,由此生成表示与对选自所述第一寄存器的所述数据项目执行的所述算术运算的结果相关联的不确定性的附加分布数据。
优选地,第一寄存器可以包括第一寄存器集合和/或可以包括寄存器堆。优选地,第二寄存器可以包括第一寄存器集合和/或可以包括寄存器堆。
本文对含有数据项目的第一寄存器的参考可被视为包含对含有数据项目的第一寄存器集合的参考。类似地,本文对含有表示分布的分布数据的第二寄存器的参考可被视为包含对含有表示分布的分布数据的第二寄存器集合的参考。寄存器集合可被视为寄存器堆。
微架构可以包括例如被配置成含有浮点数据的浮点寄存器堆。浮点寄存器堆可以含有被配置成用于含有颗粒数据项目的第一寄存器堆,和被配置成用于含有分布数据的第二寄存器堆。微架构可以包括例如被配置成含有整数数据的整数寄存器堆。整数寄存器堆可以含有被配置成用于含有颗粒数据项目的第一寄存器堆,和被配置成用于含有分布数据的第二寄存器堆。分布数据可以表示作为与第一寄存器堆中的相应“颗粒”数据项目相关联的不确定性表示的分布(例如,基于SoDD的表示)。
通过对第一寄存器堆内的给定“颗粒”数据值和将与所讨论的“颗粒”数据相关联的第二寄存器堆中的分布数据条目指派一个共同寄存器堆条目识别符,浮点寄存器堆可以使第一寄存器堆中的给定“颗粒”数据项目与其在第二寄存器堆内的相关联分布数据关联。以此方式,微架构中的浮点和/或整数寄存器堆可以使所有浮点和/或整数寄存器与分布信息关联。
微架构可被配置成执行包括加法、减法、乘法、除法中的一个或多个的算术运算,或通过用前述基本算术运算表示的更复杂的算术运算,例如,融合乘法和加法或平方根,或任何双变量运算,例如指数运算,这对于本领域的技术人员是显而易见的。
微架构可以被配置成将算术运算的结果输出到随机存取存储器。这些输出结果可以包括“颗粒”数据值和分布数据。微架构可以被配置成将每一“颗粒”数据值存储于提供物理地址空间的存储器单元中,且可以与存储于分布存储器单元中的分布表示相关联。微架构可以包括存储器存取单元和寄存器回写单元以定义寄存器堆与微架构的算术逻辑单元之间的接口。微架构可以包括指令提取单元,指令提取单元被配置成与“颗粒”存储器单元通信以存取存储器单元,从而从其提取指令。微架构可以包括被配置成与分布存储器单元直接通信的加载/存储单元,且微架构可以包括并不如此连接的指令提取单元。这意味着对分布数据执行算术运算可以自动发生而不需要或不会干扰指令提取单元的操作。因此,微架构可以被配置成仅允许加载/存储指令存取随机存取存储器。因此,微架构可以被配置成加载和存储微架构寄存器的“颗粒”和分布信息两者。
微架构可以被配置成跟踪在任何时间点存储器单元的哪些存储器地址已贡献于任何给定浮点或整数寄存器的值的计算。当由算术运算生成的“颗粒”值从微架构的寄存器输出时,由算术运算生成的颗粒值的输出数据可以存储于存储器中。关于贡献于输出结果的颗粒数据项目的原始地址或发源地址(在本文中被称作“起源地址”或“祖先地址”:这两个术语指代相同事物)的信息也可以存储于存储器单元内。处理器可以被配置成随后当从存储器加载寄存器的内容(例如,存储的“颗粒”值)以供进一步使用时重新调用起源地址。这在下文更详细地论述,且我们将此相关性跟踪称为“起源地址跟踪”机制。在本发明中,在优选实施例中,每一浮点/整数寄存器的值发源于存储器单元的一个或多个地址。通过维持和传播这些地址,本发明能够动态地识别任何两个浮点/整数寄存器之间的相关性。此信息可以例如使用“起源地址”的动态链表来维持。
微架构可以被配置成当被触发所述第一算术逻辑单元对所述算术运算的执行的命令触发时由所述第二算术逻辑单元执行所述算术运算。微架构的输出可以包括以下各项中的一个或多个:在存储器中存储输出;传输传达输出的信号。
微架构可以包括存储器单元,所述存储器单元被配置成将所述数据项目存储在其中的所寻址存储器位置处。微架构优选地被配置成获得当第一算术逻辑单元执行算术运算时贡献于由第一算术逻辑单元执行的算术运算的数据项目的发源存储器位置地址。微架构优选地被配置成在存储器单元内的存储位置处存储所获发源存储器位置地址且使存储位置与所述附加分布数据关联。所获发源存储器位置可以组合形式存储,使得多个发源存储器位置地址可以一起存储在例如表中,其中多个发源存储器位置地址存储于相同表条目/位置中。
所述第一寄存器优选地被配置成含有第一数据项目和第二数据项目。举例来说,第一寄存器可以包括含有数据项目的第一寄存器集合,所述数据项目包含第一数据项目和第二数据项目。优选地,第一数据项目包括第一随机变量的值,且第二数据项目包括第二随机变量的值。类似地,第二寄存器可以包括含有表示分布的分布数据的第二寄存器集合。举例来说,第一寄存器和第二寄存器可以各自为寄存器堆。优选地,所述第二寄存器被配置成含有包括第一元组的第一分布数据,所述第一元组含有对表征与所述第一数据项目相关联的所述不确定性表示的概率分布进行编码的参数。合意地,所述第二寄存器被配置成含有包括第二元组的第二分布数据,所述第二元组含有对表征与所述第二数据项目相关联的所述不确定性表示的概率分布进行编码的参数,其中用于对所述第二分布数据进行编码的参数与用于对所述第一分布数据进行编码的参数相同。
所述微架构可以被配置成由所述第二算术逻辑单元对分布数据执行算术运算,包括选择所述第一元组和所述第二元组且随即使用包含于所述第一元组内的参数且使用包含于所述第二元组内的参数生成第三元组,所述第三元组含有对所述附加分布数据进行编码的参数。微架构可以被配置成输出第三元组。
合意地,所述第三元组含有对所述附加分布数据进行编码的参数,所述参数与用于对表征与所述第一数据项目相关联的所述不确定性表示的所述概率分布进行编码的所述参数相同。
优选地,分布数据包括相应数据项目的概率分布。
所述第一元组可以含有对表征与所述第一数据项目相关联的所述不确定性表示的所述概率分布内的数据项目的位置进行编码的参数。所述第二元组可以含有对表征与所述第二数据项目相关联的所述不确定性表示的所述概率分布内的数据项目的位置进行编码的参数。所述第三元组可以含有对表征所述附加分布数据的概率分布内的数据项目的位置进行编码的参数。
所述第一元组可以含有对表征与所述第一数据项目相关联的所述不确定性表示的所述概率分布内的数据间隔的位置和/或宽度进行编码的参数。所述第二元组可以含有对表征与所述第二数据项目相关联的所述不确定性表示的所述概率分布内的数据间隔的位置和/或宽度进行编码的参数。所述第三元组可以含有对表征所述附加分布数据的概率分布内的数据间隔的位置和/或宽度进行编码的参数。
所述第一元组可以含有对表征与所述第一数据项目相关联的所述不确定性表示的所述概率分布内的数据项目的概率进行编码的参数。所述第二元组可以含有对表征与所述第二数据项目相关联的所述不确定性表示的所述概率分布内的数据项目的概率进行编码的参数。所述第三元组可以含有对表征所述附加分布数据的概率分布内的数据项目的概率进行编码的参数。
所述第一元组可以含有对表征与所述第一数据项目相关联的所述不确定性表示的所述概率分布的一个或多个统计矩的值进行编码的参数。所述第二元组可以含有对表征与所述第二数据项目相关联的所述不确定性表示的所述概率分布的一个或多个统计矩的值进行编码的参数。所述第三元组可以含有对表征所述附加分布数据的概率分布的一个或多个统计矩的值进行编码的参数。
表征与所述第一数据项目相关联的所述不确定性表示的所述概率分布可以包括狄拉克δ函数的分布。表征与所述第二数据项目相关联的所述不确定性表示的所述概率分布包括狄拉克δ函数的分布。表征所述附加分布数据的所述概率分布包括狄拉克δ函数的分布。
第一元组可以是N元组,其中N>1且为整数。第二元组可以是N元组,其中N>1且为整数。第三元组可以是M元组,其中N2/2<M<2N2,且其中N>1且为整数。
在其它方面中,单独地或与本文的任何其它方面结合,本发明可以涉及以下方面。换句话说,下文描述的方面中的任何一个或多个可以被视为与上文描述的任一个方面分开或组合地应用。举例来说,上文描述的设备可以包括下文描述的设备,且对于上文描述的方法和下文描述的方法,也是如此。
在另一方面中,单独地或与本文的任何其它方面结合,本发明可以涉及一种可在微处理器、FPGA或其它数字计算装置的硬件内的软件中实施的方法,所述方法用于表示包含数值(例如,整数和浮点近似实数)以及分类值(例如,不具有数值解释的项目的集合)两者的项目的概率分布。本发明可以表示传统统计学意义上的分布,也可以表示集合论系列,其中集合的元素具有不同的隶属度概率。在集合中的值是整数或浮点数的特殊情况中,本发明可用作计算系统的数据表示,所述计算系统自然地以传统微处理器对整数和浮点值执行运算的相同方式对数字的概率分布执行计算,且可使用本文公开的用于对分布执行算术的方法和设备。
在其它方面中,单独地或与本文的任何其它方面结合,本发明可以涉及以下方面。换句话说,下文描述的方面中的任何一个或多个可以被视为与上文描述的任一个方面分开或组合地应用。举例来说,上文描述的设备可以包括下文描述的设备,且对于上文描述的方法和下文描述的方法,也是如此。
在第五方面中,本发明可以提供一种用于数据分布的编码的计算机实施的方法,所述方法包括:
获取数据项目集合;
确定所获数据项目的概率(或频率)分布;
选择所获数据集合内具有超过预设阈值概率值的概率或包括在所获数据集合内具有最高出现概率的预设数目个数据项目的数据项目子集,所述概率例如是在所获数据集合内的聚合出现概率,其;
生成用于所述子集内的每一个数据项目的元组,由此相应元组包括第一值和第二值,其中第一值是相应数据项目的值,且第二值是相应数据项目在所获数据集合内的出现概率的值;
将每一相应选定数据项目的出现概率归一化以使得所有选定数据项目的所述出现概率的总和等于1.0;
提供存储器,且对于每一元组,在所述存储器中在相应存储器位置处存储所述元组的第一值;
提供表(在软件或硬件中),且对于每一元组,在所述表中与被配置成识别所述元组的第一值的相应存储器位置的指针相关联地存储所述元组的第二值。
应理解,生成用于子集中的每一个数据项目的元组的步骤可以在选择数据项目子集的步骤之后或之前实施。如果在之后实施,则生成元组的后续步骤包括生成仅用于子集内的那些数据项目的元组。如果在之前实施,则生成元组的在前/先前步骤包括生成用于所获数据集合的所有数据项目的元组,并且接着选择数据项目子集的后续步骤简单地通过以下方式继续:选择那些具有超过预设阈值概率值的概率值或界定为数据集合生成的所有元组当中具有最高概率值的预设数目个元组的元组。以此方式,数据项目子集可以通过代理经由表示所述数据项目的元组来选择。
数据项目集合可以包括数值集合,可以包括分类值的集合,也可以表示值范围(例如,分布或直方图中的值‘区间’)。数据项目集合可以从测量设备(例如,传感器)获得,可以从机器学习模型的输出获得(例如,人工神经网络的权重等),也可以在量子计算机的量子位的状态的测量以相关联概率从其叠加状态收缩到测得值“1”或“0”(例如,伯努利随机变量的向量)时从量子计算机的输出获得以用于经典计算机。数据项目集合可以从数据项目(数值或分类)的数据库或存储器获得。
确定概率分布的步骤可以包括确定统计数据集合(或群体),其包括示出数据的所有可能值(或间隔、范围/区间等)和它们出现的频率的列表或函数。分布可以是示出数据集合内的数据项目的值和它们出现的频率的函数(经验或分析)。概率分布可以是给出数据集合的数据项目的不同可能/观测值的出现概率的函数(经验或分析)。
所述方法可包含确定所获数据集合内不超过预设阈值概率(或阈值频率)的值或不在预设数目当中的数据项目的出现概率。换句话说,所述方法可包含确定所获数据集合内不属于所述子集的数据项目的附加出现概率。将子集内的每一相应选定数据项目的出现概率归一化的步骤可以使得所述附加概率和所有选定数据项目的所述出现概率的总和等于1.0。以此方式,所述附加概率可以考虑到所获数据集合的数据项目在所述子集之外的概率且进而提供‘溢出’概率。
所述方法可以包含生成所获数据集合中的不在所述子集内的数据项目的、包括第一值和第二值的集合元组,其中第一值是共同表示所获数据集合中的不在所述子集内的数据项目的值,且第二值是在所获数据集合内但不在所述子集内的数据项目的经归一化附加出现概率的值。
所述方法可以包含在所述存储器中将集合元组的第一值存储在相应存储器位置,且在所述表中与指针相关联地存储集合元组的第二值,所述指针被配置成识别集合元组的第一值的相应存储器位置。
所述方法可以包含使用所述子集的多个前述元组(例如,使用全部元组)的第一值和第二值生成数据项目子集的分布概率分布的表示。所述方法可以包含使用所述子集的多个前述元组的第一值和第二值且使用集合元组的第一值和第二值生成所获数据项目的分布概率分布的表示。
分布概率分布的表示可以根据本文公开的任何表示(例如,基于SoDD的表示)。所述方法可以包含对两个分布执行算术运算,其中所述分布中的一个或两个是如上文所描述那样生成的。
前述表可以是电路结构中的结构化存储器而不是计算机存储器中的阵列。所述方法可以包含提供逻辑单元,所述逻辑单元被配置成用于接收所述元组(例如,子集的元组,任选地还有集合元组),且用于在元组的第一值遵守由逻辑单元定义的准则的情况下在所述表的子表内的位置与相应指针相关联地存储所述元组的第二值。以此方式,所述方法可以将表结构化为包括多个子表,其中每个子表含有来自满足特定准则集合的元组的数据。当然,界定子表中的任一个的准则可以不同于界定其它子表中的任一个的准则。
所述方法可以包括提供系词(copula)结构,其用于组合使用单独表(每个表如上文描述那样形成)或单独子表的元组表示的各个分布以实现联合分布。所述系词结构可以被配置成生成多变量累积分布函数,其中每一变量的边际概率分布在间隔[0,1]上是均匀的。系词用于描述随机变量之间的相依性。系词允许通过单独地估计边际和系词来对随机变量的分布进行建模和估计。存在许多参数系词系列可供本领域的技术人员用于此目的。
逻辑单元可以被配置成针对被配置成返回概率(p)(即,而非布尔型‘真’/‘假’值)的表,针对表的对应于所述第一值(即,相应数据项目的值)的每一元素实施概率性的(例如,非布尔型)谓词(predicate)。可以此方式实施界定不同子表的准则。由于可以根据谓词树考虑谓词,因此这准许使用所述树的所有节点的前序遍历或后序遍历将谓词展平为字符串,且在需要时此展平的树可用作分布表示。这可以将表示的大小显著地减小为随着表示的大小以线性方式而非以指数方式缩放的大小。用于树的所有节点的前序遍历或后序遍历的技术可以根据本领域的技术人员容易获得的技术。
元组可以采用由多个部分组成的数据结构的形式;例如构成记录的有序数据集合。本文对“元组”的参考可被视为包含对元素的有限有序列表的参考。本文对“n元组”的参考可被视为包含对具有n个元素的序列的参考,其中n是非负整数。
在第六方面中,本发明可以提供一种用于数据分布的编码的设备,所述设备被配置成实施以下步骤,包括:
获取数据项目集合;
确定所获数据项目的概率分布;
选择所获数据集合内具有超过预设阈值概率值的所获数据集合内的出现概率(例如,聚合概率)或包括在所获数据集合内具有最高出现概率的预设数目个数据项目的数据项目子集;
生成用于所述子集内的每一个数据项目的元组,由此相应元组包括第一值和第二值,其中第一值是相应数据项目的值,且第二值是所获数据集合内相应数据项目的出现概率的值;
将每一相应选定数据项目的出现概率归一化,以使得所有选定数据项目的所述出现概率的总和等于1.0;
提供存储器,且对于每一元组,在所述存储器中在相应存储器位置处存储所述元组的第一值;
提供表(在软件或硬件中),且对于每一元组,在所述表中与被配置成识别所述元组的第一值的相应存储器位置的指针相关联地存储所述元组的第二值。
所述设备可以被配置成通过确定统计数据集合(或群体)来实施确定概率分布的步骤,所述统计数据集合(或群体)包括示出数据的所有可能值(或间隔、范围/区间等)和它们出现的频率的列表或函数。优选地,所述设备可以实施为微处理器,或专用数字逻辑电路,或被配置成执行处理步骤的模拟电路。
所述设备可以被配置成确定所获数据集合内不超过预设阈值概率值或不在预设数目当中的数据项目的出现概率。所述设备可以被配置成实施将所述子集内的每一相应选定数据项目的出现概率归一化的步骤,使得所述附加概率和所有选定数据项目的所述出现概率的总和等于1.0。
所述设备可以被配置成生成所获数据集合中的不在所述子集内的数据项目的、包括第一值和第二值的集合元组,其中第一值是共同表示所获数据集合中的不在所述子集内的数据项目的值,且第二值是在所获数据集合内但不在所述子集内的数据项目的经归一化附加出现概率的值。
所述设备可以被配置成在所述存储器中将集合元组的第一值存储在相应存储器位置,且在所述表中与指针相关联地存储集合元组的第二值,所述指针被配置成识别集合元组的第一值的相应存储器位置。
所述设备可以被配置成使用所述子集的多个前述元组(例如,使用全部元组)的第一值和第二值生成数据项目子集的分布概率分布的表示。所述设备可以被配置成使用所述子集的多个前述元组的第一值和第二值且使用集合元组的第一值和第二值生成所获数据项目的分布概率分布的表示。
所述设备可以被配置有电路结构中的结构化存储器而不是计算机存储器中的阵列。所述设备可以提供逻辑单元,所述逻辑单元被配置成用于接收所述元组(例如,子集的元组,任选地还有集合元组),且用于在元组的第一值遵守由逻辑单元定义的准则的情况下在所述表的子表内的位置与相应指针相关联地存储所述元组的第二值。
所述设备可以提供系词结构,其用于组合使用单独表(每个表如上文描述那样形成)或单独子表的元组表示的各个分布以实现联合分布。逻辑单元可以被配置成针对被配置成返回概率(p)(即,而非布尔型‘真’/‘假’值)的表,针对表的对应于所述第一值(即,相应数据项目的值)的每一元素实施概率性的(例如,非布尔型)谓词。可以此方式实施界定不同子表的准则。
在另一方面中,本发明可以提供包括计算机程序的计算机程序产品,所述计算机程序当在计算机上执行时实施上文描述的本发明的方法。在另一方面中,本发明可以提供一种用计算机程序编程的计算机,所述计算机程序当在计算机上执行时实施根据上文描述的方法。
本文对“阈值”的参考可被视为包含对为了使某一反应、现象、结果或条件发生或体现而必须相等或超过的值、量值或量的参考。
本文在统计数据集合(或群体)的上下文中对“分布”的参考可被视为包含对示出数据的所有可能值(或间隔)和它们出现的频率的列表或函数的参考。统计数据中的分布可被视为示出变量的可能值和它们出现的频率的函数(经验或分析)。在概率论和统计学中,概率分布可被视为给出变量的测量的不同可能结果的出现概率的函数(经验或分析)。
本发明包含所描述的方面和优选特征的组合,除非明显不允许或明确避免此类组合。
在其它方面中,单独地或与本文的任何其它方面结合,本发明可以涉及以下方面。换句话说,下文描述的方面中的任何一个或多个可被视为与上文描述的任一个方面分开或组合地应用。举例来说,上文描述的设备可以包括下文描述的设备,且对于上文描述的方法和下文描述的方法,也是如此。
在其它方面中,单独地或与本文的任何其它方面结合,本发明可以涉及以下方面。换句话说,下文描述的方面中的任何一个或多个可被视为与上文描述的任一个方面分开或组合地应用。举例来说,上文描述的设备可以包括下文描述的设备,且对于上文描述的方法和下文描述的方法,也是如此。
在另一方面中,单独地或与本文的任何其它方面结合,本发明可以涉及重新布置指令序列以减小跨越指令序列所操作的计算状态(例如,寄存器)传播不确定性中的数值误差。
在第七方面中,本发明可以提供一种用于计算多步数值计算结果的不确定性的数字值的计算机实施的方法,所述多步数值计算包括在共同“基本块(basic block)”内定义的一系列单独计算指令,所述方法包括:
(a)识别“基本块”的“出口活跃(live-out)”变量;
(b)识别计算指令,“出口活跃”变量的值取决于所述计算指令的输出;
(c)提供组合在步骤(b)识别的计算指令的数学表达式;
(d)使用在步骤(c)提供的数学表达式来计算“出口活跃”变量的不确定性的数字值;
其中在步骤(d)计算的不确定性值是所述多步数值计算的结果的不确定性。已发现此过程不仅使计算的最终结果更准确,而且使计算过程更高效。
优选地,在所述方法中,对于基本块的出口活跃变量,并非计算结果决定所述出口活跃变量的每一指令的经更新不确定性,而是可以将结果决定出口活跃变量的值的指令序列组合成单个表达式,以用于计算出口活跃变量的经更新不确定性。
对作为“出口活跃”的变量的参考可被视为包含对在(例如,指令序列的)节点处“出口活跃”的变量的参考,前提是所述变量在从所述节点的任一个出口边缘上都是活跃的。将变量称为“出口活跃”可被视为包含对变量为活跃寄存器条目(例如,其值在被覆写之前会被再次读取的寄存器)的参考。
对“基本块”的参考可被视为包含对不具有介入控制流指令的指令序列的参考。基本块的“入口活跃(live-in)”变量可被视为其值在基本块内被覆写之前会被读取的程序变量或机器寄存器。基本块的“出口活跃”变量可被视为其值将在基本块退出之后使用的程序变量或机器寄存器。对于基本块的出口活跃变量,并非计算结果决定所述出口活跃变量的每一指令的经更新不确定性,而是可以将结果决定出口活跃变量的值的指令序列组合成单个表达式,以用于计算出口活跃变量的经更新不确定性。
在另一方面中,本发明可以提供一种包括计算机程序的计算机程序产品,所述计算机程序当在计算机上执行时实施上文描述的本发明第一方面的方法。
在另一方面中,本发明可以提供一种用计算机程序编程的计算机,所述计算机程序当在计算机上执行时实施上文在本发明的第一方面中描述的方法。
在第八方面中,本发明可以提供一种用于计算多步数值计算的结果的不确定性的数字值的设备,所述多步数值计算包括在共同“基本块”内定义的一系列单独计算指令,所述设备被配置成实施以下步骤,包括:
(a)识别“基本块”的“出口活跃”变量;
(b)识别计算指令,“出口活跃”变量的值取决于所述计算指令的输出;
(c)提供组合在步骤(b)识别的计算指令的数学表达式;
(d)使用在步骤(c)提供的数学表达式来计算“出口活跃”变量的不确定性的数字值;
其中在步骤(d)计算的不确定性值是所述多步数值计算的结果的不确定性。
本发明包含所描述的方面和优选特征的组合,除非明显不允许或明确避免此类组合。
附图说明
现在将参考附图讨论示出本发明原理的实施例和实验,附图中:
图1示意性地示出根据本发明的实施例的设备;
图2示出对测量数据的两个数据集合的分布进行近似的示意性表示;
图3示出对图2的测量数据的两个数据集合的两个近似分布计算算术运算的示意性表示;
图4示出对图2的测量数据的两个数据集合的两个近似分布计算算术运算的示意性表示;
图5示出根据本发明的实施例的处理器的示意性表示;
图6A示出根据本发明的实施例的处理器的示意性表示;
图6B示出采用TTR(或RQHR)表示的根据本发明的实施例的分布数据的位级表示的示意性表示;
图6C示出采用TTR(或RQHR)表示的根据本发明的实施例的用于包含分布信息/数据的颗粒样本(例如,数据/测量样本)的存储器内阵列的转换的模块的示意性表示;
图6D示出输入数据的分布(a)以及在自相关跟踪开启或关闭的情况下输入数据的不确定性跟踪的结果(b)和通过针对x的所有样本穷尽性地评估x*x而获得的真值结果的输出绘图;
图6E示出采用TTR(或RQHR)表示的根据本发明的实施例的采取两个分布源寄存器及其起源地址作为输入的分布协同ALU的示意性表示;
图7示出根据本发明的实例的生成示出分布信息/数据的不确定性的SoDD表示的过程的步骤;
图8示出根据本发明的示例的在寄存器中使用的数据元素的起源地址的表;
图9示出与图8的表相关联的一系列RISC-V ISA指令;
图10示出根据本发明的示例的两个均为不确定性的表示的分布,以及作为对所述两个分布执行加法算术运算的结果的附加分布;
图11(a)-(e)示出根据本发明的示例的皆为不确定性的表示的分布,以及作为对所述分布执行(b)加法、(c)减法、(d)乘法、(e)除法算术运算的结果的附加分布;
图12(a)-(e)示出根据本发明的示例的皆为不确定性的表示的分布,以及作为对所述分布执行(c)加法、(d)减法、(e)乘法、(f)除法的算术运算的结果的附加分布;
图13A示出根据本发明的示例的表示通过对表示传感器测量数据的不确定性的分布应用算术运算而计算的热膨胀系数计算的不确定性的分布;
图13B和13C示出根据本发明的示例的由温度传感器得到的测量中的分布(图13A),以及表示传感器测量数据的不确定性的所得测量不确定性分布(图13B);
图13D、13E和13F示出根据本发明的示例的由实施变分量子本征求解器算法的变分量子本征求解器装置的量子相位估计(QPE)电路得到的测量的不确定性的分布,所述不确定性分布表示测量数据的不确定性;
图14示出在四个不同所获数据集合中的每一个内的具有n个值的集合{n}的概率的示例[曲线图:(a),(b),(c)和(d)],且示出来自所获数据集合的值的子集以及所述子集内的每一值的出现概率值。示出由数据值和相关联概率值形成的元组。示出包括使用元组生成的一系列狄拉克δ函数(SoDD)的近似概率分布;
图15示出本发明的一个实施例的硬件框图;
图16示出示例概率性谓词树;
图17示出根据本发明的过程的流程图;
图18(a)和18(b)示出程序代码(图18(a))以及由编译器从所述程序代码生成的汇编语言指令序列(图18(b));
图19示出程序代码(图18(a))和其TAD基本块,以及用于基本块阶段的不确定性计算的计算步骤;
图20示出图19的TAD基本块以及用于基本块阶段的不确定性计算的计算步骤;
图21示出图19的TAD基本块以及用于基本块阶段的不确定性计算的计算步骤;
图22示出分离成多个基本块的TAD代码。
具体实施方式
现在将参考附图讨论本发明的各方面和实施例。进一步的方面和实施例对于本领域技术人员来说是显而易见的。本文中提及的全部文件均通过引用并入本文。
示例
图1示出根据本发明的实施例的设备1。所述设备包括计算设备3,所述计算设备与呈传感器单元(例如,加速度计、磁力计等)的形式的测量装置2成通信连接,所述测量装置被配置成生成预定可测量量即被测量(例如,加速度、磁通量密度等)的测量。计算设备3包含与本地缓冲存储器单元5和本地主存储器单元6通信的处理器单元4。计算设备被配置成接收来自传感器单元的表示被测量(例如,加速度、磁通量密度等)的测量的数据作为输入,且将接收的测量存储于本地主存储器单元6中。处理器单元4与缓冲存储器单元5结合被配置成对存储的测量应用数据处理算法,所述数据处理算法被配置成用于对存储于主存储器中的传感器测量进行取样,以便生成测量的样本集合,所述样本集合表示由传感器单元2得到的测量的不确定性,同时也以传感器单元可以允许的准确性程度表示被测量。
此不确定性表示是通过生成所述样本集合以使得所述样本集合内的测量的分布表示传感器单元2的测量的概率分布来实现。计算设备被配置成一旦样本集合生成就将其存储于计算设备的主存储器6中和/或(例如,经由串行I/O接口)将样本集合传输到与计算设备成通信布置的外部存储器7,和/或经由传输器单元8传输一个或多个传达所述样本集合的信号9到远程接收器(未示出)。所述信号可以(例如,经由串行I/O接口)无线地、通过光纤或经由本领域的技术人员清楚的其它传输方式传输。
以此方式,计算设备被配置成生成和存储在一时间周期内的任何数目的(多个)样本集合,其中每个样本集合内的测量值的分布表示传感器单元2的测量的概率分布。类似地,计算设备被配置成生成和存储由传感器单元2的不同操作模式生成或由不同传感器单元2生成的任何数目的(多个)样本集合。换句话说,由计算设备存储的第一样本集合可以与第一传感器单元相关联,且由计算设备存储的第二样本集合可以与和第一传感器单元不同的第二传感器单元相关联。举例来说,第一传感器单元可以是电压传感器(电压),且第二传感器单元可以是电流传感器(电流)。在两种情况下,计算设备可以存储分别由每一传感器得到的测量值的分布,所述分布各自表示所述传感器单元2的测量的概率分布。
计算设备3被配置成如下实施用于对存储在主存储器单元中的数据分布进行编码和计算的方法。
作为第一步骤,计算设备3从传感器单元2获得测量数据项目的第一集合,且从传感器单元2(可以是相同传感器或不同传感器)获得测量数据项目的第二集合。这些数据集合是从主存储器单元中的存储装置获得,且在它们被处理的持续时间内存储于缓冲存储器单元5中。处理器单元4随后对测量数据项目的第一集合和第二集合应用生成测量数据项目的相应集合的近似分布的过程。此过程可以是上文对于生成固定类型的N维基于SoDD的表示(上文称为FDR,即RQHR、PQHR、MQHR或TTR)或N维CMR表示所描述的过程中的任一个。处理器单元单独地对第一测量数据集合和第二测量数据集合中的每一个应用相同过程,以便生成含有对表征第一集合的测量数据项目的分布的概率分布进行编码的参数的第一N元组,以及含有对表征第二集合的测量数据项目的分布的概率分布进行编码的参数的第二N元组。
应注意,处理器单元应用相同过程,用于对第二集合的数据项目的分布进行编码的参数(即,表示第二集合的数据的狄拉克-δ函数的位置xi,及其高度/概率pi)与用于对第一集合的数据项目的分布进行编码的参数(即,表示第一集合的数据的狄拉克-δ函数的位置xi,及其高度/概率pi)相同。当然,参数(位置,概率)是相同的,但它们的值不同。
图2示出此过程在N维基于SoDD的表示是MQHR表示的情况下的示意性示例。对第一测量数据集合应用MQHR处理的结果是生成第一测量数据集合的第一N维基于SoDD的表示11,其完全由第一N元组10的参数界定:
类似地,对第二测量数据集合应用MQHR处理的结果是生成第二测量数据集合的第二N维基于SoDD的表示13,其完全由第二N元组12的参数界定:
应注意,第一N元组10中的参数的值通常与第二N元组11的参数的值不同。当然,这仅仅是因为第一测量数据集合和第二测量数据集合中的测量值的分布通常彼此不同。
处理器单元4可以被配置成在主存储器单元6中存储第一和第二N元组(10,11)以便后续用于对其应用算术运算(传播)。随后,处理器单元可以简单地从主存储器单元6获得第一和第二N元组(10,11)且将其例如放置于缓冲存储器单元5中以用于在需要时对其应用算术运算(传播)。在替代实施例中,处理器可以被配置成从远程存储器单元7获得第一元组和第二元组作为输出,或在从远程传输器/源(未示出)接收到传达第一元组和第二元组的信号9时从接收器8接收第一元组和第二元组作为输出。
接下来,处理器单元4通过对分别由相应N元组(10,12)的参数完全界定的第一测量数据集合和第二测量数据集合的第一和第二N维基于SoDD的表示(11,13)应用算术运算而生成第三元组:
为了执行此算术运算,处理器使用包含于第一元组内的参数(即,表示数据的狄拉克-δ函数的位置xi,及其高度/概率pi)和包含于第二元组内的参数(即,表示数据的狄拉克-δ函数的位置xi,及其高度/概率pi)。结果是含有对概率分布进行编码的参数的第三元组,所述概率分布表示对第一概率分布和第二概率分布应用算术运算的结果。处理器随后将第三元组输出到本地存储器单元6用于存储和/或输出到传输器单元8用于传输9。
处理器单元被配置成实施包括以下各项中的一个或多个的算术运算:加法;减法;乘法;除法,或任何双变量运算,例如指数运算和许多其它运算。作为算术运算的示例,图3示意性地表示通过第一测量数据集合和第二测量数据集合的第一和第二N维基于SoDD的表示(11,13)近似的分布的加法和乘法运算:
和/>
将这两个分布(其中在此示例中‘FDR’=MQHR)相加在一起或相乘在一起以生成第三N维基于SoDD的表示15:
当第三基于SoDD的表示15内的量Φ(xn,ym)被计算为Φ(xn,ym)=Φ+(xn,ym)=xn+ym时,此表示表示加法的结果,如上文所述。
当第三N维基于SoDD的表示15内的量Φ(xn,ym)被计算为Φ(xn,ym)=Φ+(xn,ym)=xn+ym时,此表示表示乘法的结果,如上文所述。
然而,处理器单元不需要再生第一、第二或第三基于SoDD的表示(11,13,15)中的任一个以便生成第三元组15。这是因为算术过程允许使用第一元组和第二元组的参数生成第三元组的每一参数。一旦计算出第三元组的参数,它就会完全编码第三基于SoDD的表示15,从而准许在需要时再生第三分布,且准许第三元组以高效方式存储(在本地存储器单元5或远程存储器7中)和/或作为来自传输器单元8的信号9进行传输。
此存储/传输仅需要对概率分布进行编码的参数(即,表示第三集合的数据的狄拉克-δ函数的位置zi,及其高度/概率pi),所述概率分布表征作为算术运算结果的数据项目的第三集合15的数据项目分布。用于对第三集合的数据项目的分布进行编码的参数与用于对第一集合和第二集合的数据项目的分布进行编码的参数相同,因为第三集合是使用与第一集合和第二集合相同的基于SoDD的表示(即,在此示例中为MQHR)编码的。为了实现用于所传播变量Z的表示的相同格式(或相同参数),第三元组(图4的18)优选地在大小方面减小到作为N元组的“经压缩”第三元组(图4的18B)。这使得能够进行进一步计算,可涉及表示大小不会无限增长的Z。这种减小到标准大小(即,N元组)还有助于本文所论述的微架构实施方案。图4示意性地示出应用于MQHR表示中的两个分布(11,13)的乘法的过程,所述乘法得到也在MQHR表示中的第三分布15。图4还在以下方面示出此操作的实施方案:使用用于所述两个分布中的第一分布11的N元组的参数(位置,概率)且使用用于所述两个分布中的第二分布12的N元组的参数(位置,概率),以生成包括具有界定生成于乘法的分布的值的参数(位置,概率)的第三元组18参数。此第三元组随后优选地用于生成上文所描述的“经压缩”第三元组18B,其具有与第一和第二元组(10,12)相同的大小(N元组)。
特别地,表示第三集合15的数据的狄拉克-δ函数的位置zk由Φ(xn,ym)的值给定。表示第三集合的数据的狄拉克-δ函数的高度/概率pk由表示第一数据集合的数据的狄拉克-δ函数的高度/概率(pn)和表示第二数据集合的数据的狄拉克-δ函数的高度/概率(pm)的乘积pk=pn×pm给定。这在第一分布和第二分布进行乘法的情况下可以示意性地概括为:
本发明不限于基于SoDD的表示(例如MQHR),且第一元组、第二元组和第三元组一般可以含有根据其它表示对表征第一集合、第二集合和第三集合的数据项目分布的概率分布内的数据间隔的位置和/或宽度进行编码的参数,例如上文所论述的示例中的任一个中所描述。第一元组、第二元组和第三元组可以含有根据其它表示对表征第一集合的数据项目分布的概率分布内的数据项目的概率进行编码的参数。举例来说,如上文所论述,第一元组、第二元组和第三元组可以含有对表征第一集合的数据项目分布的概率分布的一个或多个统计矩的值进行编码的参数。
第一元组和第二元组各自是N元组,其中N>1且为整数,且第三元组是M元组,其中N2/2<M<2N2,且其中N>1且为整数。如果生成,则压缩的第三元组优选地是N元组。本发明通过使用第一元组和第二元组表示数据分布而且还通过使用第三元组表示第三数据分布极大地增强了数据存储和传输的效率。根据本发明,表示数据分布所需的数据少得多,并且这极大地降低了用于存储数据分布的存储器空间的负担。此外,提供了对数据集合执行算术运算的高效方式,这极大地减少了计算机系统的计算负担。
例如,为了更好地示出本发明在此上下文中的使用,第一数据集合和第二数据集合通常可以包括表示测量不确定性的相应第一随机测量变量和第二随机测量变量的样本。例如,第一数据集合可以包括来自电压传感器的测量,例如跨越电路组件的电压(V)的测量,且第二数据集合可以包括来自电流传感器的测量,例如通过电路组件的电流(I)的测量。因此,通过将乘法算术运算应用于第一数据集合和第二数据集合的分布而生成的第三数据集合可以表示由电路组件耗散的电功率(P=I×V)的不确定性。以此方式,不仅变得可以监视电路组件的功率耗散和表示测得功率的不确定性,而且在监视计算机的存储器要求方面和所述计算机的处理/计算负担方面的效率要高得多。
示例
微架构
上述公开内容提供值不确定的数据的不确定性的高效二进制数表示。下文描述用于对这些表示高效地执行计算的示例硬件架构。举例来说,所述示例硬件架构可以是上文参考图1所描述的处理器单元4的示例。处理器单元4可以下文参考图5和图6A、6B和6C更详细地描述的微架构的形式提供。
上述用于数据的二进制数表示(元组)有效地实施在表示中使用的位数目与经验概率分布的表示的准确性之间的折衷:换句话说,较少的位意味着不确定性表示的较高效率,但代价是所述表示中的准确性具有一些可接受的损失。上文提出的不确定性表示的示例通常允许计算系统有效地表示不确定的量,即使当那些量具有很少出现的高矩离群值时也是如此。
上文提出的不确定性表示和用于对其执行算术的算法可实施于用于对与分布相关联的数据(分布信息/数据)进行计算的微架构中。指令集架构(ISA)可与作为RISC-V32位ISA的扩展的微架构一起使用。微架构未经修改即可执行现有RISC-V程序且其ISA可以扩展以展现用于设定和读取分布信息/数据而不改变程序语义的新工具。微架构可以表示和传播分布信息/数据且提供软件层级的不确定性感知。
不确定的数据在计算系统中是普遍存在的。一个常见示例是传感器测量,其中物理测量的真正性质意味着在所记录值(测量)与所测量的量(被测量)之间始终存在某种程度的不确定性。此形式的测量不确定性经常通过在被测量名义上固定的情况下执行重复测量且使用统计分析观察各个测量的变化或注意有效数字的数目来量化。此类在数值上量化的不确定性在文献中称为偶然不确定性。当关于所关注的量的信息不充分时也可能存在不确定性。举例来说,用于神经网络的训练过程确定每神经元权重的值,所述训练通过反向传播而跨越训练时期更新。由于用于控制训练过程的参数的可能值具有较大空间,所述参数例如用于梯度更新的动量和步长(所谓的超参数),神经网络模型中的权重初始是不确定的,但最终由于训练过程而收敛于权重值的较窄分布上。在感测装置的情况下,测量可能出现的随机误差被视为偶然不确定性。认知不确定性是指我们对所检查现象的参数的不完全了解或忽视。通过微架构或以其它方式实施的本发明可以编码、表示和传播表示由测量设备(例如,传感器)得到的测量数据的不确定性的分布信息/数据(例如,概率分布、频率分布等)和/或可以传播界定人工神经网络的分布权重的分布信息/数据。
此类值不确定性是因为关于它们应当采取的值的信息不完整而生成的,在研究文献中经常称为认知不确定性。尽管这两种类型的不确定数据在现代计算系统中越来越重要,但现代计算机架构既不支持有效地表示认知不确定性,也不支持表示偶然不确定性,更不用说此类值的算术和控制流。当今计算机架构用单点值或“颗粒”值(即,无相关联分布的数据)表示两个种类的不确定值,通常将平均值用作计算中使用的表示。下文为了简洁性,我们将单点值(即,不具有相关联分布的数据)称为“颗粒”值。本文公开的微架构提供对RISC-V ISA的非侵入式架构扩展,用于具有认知不确定性以及偶然不确定性两者的计算。
微架构可以允许程序将分布信息与所有浮点寄存器和/或整数寄存器以及引申来说与用于加载和存储寄存器值的所有选定存储器字关联。算术指令可以将与作为源操作数的寄存器相关联的分布信息/数据传播到目的地寄存器且传播回到存储器用于存储操作。
上文给出表示的示例(例如,基于SoDD的表示,CMR表示),用于借助于离散概率分布有效地捕获微架构内的每一存储器元件的不确定性。以此方式,用于具有分布信息的变量的计算机表示可被视为类似于用于例如定点浮点表示等实值数字的计算机表示。特定地,定点表示使用固定数目的位用于实值量的完整部分和分数部分,且将近似实值表示为其动态范围上的固定间距,而浮点表示用指数表达式表示实值量,其准许表示更宽的动态范围但使得实数线上的值的间距不均匀。恰如定点和浮点数表示在其对实值量的表示中的位数目与相对于所表示实值数字的准确性之间进行折衷,本文公开的分布表示/数据在表示中的位数与表示经验概率分布的准确性之间进行折衷。
微架构可以对默认RISC-V ISA的默认语义透明地表示和跟踪计算中的不确定性。微架构可以准许用户对计算中任一点处的不确定性作出概率性的和统计的查询。
因为本文公开的表示的示例(例如,基于SoDD的表示,CMR表示)具有有限长度,所以它们是原始离散随机变量的概率密度函数的近似。简单重述,假设δ(x)是以x为中心的狄拉克分布。给定“颗粒”值我们将颗粒值定义为分布δ(x-x0)。使用此定义,我们将具有M个颗粒值的阵列表示为经加权狄拉克δ的总和,形式为
其中pn∈[0,1],且
在M个颗粒值的情况下,我们将pn设定为等于所述M个值中的每一个的出现概率,其为1/M。因此,所述M个颗粒值的经更新狄拉克δ分布采取如下形式:
此分布是准确表示,我们将其称为狄拉克混合表示。狄拉克混合表示可以用作颗粒数据的参考分布表示,以便界定在上文更详细公开的以下三个紧凑分布表示。我们通过以下函数定义随机变量X的分布函数:
对于离散随机变量,即,仅采取实数的某个可计数的子集中的值的变量,我们将离散随机变量X的概率质量函数定义为:
此处是随机变量X具有观测值x的概率。我们将具有“概率质量”函数f(x)的随机变量X的平均值或期望值定义为:
集中式矩表示(CMR):
此表示使用颗粒数据阵列的狄拉克混合表示的期望值和前N个集中式矩。我们排除始终等于零的第一集中式矩。我们将离散随机变量X的第N阶集中式矩表示(CMR)定义为上文所定义的有序N元组。为了完整性,我们将随机变量X的第k个矩mk(k=正整数)定义为期望值:
我们将随机变量X的第k个集中式矩σk定义为期望值:
举例来说,σ2是随机变量的方差。有序N元组则为:
规则量化直方图表示(RQHR):
在此表示中我们可以将输入颗粒值的范围划分为具有相等范围大小L的N个区间。我们将每一区间的高度定义为pi(1≤i≤N)且将其设定为等于属于第i区间的间隔内的输入颗粒数据的相对频率。这得到可被建模为狄拉克混合体的规则定位直方图的集合,其中每一狄拉克δ以等于pi的概率质量位于每一直方图的间隔的中间。由于范围大小L是恒定的,因此通过知道第一狄拉克δ的位置x0,可以计算它的其余部分的位置。因此,我们可以将由N个狄拉克δ组成的X的规则量化直方图表示(RQHR)定义为有序(N+2)元组:
伸缩扭矩表示(TTR):
伸缩扭矩表示(TTR)在log2N个步骤中从具有任何数目的元素的狄拉克混合体递归地构造具有N个狄拉克δ的新集合。在每一步骤,所述构造将给定狄拉克混合体划分成两部分:位于混合体的平均值下方的那些以及位于混合体的平均值上方的那些,以获得两倍数目的狄拉克混合体。图7示出针对N=4且从8个“颗粒”的狄拉克混合体开始的示例。初始狄拉克混合体的平均值等于μ0=22.5。在TTR构造的步骤0,我们将给定混合体的第0阶TTR定义为狄拉克δ,其概率质量等于混合体中的所有狄拉克δ的概率质量的总和(其为1.0)且处于平均值μ0。在步骤1,我们考虑分别位于μ0下方和μ0上方的两个混合体(在此示例的情况下每一混合体由四个狄拉克δ组成)且针对每一混合体重复过程。以此方式,将初始混合体的第1阶TTR定义为每一子混合体的第0阶TTR的并集。在给定示例的情况下,这对应于位于子混合体的平均值且都具有等于0.5的“概率质量”的两个狄拉克δ。在步骤2,过程重复,进一步将步骤1的子混合体划分为两部分且寻找其第0阶TTR。这提供了具有N=2n=4个狄拉克δ的初始混合体的n=2阶的TTR。如果x1、……、xN是在构造的第n阶段中狄拉克δ的位置,其中n=log2N且如果p1、……、pN是其“概率质量”,则X的第n阶TTR为有序2N元组:
TTR和RQHR表示都具有固定大小且在计算发展时大小并不增加。
对表示的算术运算
给定具有使用本文公开的表示中的任一个表示的概率质量函数的两个离散随机变量X和Y,可以实施本文公开的算法以便计算离散随机变量Z=Φ(X;Y)的“概率质量”函数的表示,其中Φ(X;Y)为加法、乘法、减法和除法中的一个。微架构4支持针对本文公开的所有分布表示的这些算术运算。微架构,以及一般来说本发明,可以通过用前述基本算术运算表示来计算更复杂的算术运算,例如融合乘法和加法或平方根,这对于本领域的技术人员使显而易见的。
举例来说,RQHR和TTR表示(和其它基于SoDD的表示)都呈一系列狄拉克δ(即,“SoDD”)的形式,其可以在需要时表示为给定位置和概率质量的向量。假定两个随机变量X和Y,其加法和乘法由狄拉克δ位置和概率质量向量的循环卷积生成。在本公开的以下部分,我们将集中于TTR,但相同原理适用于RQHR(和其它基于SoDD的表示)。
表2中示出的算法1提供由本发明的微架构实施的算法的示例,用于使用大小为NTTR的TTR表示的两个输入离散随机变量的加法。对这两个输入变量的狄拉克δ位置和质量的运算的结果临时存储于变量“destVar”中,其具有大小为NTTR×NTTR的狄拉克混合体表示类型。在计算完成之后,微架构使用表2中示出的算法将“destVarDM”转换为“destVarTTR”。
表2
/>
对于TTR中的两个变量的乘法需要类似过程,如表3中所示。
表3
这两个算法之间的差异在于在算法2的情况下输入狄拉克δ的位置是相乘的,而不是像在算法1的情况下是相加的。
算法1和2展示狄拉克δ表示的优点。算术传播所需运算需要逐元素运算,其为高度并行的且其计算可经优化。此外,对两个变量的算术运算的结果也呈狄拉克δ混合体形式,其可使用适用于颗粒数据的程序转换成预期表示而不需要额外硬件或软件逻辑。
颗粒值与呈TTR形式的变量之间的加法或乘法导致表示的狄拉克δ的位置偏移或按比例缩放。记住这一点,则通过与-1相乘将减数的TTR取否来实现TTR中的两个不确定变量的减法。对于TTR变量的除法的情况,我们将其定义为使用除数变量的倒数的乘法。可通过计算输入狄拉克δ位置的倒数来构造TTR变量的倒数。
贝叶斯-拉普拉斯准则
假设Θ是承担实例值θ且具有概率质量函数fΘ(θ)的随机变量。假设fX(x|θ)是给定参数Θ时随机变量X的分布的概率质量函数,即,Pr{X=x|θ}。参数Θ通常是机器状态中的变量,例如对应于正在微架构上执行的神经网络模型中的权重的存储器中的字。在贝叶斯神经网络中,存在关于此类权重的认知不确定性,且训练程序的目标是基于先验知识和在训练期间看见的值的组合而估计其(后验)分布。贝叶斯-拉普拉斯准则在给定随机变量X的一个或多个“证据”样本x的情况下为我们给出随机变量Θ的概率质量函数的表达式。随后,给定随机变量X的N个样本的向量,即,给定x={x1,x2,...xN},fΘ(θ|x)为:
此等式的左侧经常称为参数Θ的“后验分布”。概率质量函数fΘ(θ)称为参数Θ的“后验分布”且“似然性”被计算为:
似然性经常称为取样分布。用于计算后验分布的贝叶斯-拉普拉斯准则是在更新程序状态的认知不确定性中极有价值的运算。在当代的系统中,此更新广泛地被认为在计算上具有挑战性,因为需要在上述fΘ(θ|x)等式的分母中执行积分或等效求和。本发明准许使用先验分布的不确定性的表示(例如,SoDD表示)、取样分布和“证据”样本的集合来计算后验分布。
用于数据分布的计算的处理器单元4的微架构的示例在图5以及图6A、6B和6C中示出。在每一示例中,微架构包括微架构单元20,所述微架构单元包括被配置成含有浮点数据的浮点寄存器堆28。浮点寄存器堆含有被配置成用于含有颗粒数据项目的第一寄存器堆28A,和被配置成用于含有分布数据的第二寄存器堆28B。分布数据表示作为与第一寄存器堆28A中的相应颗粒数据项目相关联的不确定性表示的分布(例如,基于SoDD的表示)。浮点寄存器堆28通过对第一寄存器堆28A内的给定颗粒数据值和将与所讨论的颗粒数据相关联的第二寄存器堆28B中的分布数据条目两者指派一个共同寄存器堆条目识别符(fi)来使第一寄存器堆28A中的给定颗粒数据项目与其在第二寄存器堆28B内的相关联分布数据进行关联。举例来说,第一寄存器堆28A和第二寄存器堆28B两者中的第一寄存器条目由相同的一个寄存器条目识别符“f0”识别。类似地,第一寄存器堆28A和第二寄存器堆28B两者中的最后寄存器条目由相同的一个寄存器条目识别符“f31”识别。当然,同理适用于中间寄存器条目识别符,使得第一寄存器堆28A和第二寄存器堆28B两者中的第i寄存器条目由相同的一个寄存器条目识别符“fi”识别。
第一算术逻辑单元25被配置成用于对选自第一寄存器堆28A的颗粒数据项目执行算术,且第二算术逻辑单元26被配置成用于对选自第二寄存器堆28B的分布数据执行算术。处理器4的微架构20被配置成实施以下步骤。第一算术逻辑单元28A对选自第一寄存器堆28A的两个浮点颗粒数据项目执行算术运算(例如,加法、减法、乘法或除法),且输出结果。同时,第二算术逻辑单元28B对与选自第一寄存器堆28A的数据项目相关联的选自第二寄存器堆28B的表示分布的分布数据的两个项目执行相同的算术运算,且输出结果。值得注意的是,对选自第二寄存器堆28B的分布数据执行的算术运算与对选自第一寄存器堆28A的数据项目执行的算术运算相同。因此,第二算术逻辑单元26的输出是表示与对选自第一寄存器堆28A的数据项目执行的算术运算(例如,加法、减法、乘法或除法)的结果相关联的不确定性的附加分布数据。
例如,考虑其中第一算术逻辑单元25从第一寄存器堆28A内选择寄存器堆位置/条目f1和f2处的颗粒数据项目用于相加在一起,且将结果输出到第一寄存器堆28A内的寄存器堆位置/条目f0(例如,用于后续从处理器输出,或用于进一步算术运算)。从第一寄存器堆28A内选择寄存器堆位置/条目f1和f2处的颗粒数据项目触发第二算术逻辑单元26并行地从第二寄存器堆28B内选择寄存器堆位置/条目f1和f2处的分布数据项目用于相加在一起,且将结果输出到第二寄存器堆28A内的寄存器堆位置/条目f0(例如,用于后续从处理器输出,或用于进一步算术运算)。这可以使用RISC-V架构的浮点寄存器的命名规则概括如下,假设f0是微架构的浮点寄存器:
算术运算:f0:颗粒=f1:颗粒+f2:颗粒
算术运算:f0:分布=f1:分布+f2:分布
微架构单元20的此算术运算的结果的输出可以包括以下各项中的一个或多个:在存储器中存储输出;传输传达输出的信号(例如,以电子方式传输到另一电路组件,或传输到存储器,或无线地传输到远程接收器)。第一寄存器堆28A和第二寄存器堆28B被配置成至少含有第一颗粒数据项目和相关联分布数据(例如,在f1处)以及第二颗粒数据项目和相关联分布数据(例如,在f2处),但可以含有更多数据项目(例如,在此示例中至多32个:f0到f31)。
第二寄存器含有与呈例如本文公开的任何类型的元组的形式的给定颗粒数据项目相关联的分布数据(例如,f1:分布、f2:分布),其含有对表征与所讨论的颗粒数据项目相关联的不确定性表示的概率分布进行编码的参数。用于对第二寄存器堆28B的所有分布数据项目的分布数据进行编码的参数至少在给定算术运算期间是彼此相同的。因此,应用于分布数据的两个选定元组的算术运算的结果是使用包含于第一元组f1:分布内的参数且使用包含于第二元组f1:分布内的参数定义的第三元组(f0:分布)。第三元组f0:分布含有对存储于第二寄存器堆28A中的位置f0处的新的附加分布数据进行编码的参数。
处理器4还包括微架构单元(图5中的21;图6中的21B),其包括整数算术逻辑单元27,所述整数算术逻辑单元被布置成对包含于整数寄存器堆(图5中的29;图6中的29A和29B)内的整数颗粒值实施算术运算。在图5的示例中,整数寄存器堆29中仅含有整数颗粒值,且整数算术逻辑单元27被布置成仅对包含于整数寄存器堆29内的整数颗粒值实施算术运算。然而,在图6A的示例中,在微架构21B中在第一寄存器堆29A中含有整数颗粒值且在第二分布寄存器堆29B中含有相关联分布值。此外,微架构21B包括执行单元24,其不仅包含图5的示例中示出的第一算术逻辑单元27(用于整数运算),而且含有被配置成对与整数颗粒数据相关联的分布信息执行算术运算的第二算术逻辑单元31。以此方式,微架构21B被布置成仅对整数颗粒值和包含于第二寄存器堆29B内的其相关联分布数据实施算术运算。第一算术逻辑单元和第二算术逻辑单元(27,31)的运算和功能与第一寄存器堆和第二寄存器堆(29A,29B)相互作用,使得以上文参考浮点寄存器和算术单元所描述的相同方式,对整数颗粒值执行的算术运算也并行地对相关联分布值执行。总之,上述关系:
算术运算:f0:颗粒=f1:颗粒+f2:颗粒
算术运算:f0:分布=f1:分布+f2:分布
同等地适用于整数数据算术运算。
以此方式,微架构中的浮点和/或整数寄存器堆(28A,28B,29A,29B)可以使具有分布信息的所有浮点和/或整数寄存器关联。当指令从不具有分布信息的浮点和/或整数寄存器进行读取时,行为与常规架构相比是不变的。在存在分布信息的情况下的语义是返回平均值。浮点寄存器的数目及其常规颗粒部分保持不变。
总之,图5示出不使整数寄存器与不确定性关联且因此整数寄存器堆具有常规设计的微架构示例,而图6示出确实使整数寄存器与不确定性关联且因此整数寄存器堆是根据本发明的微架构示例。两个图式都示出根据本发明的实施例的处理器4的示例(例如,图1的处理器单元)。在这些示例中,处理器单元被配置成实施RISC-V ISA。因此,处理器单元包括与处理器单元的RISC-V解码单元23成通信布置的RISC-V指令提取单元22。RISC-V指令提取单元22被配置成从计算机3(图1)提取指令且在由处理器单元4执行时保持每一指令。提取单元将指令发出到解码单元23,所述解码单元又响应于所接收提取指令以便对所接收指令进行解码且将得到的指令发出到处理器单元的RISC-V执行单元24,以执行经解码指令。在接收到指令后,RISC-V执行单元24将指令发出到处理器单元的算术逻辑单元(ALU),以根据本发明对浮点颗粒数据28A及其相关联分布信息/数据28B执行算术运算,和任选地还对整数颗粒数据29A执行算术运算。
以此方式,处理器优选地包括根据本发明的扩展寄存器堆(28A,28B;29A,29B),其包括可存储浮点数据或整数数据的第一寄存器堆(28A,29A),和可存储分布信息/数据的第二寄存器堆(28B,29B)。此扩展浮点寄存器堆使第一寄存器堆(28A,29A)内的所有浮点(或整数)寄存器与第二寄存器堆(28B,29B)内的分布信息关联。执行单元24遵循本文公开的算法以致使含有浮点(或整数)分布算术单元(26,31)的扩展功能单元(20,21B)对与浮点(或整数)寄存器堆28A或29A内的浮点(或整数)颗粒数据(第一寄存器堆28A,29A)相关联的分布数据(第二寄存器堆28B,29B)执行算术运算。
微架构的细节在图6A、6B和6C中示出
图6B示出具有大小N的RQHR或TTR的位级表示。图6B中的命名法和符号如下:
较低阶64位存储用于导出分布表示的颗粒样本的数目。接下来N个64位值存储表示的支持位置。它们随后是概率质量的N个64位值。假设f0是微架构(例如,RISC-VRV32IMFD)的常规浮点寄存器且假设df0是相应微架构级分布浮点寄存器。根据优选实施例的微架构并行地对常规寄存器和分布寄存器两者执行所有算术和逻辑指令。举例来说,源寄存器f1和f2相加到目的地寄存器f0中也触发寄存器df1和df2的分布信息相加到分布寄存器df0中。非分布寄存器值和其运算的语义保持不变。对分布信息的跟踪与非分布架构状态并行地发生(且前者不影响后者行为)。根据优选实施例的微架构用两个分布协同ALU扩展整数和浮点算术和逻辑单元(ALU)。常规不变的ALU对源寄存器的颗粒值进行运算。分布协同ALU使用上文提到的表2和表3的算法对源寄存器的分布表示执行相同运算。分布协同ALU可以被配置成计算源寄存器的分布表示的统计数据。实例包含本文(例如,上文)所描述的统计指标,例如但不限于以下内容。
第N集中式矩:
对于任何整数N≥0,随机变量X的第N矩由σN=E((X-E(X))N)给定,其中:
此处,dpos[i]和dmass[i]是颗粒i的狄拉克δ位置和概率质量。
第N模式/反模式:
X的第N模式是概率质量函数fX采取其第N高值时的颗粒值x,且被计算为dpos[iN],其中iN是dmass采取第N高值时的索引。第N反模式以类似方式计算,但iN是dmass采取第N低值时的索引。如果N大于分布表示的大小,则统计评估为NaN(“非数字”)。
分布的支持最小值或最大值:
此计算返回X的分布表示的狄拉克δ位置的最小值或最大值(即,dpos的最小值或最大值)。
尾概率:
给定截止值X的尾概率的计算是
尾概率Pr(X≤x0)被计算为:Pr(X≤x0)=1.0-Pr(X>x0)。
加载/存储不确定性信息
微架构中的加载指令将对应于微架构的主存储器的地址的分布表示加载到目的地寄存器的分布部分。存储指令将源寄存器的分布信息存储到微架构的主存储器。图6A示出实施微架构的处理器的物理存储器的一部分如何存储分布表示。微架构的负载/存储单元将由应用程序存取的地址映射到存储其分布表示的地址。
在下文更详细地论述额外加载指令,其通过从源颗粒样本的存储器内阵列创建分布表示来初始化目的地寄存器的分布信息。
图6C示出将源样本(例如,传感器测量)转换为TTR表示的硬件模块的实施方案。图6C中的命名法和符号如下:
模块包括多个层级的转换单元(即,“转换单元[0,0]”;“转换单元[1,0]”;“转换单元[1,1]”;“转换单元[2,0]”;“转换单元[2,1]”;“转换单元[2,2]”;“转换单元[2,3]”),在呈SoDD形式的样本阵列(本文也称作“狄拉克混合体”)到TTR表示(上文所论述)的转换中涉及的每一步骤对应于一个层级。一对整数识别每一转换单元。第一整数对应于转换步骤且第二整数是递增索引,例如,图6C中的“转换单元[1,1]”是转换步骤1的第二转换单元(部分2.2)。因为图6C示出用于输入样本转换为具有大小四的TTR的实例,所以输出层级由四个转换单元组成,其生成具有大小四的TTR的四个支持位置(“dmPos”)和概率质量(“dmMass”)。每一转换单元具有三个输入和三个输出。第一输入是转换单元将处理的样本阵列的存储器地址。微架构在主存储器中存储样本作为SoDD狄拉克混合体,以支持位置(“dmPos”值)升序来排序。第二输入和第三输入是对应于转换单元将处理的连续样本阵列的开始索引(“startlnd”)和结束索引(“endlnd”)的两个整数。每一转换单元输出支持位置(“dPos”)值和概率质量(“dMass”)值。转换单元将输出概率质量计算为:
转换单元将源SoDD狄拉克混合体的平均值计算为:
转换单元将输出支持位置计算为:
转换单元的第三输出是整数“kPartition”,其对应于索引,在所述索引之下,输入SoDD狄拉克混合体的所有经排序支持位置小于计算的“dPos”。在中间转换层级中,转换单元将其输出“kPartition”传播到下一转换层级。根据它们必须处理的阵列的子集,“kPartition”充当下一层级的转换单元的“startlnd”或“endlnd”值。在最终转换层级中,TTR转换模块将输出分布信息写入到分布目的地寄存器且将源样本的平均值写入到常规目的地寄存器。
给定具有“Rd”目标寄存器的算术指令,随后扩展功能单元(20,21B)根据与源寄存器相关联的分布计算其颗粒值(根据原始RISC-V ISA)及其分布。应用于扩展寄存器堆(28A,28B;29A,29B)的每个算术运算相等地适用于源寄存器的颗粒(28A,29A)和分布(28B,29B)信息两者。这影响目的地寄存器的颗粒和分布信息两者的值。举例来说,考虑将寄存器f1和f2相加且在寄存器f0中存储所得加法值:
算术运算:f0:颗粒=f1:颗粒+f2:颗粒
算术运算:f0:分布=f1:分布+f2:分布
算术运算的结果可以输出到处理器单元4的随机存取存储器5(图6A)。这些输出结果包括颗粒数据值(f0:颗粒)和分布数据(f0:分布)。每一颗粒数据值(f0:颗粒)存储于存储器单元36中,从而提供物理地址空间,且与存储于分布存储器单元37中的分布表示(f0:分布)相关联。存储器存取单元34和寄存器回写单元35提供扩展寄存器堆(28A,28B;29A,29B)与处理器4的算术逻辑单元之间的接口。指令提取单元22与颗粒存储器单元36通信以用于存取存储器单元36以从其提取指令。值得注意的是,在此实例中,加载/存储单元32与分布存储器单元37直接通信,但指令提取单元22并不如此连接。这意味着对分布数据的算术运算的执行可以自动发生而不需要或不会干扰指令提取单元22的操作。以此方式,由对颗粒数据及其相关联分布数据的算术运算生成的分布数据的计算可以在微架构层级‘在底层’发生。因此,微架构可以被配置成仅允许加载/存储指令存取随机存取存储器5。在此意义上,存储器单元5提供扩展存储器,微架构可将微架构寄存器(28A,28B;29A,29B)的颗粒和分布信息两者加载和存储到所述扩展存储器。
对寄存器之间的相关性的跟踪
为了改进微架构的寄存器的分布信息的传播,能够跟踪寄存器之间的相关性是有用的。当微架构通过算术运算传播寄存器的分布信息时,这些相关性动态地改变。为了跟踪和识别寄存器之间的相关性,处理器4被配置成跟踪在任一时间点存储器单元36的哪些存储器地址已贡献于任何给定浮点或整数寄存器的值的计算。当由算术运算生成的颗粒值(f0)从微架构的寄存器输出时,处理器单元在其执行存储指令时在存储器中存储由算术运算生成的颗粒值(f0)的输出数据。处理器单元4还在主存储器单元5内存储关于贡献于输出结果的颗粒数据项目的原始地址或发源地址(在本文中被称作“起源地址”或“祖先地址”:这两个术语指代相同事物)的信息。当从主存储器加载寄存器的内容(例如,存储的颗粒值(f0))时处理器可以随后重新调用起源地址以供进一步使用。我们将此相关性跟踪称为“起源地址跟踪”机制。
处理器的存储器单元5被配置成将数据项目存储在其中的所寻址存储器位置处。微架构4被配置成获得当所讨论的浮点或整数算术逻辑单元执行算术运算时贡献于由浮点或整数算术逻辑单元(浮点ALU,25;整数ALU,27)中的任一个执行的算术运算(例如,算术运算:f0:颗粒=f1:颗粒+f2:颗粒)的数据项目的发源存储器位置地址(即,“起源地址”)。微架构被配置成在存储器单元5内的存储位置处存储所获发源存储器位置地址,且使所述存储位置与由第二算术逻辑单元(分布ALU,25;整数ALU,27)生成的附加分布数据(例如,f0:分布)关联。
作为说明性示例,图9呈现用于计算余弦函数的泰勒级数展开的实例C代码40。代码的第12行示出级数展开的重要部分是C变量x的平方的计算。假定x是具有分布信息的变量,起源地址跟踪机制的目标是在微架构层级处检测变量x与自身相乘。
跟踪相关性的挑战:祖先/起源地址跟踪机制
图9还示出对应于图9中的C代码片段的第10-12行的RV32IFMD ISA指令41。可以观察到即使在运算“x*x”的情况下,编译器也需要使用两个不同寄存器(fa4和fa5)来计算乘积“x*x”(参见42和43)。因此,仅跟踪指令中涉及的源寄存器的ID不足以跟踪具有分布信息的变量的相关性。尽管指派了两个不同寄存器,但在图9的实例中的编译器指示从相同地址加载其值。这是对当前相关性跟踪机制的核心洞察。
在本发明中,在优选实施例中,每一浮点/整数寄存器的值发源于处理器的存储器单元5的一个或多个地址。通过维持和传播这些地址,本发明能够动态地识别处理器4的任何两个浮点/整数寄存器之间的相关性。此信息可以例如使用动态链表来维持,我们在本文将所述动态链表称为“起源地址的列表”。起源地址只会在此列表中唯一地出现。
如上所述,图9示出例如从使用泰勒级数展开计算x的余弦的函数提取的变量x的偶数幂的计算的C源代码和RV32IFMD ISA拆解。编译器使用两个不同寄存器(fa4和fa5)计算x*x。仅跟踪指令的源寄存器的身份不足以跟踪寄存器之间以及引申来说具有分布信息的变量之间的相关性。处理器从对应于源应用程序的相同变量的相同存储器地址加载两个寄存器的值。这是对我们的自相关跟踪机制的核心洞察。
每一浮点寄存器的值发源于主存储器的一个或多个地址。通过跟踪这些祖先地址,我们可动态地识别微架构的任何两个寄存器之间的相关性。每当微架构执行加载指令时,其将源地址添加到目的地寄存器rd的祖先地址集合。微架构的芯片上存储器被配置成存储用于每个架构寄存器中的固定数目(AAMax)的祖先地址。微架构使用最近最少使用(least-recently used,LRU)策略从此存储器驱逐地址。当微架构将寄存器存储到存储器时,其祖先地址集合溢出到主存储器。对于每一算术运算,如果源寄存器具有至少一个共同祖先,则微架构以自相关跟踪方式执行算术运算。微架构还以源寄存器的祖先地址的并集更新目的地寄存器的祖先地址。
寄存器值之间的相关性
假设x是具有分布信息的变量。以上公开内容已经介绍了对不相关随机变量的算术运算。例如x*x等表达式的正确计算是处置相关(即,非独立)分布的较广泛问题的子集。此类自相关算术运算的正确执行需要基于源操作数的支持的逐点运算。图6D示出在具有和不具有自相关的正确处置的情况下的x*x计算。图6D(a)示出使用来自零平均值高斯分布的样本在微架构中创建的x的分布。图6D(b)示出在自相关跟踪开启或关闭的情况下不确定性跟踪的组合结果,以及针对x的所有样本穷尽性地评估x*x的真值。当自相关跟踪开启时x*x的评估几乎与真值相同。如果不对自相关随机变量进行此类算术处置,则存在支持结果分布的负值,这对于表达式x*x是不正确的。
分布协同ALU:示例
图6E示出分布协同ALU的内部。图6E中的命名法和符号如下:
使用存储于作用中的每寄存器祖先的芯片上存储器(图6A)中的信息,协同ALU确定源寄存器是否在自相关检测单元中具有共同祖先地址。如果检测到自相关,则所述单元设定输出“signalsrcOperandsAutocorrelationSignal”。如果未设定,则协同ALU执行分别在表2和表3中示出的算法1或算法2(或根据指令的变体)。较小ALU组件对分布源寄存器的支持位置执行预期算术运算。对于所有算术运算,协同ALU将分布源寄存器的质量相乘。“assertedsrcOperandsAutocorrelationSignal”信号停用非逐点单元,且协同ALU对源位置和质量执行点对点运算。自相关跟踪和不相关操作数计算两者的缓冲输出是SoDD狄拉克混合体。例如图6C的转换单元将SoDD狄拉克混合体转换为TTR且将其转发到分布寄存器堆。正确跟踪应用程序中的不确定性,微架构优选地通过所有浮点运算传播分布信息。然而,并非全部运算都具有相同的分布执行开销。如果分布源寄存器中的一个或两个并不含有分布数据(即,是颗粒值),则协同ALU相应地执行支持位置的按比例缩放或不执行运算。量“src1”和“src2”可以对应于例如上文在表2和表3中示出的算法1和算法2中标注的量“srcVar1”和“srcVar2”。
跟踪相关性的示例
图8是用于图9的RV32IMFD汇编代码片段的起源地址跟踪和自相关检测的实例。实例集中于以下的执行:
xPower*=x*x(图3中的第12行)
图8中示出的表的每一行对应于图9的C代码片段的汇编指令的执行。在每一行中,我们集中于每一指令的目的地寄存器且示出其在指令的执行之前和之后的“起源地址列表”。在图8中示出的表的行0和1中,我们观察到寄存器fa4和fa5的“起源地址列表”创建为包含“-72(s0)”,其中“s0”是保存整数寄存器,其保持相对于堆栈指针的地址。由于fa4和fa5具有相同起源地址,因此处理器执行图8中示出的表的行2中的自相关乘法,其对应于运算“x*x”。
在图8中示出的表的行3中,在fa4中加载新地址,因此其起源地址被覆写。在图8中示出的表的行4中,其对应于图9的汇编C代码片段的第二乘法,目的地寄存器fa5的起源地址列表被设定为源寄存器fa4和fa5的组合,即,包含地址“-72(s0)”和“-48(s0)”两者。在图8中示出的表的行5中,此起源地址存储于地址位置“-48(s0)”中以便在图9的C代码的行10的for循环的下一迭代中加载。在此第二迭代中,图8中示出的表的第一指令行6-8具有与第一迭代中相同的作用。在图8中示出的表的行9的加载指令中,根据存储于“-48(s0)”中的列表更新fa4的起源地址。以此方式,在图8中示出的表的行10的乘法中,寄存器fa4和fa5在其起源地址列表中共享共同起源(“-72(s0)”),且这允许处理器识别其需要执行自相关乘法。此乘法对应于运算“xPower*(x*x)”。在具有自相关的算术运算的情况下,不需要存储关于源操作数的相关性的分布的信息。
示例应用
图10示出应用算术运算的结果:
算术“颗粒”运算:
颗粒(6.0)=颗粒(5.0)+颗粒(1.0)
算术“分布”运算:
其中相加的颗粒值是1.0和5.0。这些颗粒中的每一个与表示颗粒值的不确定性的分布信息相关联。对于两个颗粒,分布信息是高斯分布(50,51),其具有方差且针对一个颗粒具有平均值1.0且针对另一颗粒具有平均值5.0。结果是具有值6.0的第三颗粒(乘积)以及将第三颗粒值的不确定性表示为具有方差/>且具有6.0的平均值的高斯分布52的分布信息。一般来说,所得分布52的方差/>的值将不同于贡献于总和的分布(50,51)的方差/>的值,如图10的视觉检查可见。
在下文中我们呈现本发明在任何方面中正确地表示来自颗粒样本的分布且通过算术运算传播分布信息的能力的实例。我们对照(i)用于传播不确定性的蒙特卡罗方法和(ii)NIST不确定性机器[4]进行比较。。
示例1:使用来自参数分布的样本
我们评估本发明的实施例表示来自已知参数分布的样本且对其进行运算的能力。我们从高斯分布随机地取样以创建具有分布信息“A”和“B”的独立变量,且对其执行所有基本算术运算(加法、减法、乘法和除法)。我们通过对输入分布的样本的所有组合穷尽性地执行每一数学运算(蒙特卡罗方法)来验证数学运算的正确性。对于这些实例我们使用上文描述的TTR表示,其中具有8个狄拉克δ用于表示具有分布信息的变量。
图11和图12示出结果的直方图61(在图式图例中表示为“X”)。在输入独立样本来自相同参数分布的情况中,我们使用相同子图(例如,图11(a))示出“A”和“B”的直方图。我们用虚线(MC)标注蒙特卡罗模拟的结果62。我们在每一子图的图例中示出每一分布的平均值60。我们还使用竖直线来标注根据本发明的分布直方图61的平均值。所有子图的x轴对应于每一子图的分布的域。图11到12对应于对高斯分布N(μ;σ2)的建模和算术运算。
图11示出对两个独立高斯随机变量(N(1;1)和N(1;1))的表示和算术运算。所有子图的x轴是分布的域。虚线示出对输入分布样本使用蒙特卡罗方法计算的每一算术运算的分布。图12示出对两个独立高斯随机变量(N(1;1)和N(2;1))的表示和算术运算。
示例2:热膨胀系数
图13示出圆柱形铜条的热膨胀系数K的分布的结果,这是通过人工测量其初始长度La、最终长度Lb和温度差ΔT得到的测量计算的。我们假定La在间隔[9,10]上均匀地分布,Lb在间隔[11;12]上均匀地分布,且ΔT具有带有N(2;1)的高斯分布。用于计算热膨胀系数的等式是:
将用于热膨胀系数K的分布信息计算的结果80(在图式图例中表示为“X”)对照来自NIST不确定性机器[4]的结果(81,82)进行比较。NIST不确定性机器(NISTUM)是基于网络的软件应用程序,其允许用户指定随机变量且对其执行数学运算,包含复杂函数。用户指定NISTUM的输入随机变量遵循的参数分布的类型和参数。NISTUM提供用于在算术运算期间传播不确定性的两个方法。一个方法是基于分布的集中式矩的传播,我们将其称为NIST不确定性传播表达式(NIST UPE-参见曲线82)。另一方法是基于对分布的算术运算的蒙特卡罗模拟,我们将其称为NIST蒙特卡罗方法(NIST MC-参见曲线81)。我们检查从NISTUM用户手册[4]的实例提取的三个应用。我们使用随机数生成器导出实例的输入变量遵循的参数分布的样本。我们使用NISTUM的基于网络的接口来执行实例应用程序且得到由NISTUM针对其不确定性传播方法两者生成的数据。对于这些实例我们使用上文描述的TTR表示,其中具有8个狄拉克δ用于表示具有分布信息的变量。
此实例应用对应于圆柱形铜条的线性热膨胀系数的测量,在铜条处于温度T0=288.15K下测得其初始长度La=1.4999m。铜条的最终长度La是在温度T1=373.10K下测得且得到Lb=1.5021m。测得的变量被建模为具有3个自由度的Student t随机变量,其平均值等于测得的值,且标准偏差分别等于针对La的0.0001m、针对Lb的0.0002m、针对T0的0.02K和针对T1的0.05K。图13示出针对热膨胀系数应用的根据本发明的结果和NISTUM的比较。
示例3:使用GPS数据的速度估计:
在人类活动跟踪中,常见的是使用GPS坐标来估计人的移动速度。对于此实例,我们使用具有带时戳的GPS坐标和GPS准确性值的人类活动的公开数据集合。我们采用Bornholt等人[参考文献7]的方法导出围绕人类活动数据集合的一对GPS经度和纬度值的GPS坐标的分布。我们使用GPS坐标的分布来计算两个GPS点之间的估计速度(gsp速度)的分布。与常规微架构相比,TTR在距蒙特卡罗评估输出的沃瑟斯坦距离方面的平均改进是1.9×。
示例4:博世BME680传感器转换例程:
博世的BME680是温度、压力和湿度传感器。博世提供了用于使用20个传感器特定的校准常数将原始ADC值转换为有意义的测量的例程。此实例评估ADC测量中的噪声和校准常数的不确定性对由博世提供的官方商业校准固件代码[参考文献8]的已校准温度、压力和湿度输出的影响。图13B示出有噪声的温度ADC测量,且图13C示出其对经转换温度的影响。在本申请案中,偶然不确定性导致输出结果的双峰式分布。常规架构输出落在零概率范围中,意味着对有噪声的ADC的平均滤波会导致不正确结果。与常规方法相比,本发明微架构实现距蒙特卡罗输出的沃瑟斯坦距离平均变小5.7×(对于TTR-64为至多10×)。
示例5:布朗-汉姆位错模型:
此实例使用布朗-汉姆位错模型[参考文献10]计算合金沉淀物的切割应力。安德森等人[参考文献9]提供位错模型的输入的经验值范围。我们假定位错模型的输入遵循跨越这些范围的均匀分布。与常规方法相比,本发明微架构实现相对于蒙特卡罗模拟平均高3.83×(至多9.3×)的准确性。
示例6:一维有限元模型:
问题参数的不确定性具有重要安全影响的工程问题涉及结构组件的性质的测量。考虑由具有杨氏模量E的材料制成的具有横截面积A和长度L的梁(例如,混凝土或钢),其载有每单位长度施加轴向负载q0。梁在距悬臂的位置x处的扩展u(x)是:
由于材料的可变性或大气压条件的变化,杨氏模量可能是不确定的,并且此不确定性可以用杨氏模量的概率分布而非使用单个数字来量化。就像工程师经常想要评估扩展u(x)的等式的浮点实施方案而非其中参数被约束于整数值的实施方案一样,用例如杨氏模量等参数作为表示不确定性的分布来评估扩展u(x)的等式也很有用。例如用于扩展u(x)的等式或其有限元对应部分的分析模型的实施方案可能位于传统或第三方库中,这使得拥有适用于现有程序二进制文件的不确定性跟踪方法很有吸引力。一维有限元模型用于在模型参数具有认知不确定性时计算梁的扩展。我们假设基准程序的杨氏模量输入参数和用于其余输入参数的固定颗粒值具有均匀分布。与常规方法相比,本发明微架构实现了平均2×的准确性改进。
示例7:加速变分量子本征求解器:
此量子算法计算量子系统Hamiltonian,H[参考文献11和12]的基态。应用了本发明微架构,其被配置成找到使本征值<ψ(k)|H|ψ(k)>最小的量子状态ψ(k)。通常,这使用拒绝取样从来自量子相位估计(QPE)电路[参考文献13]的P(E|φ)测量计算P(E|φ)。通过本发明微架构,我们可从P(E|φ)显式地计算后验且计算P(φ)。通过本发明微架构上的多个迭代,算法可更好地计算P(φ|E)的估计。图13D示出我们使用来自均匀分布的样本生成的输入。图13E和13F分别示出在本发明微架构上的两个和五个迭代之后的后验方差P(φ)的减小。本发明微架构与常规技术相比实现了6.23×的准确性改进(对于TTR-256至多为41.3×)。
示例
再次参看图1,在本发明的替代方面中,或除本文公开的方面之外,还示出根据本发明的实施例的设备1。所述设备包括计算设备3,所述计算设备与呈传感器单元(例如,加速度计、磁力计等)的形式的测量装置2成通信连接,所述测量装置被配置成生成预定可测量量即被测量(例如,加速度、磁通量密度等)的测量。计算设备3包含与本地缓冲存储器单元5和本地主存储器单元6通信的处理器单元4。计算设备被配置成接收来自传感器单元的表示被测量(例如,加速度、磁通量密度等)的测量的数据作为输入,且将接收的测量存储于本地主存储器单元6中。处理器单元4与缓冲存储器单元5结合被配置成对存储的测量应用数据处理算法,所述数据处理算法被配置成用于对存储于主存储器中的传感器测量进行取样,以便生成测量的样本集合,所述样本集合表示由传感器单元2得到的测量的不确定性,同时也以传感器单元可以允许的准确性程度表示被测量。处理器单元4可以被配置成使用样本集合生成概率分布,以及对概率分布进行编码的分布信息,其可用作传感器单元的测量不确定性的表示。此表示可以根据本文所公开的方法中的任一个(例如,基于SoDD的表示;CMR表示)且在本公开中在别处详细论述。
计算设备被配置成一旦生成就将表示测量不确定性的分布数据存储在其主存储器6中和/或(例如,经由串行I/O接口)将样本集合传输到与计算设备成通信布置的外部存储器7,和/或经由传输器单元8将传达样本集合的一个或多个信号9传输到远程接收器(未示出)。所述信号可以(例如,经由串行I/O接口)无线地、通过光纤或经由本领域的技术人员清楚的其它传输方式传输。
以此方式,计算设备被配置成生成和存储在一时间周期内的任何数目(多个)的样本集合,其中每个样本集合内的测量值分布表示传感器单元2的测量的概率分布,以及相关联近似概率分布和经编码分布信息。类似地,计算设备被配置成生成和存储由传感器单元2生成/在所述传感器单元的不同操作模式中或由不同传感器单元2生成的任何数目个(多个)样本集合、近似概率分布和经编码分布信息。换句话说,由计算设备存储的第一样本集合可以与第一传感器单元相关联,且由计算设备存储的第二样本集合可以与和第一传感器单元不同的第二传感器单元相关联。举例来说,第一传感器单元可以是电压传感器(电压),且第二传感器单元可以是电流传感器(电流)。在这两种情况下,计算设备可以存储分别由每一传感器得到的测量值的分布,所述分布各自表示所述传感器单元2的测量的概率分布。
计算设备3被配置成如下实施用于计算对存储于主存储器单元中的例如样本集合、近似概率分布和经编码分布信息等数据分布的方法。
参看图14,示出在四个不同所获数据集合中的每一个内的具有n个值的集合{n}的累积概率分布的实例[曲线图:(a),(b),(c)和(d)]。图14还示出来自所获数据集合的值(Vi)的子集90以及各自界定所讨论子集内每一值的出现概率的概率(pi)值91。示出由数据值90和相关联概率值91形成的元组92。示出近似概率分布93,其包括使用这些元组92生成的一系列狄拉克δ函数(如本文所公开的SoDD表示)。子集(界定为n个值)内的每一值(Vi)是数据可采用的在所获数据集合内具有最高概率的值。
具有最高概率可意味着所讨论的数据项目包括在所获数据集合内具有最高出现概率的预设数目(n,为>1的整数)的数据项目。换句话说,在所获数据集合内具有最大出现概率或频率的‘前’n个数据项目,无论所述概率(频率)是多少。此方法将子集的大小固定为n的值。可以按需要根据所获数据集合的特性选择n的值。举例来说,值可以在5<n<100的范围内,例如n=50,或n=20等。当然,在适当时可使用n的其它值。在本发明的实施方案的每一实例中可选择值n的大小,从而允许实施方案用实施方案的硬件或软件为代价换来表示准确性。包括狄拉克δ的近似概率分布93是实例表示,其中n个值表示n个狄拉克δ的位置且与值相关联的概率呈现与狄拉克δ相关联的概率。
替代地,具有最高概率可意味着所讨论的数据项目仅包括具有超过预设概率阈值(例如,p阈值=0.2)的概率pi(或频率)的那些数据项目。这意味着所有概率(pi)值11满足条件pi>p阈值。可以按需要根据所获数据集合的特性选择p阈值的值。举例来说,p阈值的值可以在0.1<p阈值<0.9的范围内,或在0.1<p阈值<0.5的范围内,或在0.2<p阈值<0.5的范围内,例如p阈值=0.25。当然,适当时可使用p阈值的其它值/范围。在此情况下,子集90中的值(Vi,i=1、...n)的数目(n)一般将不固定,并且将通常依据p阈值的值而变化。另一替代方案是,具有最高概率可意味着所选数据项目包括具有各自高于与任何未选定数据项目(在所选数据项目的集合外)相关联的概率的相应概率的最大数目的数据项目,且所选数据项目的概率的总和是不超过阈值概率的聚合概率。
图14示出针对来自代表性嵌入式系统应用程序的MiBench套件和来自代表性桌上型计算机应用程序的SPEC CPU 2000套件的程序,表示由具有无符号整数和无符号字符的类型的所有程序变量采用的值的分布的数据项目的值集合的现实实例。针对两组现实程序(MiBench[参见参考文献[5]],绘图(a)和(b)的顶部行;以及SPEC CPU 2000[参见参考文献[6]],绘图(c)和(d)的底部行),曲线图(a)、(b)、(c)和(d)中示出的概率(Pr({n}))对应于具有n个值的集合{n}的概率,以及它们表示的总体分布的概率质量的分数。值(Vi)的子集90示出针对MiBench无符号整数情况的实际元素的集合,其中n=16。
参看图15,示出本发明的一个实施例的硬件框图。可以相应地配置计算机设备3。所述设备被配置成如下获得输入数据。
所述设备接收数值(例如,如{1,14,2.3,99,-8,6}之类的集合)或分类值(例如,如{“字符串1”,“字符串2”...}之类的字符串集合)的数据集合作为输入100a,且从其计算101输入数据集合内元素出现的相对频率以获得所述集合内每一元素的值和相关联概率的元组(Vi,pi)的集合。替代地,设备可以接收先前已经由设备确定的值和相关联概率的元组(Vi,pi)的集合作为输入100b。另外,作为另一输入,通过选择102所获数据集合内具有n个最高概率值(pi)的元组(n,例如在图14中n=16),所述设备可以任选地接收表示在选自输入数据集合100a的数据元素的子集{n}或来自输入100b元组(Vi,pi)的集合内的元组的子集{n}内将包含的数据元素的数目的数目“n”的值。在一些实施方案中,在上文所论述的基于每一单独项目的概率阈值而选择数据元素或选择数据元素使得其聚合概率的总和为某一阈值的那些情况中可省略数目“n”的输入参数值100c。在替代实施方案中,所述设备可以在此阶段选择所获数据集合内具有在所获数据集合内超过预设阈值概率(如上文所论述)的值的出现概率的数据项目子集。
接下来,设备将与选定数据项目相关联的每一相应元组(Vi,pi)的概率值(pi)归一化,使得所有选定数据项目的那些概率的总和等于1.0。此归一化将概率值重新按比例缩放为数据项目子集的成员在相应元组(Vi,pi)当中出现的相对概率。用于子集内的每一个数据项目的每一元组(Vi,pi)包括第一值(Vi)和第二值(pi),其中第一值是相应数据项目的值,且第二值是所获数据集合内相应数据项目的经归一化出现概率的值。
随后单独地在存储器表110中和分布存储器108中存储‘n’个元组(Vi,pi)中的每一个的内容。特定地,对于每一元组(Vi,pi),其第一值(Vi)存储于分布存储器108的相应存储器位置(Li)处。然而,相同元组的第二值(pi)与指针115相关联地存储于存储器表110的子表(103:软件或硬件)中,所述指针被配置成识别元组(Vi,pi)的第一值(Vi)的相应存储器位置(Li)。这意味着子表103仅含有每一元组的概率值106,以及指向单独存储器108内元组的位置107相关联数据值(数字或分类)的指针115。存储器表110可以是电路结构中的结构化存储器而不是计算机存储器中的阵列。设备包含逻辑单元(104,105),其被配置成用于接收选定‘n’个元组102,且在元组的数据值(Vi)遵守由逻辑单元定义的准则的情况下在表的子表内的位置与相应指针107相关联地存储概率值(pi)。以此方式,设备可以将存储器表110结构化为包括多个子表103,其中每个子表含有满足特定准则集合的元组的数据。当然,界定子表中的任一个的准则可以不同于界定其它子表中的任一个的准则。
可以通过设备31的微处理器、数字信号处理器(DSP)或现场可编程门阵列(FPGA)以本文所描述的任何方式对这些分布执行算术运算的计算。
设备被配置成实施系词结构109,以用于组合使用单独表(每个表如上文描述那样形成,例如SoDD)或单独子表的元组表示的各个分布93,以实现联合分布。所述系词结构可以被配置成生成多变量累积分布函数,其中每一变量的边际概率分布在间隔[0,1]上是均匀的。这仅是实例,且应理解,使用系词从均匀边际生成多变量CDF是任选的。存在许多参数系词系列可供本领域的技术人员用于此目的。
逻辑单元可以被配置成实施用于表的概率性(例如,非布尔型)谓词105,其被配置成针对所应用的给定数据值(Vi)中的每一个返回概率(伯努利(p))(即,并非布尔型‘真’/‘假’值)。图16中示出示意性实例。可以此方式实施界定不同子表的准则。由于可以根据谓词树考虑谓词,因此这准许使用树的所有节点的前序遍历或后序遍历将谓词展平为字符串,且在需要时此展平的树可用作分布表示。这可以将表示的大小显著地减小为随着表示的大小以线性方式而非以指数方式缩放的大小。用于树的所有节点的前序遍历或后序遍历的技术可以根据本领域的技术人员可容易获得的技术。
所述设备可以进一步被配置成确定所获数据集合内不超过预设阈值概率(或阈值频率)的值或不在预设数目{n}当中的数据项目的出现概率(或频率)。换句话说,所述方法可包含确定所获数据集合内并不属于具有n个最高概率值的数据项目或选定元组的子集{n}的数据项目的附加出现概率(p溢出)。在此情况下,设备将{n}选定数据项目中的每一个的概率值(pi)归一化以使得总和为:
以此方式,所述附加概率可以考虑到所获数据集合的数据项目在所述子集之外的概率且进而提供‘溢出’概率。
在此情况下,设备生成共同地表示所获数据集合中的不在所述子集内的那些数据项目的集合元组(V溢出,p溢出)。值V溢出共同地表示所获数据集合中的不在所述子集内的数据项目。值p溢出是不在选定子集{n}内的数据项目的经归一化附加出现概率(例如,累积或聚合概率)的值。集合元组可以存储于存储器表110中,以上文所描述的方式跨越子表103和分布存储器108划分。在优选实施例中,V溢出可以是“特殊”值,类似于NaN(“非数字”)和表示未知值的Inf(无穷大)。此类值有时称为擦除值。
本发明的洞察是用硬件表结构110表示子集{n}的元素,所述硬件表结构包括用于以下各项中的每一个的表条目:(1)指向用于分布的基础值的存储器位置的指针,无论是数字、字符串等等,包含用于表示未显式列出的所有其它可能基础值的可能溢出项目;(2)用于每一基础值的概率的表条目,包含用于上文所提及的溢出项目的概率的条目;(3)更新表的列以确保概率的总和是一。因为计算系统中使用的每一分布原则上可以与不同的此类表相关联(例如,对应于异方差性过程的不同时间点的分布或对应于程序中的不同变量的分布),根据总体计算系统的上下文,本公开将这些表称为子表。在典型实施方案中,系统可以含有一系列此类子表,系统需要表示的每一分布对应于一个子表。
每个分布实例(即,每一子表)可以被给定唯一识别符,使得计算系统可参考不同分布(即,边际)。
因为本文公开的结构使用指向元素的指针作为值表示,而非值自身,所以实施方案可表示分布,其中基础值可能表示特定整数、特定实值值或者整数或实值值范围。它们还可以表示字符串或其它分类标签。在要表示的值可以直接放入表中的特殊情况中,指针可直接被要表示的值代替。本发明可以使用表中的条目表示值范围意指可使用数字的表示直方图。本发明还提供表示的灵活性,例如,单独的文本字符串或语言缀字法中按字典次序排列的文本字符串范围及其相关联概率等等。
除了在准许对数字分布进行算术的微处理器中对分布表示进行的运算之外,对子表的运算也可以是集合理论运算,例如交集、并集、补集等等。举例来说,给定表示字集及其对应概率的两个分布,并集运算将具有新分布,其基础值是具有来自并集运算的组成集合的最高概率的n个项目(对于具有大小n的表示表),其中概率被适当地归一化以使得新分布具有概率总和为一(1.0)的元素。
硬件结构的组件可以是用于每一分布的子表、用于保持分布的基础值的存储器、用于组合各个分布以实现联合分布的系词结构,和用于采取值的集合且将其以分布的形式放置到子表中的逻辑。
示例
在计算机科学中,三个地址代码(经常简化为TAD、TAC或3AC)是由优化编译器使用以辅助代码改进变换的实施的中间代码。每一TAC指令具有至多三个操作数且通常是赋值和二元算子的组合。举例来说,t1:=t2+t3。名称来源于在这些语句中使用三个操作数,即使可能发生具有更少操作数的指令也是如此。在三地址代码中,程序可以分解为若干单独指令。这些指令更容易转换为汇编语言。
三地址代码(TAD)中的基本块可视为不含到代码的其它部分的跳转的邻接指令序列。将代码划分为基本块使控制流的分析更容易。在编译器构造中,基本块可被视为直线代码序列,其不具有进入的分支,到代码的入口除外,且不具有外出的分支,在代码的出口处除外。这使得基本块极适合于分析。作为分析过程中的第一步骤,编译器通常将程序分解为基本块。基本块也可被视为形成控制流图形中的顶点或节点。
图22示出以下用于生成具有对角矩阵元素Xi的10x10对角矩阵的程序的TAD的实例。
实例:用于设定具有对角元素Xi的10x10对角矩阵的代码:
for i from 1to 10do
for j from 1to 10do
a[i,j]=0.0;
for i from 1to 10do
a[i,i]=Xi;
TAC根据下方定义的分割规则被分割成基本块B1到B6。此处,Xi出现在基本块B6中,且Xi的值可以通过代码的另一基本块(块B7:参见图19、图20和图21)生成,所述另一基本块被设计成计算如下:
TAD的步骤(3)-(6)用于得到矩阵元素‘0’且TAD的步骤(15)用于得到矩阵元素Xi。
将三地址代码分割为基本块
分割TAD代码的过程包括接收TAD代码的输入阶段,随后是处理阶段,其中处理输入TAD代码以将其分割,如下。
输入:
三地址指令(TAD)的序列。
过程:
如下确定代码内的“引导者(Leader)”指令:
(1)代码的第一“三地址”指令是引导者。
(2)作为非条件或条件跳转/转移语句的目标的指令是引导者。
(3)紧跟非条件或条件跳转/转移语句的指令是引导者。
对于每一引导者,其基本块含有自身和在下一引导者之前(不含下一引导者)的所有指令。基本块仅含有在序列中一个接一个地执行的语句。基本块中的变量名称在给定点是‘活跃’的,前提是其值是在程序中的所述点之后使用。
将此过程应用于图22的TAD代码得到第一基本块B1,所述第一基本块包括呈TAD的第一语句行1)的形式的第一引导者(“引导者1”)。第二基本块B2出现在TAD的第二语句行2)处,其界定第二引导者(“引导者2”)。这是因为此语句行是在TAD行11)处的“转移”语句的目标。第三基本块B3出现在TAD的第三语句行3)处,其界定第三引导者(“引导者3”)。这是因为此语句行是在TAD行9)处的“转移”语句的目标。第四基本块B4出现在TAD的第十语句行10)处,其界定第四引导者(“引导者4”)。这是因为此语句行紧跟TAD行9)处的条件“转移”语句。第五基本块B5出现在TAD的第十二语句行12)处,其界定第五引导者(“引导者5”)。这是因为此语句行紧跟TAD行11)处的条件“转移”语句。TAD代码的最终基本块B6出现在TAD的第十三语句行13)处,其界定第六引导者(“引导者6”)。这是因为此语句行是在TAD行17)处的“转移”语句的目标。以此方式,TAD代码可以被分割成基本块。
以下公开内容描述计算机设备的实例,所述计算机设备被配置成用于关于由计算机执行的程序代码生成TAD代码,且被配置成用于将TAD代码分割成基本块。所述计算机设备被配置成重新布置TAD指令序列以减小跨越指令序列所操作的计算状态(例如,寄存器)传播不确定性时的数值错误。当对表示由计算机处置的数据的不确定性的分布执行算术时这是特别有用的,如本文在别处更完整地论述。由计算机处置的数据可以例如是来自测量设备(例如,传感器)的测量数据,且表示数据不确定性的分布可以表示由测量设备得到的测量值的不确定性。
再次参看图1,在本发明的替代方面中,或除本文公开的方面之外,还示出根据本发明的实施例的设备1。所述设备包括计算设备3,所述计算设备与呈传感器单元(例如,加速度计、磁力计等)的形式的测量装置2成通信连接,所述测量装置被配置成生成预定可测量量即被测量(例如,加速度、磁通量密度等)的测量。计算设备3包含与本地缓冲存储器单元5和本地主存储器单元6通信的处理器单元4。计算设备被配置成接收来自传感器单元的表示被测量(例如,加速度、磁通量密度等)的测量的数据作为输入,且将接收的测量存储于本地主存储器单元6中。处理器单元4与缓冲存储器单元5结合被配置成对存储的测量应用数据处理算法,所述数据处理算法被配置成用于对存储于主存储器中的传感器测量进行取样,以便生成测量的样本集合,所述样本集合表示由传感器单元2得到的测量的不确定性,同时也以传感器单元可以允许的准确性程度表示被测量。处理器单元4被配置成使用样本集合以根据本文所公开且在本公开中别处详细论述的方法中的任一个(例如,基于SoDD的表示;CMR表示,如本文其它方面中公开)生成近似概率分布和对近似概率分布进行编码的分布信息作为由传感器单元得到的测量的不确定性的表示。
计算设备被配置成一旦生成就将表示测量的不确定性的分布数据存储在其主存储器6中和/或(例如,经由串行I/O接口)将样本集合传输到与所述计算设备成通信布置的外部存储器7,和/或经由传输器单元8将传达样本集合的一个或多个信号9传输到远程接收器(未示出)。所述信号可以(例如,经由串行I/O接口)无线地、通过光纤或经由本领域的技术人员清楚的其它传输方式传输。
以此方式,计算设备被配置成生成和存储在一时间周期内的任何数目(多个)的样本集合,其中每个样本集合内的测量值分布表示传感器单元2的测量的概率分布,以及相关联近似概率分布和经编码分布信息。类似地,计算设备被配置成生成和存储由传感器单元2生成/在所述传感器单元的不同操作模式中或由不同传感器单元2生成的任何数目个(多个)样本集合、近似概率分布和经编码分布信息。换句话说,由计算设备存储的第一样本集合可以与第一传感器单元相关联,且由计算设备存储的第二样本集合可以与和第一传感器单元不同的第二传感器单元相关联。举例来说,第一传感器单元可以是电压传感器(电压),且第二传感器单元可以是电流传感器(电流)。在这两种情况下,计算设备可以存储分别由每一传感器得到的测量值的分布,所述分布各自表示所述传感器单元2的测量的概率分布。
计算设备3被配置成如下实施用于计算存储于主存储器单元中的例如样本集合、近似概率分布和经编码分布信息等数据分布的方法。
参看图17,示出说明由计算机设备3实施的方法中的过程步骤的流程图。所述过程步骤被配置成用于计算多步数值计算的结果的不确定性的数字值,所述多步数值计算包括在共同“基本块”内界定的一系列单独计算指令。
方法应用于包含于计算机设备3的缓冲存储器单元5内的数据分布,所述数据分布已为此目的由处理器单元4从主存储器单元6放置于缓冲存储器中。
初始化:系统的初始状态由用于所有活跃寄存器(在被覆写之前其值将被再次读取的寄存器)的不确定性表示组成。
步骤#1:接收指令序列seq且将其放置于缓冲存储器单元5中。
步骤#2:将seq划分为基本块,即不具有介入控制流指令的指令序列。
步骤#2B:对于每一基本块,形成用于在基本块的出口之前被写入但非覆写的每一变量的不确定性的一个表达式。
步骤#2C:将在前一步骤中获得的每一表达式简化为可能的最小数目的项,并且接着通过此简化表达式传播不确定性。
步骤#3:在必要时基于其相依性重新布置每一基本块中的指令,且在每一基本块的末尾更新在基本块的出口之前被写入但非覆写的每一寄存器的不确定性。
步骤#4:输出重新排序的序列seq重新排序和序列的经更新不确定性(数据分布)。
通过此方法(即,步骤#1到步骤#4),计算机设备3识别“基本块”的“出口活跃”变量(步骤#1)。计算机设备随后识别输出决定“出口活跃”变量的值的计算指令(步骤#2)。随后,在步骤#2A和#2B,计算机设备提供组合在步骤#2识别的计算指令的数学表达式。使用在步骤#2C提供的数学表达式,计算机设备在步骤#3计算“出口活跃”变量的不确定性的数字值。值得注意的是,在步骤#3计算的不确定性值是多步数值计算结果的不确定性。此过程不仅使计算的最终结果更准确,而且使计算过程更高效。
以此方式,并非计算每一TAD指令的经更新不确定性,而是对于基本块的出口活跃变量,可以在步骤#2C将结果决定出口活跃变量的值的指令序列组合成单个表达式,以用于计算出口活跃变量的经更新不确定性。
所述方法可实施于可编程处理器中。其提供用于重新布置对不确定性的表示执行运算的指令以使得重新布置的指令仍遵从真实数据相依性的方式。当处理指令的处理器使不确定性表示与指令所运算的值相关联时,重新布置的指令序列具有更好的数值稳定性。
在一个实现方案中,当不确定性表示是基于概率分布的矩时(例如,本文公开的CMR不确定性表示)且在用于计算不确定性的方法是基于围绕所运算的值的平均值的指令运算的泰勒级数展开的情况下,指令的重新布置改善了评估对应于聚合指令集合的函数的泰勒级数展开的数值稳定性。
重新布置可应用于用来通过算术运算序列传播不确定性的任何方法,且不限于使用从中传播不确定性的函数的泰勒级数展开的此特定实例情况。对于任何对概率分布实施算术的可编程处理器架构,指令重新布置方法是有价值的,并且当指令以遵从相依性且在功能上等效的排序重新布置时,所述算术可具有不同的数值稳定性性质。
组合出口活跃变量的方差估计
图18(a)示出执行算术运算序列的简单程序,且图18(b)示出由编译器从所述程序生成的汇编语言指令序列。虽然不同编译器和不同编译选项将生成稍微不同的指令序列,但图18(a)中的程序语句序列将始终被转译为汇编语言指令序列,其在执行时得到程序所需的算术运算。特定地,图18(a)示出对三个浮点变量执行算术的程序。
当在使某种不确定性表示关联到每一变量的处理器架构上执行时,每一程序语句中的算术将需要实施于处理器中的硬件来评估中间结果和最终结果的不确定性的新分布。图18(b)示出图18(a)中的程序编译为用于处理器的汇编语言指令序列。并非单独地更新图18(b)中的每一指令的目的地寄存器的不确定性,而是可以生成定义实施组合表达式的计算量y=f(x1,...,xn)的不确定性的等式的实例:
f=(x1+x2)/(x3*x3*(x1-x2))
特定地,举例来说,假设f是由例如C的高级程序语言中的某个语句序列实施或由可编程处理器内执行的任何指令序列实施的函数。函数f还可能表示例如ASIC的固定功能数字集成电路中或例如FPGA的现场可编程数字电路中的一系列逻辑门。假设x1、x2、……、xn是函数f的参数。
用于基于f的泰勒级数展开确定函数f的不确定性的方法指定f的不确定性由其标准偏差表示如下。此实例与本文公开的CMR方法中的不确定性传播是特别相关的。在当前描述的方面中,本发明可以应用于除CMR/泰勒级数展开方法外的其它分布表示和传播方法。然而,出于说明性目的,且为了更好地理解本发明,以下实例涉及CMR/泰勒级数展开方法。
假设y=f(x1,...,xn),则:
上方表达式右侧的方差通常较小,且计算那些方差的平方和较高次幂实际上会生成数字误差。本公开方法的见解是:
(1)用无符号定点表示来表示供数字逻辑电路实施上述等式的计算硬件的内部表示内的标准偏差,而非用浮点表示来表示它们,因为方差将始终为正;且
(2)为了计算在被覆写之前将再次使用的变量(即,活跃变量)的方差,组合并不含有控制流指令(即,基本块)的算术运算序列,其中被组合的那些运算原本会被单独处理。
上述见解中的第二个减少了需要应用上述等式的近似的次数,从而减小了计算不确定性的误差。这两个见解可在硬件中实施,或者也可实施为源程序上的编译时间变换,或使用编译时间变换(例如,以例如使用自动区分来确定用于每一基本块及其偏导数的组合函数)与评估在所述过程中生成的上述等式/>的实例相结合的组合,当方差的值可用时在硬件中实施。用于在数字计算硬件结构中表示和传播不确定性的其它方法可使用不同于上述等式/>的方法,但本文的本发明方法使不确定性跟踪在数值上更稳定,并且仍将适用。
图19示意性地示出本发明对用于计算以下量的图18(a)的程序代码的实施的作用:
f=(x1+x2)/(x3*x3*(x1-x2))
这是通过在本发明应用之前(图19中的“之前”)和之后(图19中的“之后”)的基本块B7中的TAD代码发生的。在本发明应用之前的情况下,可以看出量必须计算八次,基本块B7内的TAD代码的八个代码行中的每一个对应一次。TAD代码的最终输出行生成带有f的值的变量“t8”。TAD代码的最终输出行生成将f的不确定性量化的量/>的最新值。/>的所有先前值将基本块B7内的先前七个TAD变量(t1到t7)的不确定性量化。图20显式地示出此情形,其中用于TAD代码行t1到t8(参见图19中的“之前”)中的每一个的每一表达式/>被显式地定义和计算。相比之下,在图21中,已应用本发明且仅显式地定义用于最终TAD代码行t8(参见图19中的“之后”)的表达式/>且此表达式由处理器4使用/计算以量化函数f的不确定性。此指令序列对于计算不确定性表示/>具有较好的数值稳定性。
换句话说,图21实施上述步骤#2B,其中对于基本块B7,针对在所述基本块的出口之前被写入但非覆写的变量“t8”的不确定性形成一个表达式。实施步骤#2C,因为表达式是在步骤#2B中获得的具有可能的最小数目的项的简化表达式。这随后用于传播不确定性。
本文对“元组”的参考可被视为包含对元素的有限有序列表的参考。本文对“n元组”的参考可被视为包含对n个元素的序列的参考,其中n是非负整数。
本文对“参数”的参考可被视为包含对数值或其它可测量因数的参考,所述数值或其它可测量因数形成以下各项中的一个:定义系统或设定其性质的(一个或多个的)集合,或描述统计群体的量(例如平均值或方差),或可帮助定义或分类特定系统的特性,或识别所述系统的系统元素。
本文对“阈值”的参考可被视为包含对为了使某一反应、现象结果或条件发生或体现而必须相等或超过的值、量值或量的参考。
本文在统计数据集合(或群体)的上下文中对“分布”的参考可被视为包含对示出数据的所有可能值(或间隔)和它们出现的频率的列表或函数的参考。统计数据中的分布可被视为示出变量的可能值和它们出现的频率的函数(经验或分析)。在概率理论和统计学中,概率分布可被视为给出变量的测量的不同可能结果的出现概率的函数(经验或分析)。
在前面的描述或所附权利要求或附图中所公开的特征以它们的具体形式或者用于执行所公开功能的手段或者用于获得所公开结果的方法或工艺来表达,视情况可以单独地或者以此类特征的任意组合用于以其各种形式实现本发明。
虽然本发明已结合上文所描述的示例性实施例加以描述,但是给定本公开时,本领域的技术人员将清楚许多等效修改和变化形式。因此,上文所阐述的本发明的示例性实施例被视为是说明性的而不是限制性的。可以在不脱离本发明的精神和范围的情况下对所述实施例作出各种改变。
为了避免任何疑问,本文提供的任何理论解释均是为了提高读者的理解。本发明人不希望受任何这些理论解释的束缚。
本文使用的任何章节标题均仅出于组织目的,并且不应被解释为限制所描述的主题。
贯穿本说明书,包含所附权利要求书,除非上下文另有要求,否则词语“包括(comprise)”和“包含(include)”以及变化形式(例如“包括(comprises)”、“包括(comprising)”和“包含(including)”)应理解为暗示包含所陈述整数或步骤或者整数或步骤的群组,但不排除任何其它整数或步骤或者整数或步骤的群组。
必须注意,如在说明书和所附权利要求中所使用,除非上下文另外清楚地指示,否则单数形式“一(a/an)”和“所述(the)”包含复数指示物。在本文中,范围可以表达为从“约”一个特定值和/或到“约”另一个特定值。在表达此范围时,另一个实施例包含从一个特定值和/或到另一个特定值。类似地,在通过使用先行词“约”将值表达为近似值时,应当理解,该特定值形成另一个实施例。与数值相关的术语“约”是任选的并且是指例如+/-10%。
参考文献
[1]Anders Hald,The early history of the cumulants and the Gram-Charlier series,Intemational Statistical Review 68(2000),no.2,137-153.
[2]Peter Hall,The bootstrap and Edgeworth expansion,Springer Science&Business Media,2013.
[3]Rabi N Bhattacharya,Jayanta K Ghosh,et al.,On the validity of theformal Edgeworth expansion,Ann.Statist.6(1978),no.2,434-451.
[4]T.Lafarge and A.Possolo,NIST uncertainty machine-users manual,National lnstitute of Standards and Technology,Gaithersburg,2015.(https://uncertainty.nist.gov/and https://www.nist.gov/publications/uncertainty-machine-users-manual)
[5]MiBench:“A free,commercially representative embedded benchmarksuite”by Matthew R.Guthaus,Jeffrey S.Ringenberg,Dan Ernst,Todd M.Austin,Trevor Mudge,Richard B.Brown,IEEE 4th Annual Workshop on WorkloadCharacterization,Austin,TX,December 2001.(http://vhosts.eecs.umich.edu/mibench//)
[6]The most widely used benchmarks are the Standard PerformanceEvaluation Corporation(SPEC)CPU benchmarks:“SPEC2000 Retires SPEC92”,byB.Case,The Microprocessor Report,vol.9,1995
[7]James Bornholt,Todd Mytkowicz,and Kathryn SMcKinley.2015.Uncertain<t>:Abstractions for uncertain hardware andsoftware.IEEE Micro 35,3(2015),132-143.
[8]Bosch Sensortec.[n.d.].BME680 sensor API.[Online].Available:https://github.com/BoschSensortec/BME680_driver,Accessed:07/09/2021.
[9]M.J.Anderson,F.Schulz,Y.Lu,H.S.Kitaguchi,P.Bowen,C.Argyrakis,andH.C.Basoalto.2020.On the modelling of precipitation kinetics in a turbinedisc nickel-based superalloy.Acta Materialia 191(2020),81-100.https://doi.org/10.1016/j.actamat.2020.03.058.
[10]LM Brown and RK Ham.1971.Dislocation-particleinteractions.Strengthening methods in crystals (1971),9-135.
[11]James R Cruise,Neil I Gillespie,and Brendan Reid.2020.PracticalQuantum Computing:The value of local computation.arXiv preprint arXiv:2009.08513(2020).
[12]Daochen Wang,Oscar Higgott,and Stephen Brierley.2019.AcceleratedVariational Quantum Eigenso1ver.Phys.Rev.Lett.122(Apr 2019),140504.Issue 14.
https://doi.org/1 0.1103/PhysRevLett.122.140504.
[13]Nathan Wiebe and Chris Granade.2016.Efficient Bayesian PhaseEstimation.Phys.Rev.Lett.117(Jun 2016),010503.lssue 1.https://doi.org/10.1103/PhysRevLett.117.010503.

Claims (25)

1.一种用于数据分布的编码和计算的计算机实施的方法,所述方法包括:
获取数据项目的第一集合;
获取数据项目的第二集合;
生成第一元组,所述第一元组含有对表征所述第一集合的数据项目的分布的概率分布进行编码的参数;
生成第二元组,所述第二元组含有对表征所述第二集合的数据项目的分布的概率分布进行编码的参数,其中用于对所述第二集合的数据项目的分布进行编码的所述参数与用于对所述第一集合的数据项目的分布进行编码的所述参数相同;
使用包含于所述第一元组内的参数以及使用包含于所述第二元组内的参数生成第三元组,所述第三元组含有对表示对第一概率分布和第二概率分布应用算术运算的结果的概率分布进行编码的参数;
输出所述第三元组。
2.根据任一前述权利要求所述的计算机实施的方法,其中数据的所述第一集合包括第一随机变量的样本,且数据的所述第二集合包括第二随机变量的样本。
3.根据任一前述权利要求所述的计算机实施的方法,其中输出所述第三元组包括以下各项中的一个或多个:在存储器中存储所述第三元组;传输传达所述第三元组的信号。
4.根据任一前述权利要求所述的计算机实施的方法,其包括:
通过以下各项中的一个或多个输出所述第一元组和所述第二元组:在存储器中存储所述第一元组和所述第二元组;传输传达所述第一元组和所述第二元组的信号;
通过以下各项中的一个或多个获取输出第一元组:从存储器检索所述输出第一元组;接收传达所述输出第一元组的信号;
获取输出第二元组包括以下各项中的一个或多个:从存储器检索所述输出第二元组;接收传达所述输出第二元组的信号;以及
使用包含于所获取的第一元组内和所获取的第二元组内的参数生成所述第三元组。
5.根据任一前述权利要求所述的计算机实施的方法,其中所述算术运算包括以下各项中的一个或多个:加法;减法;乘法;除法。
6.根据任一前述权利要求所述的计算机实施的方法,其中所述第三元组含有对表征数据项目的第三集合的数据项目的分布的概率分布进行编码的参数,其中用于对所述第三集合的数据项目的分布进行编码的所述参数与用于对所述第一集合的数据项目的分布进行编码的所述参数相同。
7.根据任一前述权利要求所述的计算机实施的方法,其中:
所述第一元组含有对表征所述第一集合的数据项目的分布的所述概率分布内的数据项目的位置进行编码的参数;且
所述第二元组含有对表征所述第二集合的数据项目的分布的所述概率分布内的数据项目的位置进行编码的参数;且
所述第三元组含有对表征数据项目的第三集合的数据项目的分布的概率分布内的数据项目的位置进行编码的参数。
8.根据任一前述权利要求所述的计算机实施的方法,其中:
所述第一元组含有对表征所述第一集合的数据项目的分布的所述概率分布内的数据间隔的位置和/或宽度进行编码的参数;且
所述第二元组含有对表征所述第二集合的数据项目的分布的所述概率分布内的数据间隔的位置和/或宽度进行编码的参数;且
所述第三元组含有对表征数据项目的第三集合的数据项目的分布的概率分布内的数据间隔的位置和/或宽度进行编码的参数。
9.根据任一前述权利要求所述的计算机实施的方法,其中:
所述第一元组含有对表征所述第一集合的数据项目的分布的所述概率分布内的数据项目的概率进行编码的参数;且
所述第二元组含有对表征所述第二集合的数据项目的分布的所述概率分布内的数据项目的概率进行编码的参数;且
所述第三元组含有对表征数据项目的第三集合的数据项目的分布的概率分布内的数据项目的概率进行编码的参数。
10.根据任一前述权利要求所述的计算机实施的方法,其中:
所述第一元组含有对表征所述第一集合的数据项目的分布的所述概率分布的一个或多个统计矩的值进行编码的参数;且
所述第二元组含有对表征所述第二集合的数据项目的分布的所述概率分布的一个或多个统计矩的值进行编码的参数;且
所述第三元组含有对表征数据项目的第三集合的数据项目的分布的概率分布的一个或多个统计矩的值进行编码的参数。
11.根据任一前述权利要求所述的计算机实施的方法,其中:
表征所述第一集合的数据项目的分布的所述概率分布包括狄拉克δ函数的分布;且
表征所述第二集合的数据项目的分布的所述概率分布包括狄拉克δ函数的分布;且
表征所述第三集合的数据项目的分布的所述概率分布包括狄拉克δ函数的分布。
12.根据任一前述权利要求所述的计算机实施的方法,其中所述第一元组是N元组,且所述第二元组是N元组,其中所述第三元组是M元组,其中N2/2<M<2N2,且其中N>1且为整数。
13.一种包括计算机程序的计算机程序产品,所述计算机程序当在计算机上执行时实施根据任一前述权利要求所述的方法。
14.一种用于实施数据分布的编码和计算的设备,所述设备包括:
存储器,其用于存储数据项目的第一集合和数据项目的第二集合;
处理器,其被配置成执行以下处理步骤:
生成第一元组,所述第一元组含有对表征所述第一集合的数据项目的分布的概率分布进行编码的参数;
生成第二元组,所述第二元组含有对表征所述第二集合的数据项目的分布的概率分布进行编码的参数,其中用于对所述第二集合的数据项目的分布进行编码的所述参数与用于对所述第一集合的数据项目的分布进行编码的所述参数相同;
使用包含于所述第一元组内的参数且使用包含于所述第二元组内的参数生成第三元组,所述第三元组含有对表示对第一概率分布和第二概率分布应用算术运算的结果的概率分布进行编码的参数;以及
输出所述第三元组。
15.根据权利要求14所述的设备,其中所述输出所述第三元组的步骤包括以下各项中的一个或多个:在存储器中存储所述第三元组;传输传达所述第三元组的信号。
16.根据权利要求14或15所述的设备,其中所述处理器被配置成:
通过以下各项中的一个或多个输出所述第一元组和所述第二元组:在存储器中存储所述第一元组和所述第二元组;传输传达所述第一元组和所述第二元组的信号;
通过以下各项中的一个或多个获取所述输出第一元组:从存储器检索所述输出第一元组;接收传达所述输出第一元组的信号;
通过以下各项中的一个或多个获取所述输出第二元组:从存储器检索所述输出第二元组;接收传达所述输出第二元组的信号;以及
使用包含于所获取的第一元组内和所获取的第二元组内的参数生成所述第三元组。
17.根据权利要求14至16中任一项所述的设备,其中所述算术运算包括以下各项中的一个或多个:加法;减法;乘法;除法。
18.根据权利要求14至17中任一项所述的设备,其中所述第三元组含有对表征数据项目的第三集合的数据项目的分布的概率分布进行编码的参数,其中用于对所述第三集合的数据项目的分布进行编码的所述参数与用于对所述第一集合的数据项目的分布进行编码的所述参数相同。
19.根据权利要求14至18中任一项所述的设备,其中:
所述第一元组含有对表征所述第一集合的数据项目的分布的所述概率分布内的数据项目的位置进行编码的参数;且
所述第二元组含有对表征所述第二集合的数据项目的分布的所述概率分布内的数据项目的位置进行编码的参数;且
所述第三元组含有对表征数据项目的第三集合的数据项目的分布的概率分布内的数据项目的位置进行编码的参数。
20.根据权利要求14至19中任一项所述的设备,其中:
所述第一元组含有对表征所述第一集合的数据项目的分布的所述概率分布内的数据间隔的位置和/或宽度进行编码的参数;且
所述第二元组含有对表征所述第二集合的数据项目的分布的所述概率分布内的数据间隔的位置和/或宽度进行编码的参数;且
所述第三元组含有对表征数据项目的第三集合的数据项目的分布的概率分布内的数据间隔的位置和/或宽度进行编码的参数。
21.根据权利要求14至20中任一项所述的设备,其中:
所述第一元组含有对表征所述第一集合的数据项目的分布的所述概率分布内的数据项目的概率进行编码的参数;且
所述第二元组含有对表征所述第二集合的数据项目的分布的所述概率分布内的数据项目的概率进行编码的参数;且
所述第三元组含有对表征数据项目的第三集合的数据项目的分布的概率分布内的数据项目的概率进行编码的参数。
22.根据权利要求14至21中任一项所述的设备,其中:
所述第一元组含有对表征所述第一集合的数据项目的分布的所述概率分布的一个或多个统计矩的值进行编码的参数;且
所述第二元组含有对表征所述第二集合的数据项目的分布的所述概率分布的一个或多个统计矩的值进行编码的参数;且
所述第三元组含有对表征数据项目的第三集合的数据项目的分布的概率分布的一个或多个统计矩的值进行编码的参数。
23.根据权利要求14至22中任一项所述的设备,其中:
表征所述第一集合的数据项目的分布的所述概率分布包括狄拉克δ函数的分布;且
表征所述第二集合的数据项目的分布的所述概率分布包括狄拉克δ函数的分布;且
表征所述第三集合的数据项目的分布的所述概率分布包括狄拉克δ函数的分布。
24.根据权利要求14至23中任一项所述的设备,其中所述第一元组是N元组,且所述第二元组是N元组,其中所述第三元组是M元组,其中N2/2<M<2N2,且其中N>1且为整数。
25.一种用计算机程序编程的计算机,所述计算机程序当在所述计算机上执行时实施根据权利要求1至13中任一项所述的方法。
CN202280052652.2A 2021-05-27 2022-05-27 数据分布的编码和计算的改进以及与数据分布的编码和计算相关的改进 Pending CN117730308A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GB2107604.7 2021-05-27
GBGB2107606.2A GB202107606D0 (en) 2021-05-27 2021-05-27 Improvements in and relating to encoding and computation on distributions of data
GB2107606.2 2021-05-27
PCT/EP2022/064486 WO2022248714A1 (en) 2021-05-27 2022-05-27 Improvements in and relating to encoding and computation on distributions of data

Publications (1)

Publication Number Publication Date
CN117730308A true CN117730308A (zh) 2024-03-19

Family

ID=76741272

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202280052640.XA Pending CN117730310A (zh) 2021-05-27 2022-05-27 数据分布的编码和计算的改进以及与数据分布的编码和计算相关的改进
CN202280052652.2A Pending CN117730308A (zh) 2021-05-27 2022-05-27 数据分布的编码和计算的改进以及与数据分布的编码和计算相关的改进

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202280052640.XA Pending CN117730310A (zh) 2021-05-27 2022-05-27 数据分布的编码和计算的改进以及与数据分布的编码和计算相关的改进

Country Status (2)

Country Link
CN (2) CN117730310A (zh)
GB (1) GB202107606D0 (zh)

Also Published As

Publication number Publication date
GB202107606D0 (en) 2021-07-14
CN117730310A (zh) 2024-03-19

Similar Documents

Publication Publication Date Title
Malakar et al. Benchmarking machine learning methods for performance modeling of scientific applications
Češka et al. PRISM-PSY: precise GPU-accelerated parameter synthesis for stochastic systems
Szederkényi et al. Finding weakly reversible realizations of chemical reaction networks using optimization
Jung et al. Reliability measure approach for confidence-based design optimization under insufficient input data
Patel et al. Neur2SP: Neural two-stage stochastic programming
Li et al. Accurate and efficient processor performance prediction via regression tree based modeling
Lin et al. Hard-odt: Hardware-friendly online decision tree learning algorithm and system
Qian Big data Bayesian linear regression and variable selection by normal-inverse-gamma summation
JP2024520473A (ja) データの分布のエンコード及び計算における改良及びそれに関する改良
Bak et al. Reachability of Koopman linearized systems using random Fourier feature observables and polynomial zonotope refinement
Hilton et al. Design and analysis of demographic simulations
Florescu et al. A machine learning based software pipeline to pick the variable ordering for algorithms with polynomial inputs
Sachdeva et al. Pyuoi: The union of intersections framework in python
CN117730308A (zh) 数据分布的编码和计算的改进以及与数据分布的编码和计算相关的改进
Sun et al. A penalized simulated maximum likelihood approach in parameter estimation for stochastic differential equations
JP5182267B2 (ja) 識別器構築装置、識別器、プログラム
Jadebeck et al. Practical sampling of constraint-based models: Optimized thinning boosts CHRR performance
Nebiu et al. Symbolic Information Flow Measurement (SIFM): A software for measurement of information flow using symbolic analysis
Pooley et al. Posterior-based proposals for speeding up Markov chain Monte Carlo
Hassan et al. Domain-specific modeling and optimization for graph processing on FPGAs
De Roeck et al. Bayesian updating, model class selection and robust stochastic predictions of structural response
Fan et al. Accurate energy and performance prediction for frequency-scaled GPU kernels
CN110825707A (zh) 数据压缩方法
Powell Computation and hypercomputation
Ghobrial et al. Evaluation Metrics for DNNs Compression

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination