我正在尝试实施自己的RBM,但我不确定,如何100%正确地衡量它的成功。所以我开始谷歌搜索并找到了许多解释,我不确定什么是正确的。
我正面临这个问题:
我有数据集Z,所以我可以将它划分为训练集X和测试集Y.我在X上训练RBM然后我想测量RBM在数据集Y上的成功。更确切地说,让我们说,我有两个RBM和我想以某种方式比较它们。我不确定重建输入向量是否是良好的测量。或者如果我应该比较RBM的能量。 (以及如何正确计算整组Y的能量)。
如果可能的话,我也会对高斯可见和全高斯单位感兴趣。
答案 0 :(得分:1)
RBM是一种无监督的学习范式,因此很难获得RBM是否优于另一种。
尽管如此,它们通常被用作最近和更令人兴奋的网络(如DBN)的预训练。因此,我的建议是训练尽可能多的RBM(无监督学习),然后将它们提供给学习的前馈层(监督学习)。现在,您可以通过衡量网络预测数据类别的好坏来了解您的RBM有多好。
例如,让我们有2个RBM(A和B):
您将A提供给前馈层(带反向传播的列车)和 准确度为80%的测试数据;
你给B前馈层(带反向传播的火车)和 准确度为90%的测试数据;
因此,B是比A更好的RBM,因为它提供了更好的功能,从而带来更好的训练和更高的样本外结果。注意:由于网络的准确性不同,请确保您多次执行监督培训并在最后对其进行平均,以便您的比较稳健。
编辑:
关于非监督评估,任务并不那么简单。正如Tijmen Tieleman在“训练受限玻尔兹曼机器中使用逼近可能梯度的近似”所述:
其中一项评估是学习的RBM对测试进行建模的程度 数据,即对数似然。这对于常规规模的RBM来说是难以处理的, 因为该计算的时间复杂度是指数的 最小层的大小(可见或隐藏)
然而,如果你有足够小的RBM,这是一种可行的方法。否则,你可以等一下......