LLM 发展简史:带你看懂 NLP 进化史,从 NLP 到 LLM 的非凡旅程(一)!(超细分析CNN、RNN、Transformer、LLM……)

LLM 发展简史:带你看懂 NLP 进化史,从 NLP 到 LLM 的非凡旅程(一)!(超细分析CNN、RNN、Transformer、LLM……)

概要:

自然语言处理基础 NLP (Natural Language Processing)发展过程
在这里插入图片描述

可以看到,从2013年之后,随着深度学习技术的发展,整个自然语言处理的发展也受到了很大地影响。从13年的,Word2Vec,到14年的RNN,到18年的ELMo,以及同年出现的BERT,之后预训练模型就被大量使用。

自然语言处理(NLP)的发展过程

在这里插入图片描述

自然语言处理(NLP)是人工智能的一个重要领域,旨在实现计算机对人类语言的理解、生成和处理。像 ChatGPT、Siri、Google 翻译等都是 NLP 的应用。

NLP的发展历程可以分为以下几个主要阶段:

一、早期阶段(1950年代-1980年代)

在这里插入图片描述

1. 初期探索
  • 图灵测试(1950年):艾伦·图灵提出了图灵测试,成为人工智能的一个重要概念,虽然当时并没有明确的NLP定义,但为其发展奠定了基础。

    图灵测试的方法是:被测试人,和一个待测试的机器。测试时,测试人与被测试人是分开的,测试人只有以纯文本的方式向被测试人问一些问题,这些问题随便是什么问题都可以。问过一些问题后,如果测试人能够正确地分出谁是人谁是机器,那机器就没有通过图灵测试,如果测试人没有分出谁是机器谁是人,那这个机器就是有智能的。

  • 基于规则的方法

    :早期的NLP系统依赖于手工编写的规则和语法,常见的技术包括:

    • 句法分析:如1957年诺姆·乔姆斯基提出的生成文法。
    • Eliza程序(1966年):一个模拟心理治疗师的对话系统,基于模式匹配和模板响应。
2. 初步应用
  • 机器翻译:1950年代末期,美国和苏联在机器翻译上进行了大量研究,虽然早期效果有限,但开启了NLP的应用探索。
  • 信息检索:如60年代的SMART系统,开始探索自动化的文本检索和分类。

(~ ̄▽ ̄)~ 小白课堂:

1️⃣ 规则驱动 NLP(1950s - 1990s)

  • 人工设定一堆规则,让计算机按照规则处理文本。
  • 例子:
    • “I am happy.” → 规则告诉计算机 “am” 是 “be” 动词的变形,“happy” 是形容词。
    • 但如果输入 “I am over the moon.”(表示“我非常开心”),计算机就无法理解。

📌 问题

  • 需要大量人工编写规则,处理复杂语言非常困难。

二、统计方法的兴起(1990年代)

1. 统计语言模型
  • 基于统计的方法:20世纪90年代,随着计算能力和数据存储的提升,统计方法开始盛行,如:

    • n-gram模型:通过计算词语序列的出现概率进行语言建模。
  • 隐马尔可夫模型(HMM):用于词性标注、命名实体识别等任务。

2. 数据驱动的方法
  • 大规模语料库:如Penn Treebank语料库,为统计方法的训练提供了大量标注数据。
  • 机器学习算法:如支持向量机(SVM)、最大熵模型等被应用于文本分类、情感分析等任务。

φ(゜▽゜*)♪ 小白课堂:

2️⃣ 统计 NLP(1990s - 2010s)

  • 计算机使用概率统计分析大量文本,找出最常见的单词组合。

  • n-gram 模型

    :预测下一个词出现的概率。

    • 例子:
      • “I love” → 计算机从大量数据中发现,“you” 出现的概率最高,所以预测下一个词是 “you”。
      • 但如果句子很长,这种方法就不太可靠。

📌 问题

  • 只会数单词,无法理解语境,像“他喜欢苹果” vs “苹果公司发布新产品”就难以区分。

三、深度学习时代(2010年代)

