架构
循环神经网络 (RNN)
Recurrent Neural Network (RNN)
一种逐步处理序列数据的神经网络,通过隐藏状态把先前的信息传递下去,用来记住上下文。
循环神经网络 (RNN) 是一种专门处理序列数据的神经网络,适用于文本、语音、时间序列等「顺序很重要」的数据。它不是一次看完整段序列,而是一个一个元素地读,并维护一个会在每一步更新的「隐藏状态」,作为对先前内容的记忆。
在 2010 年代中期之前,RNN 是语言模型、机器翻译、语音识别的主流架构。今天你还是可能在旧的 NLP 系统、某些端侧语音模型,或时间序列预测中见到它。但在大规模语言任务上,它已基本被 Transformer 取代——后者可以并行处理整段序列,也没有同样的记忆瓶颈。
一个常见的比喻:RNN 就像一个字一个字读小说,脑子里只留一份简短摘要。读到第十章时,第一章的细节早就模糊了——这就是著名的「梯度消失」问题。后来的 LSTM 和 GRU 就是为了改善这点,加入「门控」让网络自己决定记住什么、忘掉什么。
训练 RNN 还有一个痛点:每一步都要等前一步算完,没法在序列方向上并行,GPU 利用率很差。这也是 Transformer 胜出的关键原因之一。
延伸概念:LSTM、GRU、Seq2Seq 模型、注意力机制 (Attention)、Transformer。