关于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
欢迎各位大大指正,本人菜鸟,如有不足请多包涵
推荐阅读
- paddle|动手从头实现LSTM
- 人工智能|干货!人体姿态估计与运动预测
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- Python专栏|数据分析的常规流程
- 读书笔记|《白话大数据和机器学习》学习笔记1
- Pytorch学习|sklearn-SVM 模型保存、交叉验证与网格搜索
- Python机器学习基础与进阶|Python机器学习--集成学习算法--XGBoost算法
- 深度学习|深度学习笔记总结
- 机器学习|机器学习Sklearn学习总结
- 机器学习|线性回归原理与python实现