1.RBM结构
RBM包括隐层、可见层和偏置层。
与前馈神经网络不一样,RBM在可见层和隐层间的链接方向不定的(即可以双向传播:隐层—>可见层和可见层—>隐层)和完全链接的。如下图表示了一个微型的RBM
如上图所示,每一层的节点之间没有链接,第一层是可见层,及输入层(v)第二层是隐藏层(h),如果假设所有节点都是随机二进制变量节点(只能取0或1值),同时假设全概率分布p(v,h)满足Boltzmann分布,这个模型就叫RBM。
2.数学知识:
2.1全概率公式:
2.2 贝叶斯公式:
2.3 全概率公式结合贝叶斯公式:
有了先验数学知识就容易了,假设RBM网络结构有n个节点和m个隐藏节点,其中每个可视节点只和相应的隐藏节点有关系,其他可视节点是对立的,互补干扰的,就是这个可视节点只受m个隐藏节点的影响,对于每个隐藏节点也是,这个特点使得RBM的训练变得容易了。
RBM网络有几个参数,一个是可视层与隐藏层之间的权重矩阵Wm x n,一个是可视节点的偏移量b=(b1,b2,…,bn),一个是隐藏节点的偏置值(c1,c2,…,cm),这几个参数决定了RBM网络将一个n维的样本编码成一个什么样的m维样本。
因此,当输入v的时候,通过p(h|v) 可以得到隐藏层h,而得到隐藏层h之后,通过p(v|h)又能得到可视层,通过调整参数,我们就是要使得从隐藏层得到的可视层v1与原来的可视层v如果一样,那么得到的隐藏层就是可视层另外一种表达,因此隐藏层可以作为可视层输入数据的特征,所以它就是一种Deep Learning方法。
3、DBN训练方法:
DBN 是由多层 RBM 组成的一个神经网络,它既可以被看作一个生成模型,也可以当作判别模型,其训练过程是:使用非监督贪婪逐层方法去预训练获得权值。
训练DBN的过程是一层一层地进行的。其中,上一个RBM的隐层即为下一个RBM的显层,上一个RBM的输出即为下一个RBM的输入。训练过程中,需要充分训练上一层的RBM后才能训练当前层的RBM,直至最后一层。
第 1 步:(预训练)
分别单独无监督地训练每一层 RBM 网络,确保特征向量映射到不同特征空间时,都尽可能多地保留特征信息;(H0可以看作H1的可见层)‘’
第 2 步:(微调)
在 DBN 的最后一层设置 BP 网络,接收 RBM 的输出特征向量作为它的输入特征向量,有监督地训练实体关系分类器.
每一层 RBM 网络只能确保自身层内的权值对该层特征向量映射达到最优,并不是对整个 DBN 的特征向量映射达到最优,所以反向传播网络还将错误信息自顶向下传播至每一层 RBM,微调整个 DBN 网络.
RBM 网络训练模型的过程可以看作对一个深层 BP 网络权值参数的初始化,使DBN 克服了 BP 网络因随机初始化权值参数而容易陷入局部最优和训练时间长的缺点.这可以很直观的解释,DBNs的BP算法只需要对权值参数空间进行一个局部的搜索,这相比前向神经网络来说,训练是要快的,而且收敛的时间也少。
4.总结:
深度置信网络(Deep Belief Networks)DBN算法是机器学习之神经网络的一种,既可以用于非监督学习,也可以用于监督学习。DBN是一个概率生成模型,与传统的判别模型的神经网络相对,生成模型是建立一个观察数据和标签之间的联合分布。通过训练其神经元间的权重,可以让整个神经网络按照最大概率来生成训练数据。