问题标签 [rbm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1441 浏览

machine-learning - 具有 NRLU 隐藏单元的 Gaussian-RBM(在 DBN 中)?

我正在研究用于图像分类的 RBM(用于 DBN)。我使用两个 RBM 层。第一个具有高斯可见单元和二进制隐藏单元,第二个具有二进制可见单元和 softmax 隐藏单元。它工作得很好。我现在想尝试使用噪声校正线性单元作为隐藏层,但我不明白如何实现它们。我所尝试的一切都导致了可怕的结果。

现在,如果我理解正确:ReLU 的激活概率只是 p = max(0, x + N(0, 1)),但是如何对值进行采样以激活可见单元?噪声是否应该仅用于采样而不用于激活概率?

另一件事:在一些论文中,我看到噪声是 N(0,1),而另一些则使用 N(0,sigmoid(x))。

那么,激活函数应该是什么以及应该如何对值进行采样?

0 投票
1 回答
1822 浏览

gaussian - Gaussian-Bernoulli RBM 高重构误差

按照大多数文献中的建议,我将我的数据归一化为零均值和单位方差,以预训练 GB-RBM。但无论我选择什么学习率,无论历元数是多少,我的平均重建误差都不会低于 0.6 左右。堆叠的 BB-RBM 的重建误差在几个时期内很容易下降到 0.01。我已经使用了几个实现 GBRBM 的工具包,如http://www.cs.toronto.edu/~hinton/absps/guideTR.pdf中所述,但都有相同的问题。我是否遗漏了什么,或者重建错误是否意味着保持在 50% 以上?

我通过沿输入向量的每个维度减去均值并除以标准差来标准化我的数据:

大小(mfcc)-> [mlength 行 x 39 列]

这确实给了我沿每个维度的零均值和单位变量。我尝试了不同的数据集、不同的功能和不同的工具包,但我的重建错误从未低于 GBRBM 的 0.6。谢谢

0 投票
1 回答
2068 浏览

matlab - Gaussian-RBM 在一个简单的例子上失败了

我想对具有连续输入变量的受限玻尔兹曼机有一个基本的了解。我正在尝试设计最简单的示例,以便可以轻松跟踪行为。所以,就在这里。

输入数据是二维的。每个数据点均取自两个对称正态分布 (sigma = 0.03) 之一,其中心间隔良好(15 倍 sigma)。RBM 具有二维隐藏层。

我希望获得一个 RBM,它会以与我的火车数据相同的方式生成两个点云。我什至在想,在添加了一些稀疏约束之后,对于从一个分布中提取的数据,我的隐藏层等于 (0,1),而对于另一个分布,则隐藏层等于 (1,0)。

我自己写了matlab代码,尝试了一些网上的解决方案(比如DeepMat:https ://github.com/kyunghyuncho/deepmat ),但是不管我的步长有多小,RBM都会收敛到一个平凡的解决方案,其中预测可见层等于整个数据的平均值。我尝试增加隐藏层的维度,但它并没有实质性地改变任何东西。我还尝试通过零均值和方差对数据进行归一化 - 没有变化。我也有 sigma = 1 而不是 0.03,同时保持 15*sigma 的传播,同样没有变化。

由于这个问题不仅存在于我的代码中,也存在于其他代码中,所以我认为我可能在做一些根本错误的事情,并试图以不应该使用的方式使用 RBM。我将不胜感激评论/建议,或者如果有人可以重现我的问题。

0 投票
0 回答
59 浏览

machine-learning - 通过受限的 Boltzmann 机进行数据传播

在 RBM 中,它使节点内的所有关系发生概率。那么如何通过 RBM 传播数据呢?只是一阶抽样?那么波动不会太大吗?

还是它像前馈 mlp 一样工作?(即 hj = \sum_i vi * wij)但在 RBM 中没有这个概念,因为所有论文都说它是随机模型。

0 投票
1 回答
431 浏览

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

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

我面临这个问题:

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

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

0 投票
1 回答
74 浏览

machine-learning - 使用 ContrastiveDivergence 计算 RBM 导数的差异

谁能解释我用 -h_j * x_k 和 -h_j(x) * x_k 计算 RBM 导数之间的区别?我找到了两种实现的源代码,但我不确定哪个更好(为什么?)

0 投票
1 回答
93 浏览

machine-learning - Restricted Boltzman Machine 中“提取 8x8 补丁”背后的原因是什么?

我在 RBM 的 pyLearn2(机器学习库)示例上找到了这个文档。有人能告诉我为什么它更容易吗?

对于它的价值,我对 RBM 并不了解,所以请多多包涵。完整代码请参考此链接

0 投票
1 回答
3107 浏览

python - scikit 中 RBM 的预测

我想在 scikit 中使用 RBM。我可以像许多其他分类器一样定义和训练 RBM。

但我似乎无法找到一个让我做出预测的函数。我正在寻找 scikit 中以下内容之一的等价物。

BernoulliRBM 中不存在这两种功能。

0 投票
2 回答
3578 浏览

r - R Package Deepnet:训练和测试 MNIST 数据集

我正在尝试使用deepet包的dbn.dnn.train函数训练 MNIST 数据集。任务是分类任务。我正在使用以下命令

我面临的问题是:

1)标签应该是因子类型向量。但是当我输入标签作为因子时,函数会给出一个错误,即“y 应该是矩阵或向量”。所以,我使用标签作为数字。如何进行分类任务

2) 对 dbn.dnn.train 进行预测的功能是什么。我正在使用 nn.predict 但文档提到输入应该是由函数 nn.train 训练的神经网络(未提及 dbn.dnn.train)。所有记录的输出为 0.9986

0 投票
0 回答
422 浏览

matlab - 受限玻尔兹曼机 - 预处理数据

我在 MATLAB 上编程,想使用带有实值输入的 RBM,比如灰度图像,所以我试着按照 Hinton 在这篇文章中所说的话。

图像在 [0, 255] 中具有整数值,并存储在矩阵 D 中,即 [numImages x numPixel]。所以我开始预处理数据:

  • 缩放整个数据集,使所有值都在 [0, 1] 中

    /li>
  • 使每个像素在所有图像中的均值为零,因此我从矩阵的每一列中减去其平均值

    /li>
  • 将整个数据集除以其标准差,使得每个像素都有单位方差,其中

    /li>

但是当我尝试绘制图像时,结果显然很暗,因为许多值变为负数并被剪裁为零。

这可以吗,还是我在预处理时犯了任何错误?