目录
老饼讲解:一步一步上手深度学习

【结构】RNN循环神经网络-常用结构

作者 : 老饼 发表日期 : 2025-10-26 22:50:53 更新日期 : 2026-05-19 17:05:11
老饼讲解-简单易懂,干货满满,爽过嗦螺!


前面我们已经说过,RNN就是用来解决时间序列数据问题的,但是呢,实际使用中,会发现对于不同的时间序列问题,它的输入输出也是各种各样的,下面我们就来说说,对应于不同的输入输出要求时,RNN的一些常见结构。

一、RNN-常见应用结构

在实际应用中,RNN常见的结构分别有:NvNNv11vNNvM四种,下面一起来看看它们分别是什么。

1.1. RNN神经网络-NvN结构

先来看看我们最基础的RNN神经网络的结构,如下:

 RNN-NvN模型

可以看到,这时候有N个时刻的输入,同时,每个时刻都有输出,所以它的输入输出序列长度都是N。一般来说,我们可以称这种基础结构为NvN结构,它用于解决每个时刻都有输入、并且每个时刻都有输出。

-----------分割线-----------------

1.2. RNN神经网络-Nv1结构

好了,接下来我们再来看看Nv1的结构,固名思义,就是有N个时刻和输入,但只有一个时刻的输出,如下:

 RNN-Nv1模型

可以看到,t1-tN时刻都有输入,但最终模型只需要末时刻的输出。Nv1结构自然是常见的,例如我们要判断句子的情感类别,那么这时候就是Nv1结构了,按序列输入整个句子,最后输出句子属于哪种情感类别。

Nv1结构其实就是NvN结构屏蔽了其余时刻的输出,只保留末时刻的输出,有的同学可能会问,我用NvN结构解决Nv1问题不行吗?当然是可以的,但注意计算损失时只需要计算末时刻输出的误差就好了。

-----------分割线-----------------

1.3. RNN神经网络-1vN结构

同样的套路,当我们只有一个时刻的输入,但需要多个时刻的输出时,那么就变成了1vN结构了,如下:

 RNN-1vN模型

可以看到,只有t1时刻有输入,其余时刻都没有输入,但会一直循环输出t1-tN时刻的输出。1vN结构可以应用于生成任务,例如输入"饼干",再输出一段字数为N的、关于"饼干"的描述。

1vN结构其实就是NvN结构屏蔽了其余时刻的输入,只保留首时刻的输入,有的同学可能会问,我用NvN结构解决1vN问题不行吗?当然是可以的,只需要把其余时刻的输入都输入0就可以了。

-----------分割线-----------------

1.4. RNN神经网络-NvM结构

好了,重头戏来了,这里我们特别重点地来说NvM结构,在说NvM结构之前,我们先说说NvM序列预测问题,也称为seq2seq问题。

  • 什么是seq2seq问题

如果现在要求"输入一个不定长度的序列,输出另一个不定长度的序列",那么这就是seq2seq问题了,也就是“不定长序列-到-不定长序列”问题。例如中英翻译任务就是一个经典的seq2seq问题,输入的中文是不定长的,而输出的英文也是不定长的:

什么是Seq2Seq

  • RNN如何解决seq2seq问题(NvM)

RNN解决seq2seq问题(也就是NvM问题),一般使用的是Encoder-Decoder结构,如下:

 RNN的NvM模型

可以看到,它先用一个Nv1模型,来按顺序接收输入,它末时刻的输出就作为编码C。接下来再用一个1vM模型,来将编码C逐步解码出M个输出。如此一来,输入和输出都可以不定长了。

这类型的模型也称为Encoder-Decoder模型,也就是先用一个模型作为编码器来把输入X转换为一个编码C,然后再用一个模型作为解码器来把编码转换为输出y。

结束语

好了,这里我们看了RNN在实际应用中常见的4种模型结构,当然,这只是抛砖引玉,用来借鉴就可以了,在实际应用中还可以随机应变,爱怎么改就怎么改,适合自己所要解决的问题就行。



图标 评论
添加评论