可以将RBM看作是一种乘法神经网络吗?

神经网络是通过权重求和来运作的,但RBM…是将权重乘起来形成概率的?所以RBM是不是一种双向神经网络,它是通过乘法而不是加法来处理权重的?


回答:

首先,受限玻尔兹曼机(RBM)是一种神经网络,因此RBM和神经网络之间没有区别。我认为你所说的神经网络实际上是指传统的前馈神经网络。另外,请注意,前馈神经网络和RBM都不是完全连接的网络。“完全连接”这个术语来自图论,意思是每个节点都与其他所有节点相连,这显然在这里不成立。然而,层与层之间是完全连接的。

传统的前馈神经网络

传统的前馈神经网络(FNN)模型是一种用于建模数据的监督学习算法。为了训练这个网络,需要一个包含标记实例的数据集。将每个项目呈现给网络,依次计算网络中每一层的激活,直到达到输出层,然后将输出与目标输出(标签)进行比较。通常使用反向传播算法来获取每个单元的权重和偏置的梯度,以便通过梯度下降更新这些参数。通常,整个数据集或其批次一次性通过网络,参数更新是针对所有这些数据计算的。

RBM

RBM模型是玻尔兹曼机模型的一种为了计算效率而被限制的版本。RBM是没有同一层内单元之间连接的玻尔兹曼机。这里不适合详细讨论,但我会给你一些外部资源的链接。算法有许多变体,网上的解释没有明确指出这一点,对没有经验的人来说也不是很有用。

神经网络是用于将模型拟合到数据集的算法。在RBM中,我们尝试使用两层节点来做到这一点:一个我们设置为输入的“可见层”和一个我们用来建模输入层的“隐藏层”。关键的是,学习过程是无监督的。训练涉及使用隐藏层重构可见层,并使用重构前后节点状态的差异来更新权重和偏置(我大大简化了这个解释;更多信息请注意,这种训练算法称为对比散度(CD))。另外请注意,在这个模型中,神经元是概率性激活的。各层之间的连接是双向的,因此网络形成了一个二分图。

重要的是,RBM不像FNN那样产生输出。因此,它们通常用于在添加输出层之前训练网络,然后使用另一种算法(如自编码器)与RBM学习的权重一起使用。

查看这些资源:

总的来说

任何网络的性能都取决于其参数和设计选择,以及它所应用的问题。RBM和FNN适合不同的问题类型。

我强烈推荐Geoffrey Hinton在Coursera上的课程“Neural Networks for Machine Learning” – 虽然课程已经结束,但讲座仍然可以免费获取。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注