因子图上的概率传播的制作方法

文档序号:23980624发布日期:2021-02-20 09:24阅读:112来源:国知局
因子图上的概率传播的制作方法
因子图上的概率传播


背景技术:

[0001]
本发明一般涉及因子图上的概率传播。特别地,提供了用于实现随机变量的概率分布在因子图上的传播的方法、以及用于执行这样的方法的装置和计算机程序产品。
[0002]
在因子图上传播随机变量的概率分布是在科学和技术中的许多应用中使用的概率计算技术。例如,该技术可用于在诸如以下的应用中的统计推断:数据传输中的纠错码的解码、数据集分析以从例如来自因特网的大量数据中得出深入了解、以及开发用于患者中涉及遗传因素的竞争性疗法的最佳组合的个性化健康护理计划。该技术被应用于一组随机变量的概率分布,该组随机变量的值代表根据所讨论的特定应用的物理过程或其它基本上随机的现象的可能结果。这些概率分布在因子图的边上传播,所述因子图具有经由与多个因子节点的边相互连接的多个变量节点。该因子图的结构以及与该图的节点相关联的特定计算功能由底层的应用确定。下面参考附图中的图1和图2简要地解释概率传播过程。
[0003]
图1示出了因子图的简单示例。该因子图具有与一组变量s、u、v、w、x、y和z相对应的变量节点、以及与描述因子分解的函数f
a
、f
b
、f
c
、f
d
和f
e
相对应的因子节点:
[0004]
p(s,u,v,w,x,y,z)=f
a
(s,u,v)f
b
(v,w)f
c
(u,x)f
d
(u,y)f
e
(y,z)
[0005]
根据变量出现于其中的因子,图中的边将变量节点连接到因子节点。假设期望计算:
[0006][0007]
其中p(s|z=z

)表示在变量z的观测值是z’的情况下变量s的概率分布。可以使用两种方法。直接计算可以通过对n
u
n
v
n
w
n
x
n
y
项求和来执行(其中n
p
表示变量p的可能值的数目):
[0008][0009]
或者,各个求和可以分布在因子分解的乘积上(n
u
n
v
+n
w
+n
x
+n
y
项上的和):
[0010][0011]
概率传播过程通过将因子图的边视为消息传递通道来执行上述第二类型的计算。在节点处计算表示概率分布的消息,并将其沿着边传递到所连接的节点。通常,图的取向和传播消息的方式取决于要执行的特定计算,消息是响应于观测而创建的。可以通过选择一个或多个节点作为根来对该图进行定向,并且将仅连接到一个其他节点的每个非根节点指定为叶子。在第一步骤中,消息可以从叶子逐级向前传递到根,然后在第二步骤中,从根逐级向后传递到叶子。在前向和后向传递的每一个期间,传递两种类型的向量消息:由局部边
际的乘积组成的变量到函数消息;以及由附近变量上的分布的和组成的函数到变量消息。在图2所示的因子图的部分中的变量节点x和函数节点f
a
处对这两种类型的消息的计算如下。从x到f
a
的变量到函数消息由下式给出:
[0012]
μ
x

a
(x)=μ
b

x
(x)μ
c

x
(x)
[0013]
并且从f
a
到x的函数到变量消息由下式给出:
[0014]
μ
a

x
(x)=∑
y

z
f
a
(x,y,z)μ
y

a
(y)μ
z

a
(z).
[0015]
在两个过程期间,值已知的观测变量v在那些值处保持恒定。一旦两个传递都完成,每个节点z
i
组合其存储的消息以获得p(z
i
|v)。因此,对于图2中的变量节点x:
[0016]
p(x|v)=βμ
a

x
(x)μ
b

x
(x)μ
c

x
(x)
[0017]
其中β使得∑
x
p(x|v)=1。
[0018]
可以看出,概率传播运算在计算上是复杂的,并且对于涉及大量随机变量的应用,复杂度显著增加。使用传统(冯
·
诺依曼)计算机实现概率传播需要大量的处理资源和显著的功耗,并且效率随着变量数量的增加而显著降低。


技术实现要素:

