问题标签 [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 回答
2844 浏览

matlab - 实值输入深度信念网络(RBM)的问题

我正在尝试使用 MNIST 数字 matlab 代码的改编版本自动编码 Olivetti 人脸数据集的神经网络减少数据的维度中报告的结果,遇到一些困难。似乎无论我对 epochs、速率或动量进行多少调整,堆叠的 RBM 都进入微调阶段,误差很大,因此在微调阶段没有得到很大改善。我在另一个实值数据集上也遇到了类似的问题。

对于第一层,我使用的是学习率较小的 RBM(如论文中所述),并且

我相当有信心按照支持材料中的说明进行操作,但我无法获得正确的错误。

有什么我想念的吗?请参阅下面我用于实值可见单元 RBM 的代码,以及整个深度训练。其余的代码可以在这里找到。

rbmvislinear.m:

dofacedeepauto.m:

谢谢你的时间

0 投票
4 回答
3120 浏览

statistics - 受限玻尔兹曼机 - 重建

我读了一些关于受限玻尔兹曼机的文章。这些机器的重建能力已经过测试。我了解培训的工作原理,但不了解这种重建是如何完成的。任何人都可以给我一些提示吗?

0 投票
1 回答
1260 浏览

java - 限制玻尔兹曼机中的自由能近似方程

根据深度学习教程

python中的自由能是

我不是很擅长python,基本上它将每个可见单元的产品专家作为向量wx_b,计算exp和加1,计算log并求和它的隐藏项。

我认为这与学习深度架构中的自由能方程有点不同:

FreeEnergy(x) = −b′x − ∑log∑e^hi(ci+Wix)。

在哪里:

  • hi是单位i隐藏层,
  • cii向量 c 中的隐藏偏差。

它计算 exp 和 sum,计算相对于 sum 值的 log。毕竟根据可见单位的数量来总结所有产品专家。

上述等式是来自Learning Deep Architectures for AI (Yoshua Bengio) 的 eq.5.21

下面是我的java实现草稿vis_v是可见层样本,hid_v是隐藏层单元样本。

这是某种近似吗?我试图在java中实现同样的东西,但我对此感到困惑。提前感谢您的帮助!

0 投票
1 回答
640 浏览

machine-learning - 用于矢量数据(而不是二进制)的受限玻尔兹曼机的替代方案

我有一个非常大的语料库,每个元素都包含大量高维数据。元素不断被添加到语料库中。潜在地,每次交互只需要考虑语料库的一部分。元素被标记,可能带有多个标签和与这些标签的强度相关的权重。据我了解,数据并不稀疏。

输入数据是一组介于 -1...1 范围内的参数,介于大约 (10-1000) 个输入之间。这可能有点灵活,具体取决于最合适的机器学习方法。

我的目标是高端智能手机设备。理想情况下,处理可以在同一设备上完成,但我愿意将其传输到适度的服务器。

对于这种情况,什么是合适的机器学习方法?

我一直在阅读有关随机福雷斯特决策树、受限博尔兹曼机、深度学习博尔兹曼机等的信息,但我真的可以使用经验丰富的人的建议来指导我采用一些可以很好地提供条件的研究方法。

如果我的描述看起来有问题,请让我知道,因为我仍在掌握这些想法,并且可能从根本上误解了某些方面。

0 投票
1 回答
4626 浏览

java - 受限玻尔兹曼机和深度学习的 Java 代码

从最近几天开始,我正在阅读和研究受限玻尔兹曼机器和深度学习。现在为了测试深度学习的能力,我正在寻找 Java 代码。我在谷歌上搜索了很长时间,但没有得到任何令人满意的实现。

例如,我发现以下受限玻尔兹曼机的 java 库:

http://jarbm.sourceforge.net/

但是我既不能得到它的源代码,也不能得到任何关于它使用的详细帮助。他们有这段代码的 java 文档,但没有解释它的用法。没有给出示例。

我在 Python 中找到了一个简单的实现:

https://github.com/echen/restricted-boltzmann-machines

谁能告诉我在哪里可以在 java 中为玻尔兹曼机器和深度学习获得类似的实现?(如果我得到源代码最好。否则至少带有示例使用代码的java库或关于它的使用的详细帮助。)

谢谢,尼丁

0 投票
0 回答
587 浏览

machine-learning - 为实值数据实施 GB-RBM

我正在尝试为语音识别实现一个深度信念网络。因此,需要第一层 RBM 具有高斯可见单元。

我使用了@Andrej Karpathy 的 matrbm ( https://code.google.com/p/matrbm/ ) 并进行了一些更改以将伯努利-伯努利 RBM 转换为高斯-伯努利 RBM。

更改后的版本可在http://pastebin.com/KTPHnizd获得

我做错什么了吗?

0 投票
1 回答
902 浏览

softmax - 如果我在 RBM 中使用 softmax,我是否需要在隐藏单元和可见单元中使用它?

据我了解,当在 RBM 可见单元中使用 K 值的 softmax 时,隐藏单元保持二进制。

如果是这样 - 我不确定如何计算二进制单位对可见单位的贡献。我是否应该将隐藏单元中的二进制 0 状态与 softmax 的 K 个状态中的特定状态相关联,并将 1 状态与其他 K-1 状态相关联?或者,隐藏单元中的 0 可能与可见单元的所有 K 个可能状态中的 0 相关(但这不与至少 K 个状态中的一个必须打开的事实相矛盾吗?)。

0 投票
2 回答
2299 浏览

matlab - 连续 RBM:仅对负值输入数据表现不佳?

我试图将这个连续 RBM 的 python 实现移植到 Matlab:http: //imonad.com/rbm/restricted-boltzmann-machine/

我生成了一个(嘈杂的)圆形形状的二维训练数据,并用 2 个可见层和 8 个隐藏层训练了 rbm。为了测试实现,我将均匀分布的随机数据馈送到 RBM 并绘制重建数据(与上面链接中使用的过程相同)。

现在令人困惑的部分:使用 (0,1)x(0,1) 范围内的训练数据,我得到非常令人满意的结果,但是使用 (-0.5,-0.5)x(-0.5,-0.5) 范围内的训练数据或 ( -1,0)x(-1,0) RBM 仅重建圆最右上方的数据。我不明白是什么原因造成的,这只是我没有看到的实现中的错误吗?

有些图,蓝点是训练数据,红点是重建数据。

这是我对 RBM 的实施: 培训:

活动隐藏.m:

ActivVis.m:

sigFun.m:

重建:

0 投票
2 回答
4437 浏览

machine-learning - 用于实值数据的受限玻尔兹曼机 - 高斯线性单元 (glu) -

我希望我的受限玻尔兹曼机学习实值数据的新表示(参见: Hinton - 2010 - A Practical Guide to Training RBMs)。我正在努力实现高斯线性单元。

随着可见层中的高斯线性单元,能量变为E(v,h)= ∑ (v-a)²/2σ - ∑ bh - ∑v/σ h w。现在我不知道如何改变对比发散学习算法。可见单位将不再被采样,因为它们是线性的。我使用期望(平均激活)p(v_i=1|h)= a +∑hw + N(0,1)作为他们的状态。关联保持不变( pos: data*p(h=1|v)'neg: p(v=1|h)*p(h=1|v)')。但这只会在我想重建数据时导致随机噪声。错误率将在 50% 左右停止改善。

最后我想在两层都使用高斯线性单元。那么我将如何获得隐藏单元的状态呢?我建议使用平均场激活p(h_i=1|v)= b +∑vw + N(0,1),但我不确定。

0 投票
3 回答
1944 浏览

machine-learning - 使用受限玻尔兹曼机推断缺失数据

与 netflix 竞赛类似,假设我们有一个缺少评分的电影数据集。我将如何修改 RBM 以允许它推断缺失值?在相关论文中,一种直接的方法是将随机值归因于缺失的可见特征。但是,我对重建准确性持怀疑态度,因为它可能取决于赋予这些缺失可见节点的初始值。

你有什么建议?

谢谢