定义与结构
受限玻尔兹曼机 (RBM) 由 Geoff Hinton 发明, 是一种用于降维分类回归协同过滤特征学习和主题建模的算法(如需通过实例了解 RBM 等神经网络的应用方法, 请参阅应用案例)
我们首先介绍受限玻尔兹曼机这类神经网络, 因为它相对简单且具有重要的历史意义下文将以示意图和通俗的语言解释其运作原理
RBM 是有两个层的浅层神经网络, 它是组成深度置信网络的基础部件 RBM 的第一个层称为可见层, 又称输入层, 而第二个层是隐藏层
上图中每个圆圈都是一个与神经元相似的单元, 称为节点, 运算在节点中进行一个层中的节点与另一层中的所有节点分别连接, 但与同一层中的其他节点并不相连
也就是说, 层的内部不存在通信-这就是受限玻尔兹曼机被称为受限的原因每个节点对输入进行处理和运算, 判定是否继续传输输入的数据, 而这种判定一开始是随机的 (随机(stochastic) 一词在此处指与输入相乘的初始系数是随机生成的)
每个可见节点负责处理网络需要学习的数据集中一个项目的一种低层次特征举例来说, 如果处理的是一个灰度图像的数据集, 则每个可见节点将接收一张图像中每个像素的像素值(MNIST 图像有 784 个像素, 所以处理这类图像的神经网络的一个可见层必须有 784 个输入节点)
接着来看单个像素值 x 如何通过这一双层网络在隐藏层的节点 1 中 x 与一个权重相乘, 再与所谓的偏差相加这两步运算的结果输入激活函数, 得到节点的输出, 即输入为 x 时通过节点的信号强度
激活函数 f((权重 w * 输入 x) + 偏差 b ) = 输出 a
下面来看一个隐藏节点如何整合多项输入每个 x 分别与各自的权重相乘, 乘积之和再与偏差相加, 其结果同样经过激活函数运算得到节点的输出值
由于每个可见节点的输入都被传递至所有的隐藏节点, 所以也可将 RBM 定义为一种对称二分图
对称指每个可见节点都与所有的隐藏节点相连接 (见下图) 二分指有两个部分或层, 而这里的图是指代节点网络的数学名词
在每个隐藏节点中, 每一个输入 x 都会与其相对应的权重 w 相乘也就是说, 每个输入 x 会对应三个权重, 因此总共有 12 个权重 (4 个输入节点 x 3 个隐藏节点) 两层之间的权重始终都是一个行数等于输入节点数列数等于输出节点数的矩阵
每个隐藏节点会接收四个与对应权重相乘后的输入值这些乘积之和与一个偏差值相加(至少能强制让一部分节点激活), 其结果再经过激活运算得到每个隐藏节点的输出 a
如果这两个层属于一个深度神经网络, 那么第一隐藏层的输出会成为第二隐藏层的输入, 随后再通过任意数量的隐藏层, 直至到达最终的分类层(简单的前馈动作仅能让 RBM 节点实现自动编码器的功能)
重构
但在本教程中, 我们将重点关注受限玻尔兹曼机如何在无监督情况下学习重构数据(无监督指测试数据集没有作为实际基准的标签), 在可见层和第一隐藏层之间进行多次正向和反向传递, 而无需加大网络的深度
在重构阶段, 第一隐藏层的激活值成为反向传递中的输入这些输入值与同样的权重相乘, 每两个相连的节点之间各有一个权重, 就像正向传递中输入 x 的加权运算一样这些乘积的和再与每个可见层的偏差相加, 所得结果就是重构值, 亦即原始输入的近似值这一过程可以用下图来表示:
由于 RBM 权重初始值是随机决定的, 重构值与原始输入之间的差别通常很大可以将 r 值与输入值之差视为重构误差, 此误差值随后经由反向传播来修正 RBM 的权重, 如此不断反复, 直至误差达到最小
来源: http://www.bubuko.com/infodetail-2506171.html