我读了一些关于受限玻尔兹曼机的文章。这些机器的重建能力已经过测试。我了解培训的工作原理,但不了解这种重建是如何完成的。任何人都可以给我一些提示吗?
4 回答
我认为您的意思是在自动编码器的上下文中用于调用输入的 RBM,就像关联记忆网络一样。
在学习阶段,输入单元和输出节点(单元)被限制在训练集中找到的值,之后重复玻尔兹曼采样(例如通过 Metropolis Hastings 和模拟退火的组合)结合使用梯度下降来优化输入、隐藏和输出节点之间所有连接的权重。训练后,受限玻尔兹曼网络可用于 1)分类/预测或 2)在自由运行模式下生成内存。
在分类/预测模式下,部分或全部输入单元被钳位,而隐藏节点和输出节点采用玻尔兹曼采样。输出节点的统计属性(本质上是平均值)是预测或分类。如果 RBM 的结构类似于单层自动编码器,具有类似于输出层的输入层和稀疏或更小的隐藏层,那么导致训练输入完全恢复的有限数量的输入将构成“重构”。
Hinton 2006 年的《科学》论文讨论了其中一些想法:
http://www.cs.toronto.edu/~hinton/science.pdf
不过,这篇论文是 RBM 和神经网络的一个相当具体的应用。在这篇论文中,他使用 RBM 来预训练一个深度(多层)神经网络。
Geoff Hinton 的演讲:
受限玻尔兹曼机是可以为给定隐藏单元生成样本的生成模型。
对于重建,首先,输入数据被钳制到可见单元,并使用模型的权重计算隐藏状态。第二步,使用最近计算的隐藏状态计算可见单元。您在第二步中获得的可见状态是重建样本。
输入数据和重构样本的比较(元素比较等)给出了重构误差。
在Hinton 的算法中,他们使用 RBM 进行预训练,使初始权重接近一个很好的解决方案,从而确保梯度下降的收敛。
在下一步中,展开初始网络(例如,[1000 500 100 2])以给出自动编码器网络([1000 500 100 2 100 500 1000])。编码器([1000 500 100 2])和解码器([2 100 500 1000])部分最初使用相同的权重。
最后一个阶段是微调。它通过整个自动编码器([1000 500 100 2 100 500 1000])使用反向传播来微调权重(通过最小化作为输入与其重建之间的差异的误差)以获得最佳重建。自编码器的输出是输入的重构。