深度置信(信念)网络DBN(Deep Belief Network)
本文对463个数据进行预测,通过遗传算法进行优化深度置信网络,并取得较高的准确率
本文优化深度置信网络主要应用到的知识有,受限玻尔兹曼机、Gibbs采样、遗传算法优化(当然可采用其他优化算法)、DBM运作机理。由于未学过tensorflow,因才在代码的编写上,采用最基础的编译方式。
1.简介
DBNs是一个概率生成模型,与传统的判别模型的神经网络相对,生成模型是建立一个观察数据和标签之间的联合分布,对P(Observation∣Label)P(Observation|Label)P(Observation∣Label)和 P(Label∣Observation)P(Label|Observation)P(Label∣Observation)都做了评估,而判别模型仅仅而已评估了后者,也就是P(Label∣Observation)P(Label|Observation)P(Label∣Observation)。
DBNs由多个限制玻尔兹曼机RBM(Restricted Boltzmann Machines)层组成,一个典型的神经网络类型如图所示。这些网络被*“限制”*为一个可视层和一个隐层,层间存在连接,但层内的单元间不存在连接。隐层单元被训练去捕捉在可视层表现出来的高阶数据的相关性。
2.限制玻尔兹曼机(RBM)
2.1基本构造
RBM是一种神经感知器,由一个显层和一个隐层构成,显层与隐层的神经元之间为双向全连接。如下图所示:
[外链图片转存失败(img-9xMm1zlO-1562146631132)(C:\Users\hp\Desktop\限制玻尔兹曼机.jpg)]
在RBM中,任意两个相连的神经元之间有一个权值www表示其连接强度,每个神经元自身有一个偏置系数bbb(对显层神经元)和ccc(对隐层神经元)来表示其自身权重。
这样,就可以用下面函数表示一个RBM的能量:
E(v,h)=−Σi=1Nvbivi−Σj=1Nhcjhj−Σi,j=1Nv,NWijvihj E(v, h)=-\Sigma_{i=1}^{N_{v}} b_{i} v_{i}-\Sigma_{j=1}^{N_{h}} c_{j} h_{j}-\Sigma_{i, j=1}^{N_{v, N}} W_{i j} v_{i} h_{j} E(v,h)=−Σi=1Nvbivi−Σj=1Nhcjhj−Σi,j=1Nv,NWijvihj
在RBM中hjh_{j}hj有两种状态0或者1,隐藏层被激活的概率为:
P(hj∣v)=σ(bj+ΣiWi,jvi) P\left(h_{j} | v\right)=\sigma\left(b_{j}+\Sigma_{i} W_{i, j} v_{i}\right) P(hj∣v)=σ(bj+ΣiWi,jvi)
由于显层与隐层相连接,显层神经元同样能被隐层神经元激活:
P(vi∣h)=σ(ci+ΣjWi,jhj) P\left(v_{i} | h\right)=\sigma\left(c_{i}+\Sigma_{j} W_{i, j} h_{j}\right) P(vi∣h)=σ(ci+ΣjWi,jhj)
其中σ\sigmaσ为sigmoid函数,也可以是其他的函数
限制玻尔兹曼机的同一层神经元之间是独立的,所以概率密度满足独立性,故得下式:
P(h∣v)=Πj−1NhP(hj∣v)P(v∣h)=Πi−1NvP(vi∣h) \begin{array}{l}{P(h | v)=\Pi_{j-1}^{N_{h}} P\left(h_{j} | v\right)} \\ {P(v | h)=\Pi_{i-1}^{N_{v}} P\left(v_{i} | h\right)}\end{array} P(h∣v)=Πj−1NhP(hj∣v)P(v∣h)=Πi−1NvP(vi∣h)
2.2 工作原理
当我们输入到模型中样本时,数据首先被赋给显层,模型经过计算显层神经元被激活的概率,同样可以计算出隐层神经元被开启的概率P(hj∣x),j=1,2,…,NhP\left(h_{j} | x\right), j=1,2, \dots, N_{h}P(h