1 受限玻尔兹曼机(RBM)
1.1 RBM的结构
RBM是无监督学习模型,有两个层的浅层神经网络,一个可见层,一个隐藏层,是一种用于降维、分类、回归、协同过滤、特征学习和主题建模的算法,它是组成深度置信网络的基础部件。
RBM的结构如下所示:
图中,蓝色节点表示可见层,红色节点表示隐藏层。在运算过程中,相关的变量定义如下:
可见层的状态向量:
隐藏层的状态向量:
可见层的偏置向量:
隐藏层的偏置向量:
隐藏层和可见层之间的权值矩阵:
前向运算通过公式:
1.2 RBM的重构
RBM是无监督学习模型,因此,RBM是通过重构之后得到的对样本的估计与样本的真实值之间的误差进行学习的。重构过程如下:
从隐藏层开始运算,将之前前向运算得到的激活值a作为反向传递中的输入,这些输入值与同样的权重相乘,每两个相连的节点之间各有一个权重,就像正向传递中输入x的加权运算一样。这些乘积的和再与每个可见层的偏差相加,所得结果就是重构值。
由于一般RBM的隐藏层的神经元个数会比可见层的神经元个数少,而在反向运算中,较少神经元的隐藏层又能够近似复现原始可见层的输入,因此,可以认为前向运算是对输入信号的编码,特征提取的过程,而反向运算是解码的过程。
1.3 RBM特点总结
关于RBM的特点总结如下:
- 两层,一个可见层,一个隐藏层
- 层间全连接,层内不连接
- 前向运算是编码,反向运算是解码
- 前向和反向使用同一组权重
2 深度信念网络(DBN)
2.1 DBN的结构
下图是经典的DBN网络结构:
从图中可知,DBN是通过一个一个RBM堆叠起来的,由于RBM的作用主要在于特征提取和降维,因此,在RBM的最后会加一个分类器,如BP网络。上一层的RBM训练完之后,上一层的RBM的隐藏层作为下一层RBM的可见层,这样一层一层训练下去。由于RBM能够对数据降维,提取得到数据中的特征,DBN通过将多个RBM进行堆叠,具有很好的特征提取能力。同时,由于在一开始的时候就对RBM进行预训练,因此在最后整体训练学习时,会较好的避开局部最优,较快的完成训练。
2.2 DBN训练过程
DBN的训练过程为:
首先把数据向量x和第一层隐藏层作为一个RBM, 训练出这个RBM的参数(连接x和h1的权重, x和h1各个节点的偏置等等), 然后固定这个RBM的参数, 把h1视作可见向量, 把h2视作隐藏向量, 训练第二个RBM, 得到其参数, 然后固定这些参数, 训练h2和h3构成的RBM。如此依次进行训练。
由于每一层 RBM 网络只能确保自身层内的 权值对该层特征向量映射达到最优,并不是对整个 DBN 的特征向量映射达到最优,因此,在一层一层训练好RBM之后,需要在整个网络上进行训练,通过反向传播算法来微调整个 DBN 网络。
由于一开始训练RBM的时候就是进行预训练的过程,因此在最后整体微调时,能够克服陷入局部最小值的缺点,并且减少训练收敛时间。