前馈神经网络和循环神经网络的基本区别是什么?

7
我经常读到,前馈神经网络和循环神经网络(RNN)之间存在根本差异,这是因为前馈网络缺乏内部状态和因此短期记忆。这乍一看似乎是有道理的。
然而,当使用时间反向传播算法学习循环神经网络时,如果我理解正确,循环网络被转化为等效的前馈网络。
这意味着实际上没有根本性的区别。为什么RNN在某些任务(图像识别、时间序列预测等)中表现更好,而深度前馈网络不行呢?
1个回答

3
培训虽然使用了一些技巧,但这并不改变事实,与前馈网络相比,循环神经网络的网络状态保留根本上的不同
"展开"的前馈网络并不等同于循环网络。它只是一个马尔可夫近似(由“展开”级数所给出的水平)。因此,您只需使用k步记忆模拟循环神经网络,而实际的循环神经网络在理论上具有无限的记忆能力。

区别基本上在于您必须在某个点停止深化或展开RNN的前馈逼近,我理解得对吗? 这可能是一个理论上的区别,但实际上,RNN的模拟也必须在某个点停止,这与在该点停止展开完全相同,对吗?我仍然看不到实际上的区别。 - kyra
好的,你在这里是错误的。实际上,模拟可以是任意长的。递归神经网络用于序列数据。你不会“运行网络k次迭代并读取输出”。你为序列中的每个输入数据运行一次,由于序列可以任意长,因此你具有任意长的记忆,而这对于学习过程来说并不正确。 - lejlot
你可以模拟任意长的时间间隔,但它仍然必须是有限的。为什么我不能只展开到这个任意深度? - kyra
你似乎没有理解“潜在无限”的概念。一切都是有限的,包括我们整个宇宙,这并不重要。关键是,前馈网络会随着这个值线性增长,而递归网络则不会。因此,您训练一个可以容纳任意长状态的“固定大小对象”。好好想想。您构建了一个具有“k”状态历史记录的网络。然后它开始工作...经过“k”个状态之后,您的前馈网络就没有更多的“记忆”,而递归网络则有。所以您构建了“k+1”个网络,并且仍然存在同样的问题。而递归网络则不会。您还是没有看到“根本”区别吗? - lejlot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接