测量受限玻尔兹曼机的成功

我正在尝试实现自己的RBM,但我不确定如何100%正确地测量它的成功。因此,我开始在网上搜索,发现了许多解释,我不确定哪个是正确的。

我面临这个问题:

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

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


回答:

RBM是一种无监督学习范式,因此很难判断哪个更好。

尽管如此,它们通常被用作最近和更令人兴奋的网络(如DBN)的预训练。因此,我的建议是训练你想要比较的尽可能多的RBM(无监督学习),然后将它们交给前馈层进行学习(有监督学习)。从这里开始,你现在可以通过测量你的网络预测数据类别的效果来评估你的RBM的表现。

举个例子,假设有两个RBM(A和B):

  • 你将A交给前馈层(用反向传播训练),测试数据的准确率达到80%;

  • 你将B交给前馈层(用反向传播训练),测试数据的准确率达到90%;

因此,B比A是一个更好的RBM,因为它提供了更好的特征,导致更好的训练和更高的样本外结果。注意:由于网络的准确性会有所不同,请确保多次进行有监督训练,并在最后进行平均,这样你的比较才具有鲁棒性。

编辑:

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

其中一种评估方法是学习的RBM对测试数据的建模效果,即对数似然。对于常规大小的RBM来说,这是不可行的,因为该计算的时间复杂度是可见层或隐藏层中最小层大小的指数级。

然而,如果你的RBM足够小,这是一种可能的方法。否则,你只能等待…

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注