隐式狄利克雷模型的事件驱动的坍缩吉布斯采样方法与流程

文档序号:12123895阅读:384来源:国知局

本发明涉及机器学习及类脑计算技术领域,尤其涉及一种隐式狄利克雷模型的事件驱动的坍缩吉布斯采样方法。



背景技术:

隐式主题模型,能够从复杂文本集合中抽取其中隐藏的语义结构。目前使用最广泛的隐式主题模型是隐式狄利克雷模型(LDA-Latent Dirichlet Allocation)。这个模型常用的训练算法是坍缩吉布斯采样(CGS-Collapsed Gibbs Sampling)。隐式狄利克雷模型已经广泛运用于文本分析、数据可视化、推荐系统、信息检索和网络分析。近年来,随着网络中文本数据量的大规模增加,已有工作显示大规模隐式狄利克雷模型可以提升广告和推荐系统的功能。但目前,大规模隐式狄利克雷模型一般在大集群下做训练和推理,运行的能耗很大,所以难以推广到能源稀缺的设备上,比如手机应用。

类脑计算通过模仿生物神经网络研发低能耗的计算方法,其中一个重要研究方向是制造通用的低能耗处理器。现有技术提供了一款称为TrueNorth的可运行类脑芯片,其在实时任务上估计出消耗的能量仅为传统中央处理器的十万分之一。但这种类脑芯片不适合直接运行经典计算机算法的操作,而适合运行脉冲神经网络动力学。所以目前已有的经典计算机算法需要针对其原理重新用脉冲神经网络动力学来实现,才能在类脑芯片上使用,并充分发挥芯片低能耗的特性。

目前,脉冲神经网络动力学已经能实现一些经典的机器学习算法。如现有技术提供了一种神经采样方法,在理论上能对概率图做吉布斯采样推理。虽然通过结合坍缩吉布斯采样的原理,该神经采样方法能保证用脉冲神经网络动力学正确地训练隐式狄利克雷模型,但网络结构中使用的神经元连结数目与文本中单词的总数目呈指数关系,空间复杂度太高,所以用神经采样对隐式狄利克雷模型做推理并不有效。神经采样中复杂的网络结构源于它固定不变的网络联结参数。现有技术还用可调节网络参数的脉冲神经网络动力学来训练混合多项式分布模型,使神经元连结可以随环境变化自我调整。但隐式狄利克雷模型比混合多项式分布更加复杂,推广到这个更复杂的模型需要对网络的结构做重新设计。

鉴于此,如何提供一种低能耗、低空间复杂度的方法,使其能够基于脉冲神经网络动力学对隐式狄利克雷模型进行有效训练,并能用于类脑芯片上成为目前需要解决的技术问题。



技术实现要素:

为解决上述的技术问题,本发明提供一种隐式狄利克雷模型的事件驱动的坍缩吉布斯采样方法,能够基于脉冲神经网络动力学对隐式狄利克雷模型的参数进行有效训练,并在原则上能用于类脑芯片,能耗低。

本发明提供一种隐式狄利克雷模型的事件驱动的坍缩吉布斯采样方法,包括:

S1、构建预设结构的神经网络,所述预设结构的神经网络,包括:两个可见层和一个隐层;所述两个可见层按照一热表示方式分别对单词和文档进行编码,所述隐层按照一热表示方式对主题进行编码,突触从可见层中的每个神经元连结到隐层中的每个神经元;

S2、串行地将数据集中的每个单词和每个单词对应的文档逐一呈现给所述神经网络,根据步骤S1中可见层进行编码的方法,表示当前单词的可见层中的神经元和表示当前文档的可见层中的神经元以其实时频率根据泊松过程发放电脉冲,该电脉冲沿着突触连结从可见层传递至隐层;

S3、根据步骤S2中可见层传递电脉冲至隐层的方式,隐层在接收到电脉冲后膜内电压被改变,每个隐层中的神经元根据改变后的膜内电压计算其实时放电频率,并根据该实时放电频率以泊松过程发放电脉冲,如果在某个单词呈现的时候,隐层中的表示某个具体主题的神经元发放电脉冲,则表示这个具体主题新分配给了这个单词;