1. 神经网络的引入
  • 卷积神经网络(CNN):虽然CNN最初用于图像处理,但也被用于文本分类等NLP任务。
  • 循环神经网络(RNN):特别是长短期记忆网络(LSTM)和门控循环单元(GRU),有效解决了长序列依赖问题,在机器翻译、文本生成等领域表现突出。
2. 词向量和嵌入
  • 词向量(Word Embeddings):如word2vec、GloVe,通过将词语映射到低维向量空间,捕捉词语之间的语义关系。
  • 序列到序列(Seq2Seq)模型:广泛应用于机器翻译,由编码器和解码器组成,显著提升了翻译质量。

①、卷积神经网络(CNN)
1. 介绍

卷积神经网络(Convolutional Neural Network, CNN)是一种深度学习模型,最初用于图像处理和计算机视觉任务。CNN通过卷积操作,可以有效地提取图像中的局部特征。

2. 结构
  • 卷积层(Convolutional Layer):通过卷积核(filter)在输入数据上滑动,提取局部特征。
  • 池化层(Pooling Layer):通过降采样操作(如最大池化、平均池化)减少数据维度,降低计算复杂度。
  • 全连接层(Fully Connected Layer):将前面的特征映射到最终的输出分类或回归结果。
    在这里插入图片描述
3. 应用
  • 图像分类:识别图像中的对象。
  • 物体检测:检测图像中目标的位置和类别。
  • 图像分割:将图像分割成不同的区域。

CNN擅长处理网格结构数据案例,如图像:

在这里插入图片描述

( ̄︶ ̄)↗ 为什么需要多层卷积+池化?

单层卷积和池化通常只能提取简单的特征,比如边缘和颜色变化,而深度网络通过 层层提取更高级的特征,最终能够识别复杂模式,如 物体的形状、结构,甚至语义信息

层数卷积层特征提取池化层作用
第1层低级特征(边缘、颜色、线条)降低尺寸、去除噪声
第2层组合低级特征,形成局部形状进一步降低尺寸
第3层及以上组合更复杂特征(如轮廓、部件)进一步提取全局信息
最终层形成完整的目标特征(如人脸、物体)-
②、循环神经网络(RNN)
1. 介绍

循环神经网络(Recurrent Neural Network, RNN)是一种用于处理序列数据的神经网络,广泛应用于自然语言处理(NLP)和时间序列分析。RNN通过循环结构,能够记住前面输入的信息,适用于处理序列化的数据。

2.1. 结构

在这里插入图片描述

左边表示RNN的R,即循环调用自身,而右边是RNN的展开形式(unrolled form),可以看成一个复制了很多个同样copy的链状结构的时序网络模型。

RNN 基本的模型如上图所示,每个神经元接受的输入包括:前一个神经元的隐藏层状态 h (用于记忆) 和当前的输入 x (当前信息)。神经元得到输入之后,会计算出新的隐藏状态 h 和输出 y,然后再传递到下一个神经元。因为隐藏状态 h 的存在,使得 RNN 具有一定的记忆功能。

  • 隐藏层(Hidden Layer):RNN 的核心,通过将上一个时间步的隐藏状态与当前输入结合,生成当前的隐藏状态。
  • 输出层(Output Layer):将隐藏状态映射到输出结果。

标准的RNN内部结构如图:

在这里插入图片描述

也就是将上一个时刻的输出加上本时刻的输入,过一个activation(比如tanh),就成了下一个时刻的输出。

RNN 中输入 X t X_t Xt 只包含 t 时刻信息,不包含顺序信息;而 h t h_t ht 是根据 X t X_t Xt h t − 1 h_{t-1} ht1 计算得到的,包含了历史信息与当前输入信息。

  1. 隐藏状态计算

h t = tanh ⁡ ( W h x t + U h h t − 1 + b h ) h_t = \tanh(W_h x_t + U_h h_{t-1} + b_h) ht=tanh(Whxt+Uhht1+bh)

  • h t h_t ht:当前时间步的隐藏状态
  • x t x_t xt:当前时间步的输入
  • h t − 1 h_{t-1} ht1:前一个时间步的隐藏状态
  • W h 、 U h 、 b h W_h、U_h、b_h WhUhbh:可训练参数
  • tanh ⁡ \tanh tanh:双曲正切激活函数
  1. 输出计算

