RBM是一个无向图(Undirected Graph)模型,其结构如下:
img

Bernoulli-Bernoulli RBM


  • RBM模型结构
    此时可视层节点隐层节点均为二值变量。即, ,此时的 能量方程 为:


    则()的 联合概率分布 为:

    由于(v,h)是二值的因此计算,需要次计算,其计算量太大无法在有效的时间内求得,因此其联合概率分布不可以直接求得

    因为隐层与可视层层内无连接, 因此每个节点是条件独立的,即:

  • 基于对比散度的学习原理
    通过最大化RBM在训练集上(样本数为T)的对数似然函数,学习得到参数,即:

    使用梯度法求解上式时,上式对的求导如下:


    用data和model来间记这两个概率分布, 则(当对某一个变量求偏导时,其他项就都被约掉了)

    由上面知,联合概率分布不可求,因此上式中的第二项不可以直接求,可以通过Gibbs采样来近似。但通常情况下需要使用较大的采样步数,这使得RBM的训练效率仍旧不高,2002年hinton于文章[2]中提出了Constrastive Divergence, 即使用基于训练样本的重构数据来近似联合分布



    其训练的详细步骤如下(使用的是,即只做了一次的重构,其可以是多次)
    img

Gaussian-Bernoulli RBM


见文章[3],其能量方程如下:


1. 可以在训练之前,将样本进行标准差归一化,这样就可以设为1
2. 隐层重构可见层时,直接用其线性的输出值,就不需要加激活函数了
3. 学习率要小一点,因为从隐层重构到可视层的值是没界的,会导致梯度值很大

疑问1:v不是二值的,导数的第二项是不是要基于所有的v进行积分吗?

Gaussian-Gaussian RBM


见文章[3],其能量方程如下:

其模型比较不稳定,学习起来较困难

疑问2:v,h不是二值的,导数的第一,第二项不是要基于所有的v和h进行积分了吗?

Reference


  1. 受限波尔兹曼机简介 张春霞
  2. Training products of experts by minimizing contrastive divergence
  3. A Practical Guide to Training Restricted Boltzmann Machines