S4、根据步骤S3中隐层发放电脉冲的方式,更新注入到这些隐层中的神经元的反馈周边抑制信号;

S5、根据步骤S2中可见层发放电脉冲的方式及步骤S3中隐层发放电脉冲的方式,从一个可见层中的神经元到一个隐层中的神经元的突触的连结强度根据这两个神经元发放电脉冲的相对时间差以及该突触当前的连结强度进行更新;

S6、S3至S5是并行执行的,执行上述步骤S2至S5处理完数据集中所有文本为一次迭代,重复上述步骤S2至S5,直至迭代次数达到预设值时,停止迭代并从神经网络的参数中提取隐式狄利克雷模型的参数。

可选地,从对单词进行编码的可见层连结到隐层的权重维护三个矩阵,分别为从对单词进行编码的可见层到隐层的突触的连结强度矩阵、经验一阶矩矩阵和经验二阶矩矩阵;

从对文档进行编码的可见层连结到隐层的权重也维护这样三个矩阵,分别为从对文档进行编码的可见层到隐层的突触的连结强度矩阵、经验一阶矩矩阵和经验二阶矩矩阵。

可选地,所述一热表示方式,包括:

在对单词进行编码的可见层中,每个神经元表示一个具体单词,该可见层的神经元数目为词典中的单词数;

在对文档进行编码的可见层中,每个神经元表示一个具体文档,该可见层的神经元数目为文档集合中的文档数;

在隐层中,每个神经元表示一个具体主题,所述隐层的神经元数目为隐式狄利克雷模型预设的主题数。

可选地,神经网络中从可见层中的每个神经元到隐层中的每个神经元的突触的连结强度设计,包括:

从同一个可见层到隐层的突触的连结强度共同地增加一个相同的预设参数,所述预设参数为正常数。

可选地,隐层在接收到电脉冲后膜内电压被改变的方式,包括:

来自每个突触的电脉冲的影响是将一个有限时长、大小不变的附加电压叠加在隐层中与该突触连结的神经元的膜内电压上,所述附加电压的幅度等于该突触的连结强度;来自相同突触的电脉冲的影响是可更新的,来自不同突触的电脉冲的影响相互可加。

可选地,可见层中每个神经元的实时频率为该神经元的基准放电率乘以一个全局的三角函数调谐信号;

其中,可见层中每个神经元的基准放电率在兴奋为预设常数,在静息时为0。

可选地,隐层中每个神经元的实时放电频率为该神经元的基准放电率乘以一个全局的三角函数调谐信号;

其中,隐层中每个神经元的基准放电率与该神经元的膜内电压为指数关系。

可选地,所述根据步骤S3中隐层发放电脉冲的方式,更新注入到这些隐层中的神经元的反馈周边抑制信号,包括:

如果有隐层中的神经元发放电脉冲,则抑制信号提高到预设最大值,否则抑制信号呈指数衰减。

可选地,所述根据步骤S2中可见层发放电脉冲的方式及步骤S3中隐层发放电脉冲的方式,从一个可见层中的神经元到一个隐层中的神经元的突触的连结强度根据这两个神经元发放电脉冲的相对时间差以及该突触当前的连结强度进行更新,包括:

如果在隐层中的神经元发放电脉冲时,一个可见层中的神经元沿着它们之间的突触连结有电压影响在这个隐层中的神经元,那么这个突触的连结强度会增加,否则这个突触的连结强度会减少;

其中,这个突触的连结强度的增加量为一个方向项乘以步长项;其中,所述方向项取决于这两个神经元发放电脉冲的相对时间差以及该突触当前的连结强度;所述步长项由该突触的经验一阶矩和经验二阶矩进行估计,该突触的经验一阶矩和经验二阶矩用于估计相应的贝塔分布的有效样本量,所述步长项为估计得到的有效样本量的倒数;

这个突触的连结强度的减少量为一个单位的步长项。

可选地,所述从神经网络的参数中提取隐式狄利克雷模型的参数,包括:

