玻尔兹曼机:
玻尔兹曼机是一种随机神经网络。
受限玻尔玆曼机通过学习数据的概率密度分布提取抽象特征。
https://blog.csdn.net/qq_34599526/article/details/83240171
受限玻尔兹曼机RBM:
如图RBM是一个二层结构:
上层表示 n 个隐藏单元构成的隐藏(输出)层,一般服从伯努利分布;
下层表示m个可视单元构成的可视(输入)层,一般服从高斯或伯努利分布;
RBM有两层,隐藏层、可视层。RBM可视层和隐藏层的单元之间有权值连接,但层内的单元之间无连接。(也就是同一层的节点互相独立,层与层的节点才有连接);
使用能量函数对RBM进行状态估计,也就是RBM状态分布可由能量函数给出。
高斯-伯努利RBM能将连续值随机变量转换成二值随机变量,然后通过伯努利-伯努利RBM进行处理。
训练RBM时用的是K步对比散度算法。
(具体内容见:《深度学习的研究与发展》张建明)
基于RBM的深度结构有:DBN(深度置信网络)和DBM(深度玻尔兹曼机)
深度置信网络DBN:
就是若干个RBM 模型的叠加,是有着多层隐藏层的神经网络。
简要来说就是通过预训练和反向微调来训练整个DBN:在 预 训 练 的 时 候 是 先 单 独 训 练每 一 个RBM,逐层叠加将下一层的RBM 的输出作为上一层RBM的输入;在反向微调的时候可以通过BP训练根据误差函数进行反向调节.
深度玻尔兹曼机DBM:
对于单层RBM来说,如果把RBM隐藏层的层数增加,就可以得到图 b 所示的DBM结构;如果在靠近可视层的部分使用贝叶斯置信网络(即有向图模型),而在输出层的部分使用RBM,可以得到图a所示的DBN结构。
两者都是自下而上的生成结构且都能够进行自顶向下的反馈,DBM允许更鲁棒性地处理模糊的输入数据且更好地进行传播,减少传播造成的误差。
DBN和DBM的差别?
DBN,就是简单叠加RBM,逐层训练,然后fine turn(反向调节),常用来做DNN和CNN的与训练。DBN是一个向计算妥协的折中模型,从模型结构能看出,低层的分布并不依赖于高层
DBM,它的低层的分布求解依赖于高层的分布。简单的说,DBN的h1层是依赖v的分布,但是DBM的h1却同时依赖h2和v。
实际效果上的区别是:DBM仅仅是比DBN的鲁棒性更好,但是需要付出计算代价。