aihot  2017-10-14 10:54:18  深度学习 |   查看评论   

  然后是DBN,DBN也即深度信念网络,深度信念网络可使用多个RBM堆叠而成,并可使用梯度下降法和反向传播算法(BP)进行调优(使用BP对整个DBN微调,对RBM的无监督预训练独立用CD算法)。

  具体的说,在讲自动编码器的时候,我们举了一个逐层贪婪预训练方法的例子,这种无监督逐层预训练是一种通用技术,也就是说,不仅前面的自编码器可以逐层预训练,RBM堆叠起来的DBN也可以进行无监督的逐层预训练,方法与自编码器的训练过程类似,主要分为如下两步:

  第一步:分别单独无监督的训练每一层RBM网络,确保特征向量映射到不同特征空间时,都尽可能多地保留特征信息。

  举个例子,隐含层RBM H可以看做是RBM H+1的可见层。第一个RBM的输入层即是整个网络的输入层,逐层贪婪预训练的工作模式如下:

  • 通过CD算法对所用训练样本训练第一个RBM
  • 将第一个RBM的隐含层作为第二个RBM的输入层数据进行训练,同样采用CD算法
  • 对所有层重复上面的过程
  • 和栈式自编码器一样,通过预训练后,网络堆叠一个或多个层间全连接的RBM隐含层进行扩展,这构成了一个可以通过反向传播进行微调的多层感知机。

  第二步:在DBN的最后一层设置BP网络,接受RBM的输出特征向量作为它的输入特征向量,有监督地训练实体关系分类器。每一层RBM网络只能确保自身层内权值对该层特征向量映射达到最优,并不是对整个DBN的特征向量映射达到最优,所以反向传播网络还将错误信息自顶向下传播至每一层RBM,微调整个DBN网络。

  每次训练都使当前RBM隐层激活概率无限接近于可见层,实际上,这样的贪婪过程达到了近似的最大似然学习,而且这个学习过程不需要标签信息,用的是可见层输入作为调整依据,所以是无监督的。

  RBM网络训练模型的过程可以看做对一个深层BP网络权值参数的初始化,使DBN克服BP网络因随机初始化权值参数而容易陷入局部最优和训练时间过长的问题点。

  上述训练DBN的过程,第一步叫做预训练,第二步叫做微调。最上面有监督学习的那一层,根据具体的应用可以换成任何分类器模型,不必是BP网络。

  这个过程和栈式自编码器很相似,只是用RBM将自编码器进行替换,用CD算法训练RBM替代BP算法训练自编码器。

  这里再提一下反向传播算法。

  反向传播(英语:Backpropagation,缩写为BP)是“误差反向传播”的简称,是一种与最优化方法(如梯度下降法)结合使用的,用来训练人工神经网络的常见方法。

  BP算法主要分为两个阶段:

  第一个阶段是激励传播:每次迭代中的传播环节也分为两步:1.(前向传播阶段)将训练送入网络以获得激励响应。2.(反向传播阶段)将激励响应与训练输入对应的目标输出求差,从而获得隐层和输出层的响应误差。

  第二个阶段是权重更新:对于每个突触上的权重,更新步骤也有两步(参见上篇文章当中对梯度下降算法的讲述):1.得到对应的梯度。2.用当前权重减去梯度。

三层网络BP算法示例

三层网络BP算法示例

  BP算法实际上就是应用在多层网络中的梯度下降算法,原理与梯度下降算法相同,但区别在于BP算法需要求不同层连接所对应的梯度,而不是像普通的梯度下降算法那样,只需处理一层的问题。

  利用BP算法计算输出层连接的梯度时,过程与普通梯度下降算法相同;但如果j是网络中任一内层神经元,求损失函数E对于相应连接权重wijij下一层的神经元,wij即两者之间连接的权重)的偏导数就不太容易了,需要先求对oj的偏导。

  考虑E为接受来自神经元j输入的所有神经元L = u,v,...,w输入的函数:

浅谈深度学习基础

 

 

除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自浅谈深度学习基础(上)

留言与评论(共有 0 条评论)
   
验证码:
[lianlun]1[/lianlun]