深度信念网络

来源:互联网 发布:淘宝网络客服招聘兼职 编辑:程序博客网 时间:2024/05/20 17:41
一般传统神经网络(BP,FNN网络等)缺点:a.其隐含层一般不超过2层,一旦神经元数目增多,因为使用的是全连接且权值不共享,这样就导致了模型参数急剧增加,采用随机梯度下降法可能不容易找到最优解;随着层数增多或者初始化权值很小,可能陷入局部最优。b.这里说下生成模型和判别模型。Generative Modeling(**生成模型**)和Discriminative Modeling(判别模型)两种,后面简称GM和DM。GM是由训练数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型:![这里写图片描述](http://img.blog.csdn.net/20171129110359866?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjc0NjYwNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)之所以叫生成模型,是因为模型表示了给定输入X产生输出Y的生成关系[1]。典型的生成模型有:朴素贝叶斯和隐马尔科夫模型。判别模型是由训练数据直接学习决策函数f(X)或者条件概率分布P(X,Y)作为预测的模型,模型关心的是对给定的输入X,应该预测什么样的输出Y,与GM的不同在于不需要先学习出联合分布P(X,Y)。典型的判别模型有:k近邻法、感知机、决策树、逻辑回归、最大熵、SVM、AdaBoost和条件随机场等。传统判别模型中,需要大量的训练样本。但是现实应用中,(除了图片声音等)获取样本数据并不是意见容易的事情。深度学习的出现使得上面两个问题得到了有效的解决。

1.玻尔兹曼机RBM
简单来说RBM分为2层:可视层V和隐藏层H。层内节点间无连接,层间节点全连接。
这里写图片描述
RBM的用途主要是两种,一是对数据进行编码,然后交给监督学习方法去进行分类或回归,二是得到了权重矩阵和偏移量,供BP神经网络初始化训练。

2.深度信念网络DBN

    深度信念网络是一个概率生成模型,与传统的判别模型的神经网络相对,生成模型是建立一个观察数据和标签之间的联合分布,对P(Observation|Label)和 P(Label|Observation)都做了评估,而判别模型仅仅而已评估了后者,也就是P(Label|Observation),是个条件分布。    DBNs由多个限制玻尔兹曼机层组成,一个典型的网络结构如图1所示。这些网络被“限制”为一个可视层和一个隐层,层间存在连接,但层内的单元间不存在连接。隐层单元被训练去捕捉在可视层表现出来的高阶数据的相关性。    ![这里写图片描述](http://img.blog.csdn.net/20171129110859119?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjc0NjYwNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)    经典的DBN网络结构是由若干层 RBM 和一层 BP 组成的一种深层神经网络:    ![这里写图片描述](http://img.blog.csdn.net/20171129111501320?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjc0NjYwNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)    DBN 在训练模型的过程中主要分为两步:

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

  第 2 步:在 DBN 的最后一层设置 BP 网络,接收 RBM 的输出特征向量作为它的输入特征向量,有监督地训练实体关系分类器.而且每一层 RBM 网络只能确保自身层内的 权值对该层特征向量映射达到最优,并不是对整个 DBN 的特征向量映射达到最优,所以反向传播网络还将错误信息自顶向下传播至每一层 RBM,微调整个 DBN 网络.RBM 网络训练模型的过程可以看作对一个深层 BP 网络权值参数的初始化,使DBN 克服了 BP 网络因随机初始化权值参数而容易陷入局部最优和训练时间长的缺点.

  上述训练模型中第一步叫做预训练,第二步叫做微调。最上面有监督学习的那一层,根据具体的应用领域可以换成任何分类器模型,而不必是BP网络。
  
  在举个例子:
  这里写图片描述
  上图是一个三隐藏层的DBN,先用堆叠RBM的方式进行无监督学习,最上层的2000个神经元学习到数字的特征,这就是一个生成模型。然后我们根据这2000个学习到的特征在DBN顶层加上一层Softmax分类器,采用BP算法来微调使损失函数最小。简单来说深度网络就是特征提取,只不过以前这一步都是人工设计,有些潜在特征可能通过人工设计发现不了,个人觉得,深度学习的目的也在于此。

原创粉丝点击