循环神经网络相对于基本人工神经网络的优势

数据挖掘 机器学习 神经网络 深度学习 rnn
2021-10-04 03:12:57

我已经开始阅读深度学习书,但我无法理解 RNN 的优势。这部分让我感到困惑:

因此,展开过程引入了两个主要优点:

  1. 无论序列长度如何,学习模型始终具有相同的输入大小,因为它是根据从一个状态到另一个状态的转换来指定的,而不是根据状态的可变长度历史来指定的。
  2. 可以在每个时间步使用具有相同参数的相同转换函数 f。

这两个因素使得学习在所有时间步长和所有序列长度上运行的单个模型 f 成为可能,而不是需要为所有可能的时间步长学习单独的模型。学习单个共享模型可以泛化到训练集中没有出现的序列长度,并且可以使用比没有参数共享所需的更少的训练示例来估计模型。

我理解第二个优势。因为计算是循环的,序列中除了当前元素之外的输入是前一个隐藏状态的输出,它与当前隐藏状态具有相同的结构,因此是共享参数。

但我不明白第一个优势。我无法将其可视化或在数学上证明它,或者至少我不知道如何。谁能帮我解决这个问题?如果有人对 RNN 与 ANN 的差异(优势)有任何补充,我将不胜感激。提前致谢!

2个回答

好的,我会尽量简单地解释它们。

无论序列长度如何,学习模型始终具有相同的输入大小,因为它是根据从一个状态到另一个状态的转换来指定的,而不是根据状态的可变长度历史来指定的。

我将使用一个简单的示例进行简化,但不会导致失去概括性。假设您的任务是添加二进制数。数字按位存储在内存中,通常用于应用任何算术运算,它们应该具有相同的大小。添加两个数字所需的是学习如何添加零和一,以及如果您使用顺序学习方法(如RNNs. 在这种情况下,两个数字的形状不同并不重要,因为它们都可以通过在其最高有效位上添加零来调整到最大尺寸。调整输入大小以具有相同的形状后,您有两个选项,使用MLPsRNNs如果你使用MLPs网络学习的内容与网络学习的内容完全不同RNN前者至少不像学习方式那样学习carrayRNN的转换。另一个区别是你MLP总是会被限制在它被训练的大小,而RNN模型将能够添加两个具有更多位的数字。解释一下,为什么MLPs所有连接到隐藏层或输出层的输入都具有权重。因此,增加输入的数量将导致更多尚未训练的权重。不允许输入大小不等于输入大小的信号MLPs相反,RNNs以不同的方式被利用。

首先,你应该更了解RNNs试着想一想RNN. 他们像往常一样MLPs它们的区别在于,对于每个节点,输入来自上一步的输出和当前时间的输入。请记住,上一个时间步的结果不是来自以前的神经元。原因,我猜你的问题的主要答案是RNN每个输入都会及时重复t. 这意味着您只有一个MLP用于所有时间步长的。假设您处于计算的中间。两个输入是11. RNN把它们和carray值和输出1 作为时间步长的结果 t 和输出 1到下一步作为carray对于下一个时间步,RNN再次使用相同的输入,并将输入与来自上一步的输出的进位一起获取,并输出相应的输出和进位。

由于其性质RNNs只需要时间步的输入t,它们能够处理不同长度的信号。原因是 TheRNN用于每个时间步。这种行为通常称为展开网络。

RNN 优于 ANN 的主要优势在于 RNN 可以对数据序列(即时间序列)进行建模,因此可以假设每个样本都依赖于之前的样本。相反,人工神经网络不能对数据序列进行建模。因此,如果仅假设每个样本独立于前一个和下一个样本(也称为独立同分布假设),则 ANN 是有用的。