基于深度神经网络的矢量量化系统及方法与流程

文档序号:11952262阅读:573来源:国知局
基于深度神经网络的矢量量化系统及方法与流程

本发明涉及信息与信号处理技术领域,例如是多媒体编解码技术,特别涉及到一种基于深度神经网络的矢量量化系统及方法。



背景技术:

矢量量化是一种数据压缩方法,广泛应用于语音和图像的编解码算法中。该方法能有效地利用矢量各分量间的相关性来消除数据中的冗余度,从而实现多维信号的压缩。从数据量化的角度,矢量量化可以看作是标量量化在维度上的扩展。标量量化利用线性依赖和概率密度函数来消除冗余度,而矢量量化在此基础上还利用了非线性依赖和数据维度来消除冗余度。

传统的矢量量化系统中,编码端和解码端都存储有已训练的码本,编码端在码本中查找与输入矢量失真度最小的码本、并将该码本的索引传输到解码端,解码端则根据接收到的该索引、在码本中获取码字,依据索引解码的复杂度较高,无法处理高维度数据。传统的矢量量化系统在应对高维度信号时,为了降低算法复杂度,通常采用分裂矢量量化和多级矢量量化方法。分裂矢量量化将高维度信号分裂为多个低纬度信号,分别进行矢量量化;多级矢量量化通过减小每一级码本的大小来降低算法复杂度,通过对残差信号进行量化的方法来降低量化误差。然而,这些在复杂度上折衷的算法,在一定程度上增加了量化误差。



技术实现要素:

本发明所要解决的技术问题是提供一种基于深度神经网络的矢量量化系 统及方法,能有效解决高维度信号矢量量化的量化误差较大的问题。

为解决上述问题,本发明提出一种基于深度神经网络的矢量量化系统,包括:

归一化预处理模块,用以接收原始数据,并将原始数据通过归一化数据进行归一化处理,输出归一化后的预处理数据;

矢量量化编码模块,用以接收所述预处理数据及预先用预处理训练数据训练好的码本,并通过码本对所述预处理数据进行矢量量化编码,输出编码数据;

神经网络反量化模块,用以接收所述编码数据及预先训练好的深度神经网络,并通过深度神经网络对所述编码数据进行解码反量化,输出解码数据;

反归一化后处理模块,用以接收所述解码数据,并通过所述归一化数据对所述解码数据进行反归一化处理,输出反归一化后的还原原始数据;及

神经网络训练模块,用以通过所述预处理训练数据和将预处理训练数据经所述矢量量化编码模块编码后的编码训练数据,进行神经网络的训练,得到所述深度神经网络,输出所述深度神经网络至所述神经网络反量化模块中。

根据本发明的一个实施例,所述神经网络训练模块包括:

非监督学习初步训练模块,用以:将所述预处理训练数据输入神经网络的输入层,训练第1个的自编码器,得到第1隐藏层及输入层到第1隐藏层的网络权重矩阵W1;重复M次将第i-1隐藏层的输出数据输入到第i隐藏层中,训练第i个自编码器,得到第i+1隐藏层及第i隐藏层到第i+1隐藏层的网络权重矩阵Wi,得到M个隐藏层,1<i<M;从而得到初始化深度神经网络;

监督学习优化训练模块,用以:将所述编码训练数据作为所述初始化深度神经网络的第M个隐藏层的输入,将所述预处理训练数据作为所述初始化深度神经网络的输入层的输出,通过后向传播算法进行迭代优化深度神经网络,得到所述深度神经网络。

根据本发明的一个实施例,各层自编码器的训练为如下公式(2),θ表示自编码器输入层到隐藏层的参数,θ′表示自编码器隐藏层到输出层的参数,参 数包括网络权重矩阵和偏置向量;

