受限玻尔兹曼机RBM到底能不能特征提取?

我还以为RBM就是用来做初始化的,看有文章说还能做特征提取,就好像自动编码器那样,怎么证明RBM的隐层可以作为特征?
关注者
19
被浏览
17,030
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

想要公式证明还是可行性证明呢?可行性证明的话,给你推荐几篇文章,都有开源:

【写在前面】 AE每次训练都要从头走到尾再走到头,而RBM只允许相邻层训练完毕以后再去训练下一个相邻层。

  1. 最开始要提的当然是老爷子的开山之作,发表于Science昂:《Reducing the Dimensionality of Data with Neural Networks》,名字看着跟RBM没关,其实论文就是将多个RBM堆叠起来了,结构看起来是自编码,但是仔细看权重,你会发现与自编码有点区别的。
    多层RBM的训练过程是每两层一训练,而不是从最下面走到最上面再走到最下面的AE训练方法,最终对手写数字在低维空间中得到的效果为:

2. deeplearning tutorial 里面关于使用RBM隐层生成手写数字。
权重可视化结果:

重建图像:

3. 卷积深度信念网络(Deep Belief network)重建图像:DBN通常是由多层RBM堆叠起来的,注意与DBM区分一下,它们结构相同,但是计算方法不同。
从下图可以发现,堆叠式的RBM,也就是DBN在不同的层级学习到了不同的特征,层越低,越能学到细节,比如人脸的第二层(图里面的上面一行)学到的是各种器官,第三层(图里面的下面一行)学到的几乎是整张脸了。看起来和卷积很类似,但是此过程是完全无监督的。

4. 最后再来个我的本命方向里面的一个研究,Taylor和老爷子合作的,N久以前的论文:《Modeling Human Motion Using Binary Latent Variables
这篇论文在RBM的基础上加入了时序连接,称为条件RBM(conditional RBM),具体不多做解释。作用是利用历史动画帧和隐层生成未来动画帧。

下图上面黑色的就是隐层单元值(是一个二值RBM,所以只有黑白),下面的骨骼就是动画帧。

差不多了吧,如果题主还感觉不够,我还有一堆RBM的论文推荐,不够在评论区说一下。

能够利用隐层去重构或生成各种信息,那已经就可以说明RBM可以作为特征提取的方法啦


至于理论可行性嘛,这个就比较复杂了,涉及到概率无向图的能量函数优化,为了最小化能量,需要一系列的推导,不想推导了,有点麻烦,直接贴我的个人博客,有过证明,年代久远,不能保证完全正确,有问题可以在评论区提出来,我改。

逃ヽ(゚∀゚*)ノ━━━ゥ♪