RBM(Restricted Boltzmann Machine)
RBM是一个无向图(Undirected Graph)模型,其结构如下:
Bernoulli-Bernoulli RBM
-
RBM模型结构
此时可视层节点
和隐层节点
均为二值变量。即, ,此时的 能量方程 为:
则()的 联合概率分布 为:
由于(v,h)是二值的因此计算,需要次计算,其计算量太大无法在有效的时间内求得,因此其联合概率分布不可以直接求得
。
因为隐层与可视层层内无连接
, 因此每个节点是条件独立的,即: -
基于对比散度的学习原理
通过最大化RBM在训练集上(样本数为T)的对数似然函数,学习得到参数,即:
使用梯度法求解上式时,上式对的求导如下:
用data和model来间记和这两个概率分布, 则(当对某一个变量求偏导时,其他项就都被约掉了
)
由上面知,联合概率分布不可求,因此上式中的第二项不可以直接求,可以通过Gibbs采样来近似。但通常情况下需要使用较大的采样步数,这使得RBM的训练效率仍旧不高,2002年hinton于文章[2]中提出了Constrastive Divergence
, 即使用基于训练样本的重构数据来近似联合分布
其训练的详细步骤如下(使用的是,即只做了一次的重构,其可以是多次
)
Gaussian-Bernoulli RBM
见文章[3],其能量方程如下:
1. 可以在训练之前,将样本进行标准差归一化,这样就可以设为1
2. 隐层重构可见层时,直接用其线性的输出值,就不需要加激活函数了
3. 学习率要小一点,因为从隐层重构到可视层的值是没界
的,会导致梯度值很大
疑问1
:v不是二值的,导数的第二项是不是要基于所有的v进行积分吗?
Gaussian-Gaussian RBM
见文章[3],其能量方程如下:
其模型比较不稳定
,学习起来较困难
疑问2
:v,h不是二值的,导数的第一,第二项不是要基于所有的v和h进行积分了吗?
Reference
- 受限波尔兹曼机简介 张春霞
- Training products of experts by minimizing contrastive divergence
- A Practical Guide to Training Restricted Boltzmann Machines