如何计算神经网络中的循环?

时间:2015-06-24 20:28:10

标签: machine-learning neural-network

如果两个节点在神经网络中相互指向,那么如何防止网络陷入无限循环?

2 个答案:

答案 0 :(得分:1)

您似乎想象的方法之一是:

calculate a node's new output
for each node that takes that node as input:
    calculate that node's new output

如果节点之间的连接中存在任何循环,这确实会导致无限循环。

应同时进行节点更新'因此:

for each node in nodes
  read inputs
  calculate and store new output as node->new_output
for each node in nodes
  node->output = node->new_output

答案 1 :(得分:0)

正如我在评论中提到的,有几个因素可能会影响神经网络训练的时间(可能无限长)。如果使用诸如反向传播之类的算法,其由一系列矩阵运算,取导数和调整神经元权重组成,则“循环”的概念用误称,并且同样用于前馈。一旦在测试装置上获得所需的错误,通常就可以实现训练网络。由于backprop是一种非凸优化方法,很可能在神经元的特定设置中,例如让它们返回到前一个,而不是二分,训练可能永远不会完成,因为所需的错误级别永远不会实现了,算法可能会陷入局部最小值。

一些其他神经网络模型,如具有先天递归结构的RNN,在某些区域表现相当不错,但训练它们并不像简单地执行反向传播那么简单,因此“无限循环”方面也不是那么容易在这里申请。

相关问题