machine-learning - 衡量受限玻尔兹曼机的成功

标签 machine-learning neural-network energy rbm

我正在尝试实现我自己的 RBM,但我不确定如何 100% 正确地衡量它的成功。所以我开始谷歌搜索,发现了很多解释,但我不确定什么是正确的。

我面临这个问题:

我有数据集 Z,所以我可以将其分为训练集 X 和测试集 Y。我在 X 上训练 RBM,然后我想衡量 RBM 在数据集 Y 上的成功程度。更准确地说,我有两个我和 RBM 想以某种方式对它们进行比较。我不确定重建输入向量是否是好的测量方法。或者我是否应该比较 RBM 的能量。 (以及如何正确计算整个集合 Y 上的能量)。

如果可能的话,我也会对高斯可见和全高斯单位感兴趣。

最佳答案

RBM 是一种无监督学习范式,因此很难判断一个模型是否优于另一个模型。

尽管如此,它们通常用作最近更令人兴奋的网络(例如 DBN)的预训练。所以我的建议是训练尽可能多的 RBM 进行比较(无监督学习),然后将它们提供给前馈层进行学习(监督学习)。从这里,您现在可以通过测量网络预测数据类别的能力来了解 RBM 的性能。

作为示例,我们有 2 个 RBM(A 和 B):

  • 将 A 赋予前馈层(通过反向传播进行训练)并且 测试数据准确率达到80%;

  • 将 B 赋予前馈层(通过反向传播进行训练)并且 测试数据准确率达到90%;

因此,B 是比 A 更好的 RBM,因为它提供了更好的特征,从而带来更好的训练和更高的样本外结果。注意:由于网络的准确性有所不同,请确保多次执行监督训练并在最后取平均值,以便您的比较是稳健的。

编辑:

关于无监督评估,任务并不那么简单。正如 Tijmen Tieleman 在“使用似然梯度近似训练受限玻尔兹曼机”中提出的那样:

One of the evaluations is how well the learned RBM models the test data, i.e. log likelihood. This is intractable for regular size RBMs, because the time complexity of that computation is exponential in the size of the smallest layer (visible or hidden)

但是,如果您的 RBM 足够小,这是一种可能的方法。否则,你只能等待...

关于machine-learning - 衡量受限玻尔兹曼机的成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26891851/

相关文章:

numpy - 从批处理版本重建 torch 张量

machine-learning - Keras运行时错误: GpuCorrMM failed to allocate working memory of 576 x 802816

machine-learning - 作为评估函数的 Tic Tac Toe 神经网络

windows - 重新分配/覆盖热键 (Win + L) 以锁定窗口

python-3.x - 不可排序类型: str() > float error KNN model

java - Deeplearning4j 触发管道 : Convert a String type to org. apache.spark.mllib.linalg.VectorUDT

android - OpenCV ORB 功能

java - 自组织模糊神经网络 (SOFNN) 在 Java、C、Python 等中的实现

java - 在 Java 中禁用 App Nap

ios - 第 4 代 iPod Touch 是否显示能源使用水平?