<mrow> <mi>&theta;</mi> <mo>,</mo> <msup> <mi>&theta;</mi> <mo>&prime;</mo> </msup> <mo>=</mo> <munder> <mrow> <mi>arg</mi> <mi> </mi> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mrow> <mi>&theta;</mi> <mo>,</mo> <msup> <mi>&theta;</mi> <mo>&prime;</mo> </msup> </mrow> </munder> <mfrac> <mn>1</mn> <mi>n</mi> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <mi>E</mi> <mrow> <mo>(</mo> <msup> <mi>x</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> </msup> <mo>,</mo> <msup> <mi>z</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> </msup> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

其中,n表示训练数据样本的个数,x(i)为自编码器的输入数据,z(i)为自编码器的输出数据,E为损失函数,采用如下公式(3)

<mrow> <mi>E</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>z</mi> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <msup> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>k</mi> </msub> <mo>-</mo> <msub> <mi>z</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>

式中,N为矢量的维度,k为维度下标。

根据本发明的一个实施例,还包括归一化数据生成模块,用以接收训练数据计算得到训练数据的均值和方差,将均值和方差作为归一化数据输至所述归一化预处理模块和反归一化后处理模块中。

根据本发明的一个实施例,还包括码本训练模块,用以接收预处理训练数据,通过LBG算法对预处理训练数据进行码本训练,生成所述码本,输出码本至所述矢量量化编码模块;所述预处理训练数据为训练数据经由归一化预处理模块归一化处理后的数据。

本发明还提供一种基于深度神经网络的矢量量化方法,包括以下步骤:

归一化预处理步骤,接收原始数据,并将原始数据通过归一化数据进行归一化处理,输出归一化后的预处理数据;

矢量量化步骤,接收所述预处理数据及预先用预处理训练数据训练好的码本,并通过码本对所述预处理数据进行矢量量化编码,输出编码数据;

神经网络反量化步骤,接收所述编码数据及预先训练好的深度神经网络,并通过深度神经网络对所述编码数据进行解码反量化,输出解码数据;

反归一化后处理步骤,接收所述解码数据,并通过所述归一化数据对所述解码数据进行反归一化处理,输出反归一化后的还原原始数据;及

神经网络训练步骤,通过所述预处理数据和编码数据,进行神经网络的训 练,得到所述深度神经网络。

根据本发明的一个实施例,所述神经网络训练步骤包括:

非监督学习初步训练步骤,将所述预处理训练数据输入神经网络的输入层,训练第1个自编码器,得到第1隐藏层及输入层到第1隐藏层的网络权重矩阵W1;重复M次将第i-1隐藏层的输出数据输入到第i隐藏层中,训练第i+1个自编码器,得到第i+1隐藏层及第i隐藏层到第i+1隐藏层的网络权重矩阵Wi,得到M个隐藏层,1<i<M;从而得到初始化深度神经网络;

监督学习优化训练步骤,将所述编码训练数据作为所述初始化深度神经网络的第M个隐藏层的输入,将所述预处理训练数据作为所述初始化深度神经网络的输入层的输出,通过后向传播算法进行迭代优化深度神经网络,得到所述深度神经网络。

根据本发明的一个实施例,各层自编码器的训练为如下公式(2),θ表示自编码器输入层到隐藏层的参数,θ′表示自编码器隐藏层到输出层的参数,参数包括网络权重矩阵和偏置向量;

<mrow> <mi>&theta;</mi> <mo>,</mo> <msup> <mi>&theta;</mi> <mo>&prime;</mo> </msup> <mo>=</mo> <munder> <mrow> <mi>arg</mi> <mi> </mi> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mrow> <mi>&theta;</mi> <mo>,</mo> <msup> <mi>&theta;</mi> <mo>&prime;</mo> </msup> </mrow> </munder> <mfrac> <mn>1</mn> <mi>n</mi> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <mi>E</mi> <mrow> <mo>(</mo> <msup> <mi>x</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> </msup> <mo>,</mo> <msup> <mi>z</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> </msup> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

其中,n表示训练数据样本的个数,x(i)为每层的输入数据,z(i)为每层的输出数据,E为损失函数,采用如下公式(3)

<mrow> <mi>E</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>z</mi> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <msup> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>k</mi> </msub> <mo>-</mo> <msub> <mi>z</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>

式中,N为矢量的维度,k为维度下标。

根据本发明的一个实施例,还包括归一化数据生成步骤,接收训练数据计算得到训练数据的均值和方差,将均值和方差作为归一化预处理步骤和反归一化后处理步骤所述归一化数据。

根据本发明的一个实施例,还包括码本训练步骤,接收预处理训练数据, 通过LBG算法对预处理训练数据进行码本训练,生成所述矢量量化步骤所需的码本;所述预处理训练数据为训练数据经由归一化预处理步骤归一化处理后的数据。

采用上述技术方案后,本发明相比现有技术具有以下有益效果:

1)矢量量化中融合了基于码本的矢量量化方式和基于深度神经网络的数据压缩方式。将深度神经网络的数据压缩方式融合到矢量量化方式中。深度神经网络能学习数据的非线性结构从而能对数据进行有效地降维,且其恢复后的数据误差小于经典的主成分分析算法。

2)采用编码后的数据作为深度神经网络的输入、原始未编码的数据作为输出,并采用两步训练法训练深度神经网络,训练得到的神经网络能从编码数据中解码或者恢复出原始的数据,能有效降低传统分裂矢量量化和多级矢量量化方法的量化误差。