y t = W y h t + b y y_t = W_y h_t + b_y yt=Wyht+by

  • y t y_t yt:当前时间步的输出
  • W y 、 b y W_y、b_y Wyby:可训练参数
  1. 损失函数

L = ∑ t L ( y t , y target , t ) \mathcal{L} = \sum_t \mathcal{L}(y_t, y_{\text{target},t}) L=tL(yt,ytarget,t)

  • L ( y t , y target , t ) \mathcal{L}(y_t, y_{\text{target},t}) L(yt,ytarget,t) 通常是 交叉熵均方误差
2.2 RNN 可调整结构 o(*≧▽≦)ツ┏━┓

针对不同任务,通常要对 RNN 模型结构进行少量的调整,根据输入和输出的数量,分为三种比较常见的结构:N vs N、1 vs N、N vs 1。

2.2.1. RNN (N vs N 结构)

在这里插入图片描述

上图是RNN 模型的一种 N vs N 结构,包含 N 个输入 X 1 X_1 X1, X 2 X_2 X2, …, X N X_N XN,和 N 个输出 y 1 y_1 y1, y 2 y_2 y2, …, y N y_N yN。N vs N 的结构中,输入和输出序列的长度是相等的,通常适合用于以下任务:

  • 词性标注
  • 训练语言模型,使用之前的词预测下一个词等
2.2.2. RNN (1 vs N 结构)

在 1 vs N 结构中,我们只有一个输入 x,和 N 个输出 y 1 y_1 y1, y 2 y_2 y2, …, y N y_N yN。可以有两种方式使用 1 vs N:

① 第一种只将输入 x 传入第一个 RNN 神经元

在这里插入图片描述

② 第二种是将输入 x 传入所有的 RNN 神经元

在这里插入图片描述

1 vs N 结构适合用于以下任务:

  • 图像生成文字,输入 x 就是一张图片,输出就是一段图片的描述文字。
  • 根据音乐类别,生成对应的音乐。
  • 根据小说类别,生成相应的小说。
2.2.3. RNN (N vs 1 结构)

在这里插入图片描述

在 N vs 1 结构中,我们有 N 个输入 X 1 X_1 X1, X 2 X_2 X2, …, X N X_N XN,和一个输出 y。N vs 1 结构适合用于以下任务:

  • 序列分类任务,一段语音、一段文字的类别,句子的情感分析。
3. RNN的改进模型

在这里插入图片描述

RNN的主要改进模型包括LSTM(长短期记忆网络)和GRU(门控循环单元),它们通过门控机制解决了RNN对长时依赖处理能力差的问题。

1.1 长短期记忆网络(LSTM)

LSTM(Long Short-Term Memory)通过引入多种“门”(即控制信息流的单元)来增强对长时依赖的记忆和控制(长期依赖)。LSTM包含以下几个关键门:

  • 遗忘门:控制要遗忘的先前信息。
  • 输入门:决定当前时间步的新信息加入多少到记忆单元。
  • 输出门:决定记忆单元信息对隐藏状态和输出的贡献。

LSTM的设计使得它能够选择性地保留或删除信息,使其适合处理长序列或长依赖问题,从而有效地避免了梯度消失。

在这里插入图片描述

(。・∀・)ノ 精讲堂:

**遗忘门 f t f_t ft :**上图中 红框1 的是 LSTM 遗忘门部分,用来判断 cell 状态 C t − 1 C_{t-1} Ct1 中哪些信息应该删除。其中 σ 表示激活函数 sigmoid。

  • ①. 输入的 h t − 1 h_{t-1} ht1 X t X_t Xt 经过 sigmoid 激活函数之后得到 f t f_t ft f t f_t ft 中每一个值的范围都是 [0, 1]。$f_t $中的值越接近 1,表示 cell 状态 C t − 1 C_{t-1} Ct1 中对应位置的值更应该记住; f t f_t ft 中的值越接近 0,表示 cell 状态 C t − 1 C_{t-1} Ct1 中对应位置的值更应该忘记。
  • ②. 将 f t f_t ft C t − 1 C_{t-1} Ct1 按位相乘 (ElementWise 相乘),即可以得到遗忘无用信息之后的 C t − 1 ′ C'_{t-1} Ct1

