神经网络学习笔记-受限波尔兹曼机(Restricted Boltzmann Machines)

受限波尔兹曼机(Restricted Boltzmann Machines,RBM)是一类具有两层结构,对称连接且无自反馈的随机神经网络模型,层间全连接,层内无连接。
当给定可见层神经元的状态时,各隐藏层神经元的之间是否**是条件独立的;反之也同样成立。

基于能量模型。Hinton提出针对其的训练算法(对比散度算法)
实践证明,RBM是一种有效的特征提取方法,用于初始化前馈神经网络可明显提高泛化能力,堆叠多个RBM组成的DBN能提取更抽象的特征。
利用RBM的堆叠可以构造出深层的神经网络模型——深度信念网(Deep Belief Net, DBN)
每个节点都是一个二值的随机变量
神经网络学习笔记-受限波尔兹曼机(Restricted Boltzmann Machines)

隐藏层的神经元的个数为nh
隐藏层神经元的状态h=(h1,h2,...,hnh)TRnh
隐藏层神经元的偏置b=(b1,b2,...,bnh)TRnh

假设可见层的神经元的个数为nv
可见层神经元的状态v=(v1,v2,...,vnv)TRnv,
可见层神经元的偏置a=(a1,a2,...,anv)TRnv,

隐藏层与可见层之间的连接权重W=(wij)Rnh×nv

网络参数θ=(W,a,b)

联合组态的能量公式

Eθ(v,h)=i=1nvaivij=1nhbjhji=1nvj=1nhhjwijvi

联合概率分布:

Pθ(v,h)=Eθ(v,h)v,hEθ(v,h)=Eθ(v,h)Zθ

Zθ为归一化因子
边缘概率分布:

Pθ(v)=hPθ(v,h)=hEθ(v,h)Zθ

Pθ(h)=vPθ(v,h)=vEθ(v,h)Zθ

当给定可见层的状态时,隐藏层上的某一个神经元被**的概率,即P(hk=1|v)
当给定了隐藏层的状态时,可见层上的某一神经元被**的概率,即P(vk=1|h)
h中去除了分量hk后的向量
hk=(h1,h2,...,hk1,hk+1,...,hnh)T

Eθ(v,h)=i=1nvaivij=1nhbjhji=1nvj=1nhhjwijvi

=β(v,hk)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θ=lni=1nsP(vi)=i=1nslnP(vi)