从对单词进行编码的可见层到隐层的突触的连结强度中提取主题分布,从对文档进行编码的可见层到隐层的突触的连结强度中提取主题混合比例;

从对单词进行编码的可见层到隐层的突触的经验一阶矩和二阶矩中提取估计的单词-主题计数矩阵,从对文档进行编码的可见层到隐层的突触的经验一阶矩和二阶矩中提取估计的文档-主题计数矩阵。

由上述技术方案可知,本发明的隐式狄利克雷模型的事件驱动的坍缩吉布斯采样方法,通过使用脉冲神经网络动力学和坍缩吉布斯采样的思想,能够对隐式狄利克雷模型的参数进行有效训练,保证隐式狄利克雷模型的训练效果,并在原则上能用于类脑芯片上,能耗低;本发明通过使用可自我调节的突触更新方法,降低了网络的空间复杂度。

附图说明

图1为本发明一实施例提供的一种隐式狄利克雷模型的事件驱动的坍缩吉布斯采样方法的流程示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他的实施例,都属于本发明保护的范围。

图1示出了本发明一实施例提供的隐式狄利克雷模型的事件驱动的坍缩吉布斯采样方法的流程示意图,如图1所示,本实施例的隐式狄利克雷模型的事件驱动的坍缩吉布斯采样方法如下所述。

S1、构建预设结构的神经网络,所述预设结构的神经网络,包括:两个可见层和一个隐层;所述两个可见层按照一热表示方式分别对单词和文档进行编码,所述隐层按照一热表示方式对主题进行编码,突触从可见层中的每个神经元连结到隐层中的每个神经元。

需说明的是,神经网络的每层维护一个标量,表示当前该层发放电脉冲的神经元的下标,或为空;这种标量在对单词进行编码的可见层记为在对文档进行编码的可见层记为在编码主题的隐层记为每个可见层另外维护两个标量,分别表示当前对隐层有突触后膜效应的神经元的下标,以及这个突触后膜效应还要持续的时间,这两个标量在对单词进行编码的可见层分别记为和在对文档进行编码的可见层分别记为和隐层另外维护三个向量,分别表示对单词进行编码的可见层对隐层中每个神经元的突触后膜电压、对文档进行编码的可见层对隐层中每个神经元的突触后膜电压,以及隐层中每个神经元当前的膜内电压。

从对单词进行编码的可见层连结到隐层的权重维护三个矩阵,分别为从对单词进行编码的可见层到隐层的突触的连结强度矩阵经验一阶矩矩阵和经验二阶矩矩阵其中,l为矩阵的行,k为矩阵的列;从对文档进行编码的可见层连结到隐层的权重也维护这样三个矩阵,分别为从对文档进行编码的可见层到隐层的突触的连结强度矩阵经验一阶矩矩阵和经验二阶矩矩阵其中,d为矩阵的行,k为矩阵的列。

在具体应用中,所述一热表示方式,具体包括:

在对单词进行编码的可见层中,每个神经元表示一个具体单词,该可见层的神经元数目为词典中的单词数;

在对文档进行编码的可见层中,每个神经元表示一个具体文档,该可见层的神经元数目为文档集合中的文档数;

在隐层中,每个神经元表示一个具体主题,所述隐层的神经元数目为隐式狄利克雷模型预设的主题数。

在所述步骤S1中,神经网络中从可见层中的每个神经元到隐层中的每个神经元的突触的连结强度设计,可具体包括:

从同一个可见层到隐层的突触的连结强度共同地增加一个相同的预设参数,所述预设参数为正常数,能够保证所有突触强度在训练过程中为正数,即对单词进行编码的可见层维护一个标量a,对文档进行编码的可见层维护一个标量b,a和b是为了保证所有突触为正数引入的修正常数。

S2、串行地将数据集中的每个单词和每个单词对应的文档逐一呈现给所述神经网络,根据步骤S1中可见层进行编码的方法,表示当前单词的可见层中的神经元和表示当前文档的可见层中的神经元以其实时频率根据泊松过程发放电脉冲,该电脉冲沿着突触连结从可见层传递至隐层。