附图说明

图1是本发明实施例的基于深度神经网络的矢量量化系统的结构框图;

图2是本发明实施例的深度神经网络的结构框图;

图3是本发明实施例的采用深度神经网络解码的结构框图;

图4是本发明实施例的码本及深度神经网络训练的流程示意图;

图5是本发明实施例的非监督学习初步训练的流程示意图;

图6是本发明实施例的监督学习优化训练的流程示意图;

图7是本发明实施例的LBG算法码本训练的示意图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对 本发明的具体实施方式做详细的说明。

在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施的限制。

参看图1,本实施例的基于深度神经网络的矢量量化系统,包括:归一化预处理模块101,矢量量化编码模块102,神经网络反量化模块103,反归一化后处理模块104和神经网络训练模块105。归一化预处理模块101和矢量量化编码模块102处于编码端,神经网络反量化模块103、反归一化后处理模块104和神经网络训练模块105处于解码端。

归一化预处理模块101的输入端接收原始数据,并将原始数据通过归一化数据进行归一化处理,输出归一化后的预处理数据。归一化数据是用来对输入的数据进行归一化处理的,可以预先计算好存储在归一化预处理模块101中,或者通过归一化预处理模块101的另一输入端输入。

矢量量化编码模块102用以接收预处理数据及预先用预处理训练数据训练好的码本,并通过码本对预处理数据进行矢量量化编码,输出编码数据。预处理训练数据是训练数据经归一化预处理模块101归一化处理后得到的数据,因而码本是由预处理训练数据训练生成。可选的,矢量量化编码模块102根据预处理数据在预先训练好的码本中查找失真度最小的码字,该码字的索引值即为编码数据。

神经网络反量化模块103接收矢量量化编码模块102输出的编码数据,还接收神经网络训练模块105输出的深度神经网络,并通过深度神经网络对编码数据进行解码反量化,输出解码数据。深度神经网络预先通过神经网络训练模块105训练好。

反归一化后处理模块104接收神经网络反量化模块103的解码数据,并通过归一化预处理模块101相同的归一化数据对解码数据进行反归一化处理,输 出反归一化后的还原原始数据。反归一化后处理模块104的处理是归一化预处理模块101的逆过程。

神经网络训练模块105通过预处理训练数据和矢量量化编码模块102对预处理训练数据进行矢量量化编码得到的编码训练数据,进行神经网络的训练,得到深度神经网络,输出深度神经网络至神经网络反量化模块103中。

