神经网络评估与拓扑

时间:2013-07-02 21:28:07

标签: machine-learning neural-network topology

我的目标是使用神经网络解决XOR问题。我读过无数关于多层神经网络背后的理论,证明和数学的文章。理论是有意义的(数学......不是那么多),但我对神经网络的评估和拓扑有一些简单的问题。

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

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

  2. 在评估图输出时,每个节点一获取值就会触发吗?或者我们是否从上面的图层收集所有值,然后在消耗完所有输入后关闭它们?

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

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

  5. enter image description here

    我附上了一张有助于解释(部分)我的问题的图片。

    感谢您的时间!

1 个答案:

答案 0 :(得分:4)

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

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

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