问题标签 [dbn]
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.
machine-learning - 图像分类的深度学习
在阅读了几篇关于深度学习和深度信念网络的论文后,我对它的工作原理有了一个基本的了解。但仍然坚持最后一步,即分类步骤。我在 Internet 上找到的大多数实现都与生成有关。(MNIST 数字)
是否有一些解释(或代码)可以讨论使用 DBN 对图像(最好是自然图像或对象)进行分类?
此外,一些方向的指示会非常有帮助。
python - 如何在 PyBrain 中进行有监督的深度信念训练?
我无法让 DeepBeliefTrainer 在 PyBrain/Python 中处理我的数据。由于除了无监督的如何在 PyBrain 中使用深度学习之外,我找不到任何示例,我希望有人可以给出示例来展示基本的使用概念。
我尝试使用以下方法进行初始化:
我尝试使用 SupervisedDataset 进行回归,但训练失败了。有没有人成功使用深度学习训练器进行监督机器学习?你是怎么做到的?
我得到的错误:
machine-learning - 为实值数据实施 GB-RBM
我正在尝试为语音识别实现一个深度信念网络。因此,需要第一层 RBM 具有高斯可见单元。
我使用了@Andrej Karpathy 的 matrbm ( https://code.google.com/p/matrbm/ ) 并进行了一些更改以将伯努利-伯努利 RBM 转换为高斯-伯努利 RBM。
更改后的版本可在http://pastebin.com/KTPHnizd获得
我做错什么了吗?
machine-learning - 深度学习技术(DNN、DBN、...)在实践中的速度有多快?
深度学习技术(深度神经网络、深度信念网络、深度堆叠网络……)在某些领域非常有效。他们需要很长时间来训练,但这是唯一一次的成本。
我阅读了几篇关于不同技术的论文,它们只关注准确性和训练它们的时间。一旦受过训练,他们在实践中产生答案的速度有多快?
是否有一些数据可用于对可能具有数百万个参数的深度网络进行基准测试?
我认为它们的速度非常快,因为所有权重都是固定的,但是由于函数可能非常复杂且参数数量非常多,我不确定它们在实践中的实际表现如何。
python-2.7 - 为主题建模实现深度信念网络
我正在尝试为Geoffrey Hinton 和 Ruslan Salakhutdinov的 Semantic Hashing 文章 ( http://www.cs.toronto.edu/~hinton/absps/sh.pdf ) 实现深度信念网络。我很难弄清楚如何在受限 Boltzmann 机 (RBM) 中实现受限泊松模型,以便我的模型将采用实值字数向量并正确更新权重?
您可以在下面找到我的 RBM 的基本代码:
其中伯努利分布和约束泊松模型的方法如下:
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))。
那么,激活函数应该是什么以及应该如何对值进行采样?
machine-learning - 深度信念网络与卷积神经网络
我是神经网络领域的新手,我想知道深度信念网络和卷积网络之间的区别。另外,有没有深度信念和卷积神经网络结合的深度卷积网络?
这是我到现在为止收集到的。如果我错了,请纠正我。
对于图像分类问题,Deep Belief 网络有很多层,每一层都使用贪婪的逐层策略进行训练。例如,如果我的图像大小是 50 x 50,并且我想要一个有 4 层的深度网络,即
- 输入层
- 隐藏层 1 (HL1)
- 隐藏层 2 (HL2)
- 输出层
我的输入层将有 50 x 50 = 2500 个神经元,HL1 = 1000 个神经元(比如说),HL2 = 100 个神经元(比如说)和输出层 = 10 个神经元,为了训练输入层和 HL1 之间的权重(W1),我使用自动编码器 (2500 - 1000 - 2500) 并学习大小为 2500 x 1000 的 W1(这是无监督学习)。然后我通过第一个隐藏层前馈所有图像以获得一组特征,然后使用另一个自动编码器(1000 - 100 - 1000)获得下一组特征,最后使用 softmax 层(100 - 10)进行分类。(仅学习最后一层(HL2 - 输出,即 softmax 层)的权重是监督学习)。
(我可以使用 RBM 代替自动编码器)。
如果使用卷积神经网络解决了同样的问题,那么对于 50x50 的输入图像,我将开发一个仅使用 7 x 7 补丁的网络(比如说)。我的图层将是
- 输入层(7 x 7 = 49 个神经元)
- HL1(25 个神经元,用于 25 个不同的特征)-(卷积层)
- 池化层
- 输出层(Softmax)
为了学习权重,我从大小为 50 x 50 的图像中获取 7 x 7 个补丁,并通过卷积层前馈,因此我将有 25 个不同的特征图,每个大小为 (50 - 7 + 1) x (50 - 7 + 1) = 44 x 44。
然后我使用一个 11x11 的窗口来池化手,因此得到 25 个大小为 (4 x 4) 的特征图作为池化层的输出。我使用这些特征图进行分类。
在学习权重时,我没有使用深度信念网络(无监督学习)中的逐层策略,而是使用监督学习并同时学习所有层的权重。这是正确的还是有其他方法可以学习权重?
我的理解正确吗?
因此,如果我想使用 DBN 进行图像分类,我应该将所有图像调整为特定大小(比如 200x200)并在输入层中有那么多神经元,而在 CNN 的情况下,我只在一小块图像上进行训练输入(比如 10 x 10 大小为 200x200 的图像)并在整个图像上对学习的权重进行卷积?
DBN 是否提供比 CNN 更好的结果,还是完全依赖于数据集?
谢谢你。
python - PyBrain - 如何进行深度信念网络训练?
我在使用 Pybrain 训练 DBN 时遇到了一些困难。首先,我尝试以简单的方式做到这一点:
我遇到了这个问题:如何在 PyBrain 中进行有监督的深度信念训练?,而建议的解决方案只是导致了另一个错误:
所以我试图从头开始定义一个网络!
仍然当我运行时:
我看到这个错误:
这与相关 RBM 中的隐藏层有关。
我在这里错过了什么吗?
python - 如何以“mnist.pkl.gz”中使用的确切格式和数据结构将我的数据集放入 .pkl 文件中?
我正在尝试使用 Python 中的 Theano 库对 Deep Belief Networks 进行一些实验。我使用这个地址中的代码:DBN full code。此代码使用MNIST 手写数据库。这个文件已经是pickle格式了。它未选中:
- 动车组
- 有效集
- 测试集
在以下内容中进一步未腌制:
- train_set_x, train_set_y = train_set
- 有效集合 x,有效集合 y = 有效集合
- test_set_x, test_set_y = test_set
请问有人可以给我构造这个数据集的代码以便创建我自己的吗?我使用的 DBN 示例需要这种格式的数据,我不知道该怎么做。如果有人对如何解决此问题有任何想法,请告诉我。
这是我的代码: