DBN---RBM简介

来源:互联网 发布:java 计算圆周率 编辑:程序博客网 时间:2024/06/15 11:33

RBM

上图即是RBM(受限玻尔兹曼机)的网络结构图,与玻尔兹曼机的区别就在于没有层内连接,其中v为可见层,h为隐藏层,可见层用于输入数据和获取结果,隐藏层则表示状态的变化,另外
v=(v1,v2,...,vnv)表示可见层神经元的状态,
h=(h1,h2,...,hnh)表示隐藏层神经元的状态,
a=(a1,a2,...,anv)表示可见层神经元的偏置,
b=(b1,b2,...,bnh)表示隐藏层神经元的偏置,
W则是层间连接权值矩阵


RBM是基于能量的模型(EBM),定义了一个能量函数,能量最小时,模型达到最优,

Eθ(v,h)=i=1nvaivii=1nhbihii=1nvj=1nhwi,jhjviθ={a,b,W}

由此v,h间的联合概率分布可以得到,
Pθ(v,h)=1ZθeEθ(v,h),Zθ=v,heEθ(v,h)

Zθ是相当于一个归一化因子的存在,还能得到
Pθ(v)=hPθ(v,h)Pθ(h)=vPθ(v,h)

对于后面得到更新规则,P(vi|h)orP(hi|v)这个条件概率很重要.
bk(h)=ak+j=1nhwk,jhjβ(h,vvkV)=i=1,iknvaivi+i=1nhbihi+i=1nvj=1,jknhwi,jhivj

因此
Eθ(v,h)=β(h,vvkV)vkbk(h)

那么
P(vk=1|h)=P(vk=1|vi,ik,h)=P(vk=1,vi,ik,h)P(vi,ik,h)=P(vk=1,vi,ik,h)P(vk=1,vi,ik,h)+P(vk=0,vi,ik,h)=1ZeE(vk=1,vi,ik,h)1ZeE(vk=1,vi,ik,h)+1ZeE(vk=0,vi,ik,h)=11+eE(vk=1,vi,ik,h)E(vk=0,vi,ik,h)=11+e[β(h,vi,ik)+0bk(h)]+[β(h,vi,ik)1bk(h)]=11+ebk(h)=sigmoid(bk+j=1nhwk,jhj)

由此得到
P(v|h)=i=1nvP(vi|h)

RBM常用CD(Contrastive Divergence,对比散度)进行训练,这在后文在总结.

知识共享许可协议
本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。

0 0
原创粉丝点击