循环神经网络是神经网络链吗?

Posted

技术标签:

【中文标题】循环神经网络是神经网络链吗?【英文标题】:Are Recurrent Neural Networks a chain of Neural Networks? 【发布时间】:2017-02-19 02:56:09 【问题描述】:

我在问递归神经网络是否是神经网络链。

现在,直观地说,RNN 是一个神经网络,它具有来自过去输出的反馈循环,并且取决于一个人的实现,一个从隐藏层到下一个时间戳的隐藏层和/或输入的反馈循环。

不包括链接隐藏层的实现,这个实现与神经网络链有什么不同吗?

我认为,根据我的理解,可以从神经网络链构建这样的实现,其中 NN 的每个输入是给定数据的时间戳 + 最后一个时间戳的输出。

你知道这种直觉是否正确吗?还是我遗漏的 RNN 和 ANN 有什么区别?

我也问过我的机器学习专业教授这个问题,如果有人足够好奇,我可以看看我是否可以在收到回复后发布他的回复。

【问题讨论】:

【参考方案1】:

有两个重要的修改/差异:

    您必须共享“神经网络链”的参数,使其表现得像循环神经网络。 您的“展开”会随着时间的推移而增长 - 这意味着在第一次迭代中,您的“链”的长度为 1。在第二次 - 长度为 2,经过 N 步后 - 长度为 N。

如果您不介意这两个差异,展开模型与循环网络几乎相同。鉴于您将所有需要的数据存储在某个缓冲区中(因为在更新期间您将需要“过时的”输出/标签等)。

【讨论】:

生成展开类型的神经网络与创建将未使用参数设置为 0 的多输入 NN 有何不同? (假设你使用的是sigmoid激活函数) 这与 sigmoid 无关。答案中给出了区别 - 您需要 share 参数,如果您将其视为多列网络 - 那么您需要跨列共享参数。你的展开会随着时间的推移而增长(因此你的“大网”的大小也是如此)。当然,就 RNN 而言,它们的内存需求也会随着您需要在训练期间存储中间激活而增加(但在执行期间您不需要)。【参考方案2】:

大多数神经网络初学者都假设神经网络可以在 A* 路径规划、C++ 编程和图灵机附近的清晰理论水平上进行讨论。那是完全错误的,神经网络是生物神经科学的一个主题,她的用法是脑机接口。什么是神经网络,什么类型的神经网络更好的定义不是计算机科学家给出的,而是来自动物实验(猴子、老鼠)的研究和人类假肢医学研究的需求。

可以回答什么是循环神经网络以及限制是什么问题的具体论文:A recurrent neural network for closed-loop intracortical brain– machine interface decoders 在这篇论文中,电极被植入猴脑中,循环神经网络充当 BCI 来解释猴子大脑。另一方面:如果循环中没有生物生命形式,那么使用神经网络根本没有意义。

我知道,这只是对 OP 的间接回答,但我的正当理由是 pubmed.gov 上的大多数论文都不能作为 OpenAccess 获得,因此还有待进一步研究。

【讨论】:

人工神经网络当然是受到大脑的启发,它们可以应用于神经科学应用。但是你不需要物理大脑来使用人工神经网络,就像你需要一组培养皿来进行进化计算一样。此外,那篇论文中的人工神经网络并没有被用来模拟大脑。它们被用于将特定的电信号映射到猴子手臂的运动学数据。有很多非生物启发算法可以用于此(他们使用某种卡尔曼滤波器作为基线)。并且 ANN 可用于非大脑相关的非线性映射。

以上是关于循环神经网络是神经网络链吗?的主要内容,如果未能解决你的问题,请参考以下文章

入门 一文简述循环神经网络

循环神经网络(RNN)浅析

循环神经网络

循环神经网络

循环神经网络导读

神经网络之循环神经网络及细节分析