深度学习基础--不同网络种类--双向深度网络(bi-directionaldeep networks, BDDN)

深度神经网络可以分为3类:

  1)前馈深度网络(feed-forwarddeep networks, FFDN)
  2)反馈深度网络(feed-back deep networks, FBDN)
  3)双向深度网络(bi-directionaldeep networks, BDDN)

双向深度网络(bi-directionaldeep networks, BDDN)

  结构上:双向网络的结构结合了编码器和解码器2类单层网络结构,通过叠加多个编码器层和解码器层构成(每层可能是单独的编码过程或解码过程,也可能既包含编码过程也包含解码过程)。
  训练上:双向网络的学习则结合了前馈网络和反馈网络的训练方法。
  通常包括单层网络的预训练和逐层反向迭代误差2个部分。其中单层网络的预训练是对输入信号编码和解码的重建过程,这与反馈网络训练方法类似;而基于反向迭代误差的权值微调与前馈网络训练方法类似。
  a)单层网络的预训练多采用贪心算法:每层使用输入信号IL与权值w计算生成信号IL+1传递到下一层,信号IL+1再与相同的权值w计算生成重构信号I’L 映射回输入层,通过不断缩小IL与I’L间的误差,训练每层网络。
  b)网络结构中各层网络结构都经过预训练之后,再通过反向迭代误差对整个网络结构进行权值微调。

不同的双向深度网络

1)深度玻尔兹曼机(deep Boltzmann machines, DBM)

  它由多层受限玻尔兹曼机(restricted Boltzmann machine, RBM )叠加构成。网络中所有节点间的连线都是双向的。
  a)玻尔兹曼机(Boltzmann machine, BM)是一种随机的递归神经网络。BM是基于能量的无向图概率模型。玻尔兹曼机由二值神经元构成,每个神经元只取0或1两种状态,状态1代表该神经元处于激活状态,0表示该神经元处于抑制状态。然而,即使使用模拟退火算法,这个网络的学习过程也十分慢。
  b)Hinton等提出的受限玻尔兹曼机去掉了玻尔兹曼机同层之间的连接,从而大大提高了学习效率。受限玻尔兹曼机分为可见层v以及隐层h,共两层,可见层和隐层的节点通过权值w相连接,2层节点之间是全连接,同层节点间互不相连。

BM的训练算法

  BM的典型训练算法有变分近似法、随机近似法(stochastic approximation procedure,SAP)、对比散度算法(contrastivedivergence,CD)、持续对比散度算法(persistent contrastive divergence,PCD)、快速持续对比散度算法(fastpersistent contrastive divergence,FPCD)和回火MCMC算法等。

RBM的原理

  RBMD的一层是可视层v(即输入层),一层是隐层h,每层内的节点之间设有连接。
  在已知v时,全部的隐藏节点之间都是条件独立的(因为这个模型是二部图),即p(h|v) = p(h1|v1) … p(hn|v)。
  同样的,在已知隐层h的情况下,可视节点又都是条件独立的,又因为全部的h和v满足玻尔兹曼分布,所以当输入v的时候,通过p(h|v)可得到隐层h,得到h之后,通过p(v|h)又可以重构可视层v。
  通过调整参数,使得从隐层计算得到的可视层与原来的可视层有相同的分布。这样的话,得到的隐层就是可视层的另外一种表达,即可视层的特征表示。

RBM的训练方法

  首先随机初始化可见层,然后在可见层与隐层之间交替进行吉布斯采样:用条件分布概率P(h|v)计算隐层;再根据隐层节点,同样用条件分布概率P(v|h)来计算可见层;重复这一采样过程直到可见层和隐层达到平稳分布。
  后来Hinton提出了一种快速算法,称作对比离差(contrastive divergence, CD)学习算法。这种算法使用训练数据初始化可见层,只需迭代k次上述采样过程(即每次迭代包括从可见层更新隐层,以及从隐层更新可见层),就可获得对模型的估计。

RBM的损失函数

  由于受限玻尔兹曼机是一种随机网络,而随机神经网络又是根植于统计力学的,所以受统计力学能量泛函的启发引入了能量函数。在随机神经网络中,能量函数是用来描述整个系统状态的测度。网络越有序或概率分布越集中,网络的能量就越小;反之,网络越无序或概率分布不集中,那么网络的能量就越大。所以当网络最稳定时,能量函数的值最小。

DBM训练分为2个阶段

  即预训练阶段和微调阶段。
  a)在预训练阶段,采用无监督的逐层贪心训练方法来训练网络每层的参数,即先训练网络的第1个隐含层,然后接着训练第2,3,…个隐含层,最后用这些训练好的网络参数值作为整体网络参数的初始值。
  b)预训练之后,将训练好的每层受限玻尔兹曼机叠加形成深度玻尔兹曼机,利用有监督的学习对网络进行训练(一般采用反向传播算法)。

2)深度信念网络(deep beliefnetworks, DBN)