[0019]
根据本发明的至少一个实施例,提供了一种用于实现随机变量的概率分布在因子图上的传播的方法。该方法包括提供尖峰神经网络,该尖峰神经网络具有与因子节点互连的变量节点,对应于因子图。每个节点包括一组神经元,其被配置成实现该节点的计算功能。该方法还包括:针对一组随机变量中的每一个生成至少一个尖峰信号,其中该变量的可能值的概率经由该尖峰信号中出现的尖峰而被编码;以及在相应的变量节点处将该组随机变量的尖峰信号作为输入提供给所述神经网络。概率分布是通过在通过神经网络传播的信号中出现尖峰来传播的。
[0020]
使用尖峰神经网络以这种方式实现概率传播提供了比常规冯
·
诺依曼计算架构显著更高的能量效率和更低的实现复杂度,从而允许对大量随机变量的可扩展性。
[0021]
可经由尖峰信号中的尖峰的出现速率和出现时间中的至少一者在尖峰信号中对概率进行编码。在由网络节点通过神经网络传播的结果信号中,概率分布可以类似地由尖峰速率和/或定时表示,并且可以在传播的不同阶段使用不同的表示。在特别简单和高效的实施例中,生成每个尖峰信号,使得概率经由尖峰信号中的尖峰的出现速率来编码,并且节点的神经元被配置为使得概率分布经由通过神经网络传播的信号中的尖峰的出现速率来传播。
[0022]
对于二元随机变量(仅具有两个可能值),可以针对所述组中的每个变量生成单个尖峰信号。该信号对变量的二元值中的一个预定二元值的概率进行编码。然而,多值随机变量(具有三个或更多个可能值)可以容易地容纳在尖峰神经网络架构中。在这种情况下,对于所述组中的每个随机变量的每个可能值,可以产生对该变量的该值的概率进行编码的尖峰信号。
[0023]
本发明的至少另一个实施例提供了一种用于通过在因子图上传播与各个信号样本相对应的码字符号的概率分布来检测在信道输出处采样的信号中的纠错码字的方法。该方法包括提供尖峰神经网络,该尖峰神经网络具有与因子节点互连的变量节点,对应于由纠错码的解码算法定义的二分因子图。每个节点包括一组神经元,其被配置成实现该节点
的计算功能。该方法还包括针对与码字的符号相对应的每个信号样本生成至少一个尖峰信号,其中该样本的可能符号值的概率经由尖峰信号中出现的尖峰来编码,并且在相应的变量节点处将与码字的符号相对应的尖峰信号作为输入提供给神经网络。概率分布经由通过神经网络传播的信号中尖峰的出现而传播,并且在传播之后变量节点输出码字的估计符号值。
[0024]
本发明的其他实施例提供了用于实现上述方法的装置、以及用于使处理装置按照上述方法执行概率分布的传播的计算机程序产品。
[0025]
通常,在参考实施本发明的方法描述特征的情况下,可以在实施本发明的装置或计算机程序产品中提供对应的特征,反之亦然。
[0026]
下面将参考附图通过说明性和非限制性示例更详细地描述本发明的实施例。
附图说明
[0027]
图1示出了因子图的示例;
[0028]
图2示出了在因子图的一部分中传递的消息;
[0029]
图3指示了实现概率分布在因子图上的传播的实施本发明的方法的步骤;
[0030]
图4示出了纠错码解码应用的因子图;
[0031]
图5是用于在解码应用中实现概率传播的装置的示意性表示;
[0032]
图6示出了图5的装置中的尖峰神经网络的结构;
[0033]
图7指示在图6的网络的一个实施例中因子节点中的神经元的配置;
[0034]
图8示出了图7的神经元配置的操作
[0035]
图9示出了图6的网络的变量节点中的神经元配置;
[0036]
图10示出了图9的神经元配置的操作;
[0037]
图11示出了图5的装置的第二实施例中的输入尖峰信号中的概率编码;
[0038]
图12示出了第二实施例中输入到因子节点的尖峰信号中的概率编码;
[0039]
图13示出了第二实施例中在第一遍概率传播之后在变量节点处的尖峰信号中的概率编码;
[0040]
图14指示第二实施例中的snn结构;以及
[0041]
图15指示第二实施例中因子节点中的神经元的操作。
具体实施方式
[0042]
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本发明的各方面。
[0043]
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、诸如上面记录有指令的打孔卡或
凹槽中的凸起结构的机械编码装置、以及前述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
[0044]
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输线缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
[0045]
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器依赖指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言(例如smalltalk、c++等)以及常规的过程式编程语言,例如“c”编程语言或类似的编程语言。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(lan)或广域网(wan),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
[0046]
在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图中的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
[0047]
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
[0048]
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
[0049]
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方式中,框中所提及的功能可不按图中所提及的次序发生。例如,连续示出的两个框实
际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图的每个框以及框图和/或流程图中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
[0050]
本发明的实施例使用尖峰神经网络(snn)来实现概率计算。snn是神经形态处理架构,其由神经系统的生物架构启发,其中信息由经由突触互连的神经元的复杂网络处理。生物神经元可以对其接收的输入信号进行积分。表示所存储的神经元状态的神经元“膜电位”通过神经元输入信号的到达而被渐进地修改。当膜电位越过特定的电压阈值时,神经元将“激发”,产生称为“动作电位”或“尖峰”的输出信号,然后恢复到其初始状态。这些尖峰经由突触被传达给其他神经元,突触作为神经元活动的结果改变它们的连接强度(“可塑性”或“突触权重”)。
[0051]
snn中的计算依赖于尖峰神经元网络之间的基于全尖峰或无尖峰的通信。snn的基本组件包括模拟神经元和突触的功能,其中神经元经由突触互连,突触根据存储的突触权重在神经元之间中继尖峰。神经元/突触功能可以用硬件和/或软件来实现,其中神经元仿真生物神经元的“积分激发”功能,而突触仿真生物突触的可塑性。在本领域中已知用于神经元和突触的各种电路实现,包括利用纳米器件的忆阻特性的电路,例如诸如相变存储器(pcm)单元的电阻存储器单元,用于存储神经元膜电位或突触权重。这种忆阻器件的密集纵横式交换(cross-bar)阵列提供了大规模并行的和高面积效率和高能量效率的snn实现。
[0052]
简单神经元模型由一阶微分方程定义:
[0053][0054]
其中v表示膜电位、v

