受限波尔兹曼机(Restricted Boltzmann Machines,RBM)是一类具有两层结构,对称连接且无自反馈的随机神经网络模型,层间全连接,层内无连接。
当给定可见层神经元的状态时,各隐藏层神经元的之间是否**是条件独立的;反之也同样成立。
基于能量模型。Hinton提出针对其的训练算法(对比散度算法)
实践证明,RBM是一种有效的特征提取方法,用于初始化前馈神经网络可明显提高泛化能力,堆叠多个RBM组成的DBN能提取更抽象的特征。
利用RBM的堆叠可以构造出深层的神经网络模型——深度信念网(Deep Belief Net, DBN)
每个节点都是一个二值的随机变量

隐藏层的神经元的个数为nh,
隐藏层神经元的状态h=(h1,h2,...,hnh)T∈Rnh
隐藏层神经元的偏置b=(b1,b2,...,bnh)T∈Rnh
假设可见层的神经元的个数为nv,
可见层神经元的状态v=(v1,v2,...,vnv)T∈Rnv,
可见层神经元的偏置a=(a1,a2,...,anv)T∈Rnv,
隐藏层与可见层之间的连接权重W=(wij)∈Rnh×nv
网络参数θ=(W,a,b)
联合组态的能量公式
Eθ(v,h)=−∑i=1nvaivi−∑j=1nhbjhj−∑i=1nv∑j=1nhhjwijvi
联合概率分布:
Pθ(v,h)=−Eθ(v,h)∑v,h−Eθ(v,h)=−Eθ(v,h)Zθ
Zθ为归一化因子
边缘概率分布:
Pθ(v)=∑hPθ(v,h)=∑h−Eθ(v,h)Zθ
Pθ(h)=∑vPθ(v,h)=∑v−Eθ(v,h)Zθ
当给定可见层的状态时,隐藏层上的某一个神经元被**的概率,即P(hk=1|v)
当给定了隐藏层的状态时,可见层上的某一神经元被**的概率,即P(vk=1|h)
h中去除了分量hk后的向量
h−k=(h1,h2,...,hk−1,hk+1,...,hnh)T
Eθ(v,h)=−∑i=1nvaivi−∑j=1nhbjhj−∑i=1nv∑j=1nhhjwijvi
=−β(v,h−k)−hkαk(v)
αk(v)=bk+∑i=1nvwkivi
P(hk=1|v)=11+e−αk(v)
=Sigmoid(αk(v))
=Sigmoid(bk+∑i=1nvwkivi)
同理,可以求得当给定了隐藏层的状态时,可见层上的某一神经元被**的概率
P(vk=1|h)=11+e−αk(h)
=Sigmoid(αk(h))
=Sigmoid(ak+∑j=1nhwkjhj)
对于RBM模型,其参数主要是可见层和隐藏层之间的权重,可见层的偏置以及隐藏层的偏置,即θ=(W,a,b),对于给定的训练样本,通过训练得到参数θ,使得在该参数下,由RBM表示的概率分布尽可能与训练数据相符合
设训练集X={v1,v2,...,vns}
训练RBM的目标就是最大化如下的似然函数
Lθ=∏i=1nsP(vi)
lnLθ=ln∏i=1nsP(vi)=∑i=1nslnP(vi)