DBM与DBN的区别

  对于RBM若增加隐层的层数,可得到深度玻尔兹曼机(DBM,Deep Boltzmann Machine)。
  若在靠近可视层v的部分使用贝叶斯信念网,远离可视层的部分使用RBM,那么就可以得到一个深度信念网络(DBNs,Deep Belief Nets)。

DBN的训练

  训练的过程中,所需要学习的即是联合概率分布。在机器学习领域中,其所表示的就是对象的生成模型。如果想要全局优化具有多隐层的深度信念网络是比较困难的。
  这个时候,可以运用贪婪算法,即逐层进行优化,每次只训练相邻两层的模型参数,通过逐层学习来获得全局的网络参数。这种训练方法(非监督逐层贪婪训练)已经被Hinton证明是有效的,并称其为相对收敛(contrastive divergence)。

DBN的结构及其变种

  采用二值可见单元和隐单元RBM作为结构单元的DBN,在MNIST等数据集上表现出很好的性能。
  近几年,具有连续值单元的RBM,如mcRBM、mPoT模型和spike—and-slab RBM等已经成功应用。
  Spike—and—slab RBM中spike表示以0为中心的离散概率分布,slab表示在连续域上的稠密均匀分布,可以用吉布斯采样对spike—and—slab RBM进行有效推断,得到优越的学习性能。

3)栈式自编码器(stacked auto-encoders, SAE)

SAE与DBN的区别

  堆栈自编码网络的结构与DBN类似,由若干结构单元堆栈组成,不同之处在于其结构单元为自编码模型(auto—en—coder)而不是RBM。自编码模型是一个两层的神经网络,第一层称为编码层,第二层称为解码层。
  当然,SAE的结构单元除了自编码模型之外,还可以使用自编码模型的一些变形,如降噪自编码模型和收缩自编码模型等。

4)MKMs

  受SVM算法中核函数的启发,在深度模型结构中加入核函数,构建一种基于核函数的深度学习模型。
  MKMs深度模型,如同深度信念网络(deep belief network,DBNs),反复迭代核PCA 来逼近高阶非线性函数,每一层核PCA 的输出作为下一层核PCA 的输入。作者模拟大型神经网络计算方法创建核函数族,并将其应用在训练多层深度学习模型中。

L层MKMs深度模型的训练过程

  a)、去除输入特征中无信息含量的特征;
  b)、重复L次:A、计算有非线性核产生特征的主成分;B、去除无信息含量的主成分特征;
  c)、采用Mahalanobis距离进行最近邻分类。

  在参数训练阶段,采用核主成分分析法(kernelprincipal component analysis,KPCA)进行逐层贪婪无监督学习,并提取第k层数据特征中的前nk 主成分,此时第k+1层便获得第k层的低维空间特征。
  为进一步降低每层特征的维数,采用有监督的训练机制进行二次筛选:首先,根据离散化特征点边缘直方图,估计它与类标签之间的互信息,将nk 主成分进行排序;其次,对于不同的k 和w 采用KNN 聚类方法,每次选取排序最靠前的w验证集上的特征并计算其错误率,最终选择错误率最低的w个特征。

  该模型由于特征选取阶段无法并行计算,导致交叉验证阶段需耗费大量时间。据此,提出了一种改进方法,通过在隐藏层采用有监督的核偏最小二乘法(kernel partial least squares,KPLS)来优化此问题。

5)DeSTIN

历史

  目前较成熟的深度学习模型大多建立在空间层次结构上,很少对时效性(temporal)有所体现。相关研究表明,人类大脑的运行模式是将感受到的模式与记忆存储的模式进行匹配,并对下一时刻的模式进行预测,反复进行上述步骤,这个过程包含了时空信息。因此在深度结构中将时效性考虑在内,会更接近人脑的工作模式。

理解

  DeSTIN 是一种基于贝叶斯推理理论、动态进行模式分类的深度学习架构,它是一种区分性的层次网络结构。
  在该深度模型中,数据间的时空相关性通过无监督方式来学习。
  网络的每一层的每个节点结构一致,且包含多个聚类中心,通过聚类和动态建模来模拟输入。每个节点通过贝叶斯信念推理输出该节点信念值,根据信念值提取整个DeSTIN网络的模式特征,最后一层网络输出特征可以输入分类器如SVM中进行模式分类。

  DeSTIN 模型的每一个节点都用来学习一个模式时序,底层节点通过对输入数据的时间与空间特征进行提取,改变其信念值,输入到下一层。由于每一个节点结构相同,训练时可采样并行计算,节约运算资源。
  该模型最重要的步骤就是信念值更新算法。信念值更新算法同时考虑了数据的时间与空间特征

现状

  目前将时效性考虑在内的深度学习架构虽然不是很成熟,但也逐渐应用在不同领域,也是深度学习模型未来发展的一个新方向。

猜你喜欢

转载自blog.csdn.net/wydbyxr/article/details/83859649