深度信念网络(DBN)

深度置信网络是一个概率生成模型,由多个限制玻尔兹曼机(restricted BotlzmannmachineRBM)组成的多隐含层神经网络,通过RBM的逐层堆叠,DBN模型可从原始数据中逐层提取特征,获得一些高层次表达。其核心就是用逐层贪婪学习算法去优化深度神经网络的连接权重,即首先使用无监督逐层训练的方式,有效挖掘待诊断设备中的故障特征,然后在增加相应分类器的基础上,通过反向的有监督微调,优化 DBN 的故障诊断能力。其中无监督逐层训练通过直接把数据从输入映射到输出,能够学习一些非线性复杂函数,这也是其具备强大特征提取能力的关键所在。

1.受限波曼兹机(RBM)

rbm结构图如下所示


一个简单的rbm由可见层和隐藏层构成,可见层节点有m个{v1,v2,...,vm},隐藏层节点有n个{h1,h2,...,hn},图中{b1,b2,...,bm}和{c1,c2,...,cn}为各节点的偏移量,w为节点间的权重值。

rbm是一个随机网络,描述一个随机网络主要有以下2点:

1.概率分布函数:联合概率密度、条件概率密度和边缘概率密度。

2.能量函数:随机神经网络的基础是统计力学,能量函数是描述整个状态的一种测度。系统越有序或者概率分布越集中,系统能量越小,反之,越无序并且概率分布越发散,则系统能量越小。

因为rbm网络是一种无监督学习的方法,无监督学习最大的目的是最大可能的你和输入数据,即使输入与输出数据尽可能的相近,又因为统计力学表明,任何概率分布都可以转成基于能量的模型,因而使用能量函数模型学习一个数据的分布会变得容易可行了。

rbm可见层和隐含层之间的能量函数为


其中i为可见层节点数,j为隐含层节点数。

由能量函数可以得出可见层和隐含层之间的联合概率密度为


通过联合概率密度可以得到可见层的独立分布为


此时得到一个含参数θ={wbc}的特殊Gibbs分布,根据联合概率,可以得出条件概率为


由于同层之间神经元没有联系,相互独立,当给定可见层神经元状态时,隐藏层上某个神经元没激活的概率为


同理可得


其中sig为sigmoid函数sig(x)=1/(1+e-x)。

RBM的训练目标是让Gibbs 分布最大可能的拟合输入数据,即让RBM网络表示的 Gibbs分布与输入样本的分布尽可能的接近,可用样本分布和RBM网络的边缘分布的KL距离表示二者之间的差异性,KL距离为


其中Ω为样本空间,q为输入样本的分布,q(x)表示训练样本的概率,p为RBM网络表示的Gibbs分布的v的边缘分布。

当输入样本为一个固定值,所以要使KL最小,只需调节θ参数值可使得p(v)最大,以拟合训练数据,可以通过对上式(8)求解极大对数似然函数可得到参数θ,这就是为什么rbm可以转化成极大似然函数来求解。Hinton教授提出了一种有效解决求极大似然函数中的Gibbs抽样问题——对比散度(CD-K),只需较少抽样步数就可对参数进行更新(一般一步就可以达到较好的结果)。

rbm基于CD-k的学习算法主要步骤如下


rbm训练伪代码如下


2.深度信念网络(DBN)

深度信念网络(DBN)是一个由多个RBM堆叠而成的网络,结构如下所示


因为深层网络很容易陷入局部最优,初始参数的选择对网络最终收敛在哪个位置有很大影响,所以DBN训练分为预训练和微调两个阶段。RBM对深层网络做逐层无监督训练,将各单层训练得到的参数作为深层网络各层神经元的初始参数,该参数是深层网络参数空间的一个较好的位置,即为预训练。RBM逐层训练处深层网络参数初始值后,在用传统的BP算法对深层网络进行训练,如此,深层网络的参数最终收敛在一个好的位置,即为微调。

预训练时,采用逐层无监督学习方法学习参数,首先把数据向量x和第一层隐藏层作为一个RBM,训练出这个RBM参数,然后固定这个RBM参数,把h1作为可见层向量,把h2作为隐藏层向量,训练第二个RBM,以此类推。

以上就是本人对深度信念网络学习的一点小小理解,如有不足支出还望指出,一同进步。


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