从神经网络到大模型的深度学习入门

深度学习让计算机从大量例子中学习规律,用于识别图像、处理语言和生成内容。它的基础是神经网络;CNN、RNN、Transformer 等架构,则针对不同的数据与计算需求组织这个网络。

深度学习技术关系图

flowchart TD
    CL["链式法则"]
    NN["神经网络雏形<br/>多层网络的隐层训练方法尚不成熟"]

    CL -->|数学基础| BP["反向传播(1986 年广泛推广)<br/>计算梯度,供优化器更新参数"]
    NN --> BP

    BP -->|用于训练| CNN["CNN<br/>局部连接+参数共享<br/>(1989 / 2012)"]
    BP -->|用于训练| RNN["RNN<br/>状态沿序列传递<br/>(1982 / 1997 / 2014)"]
    BP -->|用于训练| MLP["MLP<br/>全连接基础形态"]
    GAN["GAN(2014)<br/>生成对抗框架<br/>生成器与判别器对抗训练"]
    MLP -.->|可用于构建<br/>生成器或判别器| GAN

    RNN --> LSTM["LSTM<br/>门控+细胞态"]
    RNN --> GRU["GRU 等<br/>RNN 变体"]

    ATT["注意力机制<br/>(2014–2015)<br/>按相关性分配权重、汇总信息"] -->|提供核心机制:<br/>自注意力等| TF["Transformer(2017)<br/>自注意力+前馈网络<br/>位置编码、残差连接与归一化<br/>便于并行训练,建模长距离依赖"]
    BP -->|用于训练| TF

    TF --> GPT["GPT<br/>因果自回归<br/>从左到右预测"]
    TF --> BERT["BERT<br/>双向编码器<br/>掩码预测学表征"]

    GPT -->|规模化训练<br/>Scaling Law:指导参数、数据与算力的配比| LLM["LLM<br/>GPT 式模型+规模化训练<br/>是生成式 LLM 的主要路线之一"]

    LLM -->|后训练| RLHF["RLHF<br/>对齐偏好与指令"]
    LLM -->|架构设计| MOE["MoE(稀疏混合专家)<br/>路由选择专家<br/>每个 token 仅激活部分专家"]
    LLM -->|应用增强| RAG["RAG<br/>外部检索补知识"]
    LLM -->|能力迁移| DIST["Distillation<br/>压缩到小模型"]

    classDef math fill:#E8F0FE,stroke:#4285F4,color:#1A237E
    classDef early fill:#F3E5F5,stroke:#8E24AA,color:#4A148C
    classDef train fill:#FFF3E0,stroke:#FB8C00,color:#E65100
    classDef arch fill:#E8F5E9,stroke:#43A047,color:#1B5E20
    classDef seq fill:#FFF8E1,stroke:#F9A825,color:#795548
    classDef trans fill:#E3F2FD,stroke:#1E88E5,color:#0D47A1
    classDef branch fill:#FCE4EC,stroke:#D81B60,color:#880E4F
    classDef llm fill:#EDE7F6,stroke:#5E35B1,color:#311B92
    classDef eng fill:#ECEFF1,stroke:#546E7A,color:#263238

    class CL math
    class NN early
    class BP,GAN train
    class CNN,RNN,MLP arch
    class LSTM,GRU,ATT seq
    class TF trans
    class BERT,GPT branch
    class LLM llm
    class RLHF,MOE,RAG,DIST eng

注:连线表示训练支持、架构分支或方法关联,不统一表示结构组成或先后顺序;虚线表示可选的实现关系。图中年份标注代表性工作。

神经网络怎样表示规律

神经网络是受人脑神经元结构启发的计算模型,通常由多层相互连接的节点组成:

  • 输入层:接收数据,例如图片的像素数值。
  • 隐藏层:对信息进行变换,逐层提取和组合特征。
  • 输出层:给出结果,例如图片属于各个类别的概率。

让计算机识别猫,很难靠几条规则完成:猫会转身、蜷缩,光线和背景也会变化。深度学习的办法是提供大量样本,让网络学出有用的特征。

图片进入网络时是一组像素数值。前面的层可能识别边缘和纹理,后面的层逐渐组合出复杂形状,最后输出分类结果。实际网络的特征通常分散在大量数值中,不一定对应能直接命名的部件。

单个神经元的典型计算形式是:

输出 = 激活函数(W·x + b)

其中,x 是输入,W 是权重,b 是偏置,W·x 表示对输入加权求和。权重控制各项输入的影响,偏置调整计算基准,激活函数通常引入非线性,使网络能够表达复杂关系。权重和偏置等可训练数值,统称为参数。

从单层感知机到多层网络

