美文网首页
深度信念网络(DBN)

深度信念网络(DBN)

作者: 南宫萧言 | 来源:发表于2019-05-17 20:47 被阅读0次

    由于课题需要使用DBN,今天抽时间总结下其相关内容!!

    深度信念网络,DBN,Deep Belief Nets,神经网络的一种。既可以用于非监督学习,类似于一个自编码机;也可以用于监督学习,作为分类器来使用。

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

    作为神经网络,神经元自然是其必不可少的组成部分。DBN由若干层神经元构成,组成元件是受限玻尔兹曼机(RBM)

    先了解下RBM:

    RBM 只有两层神经元,一层叫做显层 (visible layer),由显元 (visible units) 组成,用于输入训练数据。另一层叫做隐层 (Hidden layer),相应地,由隐元 (hidden units)组成,用作特征检测器 (feature detectors)。

    RBM基本结构

    每一层都可以用一个向量来表示,每一维表示每个神经元。注意这两层间的对称 (双向) 连接。 神经元之间是相互独立的,这样的好处是,在给定所有显元的值的情况下,每一个隐元取什么值是互不相关的。

    隐层的概率 显层的概率

    由于每个神经元是独立的,所以同时并行地计算整层神经元,不必每次计算每一个神经元。

    使用RBM:(假设我们已经得到了训练好的RBM,每个隐元与显元间的权重用矩阵W表示)

    权重矩阵

    其中Wij代表从第i个显元到第j个隐元的权重,M代表显元的个数,N代表隐元的个数。

    当来一个新样本X=(x_{1}, x_{2},...,x_{n})时,每个隐元的取值为P(h_{i} =1)=\frac{1}{1+e^-Wx} 。表示隐元处于开启状态的概率(当激活函数为线性函数时相当于PCA降维)。那么到底这个元开启还是关闭,我们需要将开启的概率与一个从 0, 1 均匀分布中抽取的随机值进行比较。

    给定隐层,计算显层的方法是一样的。

    训练RBM

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

    对比散度

    如此训练之后的 RBM 就能较为准确地提取显层的特征,或者根据隐层所代表的特征还原显层了。

    深度信念网络(DBN)

    将若干个RBM“串联”起来则构成了一个DBN,其中,上一个RBM的隐层即为下一个RBM的显层,上一个RBM的输出即为下一个RBM的输入。训练过程中,需要充分训练上一层的RBM后才能训练当前层的RBM,直至最后一层。

    若想将DBM改为监督学习,方式有很多,比如在每个RBM中加上表示类别的神经元,在最后一层加上softmax分类器。也可以将DBM训出的W看作是NN的pre-train,即在此基础上通过BP算法进行fine-tune。实际上,前向的算法即为原始的DBN算法,后项的更新算法则为BP算法,这里,BP算法可以是最原始的BP算法,也可以是自己设计的BP算法。例如下图使用DBN作为判别模型:

    在最后的一层RBM的显层加入表示类别的神经元,一起参与训练。

    DBN调优的过程是一个生成模型的过程:

    1.除了顶层 RBM,其他层 RBM 的权重被分成向上的认知权重和向下的生成权重;

    2.Wake 阶段:认知过程,通过外界的特征和向上的权重 (认知权重) 产生每一层的抽象表示 (结点状态) ,并且使用梯度下降修改层间的下行权重 (生成权重) 。

    3. Sleep 阶段:生成过程,通过顶层表示 (醒时学得的概念) 和向下权重,生成底层的状态,同时修改层间向上的权重。

    使用随机隐性神经元状态值,在顶层 RBM 中进行足够多次的吉布斯抽样; 向下传播,得到每层的状态。

    Gibbs采样:Gibss采用是需要知道样本中一个属性在其它所有属性下的条件概率,然后利用这个条件概率来分布产生各个属性的样本值。

    附一个关于DBN的案例

    相关文章

      网友评论

          本文标题:深度信念网络(DBN)

          本文链接:https://www.haomeiwen.com/subject/nncaaqtx.html