受限玻尔兹曼机与多层神经网络

机器算法验证 r 机器学习 分类 神经网络
2022-01-31 17:01:05

我一直想用神经网络来解决我面临的分类问题。我遇到了谈论 RBM 的论文。但据我了解,它们与拥有多层神经网络没有什么不同。这是准确的吗?

此外,我使用 R 并没有看到任何 RBM 的罐装包。我确实遇到过有关深度学习网络的文献,这些网络基本上是堆叠的 RBM,但不确定是否值得在 R 中实现它们。有人可以指点一下吗?谢谢

2个回答

首先,RBM ​​肯定不同于普通的神经网络,如果使用得当,它们会获得更好的性能。此外,训练 RBM 的几层,然后使用找到的权重作为多层 NN 的起点,通常比简单地使用多层 NN 产生更好的结果。

我能想到的最好的指针是 Coursera 上的这门课程,由负责 RBM 的人之一 Geoffrey Hinton 教授:

https://class.coursera.org/neuralnets-2012-001/class/index

关于 RBM 和去噪自动编码器的视频对于任何对该主题感兴趣的人来说都是宝贵的学习资源。

至于R中的实现,我也不知道,但如果你想实现它,最好不要使用纯R(除非你的数据不大)。RBM 的训练需要相当长的时间,如果你使用纯 R 而不是 R 和 C,它可以显着增长。

在 R 中,您可以使用神经网络和RSNNS (它为Stuttgart Neural Network Simulator提供接口)来拟合标准多层神经网络,但与 RBM 存在差异。

关于在 R 中实现深度神经网络,我认为唯一有价值的策略是连接现有的 FOSS 实现,这通常是一个比你自己重新实现东西更好的解决方案(我一直不太明白为什么每个人都需要重新发明轮子)。R 提供了很多功能来做到这一点,您可以利用 R 的数据处理以及现有解决方案的速度和即用型方面。例如,可以将 MDP 与 Python/R 接口功能接口,例如参见本文

编辑:来自 Statistically Significant 的 Andrew Landgraf为 RBM 提供了一些 R 代码