• home > theory > CST > AI >

    从RNN encoder到transformer encoder:参数化函数+数据统计学习

    Date:

    RNN Encoder(循环编码器)基于循环神经网络,按时间顺序处理序列。Transformer EncoderTransformer 不使用循环结构,而是使用:Self-Attention(自注意力)。基本思想:每个 token 直接和所有 token 建立关系。

    RNN Encoder 和 Transformer Encoder 都是把输入序列编码成向量表示的结构,但它们的核心机制完全不同。

    RNN:记忆链条

    word1 → word2 → word3 → word4

    信息逐步传递。

    Transformer:会议讨论

    word1 ↔ word2word1 ↔ word3word1 ↔ word4word2 ↔ word3...

    所有词直接沟通。


    ✅ 一句话总结


    模型本质
    RNN Encoder顺序记忆
    Transformer Encoder全局注意力


    假设有一句话:

    I love machine learning

    如果计算机要理解 love 的意思,其实需要看:

    • I

    • machine

    • learning

    因为:

    • 谁 love? → I

    • love 什么? → machine learning

    所以:

    一个词的意思依赖整个句子。

    以前的模型(RNN)是这样理解句子的:

    I → love → machine → learning

    一步一步传递信息。

    问题:

    • 前面的词容易被忘记

    • 计算很慢(不能并行)

    Transformer 直接让 每个词看所有词

    例如:

    I love machine learning

    计算时:

    I        看  love machine learning
    love     看  I machine learning
    machine  看  I love learning
    learning 看  I love machine

    这就叫:

    Self-Attention(自注意力)

    Self-Attention 可以可以想象成:

    每个词都在开会讨论。

    例如:

    love :我应该关注谁?

    它可能认为:

    I           权重 0.4
    machine     权重 0.3
    learning    权重 0.3

    于是:

    love 的新表示 = 0.4 * I + 0.3 * machine + 0.3 * learning

    这样:

    每个词都会得到一个“结合全句理解”的新向量。





    image.png


    如果你愿意,我可以再给你讲一个非常重要但很多人没讲清楚的问题

    为什么 Transformer 的复杂度是 O(n²),但仍然比 RNN 更快?

    这个理解之后,你会彻底明白为什么 大模型全部是 Transformer



    Transformer 的核心是根据统计概率吗?

    本质是:参数化函数 + 数据统计学习

    更准确地说:Transformer 通过大量训练数据,学习一组参数,使得输入 → 输出的概率最大

    所以:

    • 训练阶段:是统计学习(最大化概率)——参数是训练出来的,模型会在训练中不断调整:让预测更准确。

    • 推理阶段:是数学计算(矩阵运算)——最大化正确词出现的概率:统计概率 + 神经网络函数拟合




    一、核心思想区别

    1️⃣ RNN Encoder(循环编码器)

    基于循环神经网络,按时间顺序处理序列

    常见结构:

    • Recurrent Neural Network (RNN)

    • Long Short-Term Memory (LSTM)

    • Gated Recurrent Unit (GRU)

    基本思想:

    h_t = f(x_t, h_{t-1})

    每个时间步:

    • 输入当前 token x_t

    • 和上一步的隐藏状态 h_{t-1}

    • 输出新的隐藏状态 h_t

    因此序列必须 一步一步计算

    示例:

    x1 → h1x2 + h1 → h2x3 + h2 → h3...

    最后得到:

    Encoder Output = {h1, h2, h3 ... hn}

    或使用最后一个状态:

    context = hn

    2️⃣ Transformer Encoder

    Transformer 不使用循环结构,而是使用:

    Self-Attention(自注意力)

    来自论文:

    • Attention Is All You Need

    基本思想:

    每个 token 直接和所有 token 建立关系

    Attention(Q,K,V)

    每个词都会计算:

    token_i → attention → 所有 token

    例如句子:

    I love machine learning

    love 会同时关注:

    Imachinelearning

    结构:

    Input Embedding      ↓Self Attention      ↓Feed Forward      ↓Stack N layers

    二、计算方式区别


    RNN EncoderTransformer Encoder
    计算方式顺序计算并行计算
    依赖结构h_t依赖h_t-1所有token互相attention
    GPU利用很差很好
    复杂度O(n)O(n²)

    三、长距离依赖能力

    RNN

    存在问题:

    • 梯度消失

    • 远距离信息难以记住

    例如:

    The book that you gave me yesterday is good

    bookis 的关系很远。

    RNN需要:

    book → ... → ... → ... → is

    信息会逐渐衰减。

    即使 LSTM/GRU 也只是缓解


    Transformer

    直接 Attention:

    book ↔ is

    路径长度:

    1

    所以 长距离建模能力更强


    四、训练效率

    RNN

    序列必须这样计算:

    t1 → t2 → t3 → t4

    不能并行。

    GPU利用率很低。


    Transformer

    可以:

    t1 t2 t3 t4↓ ↓ ↓ ↓同时计算

    GPU利用率非常高。

    这也是为什么:

    大模型全部使用 Transformer

    例如:

    • GPT-4

    • BERT

    • LLaMA


    五、位置处理方式


    RNN

    天然有顺序:

    x1 → x2 → x3

    顺序信息自然存在。


    Transformer

    因为并行计算:

    x1 x2 x3

    没有顺序。

    因此需要:

    Positional Encoding

    例如:

    embedding + position

    六、模型结构对比


    RNN Encoder

    x1 → RNN → h1x2 → RNN → h2x3 → RNN → h3...

    特点:

    • sequential

    • memory state


    Transformer Encoder

    x1 x2 x3 x4   ↓Self Attention   ↓Feed Forward   ↓Stack Layers

    特点:

    • global attention

    • parallel


    七、性能对比总结


    特性RNN EncoderTransformer Encoder
    并行能力
    长距离依赖
    训练速度
    GPU效率
    可扩展性极好

    八、为什么 Transformer 取代 RNN

    在 2017 年论文:

    • Attention Is All You Need

    之后:

    • NLP

    • 语音

    • CV

    • 多模态

    几乎全部改为 Transformer。

    例如:

    任务模型
    机器翻译Transformer
    NLP理解BERT
    生成模型GPT
    多模态CLIP



    转载本站文章《从RNN encoder到transformer encoder:参数化函数+数据统计学习》,
    请注明出处:https://www.zhoulujun.cn/html/theory/ComputerScienceTechnology/AI/9772.html