【问题标题】:Calculating neural network with arbitrary topology计算任意拓扑的神经网络
【发布时间】:2018-03-16 03:36:38
【问题描述】:

在一些ppt 的演讲中阅读有关神经进化的文章我遇到了一个短语:

网络输出以标准方式计算

我按照一些指南(使用权重的向量表示 - 123)成功实现了一个简单的前馈机制,并且我(或多或少)了解如何计算循环网络。

我找不到的是如何计算具有任意拓扑的神经网络。有没有“标准方式”(算法)?

我想一种方法(假设前馈拓扑)虽然非常耗时,但会循环遍历所有神经元,直到计算出输出。

我想另一种方法可以将任意拓扑组织成层(也假设前馈拓扑 - this?)然后计算它。

问题

计算任意拓扑网络输出的“标准方法”是什么? / 如何计算任意拓扑网络输出?

假设

  1. 前馈拓扑(作为奖励的循环拓扑,可能要复杂得多)。
  2. 存在偏置节点。

附言。我正在与Python 合作,遵循 NEAT 论文。

【问题讨论】:

  • 似乎是更适合 CS StackExchange 的问题。

标签: machine-learning neural-network


【解决方案1】:

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

  • 拓扑必须(可简化为)directed acyclic graph (DAG)。您可能会问 RNN 是否与此要求相矛盾:它们不矛盾,因为每个 RNN 都可以是unrolled into a DAG。有other cases,可以在网络中模拟循环,但它在网络中的执行方式始终可以呈现为 DAG,并且反向传播是有限的。
  • 图表必须有专用的输入和输出节点,这样输入就不能依赖于输出。输入节点通常提供训练数据。
  • 还有其他限制,例如激活函数必须是可微的。

现在您可以注意到这些网络非常像前馈:前向传播从输入到输出,反向传播在另一个方向。这是可能的,因为 DAG 可以是 sorted topologically。实际上,拓扑排序只是以前馈方式表示的图。

对于循环仿真,迭代次数总是有限的,因为内存是有限的。网络实际上是一个 DAG,具有输入、输出和介于两者之间的一些重复模式,也可以看作是前馈。

总结:用于简单神经网络的相同机制适用于所有网络(标准,如果您愿意),但网络表示有时可能看起来不同。

【讨论】:

    猜你喜欢
    • 2017-10-10
    • 2013-06-30
    • 1970-01-01
    • 2019-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    相关资源
    最近更新 更多