一种深度置信网的流水线式预训练方法技术

技术编号:18498115 阅读:45 留言:0更新日期:2018-07-21 20:40
本发明专利技术提供了一种基于DNN的蒙古语声学模型的训练方法。用DNN深度神经网络代替GMM高斯混合模型,实现对蒙古语声学状态的后验概率进行估算,构建DNN‑HMM声学模型,并公开了该模型的训练方法。本发明专利技术可有效降低词识别的错误率和字识别的错误率,提高模型使用性能。本发明专利技术涉及一种深度置信网的流水线式预训练方法,以解决深度置信网逐层训练耗时、效率低的问题。在逐层无监督预训练算法中,采用了堆叠RBM的方式来完成深度神经网络的预训练,在下层隐含层完成全部训练数据的拟合之前,不开始上层隐含层的训练任务的,因为上层隐含层的输入来自于下层隐含层的输出,这就是隐含层间的数据依赖。

A pipelined pre training method for deep belief network

The invention provides a training method of Mongolian acoustic model based on DNN. Using the DNN deep neural network instead of the GMM Gauss mixture model, the posterior probability of the Mongolian acoustic state is estimated, and the DNN HMM acoustic model is constructed, and the training method of the model is disclosed. The invention can effectively reduce the error rate of word recognition and the error rate of word recognition, and improve the performance of the model. The invention relates to a pipeline pre training method for deep confidence network, which solves the problem of time-consuming and low efficiency of deep confidence network by layer by layer training. In the layer by layer unsupervised pre training algorithm, the stack RBM is used to complete the pre training of the deep neural network. The training task of the upper hidden layer is not started before the underlying layer is fitted to complete the fitting of all the training data, because the input of the upper layer comes from the output of the underlying layer, which is the hidden layer. Data dependence between them.

