一种基于多重预训练的深层神经网络训练方法与流程

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

技术特征:

1.一种基于多重预训练的深层神经网络训练方法,其特征在于,包括以下步骤:

步骤1,随机选取神经网络的参数;

步骤2,用受限玻尔兹曼机对神经网络的参数进行逐层预训练;

步骤3,用去噪自编码器对神经网络的参数进行逐层预训练;

步骤4,用反向传播算法对神经网络的参数进行调整。

2.根据权利要求1所述的方法,其特征在于,步骤1中,随机选取神经网络输入层和第一隐层之间的权值矩阵W、输入变量偏置b和隐变量偏置c。

3.根据权利要求2所述的方法,其特征在于,步骤2包括如下步骤:

步骤2-1,输入权值矩阵W、输入变量偏置b和隐变量偏置c,随机选择M个训练样本,将这M个样本按行排列,形成一个M列的矩阵,记为x;

步骤2-2,计算sigm(Wx+b),sigm表示用西格玛函数逐一作用到向量Wx+b的每个元素上,西格玛函数的表达式为:

<mrow> <mi>s</mi> <mi>i</mi> <mi>g</mi> <mi>m</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mn>1</mn> <mo>+</mo> <msup> <mi>e</mi> <mrow> <mo>-</mo> <mi>x</mi> </mrow> </msup> </mrow> </mfrac> <mo>;</mo> </mrow>

步骤2-3,以sigm(Wx+b)中的每一个元素为二项分布取1的概率,对每一个二项分布进行采样,得到隐变量h;

步骤2-4,计算sigm(WTh+c);

步骤2-5,以sigm(WTh+c)中的每一个元素为二项分布取1的概率,对每一个二项分布进行采样,得到重构的可见变量x’;

步骤2-6,计算sigm(Wx’+b);

步骤2-7,将权值矩阵W更新为W+∈(hxT-sigm(Wx’+b)x′T),

将输入变量偏置b更新为b+∈(h-sigm(Wx’+b)),

将隐变量偏置c更新为c+∈(x-x′),∈为学习步长;

步骤2-8:重复步骤2-1~步骤2-7直到所有的样本都被选取过;

步骤2-9:重复步骤2-1~步骤2-8直到达到最大迭代次数,得到受限玻尔兹曼机预训练后的权值矩阵W、输入变量偏置b和隐变量偏置c。

4.根据权利要求3所述的方法,其特征在于,步骤3包括如下步骤:

步骤3-1,在步骤2得到的权值矩阵W、输入变量偏置b和隐变量偏置c的基础上,随机选择M个训练样本,将这M个样本按行排列,形成一个M列的矩阵,记为x;

步骤3-2,对于每个样本,随机选取20%的元素设置为0,得到污染后的样本,记为x’;

步骤3-3,计算h=sigm(Wx’+b);

步骤3-4,计算误差e=||x-sigm(WTh+c)||2

步骤3-5,将权值矩阵W更新为

将输入变量偏置b更新为

将隐变量偏置c更新为其中表示e关于参数θ的偏导数;

步骤3-6,重复步骤3-1~步骤3-5,直到所有的样本都被选取过;

步骤3-7,重复步骤3-1~步骤3-6直到达到最大迭代次数。

5.根据权利要求4所述的方法,其特征在于,步骤4包括如下步骤:

步骤4-1,在步骤3得到的各层权值矩阵W、输入变量偏置b和隐变量偏置c的基础上,随机选择M个训练样本,将这M个样本按行排列,形成一个M列的矩阵,记为x,根据神经网络的计算公式,逐层计算各层神经网络节点的取值;

步骤4-2,根据反向传播公式,计算输出误差关于各层神经网络参数的梯度;

步骤4-3,选取学习步长∈,根据步骤4-2求取的梯度,对各层神经网络的参数进行更新。

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