在前馈网络上使用循环神经网络的数学证明

机器算法验证 机器学习 时间序列 神经网络 循环神经网络
2022-03-19 11:40:30

我想知道并试图了解在处理顺序数据时,RNN 优于前馈网络是否存在任何数学原因。例如在建模时间序列、HMM 等时。假设序列的长度是固定的,但非常大。

直观上很明显,RNN 能够记住状态变量中的当前时刻之前的相关信息,并使用它根据当前输入例如,如果我们想使用前馈网络设置一个输入节点并将它们求和以获得,而使用 RNN 我们只需需要单个输入节点,并且状态记住总和tht1htxtYt=Xt+Xt1++X0XiYtXtXt1++X0

尽管上面的示例非常简单,但它强调了 RNN 的复杂性(节点数、深度)与前馈神经网络相比要低得多。

谁能提供一个不能被前馈捕获但可以被 RNN 很好逼近的函数族的例子?任何指向相同的参考也值得赞赏。

1个回答

我认为这不会是一个非常令人满意的答案,因为它在某种程度上是定义上的证明,但我相信它仍然是正确的(尽管不是很数学)。

谁能提供一个不能被前馈捕获但可以被 RNN 很好逼近的函数族的例子?

不。至少如果我们接受这个函数的定义,就不会;

...一组输入和一组允许输出之间的关系,每个输入都与一个输出相关。[维基百科]

如果我们想象一些假设函数的某个向量进行操作,并且还不能由任何前馈神经网络表示,我们可以简单地使用作为传递函数,,我们可以现在构建一个简单的感知器,它执行的功能的超集;ψ(x)xψ(x)ψ(x)

f(x)=ψ(b+wx)

我将把它作为练习留给读者来确定我们需要哪些偏差值和权重向量,以使我们的感知器输出模仿我们的神秘函数 !bwf(x)ψ(x)

RNN 唯一能做而前馈网络不能做的事情就是保留状态。由于输入仅映射到单个输出的要求,函数不能保留状态。因此,通过上述扭曲的示例,我们可以看到前馈网络可以做任何事情(但不能超过)任何功能(连续或其他)。

注意:我想我已经回答了你的问题,但我认为值得指出一点警告;虽然不存在不能被前馈网络映射的函数,但肯定有比前馈网络更适合 RNN 的函数。任何以函数内的特征集很容易表示为先前结果的转换的方式排列的函数可能更适合 RNN。

这方面的一个例子可能是找到斐波那契数列的第n个数字,如果输入是按顺序呈现的;

F(x)=F(x1)+F(x2)

RNN 可以通过仅使用一组线性变换函数来有效地逼近这个序列,而无状态函数或前馈神经网络需要逼近 Fibonacci 序列的函数解:

F(x)=ϕnψn5

其中是黄金比例,ϕψ1.618

正如您可以想象的那样,考虑到神经网络设计者可用的通常的传递函数数组,第一个变体更容易近似。