深度学习
知识库简介
本目录保留完整的《动手学深度学习》(D2L)中文课程正文,新增一条面向 AI Agent Engineer 的选择性路线。一般 Agent 或 RAG 应用不必先把卷积网络、分布式训练和全部推导学完;当项目需要理解模型内部、Embedding、多模态或训练评测边界时,再按需建立张量、梯度、训练/泛化、注意力与 Transformer 的直觉。
导航说明
来源与完整目录保留来源和 140 篇课程正文的结构。本页提供 Agent 工程选择性路线;2026-07-22 又为安装、自动微分、评测、数值、Transformer、优化、分布式训练和 BERT 等高风险入口补了明确标记的现代工程说明,D2L 历史正文仍保留并可追溯。
在总路线中的位置
深度学习位于“数学与数据基础”,是多模态与模型研究方向的推荐背景,而不是一般 Agent、Embedding、LLM API 或 RAG 的完整课程硬前置。需要进入本路线时,建议先补概率统计、线性代数、微积分基础和机器学习的入门概念;不必等数学全部熟练才开始。向量基础面向 Embedding 与检索,可以与本课并行或在需要 RAG 时单独学习,也不是训练神经网络的硬前置。
如果要把课内概念用于真实实验或项目,先读 工程实践与现代化路线:它把 D2L 的训练直觉连接到数据谱系、评测、发布、运行模式和 Agent/RAG 系统边界。它不是替代 140 篇正文的第二本教材,而是帮助选择必要章节、避免把历史代码或单次曲线误当成生产证据。
学习目标
- 用张量、参数、损失、梯度和优化器描述一次训练迭代。
- 区分训练集、验证集、测试集,解释欠拟合、过拟合和分布偏移。
- 理解前向传播、反向传播、自动微分与参数更新的职责。
- 用查询(query)、键(key)、值(value)解释注意力和自注意力。
- 说清 Transformer、词嵌入和预训练模型与 LLM/RAG 的连接点。
- 能运行一个小实验、读取损失/指标,并记录环境与随机性限制。
前置知识
- Python 函数、列表/字典、虚拟环境和异常处理;不熟悉时先完成 Python基础。
- 向量、矩阵乘法、导数与概率的直觉;推导看不懂时先核对形状和数据流,可按需回看 线性代数、微积分基础 与 概率统计。
- 先理解 机器学习 的数据划分、基线、指标和泛化边界,再把模型换成神经网络。
- D2L 示例可能涉及不同框架和硬件。先用 CPU 小样例理解流程,不必为入门购买 GPU。
一轮训练的最小心智模型
深度学习仍是机器学习:只是模型由许多可学习层组成,参数更多、表示能力更强。一次训练迭代可以压缩成四步:
- 前向传播:模型用参数 把输入 变成预测 。
- 计算损失:损失 衡量预测与目标 的差距;它是优化信号,不一定等同于业务指标。
- 反向传播:自动微分沿计算图求梯度 ,回答“每个参数向哪边改能让当前损失下降”。
- 参数更新:最简单的梯度下降是 ,其中学习率 控制步长。
可以手算一次验证方向:令 、、、初始 ,损失为 。此时 、、梯度 。取 后, 更新为 ,新预测为 ,新损失为 :一次更新确实让当前样本的损失下降。它仍不能证明对新样本有效。
一个 batch 是一次迭代读取的一小批样本,一个 epoch 是训练集被遍历一轮。训练损失下降只说明模型更适应训练数据;是否学到可泛化规律,仍要看未参与拟合的验证/测试数据。常见误区是把“梯度存在”当作“梯度数值稳定”,或把“参数更多”当作“效果必然更好”。
对 Agent Engineer,这套模型帮助理解 Embedding、Transformer 与微调,但调用已训练 LLM API、构建 RAG 或编排工具并不要求先训练大模型。
版本、环境与复现边界
本地课程是 2026-05-07 从 D2L 中文 2.0.0 站点整理的快照。官方安装页仍以 Python 3.9、PyTorch 1.12.0、torchvision 0.13.0 和 d2l==0.17.6 为示例;这是复现该书代码的历史环境,不能直接当作当前 PyTorch 推荐版本。PyTorch 的官方安装命令会根据 Windows、Python 和 CPU/CUDA 组合动态生成,因此本页不硬编码一个可能迅速过期的命令。
在 Windows 11 / PowerShell 7 上,先建立独立 venv,再从 PyTorch Start Locally 选择 Windows、Pip、Python 和实际计算平台,把页面生成的安装命令改为由该环境的 Python 执行:
$course = (Resolve-Path '.\Knowledge\AI Agent Engineer\docs\深度学习').Path
$venv = Join-Path $course '.venv'
$python = Join-Path $venv 'Scripts\python.exe'
py -3.11 -m venv $venv
& $python -m pip install --upgrade pip
& $python -c "import sys; print(sys.executable); print(sys.version)"随后把官方选择器给出的 pip install ... 改写成 & $python -m pip install ...,避免装进系统 Python;安装后记录 python --version、pip freeze、CPU/GPU 与驱动信息。若目标是逐行复现书中旧代码,应另建历史环境并使用原书版本,不要在同一环境中混装“当前 PyTorch”与“D2L 历史依赖”。熟悉 venv + pip 后可以用 uv 加速建环境,但环境隔离和版本记录原则不变。
本轮验证边界
本轮验证了本地文件、完整目录和选择性路线,不下载框架、不创建
.venv,也不声称 140 篇中的所有历史代码能在当前 Python/PyTorch 上原样运行。运行某一实验时,应以该实验实际输出和锁定环境为证据。
推荐学习顺序
先读:工程边界与证据
- 工程实践与现代化路线:先区分课程快照、当前框架、训练/验证/测试和发布的职责,再运行任何历史代码或创建云资源。
0. 张量与数学预备
- 预备知识总览:了解课程工具与学习顺序。
- 数据操作:重点看张量形状、索引和广播。
- 数据预处理:理解表格数据怎样进入张量。
- 线性代数、微积分、概率:只先掌握后续会用的最小概念。
- 自动微分:观察框架怎样计算梯度。
1. 从线性模型到神经网络
- 线性回归:把模型、损失和优化连成闭环。
- 线性回归简洁实现:认识框架的数据、模型、损失和优化器接口。
- 多层感知机:理解层、非线性与表达能力。
- 模型选择、欠拟合和过拟合:这是评测与生产化的必修概念。
- 反向传播和计算图:沿数据流理解梯度。
- 数值稳定性与初始化:认识梯度消失/爆炸等失败模式。
2. 通往 LLM 的序列与注意力主线
- 文本预处理、语言模型和数据集:理解 token 序列与下一个词元预测。
- 编码器—解码器、seq2seq:理解输入序列到输出序列。
- 注意力机制、多头注意力:掌握 Q/K/V 与多子空间直觉。
- 自注意力和位置编码:理解同一序列内部的信息混合和位置信号。
- Transformer:把注意力、前馈层、残差和归一化组成模型。
- 词嵌入、BERT:连接向量表示、预训练与下游任务。
3. 按应用选修
- 多模态/OCR:再读计算机视觉章节的卷积、迁移学习、检测和分割。
- 模型训练与性能:再读优化算法、计算性能和多 GPU;它们不是调用 LLM API 的前置条件。
- NLP 任务:按需读情感分析、自然语言推断与 BERT 微调。
动手实践与项目入口
最小实验
任选 线性回归简洁实现 或 多层感知机简洁实现,在独立环境中缩小数据和轮数后运行一次,记录:
- Python、框架与设备版本;
- 输入/标签形状;
- 损失怎样变化;
- 随机种子是否固定;
- 哪一项结果能证明代码运行,哪一项仍不能证明泛化。
综合项目
房价预测实战 提供完整建模流程。学习时可只在本地小数据上完成数据预处理、训练/验证划分、模型、损失与提交前检查;不要求参加线上比赛。完成后写一页实验卡:目标、数据、基线、指标、过拟合证据、复现命令和已知限制。
实验卡至少回答下面这些问题:
| 项目 | 必须记录的证据 |
|---|---|
| 环境 | Python、框架、依赖、设备和随机种子 |
| 数据 | 来源、许可、样本数、形状、训练/验证/测试边界 |
| 模型 | 输入输出形状、层、激活、损失、优化器和学习率 |
| 基线 | 简单模型或规则的同口径结果 |
| 结果 | 训练曲线、验证指标、最好轮次和至少三条错误样本 |
| 限制 | 小样本、随机性、分布差异、未执行步骤和复现风险 |
初学者自测
- 参数、超参数、激活值和梯度分别由谁产生、何时变化?
- 为什么损失函数可以下降,而 accuracy、F1 或业务收益不一定同步上升?
model.eval()与“不计算梯度”解决的是同一个问题吗?若不确定,应到所用框架的官方文档核对哪些层会改变行为。- 自注意力中的 Q、K、V 各自参与什么计算?位置编码为什么不能被词向量自然替代?
- 若训练损失继续下降而验证损失上升,你有哪些数据、模型和训练层面的排查动作?
- 为什么“我能调用大模型 API”既不等于“我会训练模型”,也不妨碍先成为 Agent 应用工程师?
完成自测时不要只背术语:至少画出一张训练闭环图、手算一次单参数梯度更新,并用一条实验日志支持自己的判断。
掌握标准
- 给定一个批量张量,能解释每一维代表什么。
- 能画出数据→模型→预测→损失→梯度→更新的闭环。
- 能说明为什么训练损失低不等于新数据表现好。
- 能区分参数、激活值、梯度、超参数和评测指标。
- 能用自己的话解释 Q/K/V、自注意力、多头与位置编码。
- 能指出 Transformer 与 Embedding/RAG 的关系,但不把 Embedding 等同于知识库。
- 能运行并记录一个最小实验,失败时从形状、设备、依赖和数据开始排查。
与其他知识库的关系
- 线性代数、微积分基础、概率统计 和 向量基础解释本课程公式。
- 机器学习提供数据划分、基线、指标和泛化的通用流程。
- Embedding与语义搜索使用深度模型产生的向量表示,但需要独立评测。
- 提示词工程、LLM API 集成和RAG主要使用已训练模型;不要求先会训练大模型。
- MLOps、LLMOps与评测体系把实验记录、版本、监控和回归测试扩展到生产环境。
主要参考资料
核验日期:2026-07-22。D2L 本地正文是教学快照;动态安装命令、框架 API 和硬件支持以安装当天的官方文档为准。