神经网络训练模块105包括:非监督学习初步训练模块和监督学习优化训练模块。参看图4,非监督学习初步训练模块将预处理训练数据作为输入进行非监督学习初步训练,用于初始化生成深度神经网络的结构。监督学习优化训练模块将编码训练数据和预处理训练数据作为输入进行监督学习优化训练,用于优化非监督学习初步训练模块生成的深度神经网络。由于是根据编码训练数据和预处理训练数据进行神经网络训练的,因而矢量量化系统的量化误差可以较小,并且能够解决高维度信号矢量量化问题。

神经网络的训练分为初步训练和优化训练两步训练。初步训练使用编码后的数据进行非监督学习得到Stacked AutoEncoder(栈式自编码器),用于初始化神经网络反量化模块。优化训练使用编码后的数据和归一化后的数据进行监督学习,得到优化后的深度神经网络反量化模块。

非监督学习初步训练模块将预处理数据输入训练前深度神经网络的输入层,训练第1个自编码器(AutoEncoder),得到第1隐藏层及输入层到第1隐藏层的网络权重矩阵W1;重复M次将第i-1隐藏层的输出数据输入到第i隐藏层中,训练该第i+1(最大值为M-1,从而得到M个隐藏层)个自编码器,得到第i+1隐藏层及第i隐藏层到第i+1隐藏层的网络权重矩阵Wi,得到M个隐藏层,1<i<M;从而得到初始化深度神经网络。M大于等于3,i为自编码器的序号。

神经网络的每层采用AutoEncoder(自编码器)进行学习,以获得训练数据的内在非线性结构。AutoEncoder为对称结构,输入即为输出,例如,输入层到隐藏层的网络权重矩阵与隐藏层到输出层(转置之后输入层的对应层)的网 络权重矩阵互为转置。

在训练得到一个AutoEncoder之后,将该隐藏层的输出作为下一个AutoEncoder的输入,重复上述训练流程得到后续的AutoEncoder。这些串联起来的神经网络称为Stacked AutoEncoder(栈式自编码器),即为初步训练阶段得到的神经网络。该神经网络最顶层AutoEncoder的隐藏层称为编码层。

参看图2和图5,该训练为非监督学习过程,训练的数据为前述经过量化编码后的预处理训练数据。深度神经网络的结构如图3所示,神经网络包含1个输入层L0、4个隐藏层L1~L4。L0中的121个节点,对应为输入数据的维度。L1~L3为2048个节点,其取决于训练数据的多少,2048个对应100万条训练数据。L4为36个节点,对应为编码层,即矢量量化编码的比特数。训练流程如图5所示,神经网络的初始值为高斯随机分布,然后使用编码训练数据训练第一个AutoEncoder得到一个隐藏层L1及网络权重W1,由于AutoEncoder为对称结构,因而L1到L0的网络权重为W1T。再使用前一隐藏层的输出作为输入数据,逐层训练后续的AutoEncoder得到隐藏层L2~L4及网络权重矩阵W2~W4。该流程训练得到的神经网络用于初始化后续的神经网络反量化模块。

监督学习优化训练模块将编码训练数据作为初始化深度神经网络的第M个(最顶层的)隐藏层(编码层)的输入,将归一化预处理数据作为初始化深度神经网络的输入层(输出层)的输出,通过后向传播算法进行迭代优化深度神经网络,得到深度神经网络。

优化训练采用监督学习方法,神经网络的输入与初步训练的数据一致(即经码本编码后的编码训练数据),输出则为之前预处理得到的数据(即码本编码前的预处理训练数据)。从神经网络的输入输出可以看出,优化训练的目的是训练得到一个从编码后数据到编码前数据的解码器。因采用了深度神经网络的结构,所以该解码器称为采用深度神经网络的解码器。该神经网络的结构由初步训练得到神经网络生成,优化训练的神经网络的输入层(编码层)对应初 步训练的神经网络的最后一个隐藏层、输出层为初步训练的神经网络的输入层,即该结构为将Stacked AutoEncoder进行展开后的转置部分。

