受限玻尔兹曼机
仅做学习记录,不涉及数学公式推导。
结构
受限玻尔兹曼机(RBM)是一种概率图模型,特殊之处是它可以用神经网络来解释。RBM可以视为两层的神经网络,即由输出层和隐层组成的神经网络。
用途
- 样本特征提取
对样本进行特征提取往往可以取得更好的效果。卷积神经网络之所以在MNist数据集上分类准确率很高,是因为卷积层起到了特征提取的作用。常见的特征提取方法有PCA和LDA。二者通过对样本进行线性降维达到特征提取的目的。RBM也可以达到特征提取的目的。训练RBM的过程是无监督的,数据通过RBM的输入层经过神经网络到达隐层,再由隐层通过反向传播到达输入层得到数据的重构,RBM的训练会使得这个重构误差变得较小。因此,RBM的隐层可以视为特征提取层。
- 深度神经网络参数初始化
深度神经网络遇到的一大问题是梯度消失,即当前面隐藏层的学习速率低于后面隐藏层的学习速率时,随着层数的叠加反而出现loss增加的现象。缓解梯度消失的一种办法是选择合适参数进行初始化。可以使用RBM进行模型的预训练得到初始化的权重和偏置以达到上述目的。
训练
训练RBM的目的是学习所给数据集的概率分布。这种概率分布以RBM的权重和偏置的形式进行保存。直观来讲,RBM应该给出一个标准,使得这个标准可以反映样本集中各个样本出现的概率。这种标准即是能量函数:
其中分别代表输入层和隐层的向量。通过对能量函数进行归一化
即可得到对应的概率。其中是归一化因子。
通过对所有样本的概率进行极大似然估计迭代更新参数即可完成RBM的训练。
对比散度算法(CD)
由于上述的归一化因子的计算量级随网络节点的增多而指数增长,所以采用更为快速的对比散度算法进行训练。下面仅列出该算法:
- 取一个训练样本v,计算隐层节点的概率,在此基础上从这一概率分布中获取一个隐层节点激活向量的样本h;
- 计算v和h的外积,称为“正梯度”;
- 从h获取一个重构的可见层节点的激活向量样本v’,此后从v’再次获得一个隐层节点的激活向量样本h’;
- 计算v’和h’的外积,称为“负梯度”;
- 使用正梯度和负梯度的差以一定的学习率更新权重。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Solsticev!
评论