问题标签 [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.
matlab - GRBM implementation
I am implementing Gaussian input based RBM in MATLAB.
vi
has dimension of 100*784, w
has dimension of 784*500, sigma
has dimension of 1*784.
p(h|v)= sigmoid(cj+wij*vi/sigma^2)
. I am getting dimensional error when I multiply w*v/sigma^2
.
I have implemented it as below,
What is causing the error in the code
rbm - 以 rbm 为单位的高斯可见单位
我想实现高斯 RBM。为此,我想使数据的均值和单位方差为零。我的数据是 MNIST 数据集。数据集已从以下链接获取并遵循。
访问http://www.cs.toronto.edu/~hinton/code/makebatches.m
所以我以下面的方式实现。但是我的数据变成了 NAN。在将数据除以标准偏差后它变成了 NAN。
%开始积极阶段
% 零均值和单位方差
我用一小部分示例进行了尝试。效果很好。成为 NAN 的原因是什么。
如何摆脱这一点并使高斯输入具有零均值和单位方差。
machine-learning - 你能把 RBM 看作是一种乘法神经网络吗?
神经网络对权重求和,但 RBM ......将权重乘以概率?那么 RBM 是不是有点像双向神经网络,将权重相乘而不是相加?
machine-learning - 使用 RBM 的深度自动编码器
我正在使用 RBM 实现深度自动编码器。我知道,为了展开网络,我们需要将编码器的转置权重用于解码器。但我不确定我们应该为解码器使用哪些偏差。如果有人可以为我详细说明或向我发送伪代码链接,我将不胜感激。
python - (Python) 计算 P(v|h) 的高斯伯努利 RBM
语境:
我正在实施高斯伯努利 RBM,它类似于流行的 RBM,但具有实值可见单位。
确实,两者对隐藏值进行采样的过程p(h=1|v)
是相同的,即
问题:
我的问题在于编码(使用 Python)p(v|h)
,也就是说,
我对N()的工作原理有点困惑。我是否只需使用数据的标准偏差将高斯噪声添加到b + sigma * W.dot(h)
?
先感谢您。
machine-learning - 如何测试受限玻尔兹曼机实现?
我开发了一个简单的二进制受限玻尔兹曼机实现,现在我想测试它。(最终我会将它用于 DBN,但我想独立测试)。
我看到有几个人和论文在谈论测试它的 MNIST 数据集,但我没有找到有关如何做到这一点的详细信息。
我是否必须添加一个连接到隐藏单元的新分类层,然后使用反向传播来训练它?难道没有别的办法了吗?
有些人也在绘制权重(再次在 MNIST 中),但我对如何绘制权重以及它代表什么有疑问......
谢谢
c++ - 如何找出 RBM 无法正常工作的原因?
我正在尝试实现 RBM,并在 MNIST 数据集上对其进行测试。然而,它似乎并没有收敛。
我有 28x28 个可见单元和 100 个隐藏单元。我正在使用大小为 50 的小批量。对于每个时期,我都会遍历整个数据集。我的学习率为 0.01,动量为 0.5。权重是基于均值为 0.0 和标准偏差为 0.01 的高斯分布随机生成的。可见偏差和隐藏偏差初始化为 0。我使用逻辑 sigmoid 函数作为激活。
在每个 epoch 之后,我计算所有 mini-batch 的平均重建误差,以下是我得到的误差:
我绘制了要检查的权重直方图(从左到右:隐藏、权重、可见。顶部:权重,底部:更新):
epoch 3 之后权重的 直方图 epoch 3 之后权重的直方图 http://baptiste-wicht.com/static/finals/histogram_epoch_3.png
epoch 4 之后权重的 直方图 epoch 4 之后权重的直方图 http://baptiste-wicht.com/static/finals/histogram_epoch_4.png
但是,除了隐藏的偏见看起来有点奇怪,其余的似乎都还可以。
我还尝试绘制隐藏的权重:
epoch 3 之后的权重
epoch 3 之后的权重 http://baptiste-wicht.com/static/finals/hiddens_weights_epoch_3.png
epoch 4 之后的权重
epoch 4 之后的权重 http://baptiste-wicht.com/static/finals/hiddens_weights_epoch_4.png
(它们使用该函数以两种颜色绘制:
)
在这里,它们根本没有意义......
如果我走得更远,重建误差会下降一点,但不要超过 0.025。即使我在一段时间后改变动量,它会上升然后下降一点,但并不有趣。此外,在更多的时期之后,权重不再有意义。在我见过的大多数示例实现中,在对完整的数据集进行两到三遍迭代之后,权重才有意义。
我也尝试从可见单位重建图像,但结果似乎几乎是随机的。
我可以做些什么来检查我的实施中出了什么问题?权重应该在某个范围内吗?数据中的某些东西看起来真的很奇怪吗?
完整代码:https ://github.com/wichtounet/dbn/blob/master/include/rbm.hpp
neural-network - 为什么尽管网络是对称的,但可以学习 RBM 的非对称权重?
我尝试实现受限玻尔兹曼机来确认深度学习方法的实用性。我实现了一个 RBM,并为一层重建提供了 MNIST 字符识别数据。
但是对于每个隐藏节点,学习到的边权重是相同的。
然后我想知道为什么 RBM 可以从对称网络拓扑中获得非对称滤波器。我无法从围绕 RBM 的论文的数学公式中掌握情况。
给我一个直观的见解。
python - sklearn RBM 抛出 IndexError
我正在 scipy 稀疏格式的文本语料库上训练来自 sklearn 0.14 的 RBM。拟合时,它会运行一段时间(几分钟),但随后会中断并抛出此错误:
(编辑 1:) 代码是:
完整的追溯是:
这里有 199745 个训练示例,我不确定它为什么会超出这些范围。为什么会这样?我应该如何解决它?