深度置信网络(DBM)

深度置信网络(DBM)深度置信网络

大家好,欢迎来到IT知识分享网。

DBN由多层受限玻尔兹曼机(RBM)堆叠加输出层构成,RBM由隐层和显层构成,如下图所示

深度置信网络(DBM) 

其中v为输入向量,h为隐层的节点。wij为vi到hj的权重,对于给定的状态(v,h),RBM的能量函数可表示为深度置信网络(DBM)

其中ai为可见层的置偏值,bj为隐层的置偏值。

  可见层和隐层相互独立,h在v上的最大似然估计为

P(h|v)=\prod p(hi|v)    i=1,2…….n

通过v可计算出隐层神经元激活的概率为:

P(h1=1|v)=sigmoid(\sum_{i=1}^{i=n}wi1*vi+a)

通过p可计算出显层神经元激活的概率为:

P(v1=1|h)=sigmoid(\sum_{j=1}^{j=m}w1j*hj+b)

训练采用cd-k(对比散度算法)

假设初始为v,h,迭代一轮之后为v’,h’,学习率为lr,则w,a,b的更新规则如下:

w=w+lr*(v*[p(h=1|v)]t-v’*[p(h’=1|v’)]t)   其中t表示转置

a=a+lr*(v-v’)

b=b+lr*([p(h=1|v)]-[p(h’=1|v’)])

初始化可将数据v归一化,[v-v(min)]/[v(max)-v(min)],w,a,b随机赋初值

整体的DBN如图:

深度置信网络(DBM)

先独立训练每一层的rbm,再把上一层的rbm的输出做为下一层rbm的输入,最后接上连接层,进行BP微调模型。

 

代码如下,采用sklearn中的rbm层实现

 深度置信网络(DBM)

深度置信网络(DBM) 

 

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/12382.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信