表示静息电位,τ表示时间常数。如果膜电位达到阈值v
th
,则神经元激发出尖峰,并且将膜电位重置为v
reset
。在激发尖峰之后,神经元在等于t
refract
的不应期内对输入无响应。神经元经由如上所述的突触连接。在突触前神经元激发尖峰之后,两个神经元之间的突触连接引起突触后神经元的膜电位的瞬时变化等于w。因此,改变w的幅度反映了突触权重。
[0055]
实施本发明的方法使用snn架构来实现随机变量的概率分布在因子图上的传播。这种方法的基本步骤在图3的流程图中示出。如步骤1所示,snn被设置有与因子节点(也称为函数节点)互连的变量节点,所述因子节点对应于由所讨论的应用定义的因子图。snn将包含与要对其执行计算的多个变量中的相应随机变量相对应的多个变量节点。这些变量的可能值可以表示物理过程的可能结果,例如对应于编码数据传输的样本的可能符号值,或者由遗传疾病的治疗处理产生的可能基因表达数据。作为另一示例,变量的值可以表示大型数据存储系统中的数据集的相关性。(在此可以设想许多其它应用,并且随机变量的特定性质与在此描述的操作原理正交)。变量节点根据因子图的边与因子节点互连。snn中的每个变量节点和因子节点包括一组(一个或多个)神经元,其被配置成在概率传播操作中实现该节点的计算功能。实现变量节点的神经元的配置将取决于例如将该节点连接到图中的相邻因子节点的边的数量。实现因子节点的神经元的配置将取决于例如到相邻变量节点的边的数量以及由底层应用确定的与因子节点相关联的计算函数。
[0056]
为了发起传播操作,针对与图的变量节点相对应的一组(一个或多个)随机变量中的每个随机变量生成至少一个尖峰信号。针对其生成尖峰信号的该组变量可以包括例如已
观测变量(即,已经针对其观测到值的变量)和/或“先验”概率分布可用的未观测变量。随机变量的尖峰信号的产生在图3的步骤2中示出。在每个尖峰信号中,相应变量的可能值的概率通过尖峰信号中出现的尖峰来编码。因此,为变量产生的尖峰信号的数量取决于变量的可能值的数量。(通常,这里的每个可能值可表示从有限字母表中取得的离散随机变量的值(对于离散随机变量),或值范围,即,在定义的范围内的任何值(对于连续随机变量))。在步骤3中,随机变量的尖峰信号作为输入在与这些随机变量相对应的各个变量节点被提供给snn。在步骤4中,随机变量的概率分布然后通过在通过snn传播的信号中出现尖峰来传播。传播过程可以涉及多于一个传播步骤并且可以是迭代的,涉及多个传播操作,每个传播操作可以包括多个传播步骤,例如如前所述的前向(叶子到根)和后向(根到叶子)传播步骤。在传播操作期间,变量节点计算消息传递操作的变量到函数消息(乘积项),并且因子节点计算函数到变量消息(乘积之和),其中在每种情况下,计算结果被编码在由实现每个节点的神经元输出的信号中的尖峰出现中。传播结果由snn节点处执行的计算提供,并且如步骤5所示,在传播之后可以在一个或多个节点处获得期望的计算结果,具体地,根据从传播操作推断出的特定计算结果,可以例如经由节点输出从一个或多个节点处的信号获得该操作的期望结果。例如,一个或多个变量节点可以适于输出在这些节点处对传播结果进行编码的尖峰信号。可在迭代过程的一个或多个阶段获得结果,其中通过连续多遍传播操作来渐进地细化计算结果。
[0057]
因此,随机变量的概率分布通过在通过snn传播的信号中出现尖峰来传播,以在传播之后在一个或多个节点处获得计算结果。这样使用snn来评估因子图上的概率传播允许以高效方式执行固有复杂的运算,从而与基于冯
·
诺依曼计算架构的常规实施方式相比,提供了显著较高的能量效率和较低的实施复杂度。因此,用于概率传播的snn架构提供了对于大量随机变量的可扩展性。
[0058]
现在将更详细地描述其中snn架构用于纠错码的解码中的概率传播的示例性实施例。在本申请中,上述方法用于检测在信道输出处采样的信号中的纠错码字。通过信道发送的信号用通过使用纠错码(ecc)来编码数据而产生的码字的符号来调制。在信道输出处对信号进行采样以获得与每个ecc码字的相应符号对应的信号样本。snn架构被用于在由纠错码的解码算法定义的二分因子图上传播与各个信号样本相对应的码字符号的概率分布。在此示例中,ecc码是(7,4)海明码,并且解码算法由以下奇偶校验矩阵h定义:
[0059][0060]
对于具有符号b1,b2,

