自学内容网 自学内容网

【大模型理论篇】精简RNN循环序列模型性能可与Transformer媲美以及对循环神经网络的回顾

1. 语言模型之精简RNN结构

        近期关注到,Yoshua Bengio发布了一篇论文《Were RNNs All We Needed?》,提出简化版RNN(minLSTM和minGRU)。该工作的初始缘由:Transformer 在序列长度方面的扩展性限制重新引发了对可在训练期间并行化的循环序列模型的兴趣。最近一段时间,许多新的循环架构,如 S4、Mamba 和 Aaren,已经被提出并取得了相当的性能。

        因此在Bengio这项工作中,重新对传统循环神经网络 (RNN)进行了分析和调整,LSTMs(1997年)和 GRUs(2014年)这些模型由于需要通过时间反向传播(BPTT)而运行缓慢,但实验结果表明,通过移除其输入、遗忘和更新门上的隐藏状态依赖,LSTMs 和 GRUs 不再需要 BPTT,并且可以高效并行训练。在此基础上,论文中引入了最简版本的 minLSTMs 和 minGRUs,(1) 它们使用的参数明显少于传统模型,(2) 在训练期间可以完全并行化(对于长度为 512 的序列,速度提高了 175 倍)。最后展示了这些简化版的 RNN 能够与近期的序列模型在性能上匹敌。

        论文考虑了一种语言建模任务。在这种设置中,使用 nanoGPT(Karpathy,2022)框架,在莎士比亚作品上训练字符级别的 GPT。在上图 中,绘制了交叉熵损失的学习曲线,比较了所提出的最简 LSTM 和 GRU(minLSTM 和 minGRU)与 Mamba 和 Transformer 的表现。可以发现 minGRU、minLSTM、Mamba 和 Transformer 分别达到了 1.548、1.555、1.575 和 1.547 的可比测试损失。Mamba 的表现稍微逊色于其他模型,但在早期阶段训练得更快,在 400 步时达到了最佳性能,而 minGRU 和 minLSTM 分别在 575 和 625 步时继续训练。相比之下,Transformer 的训练速度明显更慢,需要 2000 步(大约 2.5 倍于 minGRU)才能达到相似的性能,这使得它的训练显著更慢且资源消耗更大(相较于 minGRU、minLSTM 和 Mamba 的线性复杂度,Transformer 的复杂度是二次的)。

2. 对传统RNN模型进行精简 

        常见的循环神经网络结构主要有这三种:

2.1 LSTM网络结构        

       Hochreiter 和 Schmidhuber (1997) 引入了长短期记忆网络(LSTM)。LSTM 是增强型的循环神经网络(RNN),旨在缓解梯度消失问题,从而允许模型学习长期依赖关系。LSTM 的计算方式如下:

f_t = \sigma(\text{Linear}_{dh}([x_t, h_{t-1}]))

i_t = \sigma(\text{Linear}_{dh}([x_t, h_{t-1}]))

\tilde{c}_t = \tanh(\text{Linear}_{dh}([x_t, h_{t-1}]))

o_t = \sigma(\text{Linear}_{dh}([x_t, h_{t-1}]))

c_t = f_t \odot c_{t-1} + i_t \odot \tilde{c}_t

h_t = o_t \odot \tanh(c_t)

        其中,⊙ 表示向量的逐元素相乘,t 为当前时间步,h_t 为输出的隐藏状态,x_t, h_{t-1} 表示将输入 x_t 与上一时间步的隐藏状态 h_{t-1} 进行拼接,dh 是隐藏状态的维度,c_t 是在整个序列中维持信息的细胞状态,\tilde{c}_t是候选的细胞状态,i_t, f_to_t分别是控制输入、遗忘和输出的门机制。输入门 i_t 控制从候选细胞状态中添加多少新信息,遗忘门f_t 决定丢弃细胞状态中的多少信息,输出门o_t 决定细胞状态中的哪些信息应该输出。σ 和 tanh 用于缩放,以确保输出不会爆炸或消失。一个 LSTM 模块同时维护细胞状态和隐藏状态,总共包含 O(4dh(dx + dh)) 个参数。

2.2 GRU网络结构

        为了简化 LSTM,Cho 等人(2014 年)提出了门控循环单元(GRU),它仅使用两个门控机制和一个状态,取代了 LSTM 的三个门控机制和两个状态(隐藏状态和细胞状态)。GRU 的简化使其在许多任务中能够以更快的训练和推理时间实现竞争性的性能。GRU 的计算方式如下:

z_t = \sigma(\text{Linear}_d([x_t, h_{t-1}]))

r_t = \sigma(\text{Linear}_d([x_t, h_{t-1}]))

\tilde{h}_t = \tanh(\text{Linear}_d([x_t, r_t \odot h_{t-1}]))

h_t = (1 - z_t) \odot h_{t-1} + z_t \odot \tilde{h}_t

        其中,\tilde{h}_t是候选的隐藏状态,代表隐藏状态可能的新值。GRU 将 LSTM 的遗忘门和输入门合并为一个更新门 z_t \in (0, 1),它决定了要携带多少过去的信息(即 z_t \in (0, 1)),以及从候选隐藏状态中添加多少新信息(即 z_t​)。此外,GRU 移除了 LSTM 的输出门,取而代之的是增加了一个重置门 r_t​,用于控制在计算候选隐藏状态时使用多少过去的信息。GRU 减少了参数和计算量,仅需 O(3dh(dx + dh)) 个参数。然而,GRU 和 LSTM 只能顺序计算。因此,在训练期间,它们需要通过时间反向传播(BPTT)其梯度,导致线性训练时间,极大地限制了其扩展到长序列的能力。

2.3 网络精简

        由于时间关系,后面的内容比较多,明天会进一步完善和更新。


原文地址:https://blog.csdn.net/weixin_65514978/article/details/142733277

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!