我确实知道带有反向传播的前馈多层神经网络与强化学习一起使用,以帮助它概括我们的代理所做的动作。也就是说,如果我们有一个很大的状态空间,我们可以做一些动作,它们将有助于泛化整个状态空间。
相反,递归神经网络做什么?一般来说,它们用于什么任务?
我确实知道带有反向传播的前馈多层神经网络与强化学习一起使用,以帮助它概括我们的代理所做的动作。也就是说,如果我们有一个很大的状态空间,我们可以做一些动作,它们将有助于泛化整个状态空间。
相反,递归神经网络做什么?一般来说,它们用于什么任务?
递归神经网络,简称 RNN(尽管要注意RNN在文献中经常用于指定随机神经网络,它实际上是递归神经网络的一个特例),具有非常不同的“风格”,这导致它们表现出各种行为和特征。然而,总的来说,这些行为和特征的许多阴影都植根于单个神经元的 [反馈] 输入的可用性。这种反馈来自网络的其他部分,无论是本地的还是远处的,来自同一层(在某些情况下包括“自我”),甚至来自不同的层(*)。它视为“正常”的反馈信息输入神经元,然后可以至少部分影响其输出。
与在前馈网络的学习阶段用于微调各种 [仅前馈] 连接的相对权重的反向传播不同,RNN 中的反馈构成了它们连接的神经元的真正输入。
反馈的用途之一是使网络对输入(即整个网络的输入)中的噪声和其他缺陷更具弹性。这样做的原因是,除了与网络输入“直接”相关的输入(前馈网络中可能存在的输入类型)之外,神经元还具有有关其他神经元“思考”什么的信息。然后,这些额外信息导致Hebbian 学习,即[通常]一起激发的神经元应该“鼓励”彼此激发的想法。实际上,来自“类似触发”的相邻神经元(或不类似的邻居)的这种额外输入可能会促使神经元触发,即使它的非反馈输入可能不会触发(或触发较弱,取决于网络类型)。
这种对输入缺陷的恢复能力的一个例子是联想记忆,这是 RNN 的常见应用。这个想法是使用反馈信息来“填补空白”。
反馈的另一个相关但独特的用途是抑制信号,其中给定的神经元可能会知道,虽然它的所有其他输入都会促使它触发,但来自网络其他部分的特定反馈输入通常表明其他输入不是被信任(在这个特定的上下文中)。
反馈的另一个极其重要的用途是,在某些架构中,它可以将时间元素引入系统。一个特定的[反馈]输入可能不会太多地指示神经元它[现在]“认为”什么,而是“提醒”神经元说,两个周期前(无论周期可能代表什么),网络的状态(或其中一个它的一个子状态)是“X”。这种“记住”(通常)最近的过去的能力是对输入中噪声的弹性的另一个因素,但它的主要兴趣可能是将“预测”引入学习过程。这些延时输入可能被视为来自网络其他部分的预测:“我在走廊里听到脚步声,希望听到门铃[或钥匙洗牌]”。
(*) 顺便说一句,在规定允许的连接(无论是反馈还是前馈)的“规则”中如此广泛的自由度解释了为什么有这么多不同的 RNN 架构及其变体)。这些许多不同架构的另一个原因是,RNN 的一个特点是,与前馈模型相比,它们在数学上或其他方面都不容易处理。结果,在数学洞察力或简单的试错法的驱动下,人们尝试了许多不同的可能性。
这并不是说反馈网络完全是黑匣子,实际上一些 RNN,例如Hopfield Networks是很好理解的。只是数学通常更复杂(至少对我来说;-))
我认为上面的内容,一般(太笼统了!),解决了被吞噬的 elysium(OP)问题“ RNN 做什么代替”,以及“它们用于的一般任务”。为了补充这些信息,这里有一个关于 RNN 应用的不完整和非正式的调查。收集这样一份清单的困难是多方面的:
无论如何,这是清单
还有很多与 RNN 的时间维度相关的应用(另一个通常找不到 FF 网络的领域)
在基本的强化学习框架中有一个假设,即您的状态/动作/奖励序列是马尔可夫决策过程。这基本上意味着您不需要记住有关本集中先前状态的任何信息来做出决定。
但这显然不适用于所有问题。有时您确实需要记住一些最近发生的事情才能做出明智的决定。有时您可以明确地将需要记住的内容构建到状态信号中,但通常我们希望我们的系统了解它需要记住的内容。这称为部分可观察马尔可夫决策过程(POMDP),有多种方法可以用来处理它。一种可能的解决方案是使用循环神经网络,因为它们将先前时间步骤的细节合并到当前决策中。