如果两个节点在神经网络中相互指向,那么如何防止网络陷入无限循环?
答案 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,在某些区域表现相当不错,但训练它们并不像简单地执行反向传播那么简单,因此“无限循环”方面也不是那么容易在这里申请。