深度学习1-1——小白初识RBM

来源:互联网 发布:mac截图保存位置修改 编辑:程序博客网 时间:2024/06/09 14:38

深度学习1-1–小白初识RBM

仅以此系列记录&分享经典论文《An Introduction to Restricted Boltzmann Machines》

从BM(玻尔兹曼机)说起

“玻尔兹曼”分布,其实是一个化学上的概念——“热平衡在物理学领域通常指温度在时间或空间上的稳定。”

在统计学习中,如果我们将需要学习的模型看成高温物体,将学习的过程看成一个降温达到热平衡的过程,最终模型的能量将会收敛为一个分布,并且会在全局极小能量上下波动。这个过程称为“模拟退火”,而模型能量收敛到的分布称为玻尔兹曼分布

系统的两个不同状态之间的概率比,仅与系统的能量有关。

这个所谓“能量”在之后还会提到。

而由于统计上我们训练用的样本服从玻尔兹曼分布,所以这种网络被称为玻尔兹曼机。
RBM模型

上图是一个RBM的模型。图中中的可见神经元们,可以看成很多个相互之间有很复杂关系的节点,比如说他们是某一个图片中的各个像素点,就把它们记为X1,X2,X3,X4吧。很可能是X1依赖于X2,X3而跟X4没啥关系,但是同时X2又依赖于X4,总之很乱就对了。那怎么办呢,联合分布概率算不出来啊,这得多麻烦呐!(为啥要算联合概率分布之后再做解释)于是大佬就想出来了一个方法,还符合马尔可夫随机场的性质,简直就是6666哇!这是个什么方法呢?就是加一层隐层神经元,表示每个可见神经元之间的关系,也就是把关系抽象成节点,记为Yk,k=1~4。那么每一个X只与和他相连的Y有关。值得注意的是,X们与Y们是全连接的。

哦对了,RBM的R,restrect限制在哪儿了呢?R就是加入了隐层神经元,将原本BM各个节点之间的复杂关系抽象简化了。

那为什么这符合马尔可夫性质呢?没学过随机过程的同学可能不太理解,但是我也没学过,只是随便查了一下。马尔可夫,是随机过程的一种。对马比较粗略的理解就是,每一步都只与上一步有关。例如青蛙在荷叶上跳,考虑青蛙是一种没有大脑的生物(对不起),这时他蹲在一片绿油油的荷叶上,可是他不记得他是怎么跳过来的,他也不关心。他只关心下一步跳到哪儿,而下一步跳到哪儿只和他蹲着的这片荷叶的位置有关。他跳的每一步连起来,就是一个马尔可夫链。还有一个临域的概念,也是和马尔可夫性质相关的——在图中,某一个点的临域就是字面意思,和他直接相连的点构成的集合。那么每个X的临域,就是Yk,k=1~4咯。就算X1与X2关系再亲密再复杂,经过抽象之后,他俩都跟不认识似的。X1现在只爱Y1~Y4.当然这些都是为了便于计算,前面说过了,直接计算X们的联合概率分布实在是太难了。

说了这么多,还没介绍一下这个图是怎么疯狂操作的呢……训练这个RBM的过程大概是,从可见神经元输入样本数据,走了一圈之后又从可见神经元这层输入,即可见层既是输入层又是输出层,隐层是看不见的,悄咪咪搞事情。我们需要达到的训练效果就是,这个RBM通过样本的学习,他把样本全学会了!怎么输入的,就是怎么输出来的!(其实这一点具体怎么疯狂操作我还是有点点没懂,等我再学学吧)把RBM一个一个训练好之后,堆叠到一起,就构成了DBN,Deep Believe Network ,在DBN中,RBM的地位就变成了block,RBM辛辛苦苦从样本观察结果学习到的东西,就作为了一个有监督学习系统的输入。RBM是一块砖,哪个神经网络需要哪里搬呐!最后对DBN的输出层还可以加一些增强,就是进一步分类打标签的意思吧,比如输出P1,P2表示晴天,P3,P4表示雨天。

好了说到这里好像渐渐触及事情的核心了。聊点历史问题吧,师兄说,一开始呢神经网络没有RBM这块砖,就是直接输入样本数据,经过多层神经网络,输出到晴天/雨天这样的输出层,后来发现层数越搞越多,效果不好了还是咋的反正遇到问题了。直到这篇论文出来,RBM这块砖横空出世,解决了训练多层神经网络的问题。

好啦这篇就介绍这一些基本概念,下一篇写一点公式和具体做法吧~

原创粉丝点击