,b7的码字b的奇偶校验等式是hb=0。对于awgn(加性白高斯噪声)信道上的二元对径信令,信道输出处的符号概率是:
[0061]
以及
[0062]
其中:x
n
是对应于码字符号b
n
(n=1至7)的信号样本;是样本x
n
对应于b
n
=0的概率;是样本x
n
对应于b
n
=1的概率;并且σ是加性噪声的标准偏差。
[0063]
图4示出了对应于奇偶校验矩阵h的二分因子图。在本申请中,随机变量对应于码
字符号。因此,该图具有与符号b1至b7相对应的七个变量节点v1至v7。由于这些变量是二元的,因此每个变量的概率分布完全由概率或来定义。在此例中,使用了由此变量节点v1至v7处的初始符号概率表示分别对应于样本x1至x7的符号b1至b7是值为1的比特的概率至因子图具有三个因子节点,这里是实现解码算法的奇偶校验运算的校验节点c1、c2和c3。图中的边将由奇偶校验矩阵h定义的变量节点和校验节点互连。
[0064]
用于实现概率分布(这里为至)的传播的装置的高级结构在图5中示出。该装置包括snn 10和尖峰信号发生器11。在本申请中,snn 10具有根据图4的因子图与校验节点c1至c3互连的变量节点v1至v7。每个节点包括一组神经元,这将在下面进一步描述,其被配置成实现节点的计算功能。尖峰信号发生器11接收对应于传输码字的信号样本x1至x7,并通过上述等式计算这些样本的概率至然后,尖峰信号发生器产生尖峰信号,在这种情况下,为每个符号b1至b7产生一个尖峰信号,分别编码概率至这些概率被编码在尖峰信号中的尖峰的速率和/或定时中,如下面进一步描述的。信号发生器11将编码了至的尖峰信号作为输入分别在变量节点v1至v7处提供给snn 10。然后,经由在通过snn传播的信号中的尖峰的速率和/或定时来传播概率分布。这里迭代地执行传播操作,并且变量节点适于在每遍迭代操作上在传播之后输出码字的由至表示的估计符号值。
[0065]
通常,传播装置的各种组件的功能可以由以硬件或软件或其组合实现的逻辑来提供。这种逻辑可以在由(通用或专用)编程设备执行的诸如程序模块的计算机系统可执行指令的一般上下文中描述。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。例如,在一些实施例中,snn 10中的神经元功能可以用软件实现。然而,硬件实现是优选的,snn 10可以使用通常已知的电路技术来构造以实现所述功能。
[0066]
图6示出了snn 10的更详细的结构。每个变量节点v1至v7包括一个或多个神经元,由∏表示,如所指示的。实现每个变量节点的∏-神经元的数量取决于该节点和校验节点之间的边的数量。每个∏-神经元适于实现多数规则函数,如下所述。每个校验节点c1至c3包括被配置为实现xor函数的神经元,在图中用表示。具体地,每个校验节点包括四个神经网络,每个神经网络实现xor运算,对于该校验节点和变量节点之间的四个边中的每一个有一个神经网络。校验节点c1与其相邻变量节点v1、v2、v3和v5之间的连接在图中用实线表示。校验节点c2与其相邻变量节点v1、v2、v4和v6之间的连接由虚线表示。校验节点c3与其相邻变量节点v1、v3、v4和v7之间的连接由短划线表示。
[0067]
在操作中,编码了概率至的尖峰信号分别经由图中以粗体指示的输入被提供给节点v1至v7的∏-神经元。在该初始遍中,还没有从校验节点到变量节点的输出。因此,将由∏-神经元发送编码了至的尖峰信号,从而在变量节点处向snn提供输入,该输入被发送到校验节点。尖峰信号经由图中所示的连接被提供给校验节点的xor网络。每个xor网络将xor函数应用于其输入尖峰信号,并且将所得到的尖峰信号输出到变量节点。因此,
校验节点的每个xor网络计算先前描述的函数到变量消息μ
c

