【问题标题】:Neural Network Evaluation and Topology神经网络评估和拓扑
【发布时间】:2013-06-30 10:38:06
【问题描述】:

我的目标是使用神经网络解决 XOR 问题。我阅读了无数关于多层神经网络背后的理论、证明和数学的文章。这个理论是有道理的(数学……没那么多),但我有几个关于神经网络的评估和拓扑的简单问题。

我觉得我非常接近解决这个问题,但我开始质疑我的拓扑和评估技术。除了反向传播的复杂性,我只想知道我的评估方法是否正确。考虑到这一点,以下是我的问题:

  1. 假设我们有多个输入,每个输入是否都有自己的节点?我们是否曾经将两个值都输入到单个节点中?我们输入这些信息的顺序重要吗?

  2. 在评估图形输出时,每个节点是否在获得值后立即触发?或者我们是否改为从上面的层收集所有值,然后在我们消耗完所有输入后触发?

  3. 评估顺序重要吗?例如,如果“b”层中的给定节点已准备好触发——但同一层中的其他节点仍在等待输入——是否应该触发就绪节点?还是应该在触发之前加载层中的所有节点?

  4. 每一层是否应该连接到下一层的所有节点?

我附上了一张图片,可以帮助解释我的(一些)问题。

感谢您的宝贵时间!

【问题讨论】:

标签: machine-learning neural-network topology


【解决方案1】:

1) 是的,每个输入都有自己的节点,并且该节点始终是该输入类型的节点。顺序无关紧要 - 您只需要保持一致即可。毕竟,未经训练的神经网络可以学习将任何一组线性可分的输入映射到输出,因此不需要按顺序排列节点才能使其工作。

2 和 3)您需要在下一层中的任何节点触发之前从单个层收集所有值。如果您使用除逐步激活函数之外的任何激活函数,这一点很重要,因为输入的总和会影响向前传播的值。因此,在传播任何内容之前,您需要知道该总和是多少。

4) 哪些节点连接到哪些其他节点取决于您。由于您的网络不会太大并且 XOR 是一个相当简单的问题,因此将一层中的所有节点连接到下一层中的所有节点(即完全连接的神经网络)可能是最简单的。在其他问题中可能存在不使用这种拓扑结构更好的特殊情况,但没有一种简单的方法来解决它(大多数人要么使用试错法或遗传算法,如在 NEAT 中),并且出于此问题的目的,您无需担心它。

【讨论】:

  • 感谢您的快速响应和良好的信息!虽然问题很简单,但您会惊讶地发现有多少此类事情没有得到很好的定义:) 感谢您的回复。
  • 使用 NEAT,通过突变引入的新(隐藏)节点不会被分成级别。结果是隐藏节点的连接方式可能存在循环/循环/重复。在评估期间如何处理?
猜你喜欢
  • 2017-10-10
  • 2018-03-16
  • 1970-01-01
  • 2018-04-30
  • 2019-12-06
  • 2016-11-04
  • 2017-04-13
  • 2019-02-16
  • 2012-05-27
相关资源
最近更新 更多