关于DBN的几点思考

来源:互联网 发布:知乎 驱动 微软认证 编辑:程序博客网 时间:2024/05/18 21:10
关于DBN我一直有以下三个问题
1.什么是complementary priors?
2.为什么说RBM展开后可以当成sigmoid belief network with tied parameters呢?
3.为什么Greedy Layerwise Training可以把DBN的每层当成RBM来训练呢?

经过这几天的冥思苦想,我得出来了一些对于我个人来说比较可以接受的解释,这是我第一次写博文,忘各位大大多多指教,回到正题,让我来解释下我个人认知中的complementary priors,这就要从markov chain开始说起了,众所周知,markov chain具有以下性质:

在符合上述的条件下markov chain 是有唯一的平衡分布的,一旦markov chain收敛到平衡分布的时候,会满足细节平衡原则(detailed balance):

其实就是说该markov chain在收敛到平衡分布时是可逆的(reversible),这就是complementary priors的基本理念了,大家有可能会困惑,这个和DBN有什么关系吗?我可以肯定的说,是有的,其实回过头来看一看complementary priors 就是为了解决layered directed graphical model中inference难的问题,换一种说法,就是因为某些训练法具有complementary priors的特性所以才被选上了。好了,废话不多说,我们来看一看为什么complementary priors可以使得inference容易了,接下来又是图片啦~

接下来就是重头戏了,我们其实可以把图右边的网络看成是markov chain的展开(unroll),也就是说每一层表示一个状态,而箭头就是状态转换的方向。(注意箭头方向!!)

当markov chain 收敛到平衡分布的时候根据细节平衡法则,正转移的发生率等于逆转移的发生率,再结合上面图片的内容,其实就是说只要让markov chain 以相反的方向运行就可以轻松的进行inference了,就如同上面说的一样,complementary prior 其实就是markov chain的平衡分布。
其实上面的理解了之后,下一个问题就相对来说简单一些了,其实一个执行block gibbs sampling 的RBM相等于我们上面讨论过的由markov chain所定义的directed graph model,具体根据的话大家可自行百度Hammersley-Clifford Theorem,既然知道了这个,就好解释为什么RBM可以展开为sigmoid belief network with tied parameters了,对了,所谓tied parameter(weight)其实就是自上而下(up-down)方向上的w,

其实就是block gibbs sampling的每个状态展开而已,箭头的方向的话和上面说的是一个原理,箭头向下就是从RBM的隐层开始采样,箭头向上就是从可见层开始采样,仅此而已,不过这里有个点是很重要的,也就是可以推出RBM可以看成是具有complementary prior的,这样我们最后的一个问题其实也因此开始变得明了起来了。
接下来又是一堆的图了~


逐层按RBM训练虽然可以提高DBN似然函数的lower bound但是这个不是我的这篇博文的重点,大家可以仔细看看上面这两个图,你们会发现一个有趣的事情,其实逐层训练是这样的,训练一个RBM至平衡态,然后对RBM做一次展开变成上图的样子,这样我们就的到了一个已经训练好的一层sigmoid belief network with tied parameters和一个RBM,这个新产生的RBM的可见层是我们刚训练好的RBM的隐层,然后再训练我们新得到的RBM然后再展开,如此往复,我们就得到了多层的sigmoid belief network with tied parameters这样我们就达到我们一开始的目的了,如何有效的训练一个directed graphical model,至于DBN最顶上的那个联想记忆层其实也可以理解为展开后没训练的RBM(纯属个人看法),对了,顺便提一提,展开一次的意思是给定隐层对可见层进行抽样,然后产生了新的可见层,这也是为什么一次展开后上面的那部分没箭头的原因,也可以说成是半步的block gibbs sampling。
大概就是这些了,有兴趣的欢迎加我q或者发邮件给我qq:2502353900
mail:m13829992306@gmail.com

欢迎各位大大指正,本人菜鸟,如有不足请多包涵
0 0
原创粉丝点击