f t = σ ( W f [ h t − 1 , x t ] + b f ) (遗忘门) C t − 1 ′ = C t − 1 ⋅ f t \begin{aligned} f_t &= \sigma(W_f [h_{t-1}, x_t] + b_f) \quad \text{(遗忘门)} \\ % &=让等号对齐 C'_{t-1} &= C_{t-1} \cdot f_t \\ \end{aligned} ftCt1=σ(Wf[ht1,xt]+bf)(遗忘门)=Ct1ft

输入门 i t i_t it上图中 红框2 的是 LSTM 输入门部分,用来判断哪些新的信息应该加入到 cell 状态 C t − 1 ′ C'_{t-1} Ct1 中。其中 σ表示激活函数 sigmoid。

  • ①. 输入的 h t − 1 h_{t-1} ht1 X t X_t Xt 经过 tanh 激活函数可以得到新的输入信息 C ~ t \tilde{C}_t C~t (候选细胞状态 – 新计算出的信息),但是这些新信息并不全是有用的。
  • ②. 因此需要使用 h t − 1 h_{t-1} ht1 X t X_t Xt 经过 sigmoid 函数得到 i t i_t it,( i t i_t it 表示哪些新信息是有用的)。
  • ③. 两向量相乘后的结果加到 C t − 1 ′ C'_{t-1} Ct1 中,即得到 t 时刻的 cell 状态 C t C_t Ct (存储长期记忆)。

