声明:
本文是阅读别人文章的基础上的自己理解。
文中有些部分直接以图片拷贝形式。
强烈建议读者读读参考文献【1】
一、受限玻尔兹曼机RBM
1、概念
受限玻尔兹曼机(Restricted Boltzmann Machine,简称RBM)一种生成式随机神经网络(generative stochastic neural network),该网络是一个二部图,一层是可视层,即输入数据层(v),一层是隐藏层(h),两层间为全连接,层内无连接(相互独立),每个节点只能取{0,1}两个值。如下图所示:
上图所示的RBM含有12个可见单元(构成一个向量v)和3个隐藏单元(构成一个向量h),W是一个12*3的矩阵,表示可见单元和隐藏单元之间的边的权重。
2.能量函数
2.1正则分布及能量
根据系统的物理性质,系统所处的状态具备一定的随机性,不同的状态会使系统具有不同的能量,假设处在状态i 的概率为P_{i},E_{i}表示系统具有的能量,统计力学的一个基本论断:系统与外界达到热平衡时,系统所处状态i的概率P_{i}为
(1) 其中:
T表示热平衡时的温度,为正数。这种概率分布的形式就叫做正则分布。
从形式上看,能量越小,概率越大;当T变大至无穷大时,各状态概率趋近于相等,退化为均匀分布。
2.2 RBM的能量函数
对于RBM,给定一对状态{v,h},则其能量函数为
(2)
则其(v,h)的概率联合分布为:
(3)
其中称为归一化因子,也
根据(3)可以得到边缘分布:
(4)
与(5)
2.3 对数似然函数
假定样本训练集合为,独立同分布。训练RBM的目标即为最大化如下似然函数:
(6)
连乘计算比较复杂,一般取对数似然函数,如下(注意是样本可视层v上的似然函数):
(7)
3.学习过程
3.1 学习方法
似然函数的最大化,容易想到的是使用梯度上升法,,关键问题是梯度的计算。
对W求梯度:
(8)
经过化解: (9)(具体过程见参考资料【1】)
后者等于
(10)
式子(9)中的前者比较好计算,只需要求vihj在全部数据集上的平均值即可,而后者涉及到v,h的全部2|v|+|h|种组合,计算量非常大(基本不可解)。
3.2 对比熵度算法CD
为解决(10)的计算问题,Hinton等人2002年提出了一种高效的学习算法-对比熵度算法CD(Contrastive Divergence),其基本思想如下图所示:
接着利用k步Gibbs采样后得到的近似(10)对应的期望项
即利用(11)来
近似(10)式
3.3 RBM训练算法
训练过程如下:(文献【1】)
4.总结(我的初步理解)
RBM方法由hinton提出,其无监督自学习特点使其成为一种主要的深度学习框架,而且CD方法的近似梯度大大减少了复杂度,可以高效地用于学习。
其基本假设为v,h层内是相互独立的。
二、DBM深度信念网Deep Belief Machine(转载)
三、经典的DBN网络结构
DBN 在训练模型的过程中主要分为两步:
第 1 步:分别单独无监督地训练每一层 RBM 网络,确保特征向量映射到不同特征空间时,都尽可能多地保留特征信息;
第 2 步:在 DBN 的最后一层设置 BP 网络,接收 RBM 的输出特征向量作为它的输入特征向量,有监督地训练实体关系分类器.而且每一层 RBM 网络只能确保自身层内的 权值对该层特征向量映射达到最优,并不是对整个 DBN 的特征向量映射达到最优,所以反向传播网络还将错误信息自顶向下传播至每一层 RBM,微调整个 DBN 网络.RBM 网络训练模型的过程可以看作对一个深层 BP 网络权值参数的初始化,使DBN 克服了 BP 网络因随机初始化权值参数而容易陷入局部最优和训练时间长的缺点.
上述训练模型中第一步在深度学习的术语叫做预训练,第二步叫做微调。最上面有监督学习的那一层,根据具体的应用领域可以换成任何分类器模型,而不必是BP网络。
关于贝叶斯网络“解去”(explaining away)
当我们建立多因一果的BN结构时,如果其中一个原因已经确定了结果的形成,那其他原因就应该忽略。
参考文献:
【1】皮果提 ,RBM系列博文:http://blog.csdn.net/itplus/article/details/19168937
【2】kemaswill,cnblog:http://www.cnblogs.com/kemaswill/p/3203605.html
【3】《深度学习学习笔记整理系列》 by Zouxy09.
【4】http://m.blog.csdn.net/blog/chlele0105/17251971