RNN 的类型

17 Mar 2025 | 阅读 2 分钟

循环网络更令人兴奋的主要原因是它们允许我们在向量序列上进行操作:输入、输出或最普遍的情况,两者兼而有之。 几个例子可以使这更加具体

Types of RNN

上图中每个矩形代表向量,箭头代表函数。输入向量为红色,输出向量为蓝色,绿色保存 RNN 的状态。

一对一

这也被称为普通神经网络。它处理固定大小的输入到固定大小的输出,它们与先前的信息/输出无关。

示例: 图像分类。

一对多

它处理固定大小的输入信息,产生一系列数据作为输出。

示例: 图像字幕将图像作为输入,并输出一个单词句子。

多对一

它将一系列信息作为输入,并输出固定大小的输出。

示例: 情感分析,将任何句子分类为表达正面或负面情感。

多对多

它将一系列信息作为输入,并循环处理输出作为一系列数据。

示例: 机器翻译,RNN 读取任何英文句子,然后输出法语句子。

双向多对多

同步序列输入和输出。请注意,在任何情况下,对序列长度都没有预先指定的约束,因为循环转换(绿色)是固定的,并且可以根据需要应用多次。

示例: 视频分类,我们希望标记视频的每一帧。

循环神经网络的优点

  • RNN 可以对数据序列进行建模,因此可以假设每个样本都依赖于前一个样本。
  • 循环神经网络甚至与卷积层一起使用以扩展活动像素邻域。

循环神经网络的缺点

  • 梯度消失和爆炸问题。
  • 训练 RNN 是一项复杂的任务。
  • 如果使用 tanh 或 relu 等激活函数,它可能无法处理很长的序列。

下一个主题CNN vs RNN