【技术实现步骤摘要】
一种深度置信网的流水线式预训练方法
本专利技术涉及一种深度置信网的流水线式预训练方法,以解决深度置信网逐层训练耗时、效率低的问题。
技术介绍
在采用逐层无监督预训练算法进行深度神经网络初始化过程中,深度神经网络可以看作是一系列隐含层的有序堆叠,每个隐含层通过对其输入进行非线性变化,完成对输入数据的特征提取。然而,逐层无监督预训练算法由于其内在的逐层有序学习过程,每次只能有一个隐含层进行训练学习,即上层的隐含层由于对下层存在着数据依赖,必须等待下层隐含层训练完成后,才能得到输入数据,从而开始自身的训练,因此逐层无监督预训练算法的扩展性受到了很大的限制。随着网络层数、隐含层节点数目的增多以及训练数据的增长,即使采用高性能GPU和高效的优化策略,深度神经网络的训练也极为耗时。现有技术对加速深度神经网络的训练,主要工作集中在如何利用分布式集群实现深度神经网络的并行化训练,从而提高网络的训练效率。深度神经网络的并行化训练主要分为模型并行和数据并行两类。模型并行表示整个深度神经网络模型分别存储在框架中的机器上,即模型参数被分布式存储在多台机器上,每台机器仅保存和训练一部分模型参数。因此,训练过程中要求模型的各节点间进行大量的通信和同步操作,从而使模型并行策略的效果并不明显。数据并行表示整个深度神经网络的模型参数存储于主节点上,各从节点通过随机的选取训练样本计算梯度从而完成对主节点模型参数的更新较为适合主从式分布式集群,在数据并行策略中。相比模型并行,数据并行更加有效和易于实现。
技术实现思路
本专利技术为解决深度置信网逐层训练耗时、效率低的问题,提供了一种深度置信网的流水线式预训练方法。在逐层无监督预训练算法中,采用了堆叠RBM的方式来完成深度神经网络(DeepBeliefNetwork,DBN)的预训练,在下层隐含层完成全部训练数据的拟合之前,是不会开始上层隐含层的训练任务的,因为上层隐含层的输入来自于下层隐含层的输出,这就是隐含层间的数据依赖。为了并行化各隐含层的训练,必须为上层隐含层提前找到输入数据。下层隐含层在以RBM的形式进行训练过程中,每读入一个mini-batch的训练数据,均会产生一个相应的mini-batch的中间结果,即附图1中的黑色方块。在流式预训练算法中,这些中间结果便被当作上层隐含层构成的RBM的输入数据,如附图1所示隐含层L1构成的RBM的产生的中间结果便被作为L2构成的RBM的输入数据。在开始上层隐含层的训练前,还需要解决相邻隐含层构成的RBM会共享隐含层的问题,上层RBM的可见层偏执向量初始化问题,在流式预训练算法中是通过对隐含层进行复制解决该问题的,如附图1所示隐含层L1构成的RBM是由输入层和隐含层L1构成的,而L2构成的RBM是由隐含层L2和隐含层L1的复制层构成的。在实际应用中隐含层的复制是很容易实现的,仅仅对隐含层对应的偏执向量进行复制即可。1.流式预训练学习算法主要完成过程如下:(1)根据计算节点数目以及网络结构对深度神经网络进行划分。深度神经网路的划分包括以下两种情况:当计算节点数不小于网络层数时,每个RBM将被分配到某个专属的计算节点上,即每个隐含层将在独有的机器上完成训练任务;否则,会存在相邻RBM分配到相同计算节点的情况,即多个隐含层将在同一台机器上完成训练任务。由于相邻RBM间共享网络层并存在数据依赖,为了实现深度神经网络的分布式划分,需要在相邻RBM间增加一个额外的隐含层,该隐含层是对下层RBM隐含层的复制,即二者的神经单元数、神经单元激励函数均完全相同,且会定时地利用下层RBM隐含层参数对复制的隐含层进行初始化。(2)完成深度神经网络的分布式划分后,由深度神经网络的底层开始进行预训练。(3)重复进行过程(2)直到所有的隐含层训练完毕。隐含层训练完毕后,收集各机器节点上的模型参数,便可以开始进行网络模型的调优。2.流式预训练框架:流式预训练框架采用主从式集群结构设计,主节点负责实现训练任务初始化、计算资源分配以及网络训练过程中的调度;从节点负责具体的隐含层训练工作以及与其它节点通信。该训练框架采用Python实现,节点间的通信通过socket通信实现的,而各计算节点上RBM的训练是通过Theano实现的。附图说明附图1为DBN流式预训练流程图。附图2为共享隐含层复制过程图。附图3为深度神经网络分割图。附图4为N层DBN流式预训练算法训练过程图。附图5为DBN流式预训练训练框架图。附图6为DBN流式预训练算法加速情况图。实施方式为了能够更清楚地描述本专利技术的
技术实现思路
,下面结合具体实施例来进行进一步的描述。实施例一:1.流式预训练学习算法主要完成过程如下:(1)根据计算节点数目以及网络结构对深度神经网络进行划分。深度神经网路的划分包括以下两种情况:当计算节点数不小于网络层数时,每个RBM将被分配到某个专属的计算节点上,即每个隐含层将在独有的机器上完成训练任务;否则,会存在相邻RBM分配到相同计算节点的情况,即多个隐含层将在同一台机器上完成训练任务。由于相邻RBM间共享网络层并存在数据依赖,为了实现深度神经网络的分布式划分,需要在相邻RBM间增加一个额外的隐含层,该隐含层是对下层RBM隐含层的复制,即二者的神经单元数、神经单元激励函数均完全相同,且会定时地利用下层RBM隐含层参数对复制的隐含层进行初始化。深度神经网络中共享隐含层的复制过程如附图2所示,附图2中共三个隐含层,其中Lm-1与Lm构成RBMm,Lm与Lm+1构成RBMm+1,由于RBM1与RBM2共享隐含层L1,为了将RBM1与RBM2分发到不同的训练节点,需要对隐含层L1进行复制,得到L1-copy层。此时,L0与L1构成RBM1在M1节点上进行训练,L1-copy与L2构成RBM2在M2机器上进行训练。由于L1-copy层是L1层的拷贝,需要定时地利用L1的参数对L1-copy进行初始化,因此需要不同计算节点间的通信以及参数传递,如附图2中虚线所示。(2)完成深度神经网络的分布式划分后,由深度神经网络的底层开始进行预训练。附图3便是深度神经网络划分到分布式集群中的情况,原深度神经网络共包含5个隐含层L1,L2,L3,L4,L5,如附图3左所示。划分到分布式集群以后的情况如附图3右所示,5个隐含层L1,L2,L3,L4,L5分别在5台不同机器M1,M2,M3,M4,M5上进行训练。每个隐含层在完成一个最小批量的运算后,将该最小批量在本隐含层上相应的输出以及隐含层的偏执向量一起传递到下个隐含层所在的机器上,如附图3中带箭头虚线所示。最底层的输入层和第一个隐含层L1构成第一个RBM,即RBM1。RBM1首先初始化RBM参数W1,a1以及b1,然后读取一个mini-batch的训练数据作为输入进行训练,该mini-batch的输入数据训练完成后,将产生RBM1的输出RBM1-1-out,RBM1的隐含层L1的偏执向量也将更新成b1-1,b1-1表示第一个隐含层偏执向量经过一个mini-batch后的值。通过跨机器的消息传递将RBM1-1-out,b1-1传递到RBM2所在的机器,RBM2首次利用b1-1初始化RBM2得可见层L1-copy的偏执向量,然后以RBM1-1-out作为输入进行训练,经过训练RBM本文档来自技高网
...