可以理解的是,在步骤S2中,每个单词呈现tdisp时间后屏蔽tmask时间。如果当前时间t属于屏蔽期,则所有可见层中的神经元都不发放电脉冲;如果当前时间t观察到一个单词和该单词对应的文档,对应的对这个单词进行编码的神经元和对这个文档进行编码的神经元分别以实时频率λ发放脉冲,相应的或会被更新。

具体地,或会被更新的方式,可具体包括:

以对这个单词进行编码的可见层为例,如果该层没有神经元发放脉冲,那么如果那么保持不变;如果那么为空;相反,如果存在第l个神经元发放脉冲,那么其中τ为一个预设的常数。

在具体应用中,可见层中每个神经元的实时频率λ为该神经元的基准放电率乘以一个全局的三角函数调谐信号,即如果当前时间t观察到一个单词l和该单词对应的文档d,那么对单词l进行编码和对文档d进行编码的可见层中的神经元的实时频率为:

λ=λ0Asin(ωt+φ) (1)

其中,A,ω,φ均为预设的常数,可见层中每个神经元的基准放电率λ0在兴奋为预设常数,在静息时为0。

S3、根据步骤S2中可见层传递电脉冲至隐层的方式,隐层在接收到电脉冲后膜内电压被改变,每个隐层中的神经元根据改变后的膜内电压计算其实时放电频率,并根据该实时放电频率以泊松过程发放电脉冲,如果在某个单词呈现的时候,隐层中的表示某个具体主题的神经元发放电脉冲,则表示这个具体主题新分配给了这个单词。

可以理解的是,在步骤S3中,可根据步骤S2中记录的可见层的突触后膜效应和的模式,表示主题的隐层中每个神经元计算当前时间的膜内电压和实时放电频率并更新如果在某个单词呈现的时候,隐层中的表示某个具体主题的神经元发放电脉冲,则表示这个具体主题新分配给了这个单词。

在具体应用中,隐层中每个神经元的实时放电频率为该神经元的基准放电率乘以一个全局的三角函数调谐信号,即对主题进行编码的第k个隐层中的神经元的实时频率为:

其中,隐层中每个神经元的基准放电率与该神经元的膜内电压为指数关系,A,ω,φ均为预设的常数。

在所述步骤S3中,隐层在接收到电脉冲后膜内电压被改变的方式,可具体包括:

来自每个突触的电脉冲的影响是将一个有限时长、大小不变的附加电压叠加在隐层中与该突触连结的神经元的膜内电压上,所述附加电压的幅度等于该突触的连结强度;来自相同突触的电脉冲的影响是可更新的,来自不同突触的电脉冲的影响相互可加;即

第k个隐神经元的膜内电压为:

其中,I为更新注入到这些隐层中的神经元的反馈周边抑制信号。

S4、根据步骤S3中隐层发放电脉冲的方式,更新注入到这些隐层中的神经元的反馈周边抑制信号I。

在具体应用中,所述步骤S4,可具体包括:

如果有隐层中的神经元发放电脉冲,则抑制信号提高到预设最大值I=Ainh,否则抑制信号呈指数衰减:

I←I+(μihn-I)/τinh (4)

其中,Ainh为抑制信号预设最大值,为常数;μihn和τinh都是预设的常数。

S5、根据步骤S2中可见层发放电脉冲的方式及步骤S3中隐层发放电脉冲的方式,从一个可见层中的神经元到一个隐层中的神经元的突触的连结强度根据这两个神经元发放电脉冲的相对时间差以及该突触当前的连结强度进行更新。

可以理解的是,在所述步骤S5中,当为非空时,所有突触的连结强度的矩阵和经验一阶矩以及经验二阶矩都会被更新。

在具体应用中,所述步骤S5,可具体包括:

如果在隐层中的神经元发放电脉冲时,一个可见层中的神经元沿着它们之间的突触连结有电压影响在这个隐层中的神经元,那么这个突触的连结强度会增加,否则这个突触的连结强度会减少;

