我正在尝试实施自己的RBM,但是我不确定如何正确地100%衡量其成功。所以我开始谷歌搜索,发现了很多解释,但我不确定什么是正确的。
我正面临这个问题:
我有数据集Z,所以我可以将其分为训练集X和测试集Y。我在X上训练RBM,然后我想在数据集Y上衡量RBM的成功率。更准确地说,我有两个RBM和I想以某种方式比较它们。我不确定重构输入向量是否是好的度量。或者,如果我应该比较RBM的能量。 (以及如何正确计算整个集合Y的能量)。
如果可能的话,我也会对高斯可见单位和全高斯单位感兴趣。
最佳答案
RBM是一种无监督的学习范例,因此很难访问一个人是否比另一个人更好。
尽管如此,它们通常用作对DBN之类的最新,更令人兴奋的网络的预训练。因此,我的建议是要训练要比较的RBM(无监督学习),然后将它们带到前馈层进行学习(有监督学习)。现在,您可以从此处通过测量网络预测数据类别的能力来获得RBM的优势。
例如,让我们有2个RBM(A和B):
您将A赋予前馈层(反向传播训练),然后
测试数据的准确性为80%;
您将B赋予前馈层(反向传播训练),然后
测试数据的准确性达到90%;
因此,B比A具有更好的RBM,因为它提供了更好的功能,从而导致了更好的训练和更高的样本外结果。注意:随着网络准确性的变化,请确保您执行了几次有监督的训练,并在最后平均它们,以使您的比较稳健。
编辑:
关于非监督评估,任务并不那么简单。正如Tijmen Tieleman在“使用似然梯度的近似训练受限玻尔兹曼机器”中提出的:
评估之一是学习的RBM对测试进行建模的能力如何
数据,即对数可能性。对于常规尺寸的RBM,这是很难解决的,
因为该计算的时间复杂度在
最小层的大小(可见或隐藏)
但是,如果您的RBM足够小,这是一种可行的方法。否则,您可以等待...
关于machine-learning - 测量受限玻尔兹曼机的成功,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26891851/