计算任意拓扑结构的神经网络

在阅读一些ppt演示文稿中关于神经进化的内容时,我遇到了这样一句话:

网络输出按标准方式计算

我成功地按照一些指南实现了一个简单的前馈机制(使用权重的向量表示 – 1, 2, 3),并且我大致了解如何计算循环网络的输出。

但我找不到如何计算任意拓扑结构的神经网络。是否有任何‘标准方式’(算法)呢?

我设想了一种方法(假设是前馈拓扑),尽管非常耗时,就是遍历所有神经元直到计算出输出为止。

我设想的另一种方法可能是将任意拓扑结构组织成层(也假设是前馈拓扑 – 这个?),然后进行计算。

问题

计算任意拓扑结构网络输出的‘标准方式’是什么?/ 如何计算任意拓扑结构网络的输出?

假设

  1. 前馈拓扑(循环拓扑作为额外选项,可能会复杂得多)。
  2. 存在偏置节点。

附注:我使用Python进行工作,遵循NEAT论文。


回答:

神经网络不能拥有真正的任意拓扑结构,存在一定的限制:

  • 拓扑结构必须是(可简化为)有向无环图 (DAG)。你可能会问RNN是否与此要求相悖:实际上并非如此,因为每个RNN都可以展开成一个DAG。在其他情况下,网络中可以模拟循环,但执行方式总是可以将网络表示为一个DAG,并且反向传播是有限的。
  • 图必须有专用的输入和输出节点,确保没有输入依赖于输出。输入节点通常提供训练数据。
  • 还有其他限制,例如,激活函数必须是可微的。

现在你可以注意到这些网络非常类似于前馈网络:前向传递从输入到输出运行,反向传递则相反。这是因为DAG可以进行拓扑排序。实际上,拓扑排序就是以前馈方式表示图的形式。

至于循环模拟,迭代次数总是有限的,因为内存是有限的。网络实际上是一个DAG,带有输入、输出和中间的一些重复模式,这些也可以被视为前馈。

总结:用于简单神经网络的相同机制也适用于所有网络(如果你喜欢,可以称之为‘标准’),但网络的表示有时看起来会有所不同。

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中创建了一个多类分类项目。该项目可以对…

发表回复

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