循环神经网络(Recurrent Neural Network, RNN) 是一类专门为处理序列数据而设计的神经网络模型。它的核心特点在于具备“记忆”能力,能够利用之前时刻的信息来影响当前时刻的处理,从而捕捉数据中的时序依赖关系。
与传统的前馈神经网络(如CNN)不同,RNN的网络结构包含循环连接。你可以把它的核心运转逻辑理解为:
信息在时间维度的传递:在传统神经网络中,每一层的神经元只接收上一层的输入,样本之间相互独立。而RNN的隐藏层神经元之间存在连接,当前时刻的输出不仅取决于当前的输入,还取决于上一时刻隐藏层的状态(也就是它的“记忆”)。
权值共享:RNN在处理序列的每个步骤时,使用的都是一套相同的参数(权重矩阵)。这种“参数共享”的设计,使得它能够处理任意长度的序列,并且能高效地捕捉不同时刻间的相同模式。
正是这种结构,让RNN非常擅长处理文本、语音、时间序列等具有前后关联的数据。
在自动驾驶系统中,RNN是实现“类人预测”能力的关键技术之一,主要应用在以下方面:
车辆轨迹预测:这是RNN在自动驾驶中最核心的应用。通过分析周围车辆连续的历史位置和速度数据(时间序列),RNN能够预测它们未来的行驶轨迹。结合LSTM(长短期记忆网络)和GRU(门控循环单元)的混合RNN模型,在与单一LSTM模型对比中,预测误差可降低33%,为决策和路径规划提供了宝贵的时间。
处理多传感器时序数据:自动驾驶系统会持续产生海量的时间序列数据。例如,一项专利技术就公开了一种结合卷积神经网络(CNN)和循环神经网络(RNN) 的方案:CNN负责分析图像中的物体,而RNN则用于处理车速、雷达数据随时间的变化,综合判断环境是否复杂,从而决策是否开启哨兵监控。
端到端控制:在一些前沿研究中,RNN也被用于端到端的控制。例如,基于RNN-LSTM深度融合的系统,能将自动驾驶在极端场景下的成功率提升至89.5%,验证了其在复杂动态环境下的有效性。
尽管RNN在理论上有能力处理长序列,但在实际应用中曾面临严重的训练瓶颈:
梯度消失与爆炸:这是早期简单RNN模型的主要缺陷。在反向传播过程中,梯度会随序列长度的增加而指数级衰减(消失)或增长(爆炸),导致模型无法学习到长距离的依赖关系。
为解决这一问题,研究者们开发了更强大的RNN变体,它们现在已成为处理序列任务的主流:
长短期记忆网络(LSTM):LSTM通过引入精巧的“门控”机制(输入门、遗忘门、输出门),可以有效地选择性地记住或遗忘长期信息,是解决梯度消失问题的经典方案。
门控循环单元(GRU):GRU可以看作是LSTM的简化版,它将LSTM的三个门精简为两个(更新门和重置门),在保持相近性能的同时,参数更少、计算效率更高。
在一些竞争激烈的场景中,RNN及其变体与Transformer等新兴架构仍在共同演进,各有优势。