【技术保护点】
1.一种深度置信网的流水线式预训练方法,其特征在于:流式预训练学习算法主要完成过程如下:(1)根据计算节点数目以及网络结构对深度神经网络进行划分。(2)完成深度神经网络的分布式划分后,由深度神经网络的底层开始进行预训练。(3)重复进行过程(2)直到所有的隐含层训练完毕。隐含层训练完毕后,收集各机器节点上的模型参数,便可以开始进行网络模型的调优。流式预训练框架:流式预训练框架采用主从式集群结构设计,主节点负责实现训练任务初始化、计算资源分配以及网络训练过程中的调度;从节点负责具体的隐含层训练工作以及与其它节点通信。该训练框架采用Python实现,节点间的通信通过socket通信实现的,而各计算节点上RBM的训练是通过Theano实现的。

【技术特征摘要】
1.一种深度置信网的流水线式预训练方法,其特征在于:流式预训练学习算法主要完成过程如下:(1)根据计算节点数目以及网络结构对深度神经网络进行划分。(2)完成深度神经网络的分布式划分后,由深度神经网络的底层开始进行预训练。(3)重复进行过程(2)直到所有的隐含层训练完毕。隐含层训练完毕后,收集各机器节点上的模型参数,便可以开始进行网络模型的调优。流式预训练框架:流式预训练框架采用主从式集群结构设计,主节点负责实现训练任务初始化、计算资源分配以及网络训练过程中的调度;从节点负责具体的隐含层训练工作以及与其它节点通信。该训练框架采用Python实现,节点间的通信通过socket通信实现的,而各计算节点上RBM的训练是通过Theano实现的。2.如权利要求1所述的一种深度置信网的流水线式预训练方法,其特征在于:深度神经网路的划分包括以下两种情况:当计算节点数不小于网络层数时,每个RBM将被分配到某个专属的计算节点上,即每个隐含层将在独有的机器上完成训练任务;否则,会存在相邻RBM分配到相同计算节点的情况,即多个隐含层将在同一台机器上完成训练任务。由于相邻RBM间共享网络层并存在数据依赖,为了实现深度神经网络的分布式划分,需要在相邻RBM间增加一个额外的隐含层,该隐含层是对下层RBM隐含层的复制,即二者的神经单元数、神经单元激励函数均完全相同,且会定时地利用下层RBM隐含层参数对...

【专利技术属性】
技术研发人员:马杰马志强杨双涛
申请(专利权)人:内蒙古工业大学
类型:发明
国别省市:内蒙古,15

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1