如果神经网络中的两个节点相互指向,如何防止网络陷入无限循环?
发布于 2015-06-25 04:52:57
你所设想的方法论是:
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发布于 2015-06-25 05:31:46
正如我在评论中提到的,有几个因素可能会影响神经网络训练所需的时间(可能是无限长)。如果使用诸如反向传播之类的算法,该算法由一系列矩阵运算、取导数和调整神经元权重组成,则在误称中使用“循环”的概念,前馈也是如此。一旦在测试集上达到期望的误差,通常就可以训练网络。由于backprop是一种非凸优化方法,因此很可能在神经元的特定设置中,例如让它们引用先前的神经元,而不是二分的,训练可能永远不会完成,因为永远不会达到期望的误差水平,并且算法可能停留在局部最小值。
其他一些神经网络模型,如具有固有递归结构的RNN,在某些领域表现得相当好,但训练它们并不像简单地执行反向传播那样简单,因此“无限循环”方面也不太容易在这里应用。
https://stackoverflow.com/questions/31036378
复制相似问题