参看图3和图6,为神经网络反量化模块框图及训练流程图,该训练为监督学习过程,训练数据为前述经过量化编码后的编码训练数据以及编码前的预处理训练数据。神经网络反量化模块的结构如图3所示,神经网络包含一个编码层、若干隐藏层以及一个输出层。编码层的36个节点对应矢量量化的比特数、隐藏层的节点数量与初步训练的相应层一致、输出层的121个节点对应矢量量化数据的维度。该神经网络反量化模块训练的输入为前述经过量化编码后的数据,预期的输出为量化编码前的数据,减小整个系统的量化误差。训练流程如图6所示,初始化神经网络反量化模块(初始训练的隐藏层L4作为优化训练的编码层,隐藏层L3~L1依然作为隐藏层,输入层L0作为输出层),然后采用后向传播算法优化神经网络,经过迭代优化后,得到的最终的采用深度神经网络的解码器网络权重矩阵W1T+e~W4T+e。该流程训练得到的神经网络即为解码器,与训练得到的码本一起用于构成矢量量化器。

在一个实施例中,各层自编码器的训练为如下公式(2),θ表示自编码器输入层到隐藏层的参数,θ′表示自编码器隐藏层到输出层的参数,参数包括网络权重矩阵和偏置向量;

<mrow> <mi>&theta;</mi> <mo>,</mo> <msup> <mi>&theta;</mi> <mo>&prime;</mo> </msup> <mo>=</mo> <munder> <mrow> <mi>arg</mi> <mi> </mi> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mrow> <mi>&theta;</mi> <mo>,</mo> <msup> <mi>&theta;</mi> <mo>&prime;</mo> </msup> </mrow> </munder> <mfrac> <mn>1</mn> <mi>n</mi> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <mi>E</mi> <mrow> <mo>(</mo> <msup> <mi>x</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> </msup> <mo>,</mo> <msup> <mi>z</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> </msup> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

其中,n表示训练数据样本的个数,x(i)为每层的输入数据,z(i)为每层的输出数据,E为损失函数,采用如下公式(3)

<mrow> <mi>E</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>z</mi> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <msup> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>k</mi> </msub> <mo>-</mo> <msub> <mi>z</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>

式中,N为矢量的维度,k为维度下标。

优化训练采用传统的后向传播算法,其优化问题与公式(2、3)所描述类似, 在此不再赘述。

在一个实施例中,基于深度神经网络的矢量量化系统还包括归一化数据生成模块。参看图4,归一化数据生成模块接收训练数据计算得到训练数据的均值和方差,将均值和方差作为归一化数据输至归一化预处理模块和反归一化后处理模块中,分别用来给两个进行归一化处理和反归一化处理。

在一个实施例中,基于深度神经网络的矢量量化系统还包括码本训练模块。继续参看图4,码本训练模块接收训练数据经预处理后的预处理训练数据,通过LBG算法(由Linde,Buzo,Gray三人在1980年提出的,LBG算法通过训练矢量集和一定的迭代算法来逼近最优的再生码本)对预处理训练数据进行码本训练,生成码本,输出码本至矢量量化编码模块2,对训练数据进行编码,得到编码数据。预处理训练数据为训练数据经由归一化预处理模块归一化处理后的数据。

参看图7,码本训练模块可以使用LBG算法训练码本,LBG算法首先使用k-means算法(硬聚类算法,是典型的基于原型的目标函数聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则)进行聚类得到k11,然后分裂成两个码字k21、k22并使用k-means算法进行聚类得到k′21、k′22,再分裂成四个码字k41、k42、k43、k44并使用k-means算法进行聚类,如此迭代进行最终得到N个码字kN1~kNN,这N个码字即为训练得到的码本。

得到码本后再对之前预处理得到的预处理训练数据进行编码,该编码过程为码本搜索过程,即在码本中搜索失真度最小的码字。失真度d采用欧氏距离,如公式(1)所示

<mrow> <mi>d</mi> <mo>=</mo> <mo>|</mo> <mo>|</mo> <mi>X</mi> <mo>-</mo> <mover> <mi>X</mi> <mo>^</mo> </mover> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

式中X为输入矢量,为码字(矢量),得到的编码训练数据和之前预处理得到的预处理训练数据一起用于训练神经网络。

本发明还提供一种基于深度神经网络的矢量量化方法,包括以下步骤:

归一化预处理步骤,接收原始数据,并将原始数据通过归一化数据进行归一化处理,输出归一化后的预处理数据;

矢量量化步骤,接收所述预处理数据及预先用预处理训练数据训练好的码本,并通过码本对所述预处理数据进行矢量量化编码,输出编码数据;

神经网络反量化步骤,接收所述编码数据及预先训练好的深度神经网络,并通过深度神经网络对所述编码数据进行解码反量化,输出解码数据;

反归一化后处理步骤,接收所述解码数据,并通过所述归一化数据对所述解码数据进行反归一化处理,输出反归一化后的还原原始数据;及

神经网络训练步骤,通过所述预处理数据和编码数据,进行神经网络的训练,得到所述深度神经网络。

根据本发明的一个实施例,所述神经网络训练步骤包括:

非监督学习初步训练步骤,将所述预处理训练数据输入神经网络的输入层,训练第1个自编码器,得到第1隐藏层及输入层到第1隐藏层的网络权重矩阵W1;重复M次将第i-1隐藏层的输出数据输入到第i隐藏层中,训练第i+1个自编码器,得到第i+1隐藏层及第i隐藏层到第i+1隐藏层的网络权重矩阵Wi,得到M个隐藏层,1<i<M;从而得到初始化深度神经网络;

监督学习优化训练步骤,将所述编码训练数据作为所述初始化深度神经网络的第M个隐藏层的输入,将所述预处理训练数据作为所述初始化深度神经网络的输入层的输出,通过后向传播算法进行迭代优化深度神经网络,得到所述深度神经网络。

根据本发明的一个实施例,各层自编码器的训练为如下公式(2),θ表示自编码器输入层到隐藏层的参数,θ′表示自编码器隐藏层到输出层的参数,参数包括网络权重矩阵和偏置向量;

<mrow> <mi>&theta;</mi> <mo>,</mo> <msup> <mi>&theta;</mi> <mo>&prime;</mo> </msup> <mo>=</mo> <munder> <mrow> <mi>arg</mi> <mi> </mi> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mrow> <mi>&theta;</mi> <mo>,</mo> <msup> <mi>&theta;</mi> <mo>&prime;</mo> </msup> </mrow> </munder> <mfrac> <mn>1</mn> <mi>n</mi> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <mi>E</mi> <mrow> <mo>(</mo> <msup> <mi>x</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> </msup> <mo>,</mo> <msup> <mi>z</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> </msup> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

其中,n表示训练数据样本的个数,x(i)为每层的输入数据,z(i)为每层的 输出数据,E为损失函数,采用如下公式(3)

<mrow> <mi>E</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>z</mi> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <msup> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>k</mi> </msub> <mo>-</mo> <msub> <mi>z</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>

式中,N为矢量的维度,k为维度下标。

根据本发明的一个实施例,还包括归一化数据生成步骤,接收训练数据计算得到训练数据的均值和方差,将均值和方差作为归一化预处理步骤和反归一化后处理步骤所述归一化数据。

根据本发明的一个实施例,还包括码本训练步骤,接收预处理训练数据,通过LBG算法对预处理训练数据进行码本训练,生成所述矢量量化步骤所需的码本;所述预处理训练数据为训练数据经由归一化预处理步骤归一化处理后的数据。

本发明的基于深度神经网络的矢量量化方法的具体内容可以参看前述矢量量化系统中的具体实施方式描述,在此不再赘述。

本发明虽然以较佳实施例公开如上,但其并不是用来限定权利要求,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改,因此本发明的保护范围应当以本发明权利要求所界定的范围为准。

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