i t = σ ( W i [ h t − 1 , x t ] + b i ) (输入门) C ~ t = tanh ⁡ ( W C [ h t − 1 , x t ] + b C ) (候选细胞状态) C t = f t ⋅ C t − 1 + i t ⋅ C ~ t (细胞状态(Cell State)) \begin{aligned} i_t &= \sigma(W_i [h_{t-1}, x_t] + b_i) \quad \text{(输入门)} \\% &=让等号对齐 \tilde{C}_t &= \tanh(W_C [h_{t-1}, x_t] + b_C) \quad \text{(候选细胞状态)} \\ C_{t} &= f_t \cdot C_{t-1} + i_t \cdot \tilde{C}_t \quad \text{(细胞状态(Cell State))}\\ \end{aligned} itC~tCt=σ(Wi[ht1,xt]+bi)(输入门)=tanh(WC[ht1,xt]+bC)(候选细胞状态)=ftCt1+itC~t(细胞状态(Cell State)

**输出门 O t O_t Ot :**上图中 红框3 的是 LSTM 输出门部分,控制输出信息,用来判断应该输出哪些信息到 h t h_t ht 中。

  • ①. cell 状态 C t C_t Ct 经过 tanh 函数得到可以输出的信息 --> t a n h ( C t ) tanh(C_t) tanh(Ct):将细胞状态映射到 [-1,1]
  • ②. 然后 h t − 1 h_{t-1} ht1 X t X_t Xt 经过 sigmoid 函数得到一个向量 O t O_t Ot O t O_t Ot 的每一维的范围都是 [0, 1],表示哪些位置的输出应该去掉,哪些应该保留。
  • ③. 两向量相乘后的结果就是最终的 h t h_t ht – 隐藏状态(Hidden State),代表 当前时间步 t 的输出,也用于传递信息到 下一个时间步

o t = σ ( W o [ h t − 1 , x t ] + b o ) (输出门) h t = o t ⋅ tanh ⁡ ( C t ) \begin{aligned} o_t &= \sigma(W_o [h_{t-1}, x_t] + b_o) \quad \text{(输出门)} \\% &=让等号对齐 h_t &= o_t \cdot \tanh(C_t) \end{aligned} otht=σ(Wo[ht1,xt]+bo)(输出门)=ottanh(Ct)

{{{(>_<)}}} 参数详解:

📌 1. C t C_t Ct - 细胞状态(Cell State)

  • 适用于 LSTM(长短时记忆网络)

  • 存储长期记忆,可以看作 LSTM 的“记忆单元”

  • 计算公式:
    C t = f t ⋅ C t − 1 + i t ⋅ C ~ t C_t = f_t \cdot C_{t-1} + i_t \cdot \tilde{C}_t Ct=ftCt1+itC~t

    • f t f_t ft(遗忘门):控制 遗忘多少旧信息
    • i t i_t it(输入门):控制 加入多少新信息
    • C ~ t \tilde{C}_t C~t(候选细胞状态):新计算出的信息

📌 2. h t h_t ht - 隐藏状态(Hidden State)

  • 适用于 RNN/LSTM/GRU

  • 代表 当前时间步 t 的输出

  • 也用于传递信息到 下一个时间步

  • 计算公式:
    h t = o t ⋅ tanh ⁡ ( C t ) h_t = o_t \cdot \tanh(C_t) ht=ottanh(Ct)

    • O t O_t Ot(输出门):控制输出信息
    • t a n h ( C t ) tanh(C_t) tanh(Ct):将细胞状态映射到 [-1,1]

📌 在普通 RNN 里,隐藏状态计算:
h t = tanh ⁡ ( W h h t − 1 + W x x t + b h ) h_t = \tanh(W_h h_{t-1} + W_x x_t + b_h) ht=tanh(Whht1+Wxxt+bh)

  • W h W_h Wh W x W_x Wx b h b_h bh 是可训练参数。

📌 3. X t X_t Xt- 输入(Input)

  • 表示 时间步 t 的输入数据

  • 可能是:

    • 一个单词的词向量(自然语言处理 NLP)
    • 一个特征值(时间序列预测)
    • 一帧图像的像素信息(视频处理)
  • 输入通常是一个 向量,例如:
    X t = [ X t , 1 , X t , 2 , . . . , X t , d ] X_t = [X_{t,1}, X_{t,2}, ..., X_{t,d}] Xt=[Xt,1,Xt,2,...,Xt,d]

    其中 d 是特征维度。


📌 4. σ - Sigmoid 激活函数

  • 公式:
    σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+ex1

  • 作用:

    • 将输入 压缩到 (0,1) 之间
    • 常用于 门控机制(LSTM/GRU 的 输入门/遗忘门/输出门
  • 示例:
    f t = σ ( W f [ h t − 1 , x t ] + b f ) f_t = \sigma(W_f [h_{t-1}, x_t] + b_f) ft=σ(Wf[ht1,xt]+bf)

    • f t f_t ft是遗忘门,值在 0~1 之间:
      • 接近 1保留大部分旧信息
      • 接近 0遗忘大部分旧信息
1.2 门控循环单元(GRU)

GRU(Gated Recurrent Unit)是LSTM的简化版本,它只保留了重置门更新门,使得计算更简洁、效率更高(短期依赖):

  • 重置门:控制当前状态和前一状态的融合程度。(合并了遗忘门和输入门)
  • 更新门:决定如何组合当前输入和前一时刻的状态信息。(去掉了输出门,改为“重置门”)

相比LSTM,GRU更轻量且训练速度更快,适合对内存和计算资源要求较高的场景。GRU同样能解决RNN的梯度消失问题,但表现稍逊于LSTM。

在这里插入图片描述

ฅʕ•̫͡•ʔฅ 精讲堂:

图中的 r t r_t rt z t z_t zt 分别表示 重置门 (蓝色) 和 更新门 (红色)。

重置门 r t r_t rt 控制着前一状态的信息 h t − 1 h_{t-1} ht1 传入候选状态 h ~ t \tilde{h}_t h~t 的比例,重置门 r t r_t rt 的值越小,则与 h t − 1 h_{t-1} ht1 的乘积越小, h t − 1 h_{t-1} ht1 的信息添加到候选状态越少。
r t = σ ( W r x t + U r h t − 1 + b r ) (重置门(Reset Gate)) \begin{aligned} r_t &= \sigma(W_r x_t + U_r h_{t-1} + b_r) \quad \text{(重置门(Reset Gate))}\\ \end{aligned} rt=σ(Wrxt+Urht1+br)(重置门(Reset Gate)

  • r t r_t rt 作用: 决定 **前一时刻的隐藏状态 h t − 1 h_{t-1} ht1有多少信息要被遗忘或重置。
  • r t r_t rt 接近 0,表示遗忘大部分旧信息,更关注当前输入 x t x_t xt
  • r t r_t rt 接近 1,表示保留旧信息,更依赖 h t − 1 h_{t-1} ht1

更新门 用于控制前一状态的信息 h t − 1 h_{t-1} ht1 有多少保留到新状态 h t h_t ht 中,当 ( 1 − z t 1-z_t 1zt) 越大,保留的信息越多。
z t = σ ( W z x t + U z h t − 1 + b z ) (更新门(Update Gate)) \begin{aligned} z_t &= \sigma(W_z x_t + U_z h_{t-1} + b_z) \quad \text{(更新门(Update Gate))}\\ \end{aligned} zt=σ(Wzxt+Uzht1+bz)(更新门(Update Gate)

  • 作用: 控制 隐藏状态的更新方式
    • z t z_t zt 逼近 0,表示更多使用当前输入 x t x_t xt,类似于传统 RNN。
    • z t z_t zt 逼近 1,表示完全保留旧状态 h t − 1 h_{t-1} ht1,相当于 “记住过去”。

候选隐藏状态 h ~ t \tilde{h}_t h~t
h ~ t = tanh ⁡ ( W h x t + U h ( r t ⋅ h t − 1 ) + b h ) (候选隐藏状态(Candidate Hidden State)) \begin{aligned} \tilde{h}_t &= \tanh(W_h x_t + U_h (r_t \cdot h_{t-1}) + b_h) \quad \text{(候选隐藏状态(Candidate Hidden State))}\\ \end{aligned} h~t=tanh(Whxt+Uh(rtht1)+bh)(候选隐藏状态(Candidate Hidden State)

  • 作用: 生成新的隐藏状态候选值,决定如何更新当前的隐藏状态。
  • 这里的 r t ⋅ h t − 1 r_t \cdot h_{t-1} rtht1 r t r_t rt 控制 h t − 1 h_{t-1} ht1 的影响力。
  • r t r_t rt 变小时, h t − 1 h_{t-1} ht1 的影响减弱,意味着更依赖当前输入 x t x_t xt

最终隐藏状态 h t h_t ht
h t = ( 1 − z t ) ⋅ h t − 1 + z t ⋅ h ~ t (最终隐藏状态(Final Hidden State)) \begin{aligned} h_t &= (1 - z_t) \cdot h_{t-1} + z_t \cdot \tilde{h}_t \quad \text{(最终隐藏状态(Final Hidden State))}\\ \end{aligned} ht=(1zt)ht1+zth~t(最终隐藏状态(Final Hidden State)

  • 作用: 更新隐藏状态
    • 如果 z t z_t zt 逼近 1,说明沿用旧隐藏状态 h t − 1 h_{t-1} ht1不更新
    • 如果 z t z_t zt 逼近 0,说明完全使用新计算的 h ~ t , \tilde{h}_t, h~t 完全更新

GRU 结构图中有 两条输出箭头,但其实 它们是同一个东西

  • 一条输出给外部(作为最终输出)

  • 一条传递给下一时刻(作为下一个时间步的输入)

{{{(>_<)}}} 各个参数的含义

参数符号含义
输入向量 x t x_t xt当前时刻 t 的输入数据
前一时刻隐藏状态 h t − 1 h_{t-1} ht1记忆前一时刻的状态
隐藏状态 h t h_t ht当前时刻的隐藏状态(输出)
更新门 z t z_t zt控制旧状态 h t − 1 h_{t-1} ht1与新状态 h ~ t \tilde{h}_t h~t 之间的比例
重置门 r t r_t rt控制前一时刻隐藏状态 h t − 1 h_{t-1} ht1的信息遗忘程度
候选隐藏状态 h ~ t \tilde{h}_t h~t通过当前输入和重置门计算出的新的隐藏状态候选值
权重矩阵 W r , W z , W h W_r, W_z, W_h Wr,Wz,Wh输入 x t x_t xt 对应的权重
隐藏状态的权重矩阵 U r , U z , U h U_r, U_z, U_h Ur,Uz,Uh之前隐藏状态 h t − 1 h_{t-1} ht1对应的权重
偏置项 b r , b z , b h b_r, b_z, b_h br,bz,bh用于调整每个门的输出
激活函数 σ ( s i g m o i d ) , t a n h ⁡ \sigma (sigmoid), tanh⁡ σ(sigmoid),tanhSigmoid 用于门控,Tanh 用于隐藏状态计算
4. 结构对比
特性RNNGRULSTM
核心组件只有隐藏状态 h t h_t ht更新门 z t z_t zt、重置门 r t r_t rt遗忘门 f t f_t ft、输入门 i t i_t it、输出门 o t o_t ot
梯度消失问题严重轻微最小
计算复杂度最简单较快(比 LSTM 快)较慢(参数最多)
记忆能力短时记忆(容易遗忘)较长时记忆长时记忆最强
适用于简单短期任务(如简单时间序列)中等长度序列(如语音识别)长序列依赖任务(如机器翻译、文本生成)
5. 综合应用
任务适合的模型推荐架构
语音识别RNN + GRU处理语音短期和中期特征
金融预测GRU + LSTMGRU 处理短期市场波动,LSTM 处理长期趋势
机器翻译LSTM / GRULSTM 处理长时间依赖,GRU 计算更快
文本摘要GRU + LSTMGRU 负责短摘要,LSTM 处理长文本
视频分析CNN + RNN + LSTMCNN 处理帧级别特征,RNN/LSTM 处理时序依赖
机器人控制RNN + GRURNN 处理短时间依赖,GRU 适用于长期控制
混合任务(文本+语音+时间序列)RNN + GRU + LSTM三者结合,适应不同时间尺度

小白课堂:

🧠 深度学习时代(2013 - 2017)

🔹 让计算机自己学习语言

2013 年后,深度学习(Deep Learning)开始应用于 NLP,使计算机可以“学习”语言,而不是依赖人工规则或统计概率。

1️⃣ 词向量(Word Embeddings)

  • Word2Vec(2013):让计算机用数学方式理解单词的意思。
  • 例子:
  • “国王” - “男人” + “女人” = “王后” 👑
  • 计算机通过大数据学习单词之间的联系。

2️⃣ CNN 在 NLP(2014)

CNN(卷积神经网络)原本是用来识别图片的,但也能用于 NLP,比如文本分类。

📌 CNN 是如何处理文本的?

  • 它会像“扫描图片”一样扫描句子,捕捉其中的重要模式。
  • 例子:
  • “电影很好看” → CNN 识别出“很好看”是一个积极的评价。
  • “这部电影无聊透顶” → CNN 识别出“无聊透顶”是消极的评价。
  • CNN 非常适合文本分类任务(如情感分析、垃圾邮件检测)。

📌 CNN 的问题

  • 不能理解句子的顺序,比如“他不是坏人” vs “他是坏人”,CNN 可能误解。

    对位置不敏感,可能忽略词语顺序,无法捕捉“不”对句子意义的改变。

  • 无法处理长文本,因为它更擅长局部特征(小范围的词组)。


3️⃣ RNN 和 LSTM(2014 - 2017)

CNN 不能处理长文本,于是出现了 RNN(循环神经网络)和 LSTM(长短时记忆网络)。

📌 RNN 的思路

  • 像读书一样按顺序处理文本,每读一个单词,就把信息传递到下一步。
  • 问题:句子太长,前面的信息容易“忘记”。

📌 LSTM(长短时记忆网络)

  • 解决了 RNN 记忆力不好的问题,能够保留长距离信息。
  • 例子:
  • “小明出生在中国,他从小学习中文。”
  • LSTM 记住“小明出生在中国”,就能理解“他”指的是“小明”。

LSTM 适用于: 机器翻译、语音识别、对话系统。
问题:计算速度慢,难以并行处理。


LLM 发展简史:带你看懂 NLP 进化史,从 NLP 到 LLM 的非凡旅程(二)!

LLM 发展简史:带你看懂 NLP 进化史,从 NLP 到 LLM 的非凡旅程(三)!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值