1958 年,罗森布莱特(Frank Rosenblatt)发表了感知机的经典论文。单层感知机能从样本中学习权重,但没有隐藏层,只能表示线性分类边界。《The Perceptron》

加入隐藏层和非线性激活后,多层网络能够逐层组合特征,表达更复杂的关系。这种多层计算与表示的叠加,就是深度学习中“深度”的含义。

反向传播:利用错误改进的训练算法

多层网络的表达能力更强,但如何高效训练一度是个难题。1986 年,鲁梅尔哈特、辛顿和威廉斯的研究推动了反向传播算法的普及,为训练多层网络提供了有效方法。《Learning Representations by Back-Propagating Errors》

反向传播(Backpropagation)是训练神经网络的核心算法之一,用于计算损失对各层参数的梯度,为优化器更新参数提供依据。

以有标签的猫图分类为例,一轮训练包括四步:

  1. 前向传播:输入图片,计算预测结果。
  2. 计算损失:用一个数值衡量预测与标签的差距。
  3. 反向传播:计算损失对各个参数的梯度。
  4. 更新参数:优化器根据梯度调整参数。

梯度描述参数微小变化对损失的影响。反向传播通过链式法则求出梯度,梯度下降等优化方法再执行更新。如果把训练比作下山,梯度提供坡度信息,学习率控制步长。训练过程示例

模型也可能记住训练图片的背景,换一批照片就失效,这叫过拟合。因此,要用未参与参数训练的数据检验它处理新情况的能力,即泛化能力。

训练完成后,用模型处理新输入叫推理,通常不更新参数。这里的“推理”泛指使用模型进行计算,不专指逻辑推理。

CNN 和 RNN 怎样处理图像与序列

CNN 提取局部图案

CNN,即卷积神经网络,利用图像中邻近像素的关联提取特征。卷积像一个在图片上滑动的小窗口,每次处理局部区域,同一套计算规则在不同位置重复使用,这叫参数共享。

相对于把所有像素直接连接到所有计算单元,局部连接和参数共享可以减少参数。多层卷积把局部特征逐步组合起来,经典 CNN 还常用池化压缩空间尺寸,再完成分类。它适用于图像分类、目标检测,也可处理音频等具有局部结构的数据。

RNN 传递前文信息

RNN,即循环神经网络,逐个处理序列中的位置,每一步都更新一个内部状态。这个状态像不断改写的摘要,把前面的信息带到后面,适用于语言、语音和时间序列。

序列过长时,早期信息可能难以保留,训练中也可能出现梯度消失或爆炸。LSTM 和 GRU 用门控机制调节信息的保留与遗忘,改善长距离信息传递。不过,传统 RNN 的后一步依赖前一步,沿序列方向的并行计算仍受限制。

GAN 怎样学习生成内容

GAN,即生成对抗网络,让两个网络通过对抗共同学习:生成器制造样本,判别器区分样本来自真实数据还是生成器。生成器根据判别器的反馈改进,判别器则学习辨别越来越逼真的样本。GAN 原始论文

这像画画的人与鉴别作品的人相互较量。GAN 可用于图像合成、修复等任务,但训练可能不稳定,生成器也可能只学会生成少数几类样本。它是生成模型的一条技术路线。

Transformer 怎样建立远距离联系

Transformer 以注意力机制为核心,让序列中的位置直接交换相关信息,减少逐步传递的环节。《Attention Is All You Need》

文本先被切成 token,再转换为向量。一个 token 可能是字、词的一部分或符号,不固定对应一个汉字或单词。

自注意力为可见范围内的不同位置分配权重,再汇总信息。例如“小明把书递给小红,她接过后笑了”,理解“她”时,“小红”就是相关线索。

注意力计算中的 Q、K、V 分别是查询、键和值。Q 表示当前位置寻找信息的线索,K 用于匹配,V 提供要汇总的内容。模型比较 Q 与 K,得到权重,再对 V 加权汇总。多头注意力在多个表示空间中进行这种计算,位置编码等机制则补充顺序信息。

Transformer 更容易在训练时并行处理多个位置。常见的自回归语言模型在生成时仍逐个产生 token,并用因果遮罩限制各位置只能读取允许看到的前文。

大语言模型怎样获得多种能力

大语言模型(LLM) 通过大规模语言训练,学习理解和生成文本。“大模型”的范围更广,还包括图像、语音和多模态模型。

以基于 Transformer 的自回归模型为例,预训练的核心任务之一是根据前文预测下一个 token。文本本身就提供了预测目标,无须逐句人工标注,这属于自监督学习。在这一训练过程中,模型逐渐学到语法、概念关联、事实和程序模式,为处理多种任务打下基础。

