https://nndl.github.io/ 《神经网络与深度学习》 深度信念网络 https://nndl.github.io/
玻尔兹曼机
玻尔兹曼机(Boltzmann machine) 玻尔兹曼机是一个特殊的概 率无向图模型。 每个随机变量是二值的 所有变量之间是全连接的 整个能量函数定义为 P(X) 为玻尔兹曼分布 一个有六个变量的玻尔兹曼机 在玻尔兹曼机中,每个变量X i 可以解释为是否接受一个基本假设[Ackley et al., 1985],其取值为1或0分别表示系统接受或拒绝该假设。 两个基本问题: 推断p(h|v) 参数学习W
玻尔兹曼机的推断 如何推断? 近似采样--Gibbs采样 全条件概率
模拟退火 让系统刚开始在一个比较高的温度下运行,然后逐 渐降低,直到系统在一个比较低的温度下达到热平 衡。 当系统温度非常高T → ∞时,pi → 0.5,即每个变量 状态的改变十分容易,每一种网络状态都是一样的 ,而从很快可以达到热平衡。 当系统温度非常低T → 0时,如果∆Ei (x\i ) > 0则pi → 1,如果∆Ei (x\i ) < 0则pi → 0。 随机性方法变成确定性方法 Hopfield网络
Hopfield网络和玻尔兹曼 的能量变化对比
玻尔兹曼机的参数学习 最大似然估计 采用梯度上升法
玻尔兹曼机的参数学习 基于Gibbs采样来进行近似求解
受限玻尔兹曼机
受限玻尔兹曼机(Restricted Boltzmann Machines,RBM) 受限玻尔兹曼机是一个二分图结构的无向图 模型。 在受限玻尔兹曼机中,变量可以为两组,分别为隐藏层和 可见层(或输入层)。 节点变量的取值为0或1。 和两层的全连接神经网络的结构相同。
全条件概率
参数学习 采用梯度上升法时,参数W,a,b可以用下面公 式近似地更新 根据受限玻尔兹曼机的条件独立性,可以对 可观测变量和隐变量进行分组轮流采样。
对比散度算法 Contrastive Divergence
其它类型的受限玻尔兹曼机 “高斯-伯努利”受限玻尔兹曼机 “伯努利-高斯”受限玻尔兹曼机
深度信念网络
深度信念网络(Deep Belief Networ) 深度信念网络是深度的有向的概率图模型, 其图结构由多层的节点构成。 和全连接的神经网络结构相同。 顶部的两层为一个无向图,可以看做是一个受限玻尔兹曼 机。 认知权重 生成权重
局部条件概率 深度信念网络中所有变量的联合概率可以分 解为 局部条件概率
参数学习 在深度信念网络中,隐变量𝒉之间的关系十 分复杂,由于“贡献度分配问题”,很难直接 学习。 即使对于简单的单层Sigmoid信念网络 在已知可观测变量时,其隐变量的联合后验概率p(h|v) 不 再相互独立,因此很难精确估计所有隐变量的后验概率。
训练深度信念网络-逐层训练 逐层训练是能够有效训练深度模型的最早的 方法。 为了有效地训练深度信念网络,我们将每一层的sigmoid信念网络转换为受限玻尔兹曼机。 这样,深度信念网络可以看作是由多个受限玻尔兹曼机从下到上进行堆叠,每一层受限玻尔兹曼机的隐层作为上一层受限玻尔兹曼机的可见层。 进一步地,深度信念网络可以采用逐层训练的方式来快速训练,即从最底层开始,每次只训练一层,直到最后一层。
逐层训练
训练深度信念网络-精调 contrastive wake-sleep算法 “如果现实跟我想象的不一样,改变我的权重使得我想象的东西就是这样 的”; Sleep阶段:生成过程,通过顶层的采样和向下的生成权重, 逐层计算每一层的后验概率并采样。然后,修改向上的认 知权重使得上一层变量的后验概率最大。 “如果梦中的景象不是我脑中的相应概念,改变我的认知权重使得这种景 象在我看来就是这个概念”; 交替进行Wake和Sleep过程,直到收敛。
https://nndl.github.io/