浅谈深度信念网络(Deep Belief Network)

浅谈深度信念网络(Deep Belief Network)

一、受限玻尔兹曼机(Restricted Boltzmann Machines )

在这里插入图片描述

  • RBM简介
    如图所示,一个受限玻尔兹曼机由两层网络组成,分别为可见层(Visible layer)和隐藏层(Hidden layer)。其中,输入特征与可见层关联,特征检测器与隐藏层关联。两层之间为全连接,而层内无连接。
    考虑一个二维向量的训练集,出于目的的考虑,我们假设它是二维图片。训练集能被用到只有两层神经网络的受限玻尔兹曼机模型(Smolensky, 1986; Freund and Haussler, 1992; Hinton, 2002),在模型中,二维像素是随机的,二维特征检测器则对称加权连接。像素对应受限玻尔兹曼机的可见节点,因为它是可以被观测到的;特征检测器对应隐藏节点。
    定义可见单元(v)和隐藏单元(h)的一个联合能量为:
    E ( v , h ) = − ∑ i ∈ v i s i b l e a i v i − ∑ j ∈ h i d d e n b j h j − ∑ i , j v i h j w i j E(v,h)=-\sum_{i\in visible}a_iv_i-\sum_{j\in hidden}b_jh_j-\sum_{i,j}v_ih_jw_{ij} E(v,h)=ivisibleaivijhiddenbjhji,jvihjwij
    其中, v i , h j v_i,h_j vi,hj是可见单元 i i i和隐藏单元 j j j的两种状态(0或1), a i , b j a_i,b_j ai,bj是他们的偏差, w i , j w_{i,j} wi,j是他们之间的权重值。
    通过能量函数,网络给每一个可能的可见和隐藏的向量对分配一个概率:
    p ( v , h ) = 1 Z e − E ( v , h ) p(v,h)={1\over Z}e^{-E(v,h)} p(v,h)=Z1eE(v,h)
    其中 Z Z Z是所有可能可见和隐藏向量对的求和:
    Z = ∑ v , h e − E ( v , h ) Z=\sum_{v,h}e^{-E(v,h)} Z=v,heE(v,h)
    网络分配给可见向量的概率通过将所有可能的隐藏向量相加求得:
    p ( v ) = 1 Z ∑ h e − E ( v , h ) p(v)={1\over Z}\sum_he^{-E(v,h)} p(v)=Z1heE(v,h)
    可以通过调整权重和偏置来降低训练图像的能量并提高其他图像的能量(尤其是具有低能量,对分式贡献很大的图像),以此来提高网络分配给训练图像的概率。
    训练向量的对数概率对于权重的偏导数相当简单:
    ∂ l o g p ( v ) ∂ w i , j = &lt; v i h j &gt; d a t a − &lt; v i h j &gt; m o d e l {\partial logp(v)\over\partial w_{i,j}}=&lt;v_ih_j&gt;_{data}-&lt;v_ih_j&gt;_{model} wi,jlogp(v)=<vihj>data<vihj>model
    其中,<>表示下标对应的分布的期望,在训练数据的概率分布中,它为形成训练数据的对数概率的随机陡峭的上升曲线提提供了一个简单的学习规则(对比散度):
    Δ w i j = ϵ ( &lt; v i h j &gt; d a t a − &lt; v i h j &gt; m o d e l ) \Delta w_{ij}=\epsilon(&lt;v_ih_j&gt;_{data}-&lt;v_ih_j&gt;_{model}) Δwij=ϵ(<vihj>data<vihj>model)
    其中ϵ是学习率。
    在受限玻尔兹曼机的隐藏层之间的节点是没有连接的,所以得到一个没有偏差的分布 ⟨ v i h j ⟩ d a t a ⟨v_ih_j⟩_{data} vihjdata便异常容易。给定一张随机选择的训练图片 v v v,隐藏节点 j j j,二维状态 h j = 1 h_j=1 hj=1的概率为:
    p ( h j = 1 ∣ v ) = σ ( b j + ∑ i v i w i j ) p(h_j=1|v)=\sigma(b_j+\sum_iv_iw_{ij}) p(hj=1v)=σ(bj+iviwij)
    σ ( x ) \sigma(x) σ(x)是sigmoid函数, v i h j v_ih_j vihj是无偏样本。
    在可见层的节点之间也没有连接,因而在可见节点中很容易得到没有偏差的概率分布,给定隐藏向量,有
    p ( v i = 1 ∣ h ) = σ ( a i + ∑ j h j w i j ) p(v_i=1|h)=\sigma(a_i+\sum_jh_jw_{ij}) p(vi=1h)=σ(ai+jhjwij)
  • RBM训练过程
    重复以下三步:
    1.前向传播
    在这里插入图片描述
    输入图像被转化为二进制的值,然后喂入网络,值被权重相乘,加上偏置,然后结果输入激励函数(例如sigmoid函数),代表了是否激活某个独立隐藏单元的概率,然后,从该概率分布中抽取样本,并找出哪些神经元可能会或者可能不会激活。 这意味着,它会做出是否传输隐藏数据的随机决策。
    前向传播将输入转化成一组在隐藏中表示的二进制数。
    2.反向传播
    在这里插入图片描述
    隐藏层的激活神经元将结果反向传递给可见层,在可见层中,输入将被重构。在此过程中,数据在反向传播经过和正向传播相同的权重和偏置。所以,当信息到达可见层,在给定隐藏的情况下构成了输入值的概率分布。对该分布采样,输入就被重构了。
    反向传播就是猜测原始输入的概率分布。
    3.性能评估
    在这里插入图片描述
    步骤3通过比较重构结果和原始数据来对重构性能进行评估。RBM计算误差并调整权重和偏置去最小化误差。在每一个周期(一个正向传播和反向传播),计算步骤1和步骤2的均方误差和作为误差。
    这三步一直重复直到误差足够的小。
  • 使用RBM的优点
    1.RBMs擅长处理无标签数据。
    2.RBMs可以从输入提取重要特征。
    3.RBMs在降维方面比PCA更有效。
    4.注意RBM是一种AUTOENCODER

二、深度信念网络(Deep Belief Networks )

在这里插入图片描述
深度信念网络(DBN)由多个DBM以及一个BP组成。
DBN 在训练模型的过程中主要分为两步:

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

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

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

【注】:参考Geoffrey Hinton A Practical Guide to Training Restricted Boltzmann Machines
               IBM Deep Learning with Tensorflow on edX

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页