传统自然语言处理(NLP)系统常为翻译、分类、问答等任务分别训练或微调模型。大语言模型更强调通用能力:同一个模型,通过不同的 prompt(提示词)完成多种任务,减少为每个任务单独训练模型的需要。

只给任务说明、不提供示例,称为零样本使用;在提示中提供少量输入与输出的示例,再让模型处理新输入,称为少样本使用。这两种方式通常不更新参数,而是利用上下文把已有能力用于当前任务,例如翻译、摘要或代码生成。

Scaling Law(尺度定律)

尺度定律描述了模型规模、数据量、计算投入与预测损失之间的经验关系:在一定条件下,合理增加这些资源,损失往往呈现可预测的下降趋势,但收益不与投入简单成正比。尺度定律研究

LLM 的许多发展路径都在利用这一规律:

  • 扩大参数规模
  • 扩大训练语料
  • 增加训练算力
  • 优化参数量、数据量与算力之间的配比

只增加参数而缺少数据和训练计算,未必能获得相应提升。Chinchilla 研究考察的正是固定计算预算下,模型大小与训练数据量的合理配比。计算最优训练研究

Transformer 的训练易于并行,便于利用大规模算力,是一种适合持续扩展(scale up)的架构。

不过,预测得更好不等于回答一定正确。模型仍可能生成流畅、具体却缺乏依据的内容,这就是幻觉。

RLHF 怎样让模型更符合要求

预训练模型擅长续写,却未必能按“整理成三点”这样的要求作答。监督微调让它学习指令与合适回答的示例;RLHF,即基于人类反馈的强化学习,进一步利用人的偏好优化行为。

典型流程是让人比较多个回答,用偏好数据训练奖励模型,再通过强化学习提高语言模型获得的奖励。InstructGPT 论文

RLHF 是后训练的一种方法,能改善指令遵循和回答体验。但人类偏好不等于事实正确,一个有说服力的答案仍可能出错。

MoE 与知识蒸馏怎样控制成本

MoE,即混合专家模型,在网络内部设置多个“专家”分支。稀疏 MoE 的路由器为输入选择少数分支参与计算,使模型拥有较大的总参数量,而每个 token 只使用部分专家参数。稀疏 MoE 论文和 Switch Transformer分别展示了这种设计及其与 Transformer 的结合。

“专家”是训练形成的计算模块,不直接对应医生、程序员等职业。较少的激活参数可以节省计算,但全部参数仍需要存储,路由、负载均衡和设备间通信也会影响效率。

知识蒸馏让学生模型学习教师模型的答案或输出概率,学生通常更小、更便宜。例如,教师给出“很像猫,也有点像狐狸”的概率信息,比单独一个“猫”的标签多传递了类别间的相似关系。知识蒸馏论文

蒸馏能转移多少能力,取决于学生容量、训练数据和任务。MoE 分配网络内部的计算,蒸馏则在模型之间转移能力,两者可以结合使用。

RAG 怎样让模型利用外部资料

模型不会自动知道公司刚更新的制度。RAG,即检索增强生成,先查找相关资料,再把资料交给模型生成答案,类似开卷作答。RAG 论文

以“出差报销需要哪些材料”为例,系统先将制度文档切块、建立索引;收到问题后检索相关片段,重新排序,把选中的内容放入上下文,再由模型回答并附上来源。

其中,Embedding 模型把文本变成用于检索的向量,便于找到语义相近的内容;向量数据库负责存储与搜索;重排序进一步筛选结果。检索也可以使用关键词,或将两种方式结合。

RAG 主要改变回答时提供的上下文,微调则通过训练改变参数。因此,更新资料库通常不需要重新训练语言模型。

RAG 可以减少部分知识缺口,提供核查线索,但不能消除幻觉:资料可能过时,检索可能漏掉关键条款,模型也可能误读。上下文容量有限,材料还需要筛选。

查询订单、运行计算、执行流程,则需要连接外部工具。程序执行模型提出的工具调用,再把结果交回模型,可以形成多步工作流;让模型参与选择后续行动,是许多 Agent,即智能体系统 的组成方式。

概念之间的关系

层面 相关概念 解决的问题
计算基础 神经网络 怎样用可训练参数表示规律
网络结构 CNN、RNN、Transformer、MoE 怎样组织信息处理与计算
训练与生成方法 反向传播、GAN、RLHF、知识蒸馏 怎样计算梯度、学习生成或调整行为与能力
规模规律 Scaling Law 增加模型、数据和计算投入会带来什么变化
模型类别 LLM 怎样处理多种语言任务
应用系统 RAG、工具调用、Agent 怎样接入资料并完成实际任务