我已经开始阅读有关循环神经网络 (RNN) 和长短期记忆 (LSTM) 的文章……(……哦,这里没有足够的代表点来列出参考……)
我不明白的一件事:隐藏层的每个实例中的神经元似乎总是与隐藏层的前一个实例中的每个神经元“完全连接”,而不是仅仅连接到它们以前的自我实例/自己(也许还有其他几个)。
全连接真的有必要吗?似乎您可以节省大量存储和执行时间,并在没有必要的情况下及时“回溯”。
这是我的问题的图表...
我认为这相当于询问是否可以在重复隐藏层之间的“突触”的“W^hh”矩阵中只保留对角线(或近对角线)元素。我尝试使用有效的 RNN 代码(基于Andrew Trask 的二进制加法演示)运行它——即将所有非对角项设置为零——它的表现非常糟糕,但将项保持在对角线附近,即带状线性系统 3 元素范围 - 似乎与完全连接的版本一样好。即使我增加了输入和隐藏层的大小......所以......我只是幸运吗?
我找到了Lai Wan Chan 的一篇论文,他证明了对于线性激活函数,总是可以将网络简化为“Jordan 规范形式”(即对角线和附近的元素)。但似乎没有这样的证据可用于 sigmoid 和其他非线性激活。
我还注意到,对“部分连接”RNN 的引用似乎在大约 2003 年之后几乎消失了,而且我从过去几年中读到的处理方法似乎都假设是完全连接的。那么……这是为什么呢?
编辑:在这个问题发布 3 年后,NVIDIA 发布了这篇论文,arXiv:1905.12340:“Rethinking Full Connectivity in Recurrent Neural Networks”,表明稀疏连接通常与完全连接的网络一样准确且速度更快。上面的第二张图对应于 arXiv 论文中的“Diagonal RNN”。NVIDIA,我很乐意在未来的工作中进行合作...... ;-)