v
(v)之一,该函数到变量消息将由该校验节点传送到其相邻变量节点之一。xor输出信号由变量节点处的∏-神经元接收,如图中的连接所示。每个∏-神经元还接收编码了概率至的输入尖峰信号。(这些尖峰信号在对应于初始信号通过网络回到∏-神经元的传播时间的延迟δt之后由尖峰发生器11激发)。在每个变量节点中,一个∏-神经元计算将由该变量节点发送回其连接的校验节点之一的变量到函数消息μ
v

c
(v)之一。这些∏-神经元输出信号发起第二遍传播操作。每个变量节点中的一个∏-神经元还从连接的校验节点接收所有信号以及初始输入尖峰信号。(对于仅连接到一个校验节点的变量节点v5至v7,单个∏神经元就足够了。对于其它变量节点,附加的∏-神经元接收所有校验节点输出信号以及初始输入信号)。每个变量节点中的该∏-神经元的输出信号提供符号估计,即,对应于该变量节点的码字符号为或
[0068]
第二遍传播操作基于第一遍之后的∏-神经元输出信号如上进行。操作这样迭代地进行,其中输出符号估计至在连续迭代中被渐进地细化。传播操作可以运行预定的迭代次数,或者可以继续进行直到符号估计达到期望的确定性程度,例如直到估计满足奇偶校验等式,或者在定义的迭代次数上不变。
[0069]
在图6的snn的第一实施例中,尖峰信号发生器11经由尖峰信号中的尖峰速率(尖峰频率)对概率至进行编码。节点神经元还被配置成使得概率经由传播信号中的尖峰速率在整个snn中传播。图7指示该实施例中因子节点c1至c3中的神经元配置。左边的图指示因子节点的每个xor块的神经网络结构,右边的表指示基于先前描述的神经元模型的各个神经元的参数。(下面的这些和类似参数以公知的方式通过神经网络的训练操作来确定)。校验节点的每个3输入xor块由如图所示连接的两个相同的2输入xor网络(其中之一在图中完整示出)构成。第一2输入xor网络包括两个输入神经元n1和n2,接收xor输入中的两个(这里由y1和y2表示),连接到输出神经元n3。神经元n3的输出z1向第二xor网络提供一个输入,该第二xor网络的第二输入是3输入xor输入信号中的第三个,这里用y3表示。输出z2是3输入xor网络的输出信号。
[0070]
图7的网络的操作可以从图8中理解。这示出了图7中所示的两输入xor网络的两个输入信号y
i=1,2
和输出信号z1中的尖峰速率编码。在每种情况下尖峰由垂直线指示,其中两个输入yi分别由实线和虚线表示。在左上图中,两个输入都具有低尖峰速率,对应于表示y1=0且y2=0的低概率因此输出信号z1具有低尖峰速率,即z1=0,如下面的图中所指示。在右上图中,一个输入具有低尖峰速率,而另一个输入为高尖峰速率,例如y1=0且y2=1。因此输出信号z1具有高尖峰速率,即z1=1,如下面的图中所示。其余的输入组合在左下图和右下图中示出,左侧对应于y1=1、y2=0、z1=1以及右侧对应于y1=1、y2=1、z1=0。因此,2输入xor运算根据需要被实现。三输入xor运算相应地也是如此。
[0071]
图9指示在该实施方案中在变量节点v1至v7中的每个∏-神经元的配置。图6中的每个∏-神经元具有两个到四个输入。图9中示出了三个输入y1至y3,但是所描述的操作适用于任何数量的输入。如果超过了∏-神经元n1的阈值电位vth,则其激发出尖峰。这实现了
多数规则函数,由此如果超过一半的输入是高频(即,符号等于1的高概率)输入,则将生成高频(即,符号等于1的高概率)输出。如果正好一半的输入是高频输入,则将以概率0.5生成高频输出。图10指示如前所述的输入和输出信号中的速率编码,其中这里的三个输入中的尖峰分别由实线、虚线和短划线指示。可以看出,如果两个或更多个输入具有高尖峰速率,则输出z1具有对应于高概率的高尖峰速率。
[0072]
以上提供了一种简单但高效的实现,其中在整个传播操作中以尖峰速率对概率进行编码。从校验节点接收所有输入的∏-神经元在输出z1具有高尖峰速率的情况下将输出符号估计指示为并且在z1具有低尖峰速率的情况下输出符号估计指示为
[0073]
在图5的装置的第二实施例中,尖峰信号发生器11经由尖峰信号中的尖峰的速率和定时对概率至进行编码。具体地,信道输出符号等于1的概率由伯努利序列编码为持续时间t的n个区间的序列内的尖峰的随机序列,其中尖峰在时间t=it在第i个区间τ
i
,i∈{0,1,

,n-1}中被激发,具有概率这在图11中在n=8的示例中被图示为
[0074]
如以上实施例中,变量节点神经元由∏-神经元实现,每个∏-神经元在超过其阈值电位时激发尖峰。校验节点神经元由3输入xor网络实现,但是这些节点经由尖峰定时进行编码操作。特别地,在xor网络的输入信号中,二元信息经由激发尖峰的定时在第i个区间中被编码。通过在时间t=(i+1)t-δ激发尖峰来编码比特1,并且通过在时间t=it+δ激发尖峰来编码比特0。这在图12中对于输入概率而示出。3输入xor网络的输出神经元在每个区间τ中的时间间隔t
s
(δ<t
s
<(t-δ))内被抑制,以抑制xor输出信号中与0相对应的尖峰。“0尖峰”的这种抑制将尖峰编码转换回在变量节点的∏-神经元处使用的编码,其中激发尖峰(以编码1)或不激发尖峰(以编码0)。如前所述,这些转换后的信号在变量节点处与输入尖峰信号组合。图13示出了在第一次迭代之后得到的变量节点输出信号编码概率处与输入尖峰信号组合。图13示出了在第一次迭代之后得到的变量节点输出信号编码概率的尖峰表示。
[0075]
在该实施例中,变量节点和校验节点处使用的不同尖峰编码机制可由snn中的附加逻辑来提供,如图14所示。snn 20总体上对应于图6的snn。然而,尖峰转换逻辑21将变量到校验节点信号中的尖峰表示转换为校验节点所使用的尖峰表示,如上所述。逻辑21可以在这里以任何方便的方式实现,并且适当的实现对于本领域技术人员来说是显而易见的。校验节点输出转换回变量节点尖峰表示在此可以通过尖峰抑制来执行,如22所示。如上所述,可以简单地通过在时间间隔t
s
内抑制每个xor网络的输出神经元以抑制校验节点输出信号中的0尖峰来实现该功能。
[0076]
用于该实施例的校验节点的3输入xor网络可以通过级联两个2输入xor网络来实现,这两个2输入xor网络的类型在s.m.bohte的博士论文“spikingneuralnetworks”第3.3节中详述(莱顿大学,2003,isbn 90-6734-167-3)。2输入xor网络由延迟尖峰神经元的网络组成,其中16个可用的突触延迟连接两个神经元。该网络包括三个输入神经元(2个编码神经元和1个定时参考神经元)、5个隐藏(即,中间层)神经元(其中一个抑制神经元仅生成负
号突触后电位)、和1个输出神经元。来自突触前神经元的尖峰生成16个延迟的尖峰响应函数。来自突触前神经元的所有尖峰响应函数的总和生成突触后神经元中的膜电位。这在上面的文献的图2.1中示出。在仅允许正权重的情况下,在训练操作中调整16
×3×
5+16
×5×
1=320个单独权重,以使用错误反向传播算法来学习xor函数。该算法在该文献的3.2节中详细描述。在所得到的网络中,输入信息和xor运算的结果被编码在输入和输出神经元脉冲的定时中。对于上述实施例,“0”与早激发时间相关联,而“1”与晚激发时间相关联。图15的表针对毫秒为单位的输入/输出尖峰时间来指示xor网络所实现的输入/输出关系。在输入尖峰模式中,“0”与0ms的尖峰时间相关联,而“1”与6ms的时间相关联。在输出尖峰模式中,“0”与10ms的尖峰时间相关联,而“1”与16ms的时间相关联。
[0077]
如以上实施例中所例示的,尖峰时间编码的使用以一些附加的实现复杂度为代价提供了用于概率传播的强大的编码技术。始终需要精确地表征尖峰出现时间。例如,通过变量节点和校验节点的延迟δt被精确地表征,使得在每次迭代时,表示符号概率至的尖峰序列的激发与xor输出神经元的激发同时发生。通过在变量和校验节点处包括定时参考神经元,可以实现适当的同步,由此网络操作与由定时参考神经元激发的尖峰队列同步。
[0078]
尽管上面针对二元随机变量描述了操作,但是snn架构可以容易地扩展以适应多值随机变量。然后需要多个尖峰信号来编码每个变量的概率分布。具体地,对于每个随机变量的每个可能值,将由尖峰信号发生器11生成对该变量的该值的概率进行编码的尖峰信号。然后在变量节点和校验节点之间提供多个连接以在snn中传播这些信号,并且在节点处提供多个神经网络以适应针对多个概率的计算。然而,基本操作原理是相同的,并且可以以直接的方式扩展上述功能以适应snn架构中的多值变量。
[0079]
在多值随机变量的示例性实现中,可将随机方法应用于概率编码。具有2
n
个可能值的变量可以由具有n个元素的二元向量表示。每个随机变量可被映射到2
n
条将信号发生器11连接到snn 10的平行信号线。这2
n
条线中的每一条传递假定相应值的随机变量的概率,其中概率p被编码为在持续时间l*t的区间上传输的1(即,尖峰)的数量。1在该区间上如下分布。概率在l个时隙中由2
n
个二元随机序列编码,其中总共l位等于1。在每个时隙中,仅有一位等于1,携带1/l的概率。(作为一种选择,1可以作为从泊松过程中产生的事件以与概率p成比例的平均速率r发送)。校验节点功能可由具有j个(j≥2)2
n
值输入随机变量和一个2
m
值输出随机变量的逻辑来实施。变量节点功能可以通过对k个(k≥2)2
m
值输入变量的每个值的接收的1的数量的多数表决来实现,其中随机选择以打破平局。例如,在对具有来自伽罗瓦域gf(q)的符号的多值ldpc(低密度奇偶校验)码进行随机解码时,可以采用这种实现方式,其中q=2
n
=2
m

[0080]
当然,可以对所描述的示例性实施例进行许多改变和修改。例如,可以设想用于在尖峰序列中编码概率的其他技术,并且在其他实施例中,可以在变量和校验节点处采用基于尖峰速率和/或时间的编码的其他组合。此外,虽然上面详细描述了解码应用,但是本发明的实施例可以在其中执行随机变量的概率传播以用于统计推断的任何应用中采用。示例通常包括图像识别、机器学习、数据集分析、遗传疾病的治疗分析、语音识别和信念传播应用。
[0081]
已经出于说明的目的给出了本发明的各种实施例的描述,但是其不旨在是穷尽的或限于所公开的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变
化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术的技术改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1