深度置信网络(Deep Belief Networks)DBN

DBN
一、算法的功能
深度置信网络(Deep Belief Networks)DBN算法是机器学习之神经网络的一种,既可以用于非监督学习,也可以用于监督学习。DBN是一个概率生成模型,与传统的判别模型的神经网络相对,生成模型是建立一个观察数据和标签之间的联合分布。通过训练其神经元间的权重,可以让整个神经网络按照最大概率来生成训练数据。
不仅可以使用DBN来识别特征、分类数据,还可以用它来生成数据。DBN算法是一种非常实用的学习算法,应用范围较广,扩展性也强,可应用于机器学习之手写字识别、语音识别和图像处理等领域。
二、算法结构及原理
1、DBN 由多层神经元构成,这些神经元又分为显性神经元和隐性神经元(以下简称显元和隐元)。显元用于接受输入,隐元用于提取特征。因此隐元也有个别名,叫特征检测器 (feature detectors)。最顶上的两层间的连接是无向的,组成联合内存 (associative memory)。较低的其他层之间有连接上下的有向连接。最底层代表了数据向量 (data vectors),每一个神经元代表数据向量的一维。
2、受限玻尔兹曼机( RBM)
(1)DBN 的组成元件是受限玻尔兹曼机 (Restricted Boltzmann Machines, RBM)。训练 DBN 的过程是一层一层地进行的。在每一层中,用数据向量来推断隐层,再把这一隐层当作下一层 (高一层) 的数据向量。
事实上,每一个 RBM 都可以单独用作聚类器。RBM 只有两层神经元,一层叫做显层 (visible layer),由显元 (visible units) 组成,用于输入训练数据。另一层叫做隐层 (Hidden layer),相应地,由隐元 (hidden units) 组成,用作特征检测器 (feature detectors)。
这里写图片描述
上图为受限玻尔兹曼机的结构。图中的较上一层神经元组成隐层,较下的神经元组成显元。每一层都可以用一个向量来表示,每一维表示每个神经元。注意这两层间的对称 (双向) 连接。

(2)训练 RBM
RBM 的训练过程,实际上是求出一个最能产生训练样本的概率分布。也就是说,要求一个分布,在这个分布里,训练样本的概率最大。由于这个分布的决定性因素在于权值W ,所以我们训练 RBM 的目标就是寻找最佳的权值。

3、DBN的训练

3.1 DBN 是由多层 RBM 组成的一个神经网络,它既可以被看作一个生成模型,也可以当作判别模型,其训练过程是:使用非监督贪婪逐层方法去预训练获得权值。

3.2 训练DBN的过程是一层一层地进行的。在每一层中,用数据向量来推断隐层,再把这一隐层当作下一层 (高一层)的数据向量。即将若干个RBM“串联”起来则构成了一个DBN,其中,上一个RBM的隐层即为下一个RBM的显层,上一个RBM的输出即为下一个RBM的输入。训练过程中,需要充分训练上一层的RBM后才能训练当前层的RBM,直至最后一层。

3.3 作为神经网络,神经元自然是其必不可少的组成部分。DBN由若干层神经元构成,组成元件是RBM受限玻尔兹曼机, DBN网络结构限制为两层:可视层和隐层,层与层之间存在连接,但层内的单元间不存在连接,隐层单元被训练去捕捉在可视层表现出来的高阶数据的相关性。具体DBN网络结构如下图所示。
这里写图片描述
3.4 DBN算法本质

从非监督学习来讲,其目的是尽可能地保留原始特征的特点,同时降低特征的维度。从监督学习来讲,其目的在于使得分类错误率尽可能地小。而不论是监督学习还是非监督学习,DBN算法本质都是Feature Learning的过程,即如何得到更好的特征表达。

3.5 DBN训练过程
(1)首先充分训练第一个 RBM;
(2)固定第一个 RBM 的权重和偏移量,然后使用其隐性神经元的状态,作为第二个 RBM 的输入向量;
(3)充分训练第二个 RBM 后,将第二个 RBM 堆叠在第一个 RBM 的上方;
(4)重复以上三个步骤任意多次;
(5)如果训练集中的数据有标签,那么在顶层的 RBM 训练时,这个 RBM 的显层中除了显性神经元,还需要有代表分类标签的神经元,一起进行训练:
这里写图片描述
对每一训练数据,相应的标签神经元被打开设为 1,而其他的则被关闭设为 0。
训练好的深度信念网络如上图所示。图中的绿色部分就是在最顶层 RBM 中参与训练的标签。

4、具体实现思路
层叠的多个RBM网络组成DBN结构来提取需要处理对象的特征,然后再用分类器进行分类。

  • 32
    点赞
  • 193
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值