其中,这个突触的连结强度的增加量为一个方向项乘以步长项;其中,所述方向项取决于这两个神经元发放电脉冲的相对时间差以及该突触当前的连结强度;所述步长项由该突触的经验一阶矩和经验二阶矩进行估计,该突触的经验一阶矩和经验二阶矩用于估计相应的贝塔分布的有效样本量,所述步长项为估计得到的有效样本量的倒数;

这个突触的连结强度的减少量为一个单位的步长项,该步长项的计算和上述增加量中的计算一致。

具体地,突触的连结强度的更新方法是:

当词典中有V个单词,对于l=1,...,V,如果那么

否则

其中:

当一共有K个主题,对于k=1,...,K,如果那么

否则

其中:

具体地,经验一阶矩矩阵和经验二阶矩矩阵的更新方法是:

当词典中有V个单词,对于l=1,...,V:

当一共有K个主题,对于k=1,...,K:

S6、S3至S5是并行执行的,执行上述步骤S2至S5处理完数据集中所有文本为一次迭代,重复上述步骤S2至S5,直至迭代次数达到预设值时,停止迭代并从神经网络的参数中提取隐式狄利克雷模型的参数。

在所述步骤S6中,从神经网络的参数中提取隐式狄利克雷模型的参数,可具体包括图中未包括的步骤P1和P2:

P1、从对单词进行编码的可见层到隐层的突触的连结强度中提取主题分布从对文档进行编码的可见层到隐层的突触的连结强度中提取主题混合比例其中,表示第l个单词在第k个主题中的比重,表示第k个主题在第d个文档中的比重;

其中:

在步骤P1提取出和还应将提取出的和归一化。

P2、从对单词进行编码的可见层到隐层的突触的经验一阶矩和二阶矩中提取估计的单词-主题计数矩阵c·,k,从对文档进行编码的可见层到隐层的突触的经验一阶矩和二阶矩中提取估计的文档-主题计数矩阵c·,d

其中,c·,k表示估计出的分配给主题k的单词总数,c·,d表示估计出的文档d的单词总数。

在使用本实施例所述方法分析加州大学欧文分校的机器学习数据库里的NIPS数据集时,在选择参数tdisp=tmask=τ=10,A=1,ω=100π,φ=0,a=logV,b=logK,λ0=1000,Ainh=100,μinh=6,τinh=4后,网络在训练过程中在测试数据集上的困惑度变化曲线和经典的坍缩吉布斯采样方法相近。在取200个主题的情况下经过400轮迭代后,我们的方法的困惑度分别达到1969和1587。接近经典方法的结果1905和1503。我们的方法平均每个单词消耗大约10个电脉冲。

本实施例的隐式狄利克雷模型的事件驱动的坍缩吉布斯采样方法,使用脉冲神经网络动力学中的随机脉冲发放和突触后膜电压效应做随机概率推理;基于事件驱动的突触更新方法记录随机概率推理算式中的参数;所有神经元和突触并行地更新自身的状态;基于坍缩吉布斯采样的训练思想保证最后训练隐式狄利克雷模型的效果;网络的训练结果能跟基于经典坍缩吉布斯采样方法的训练结果进行比较。实验证明,该方法能够达到以上的目的。

本实施例的隐式狄利克雷模型的事件驱动的坍缩吉布斯采样方法,可通过处理器实现,通过使用脉冲神经网络动力学和坍缩吉布斯采样的思想,能够对隐式狄利克雷模型的参数进行有效训练,保证隐式狄利克雷模型的训练效果,并能用于类脑芯片上,能耗低;本发明通过使用可自我调节的突触更新方法,在基本不损失推理精度的同时,解决了以往类似网络中突触连结数呈指数空间复杂度问题,降低了网络的空间复杂度。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

本发明的说明书中,说明了大量具体细节。然而能够理解的是,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释呈反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本发明并不局限于任何单一的方面,也不局限于任何单一的实施例,也不局限于这些方面和/或实施例的任意组合和/或置换。而且,可以单独使用本发明的每个方面和/或实施例或者与一个或更多其他方面和/或其实施例结合使用。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

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