--- title: "01-概述" created: 2026-01-21 tags: - 基础与理论 - 深度学习 aliases: - 深度学习概述 --- # 概述 ## **一、项目背景与简介** ### **1.1 核心观点** - **学习关键**:深度学习学习的关键是**动手实践** - **领域地位**:深度学习是人工智能最热门领域,过去十年主要突破多源于此 - **神经网络本质**:可看作一门语言,应像学习 Python/C++ 一样学习 ### **1.2 项目特点** | **特点** | **说明** | | --- | --- | | 内容覆盖 | 从90年代至今的重要模型 | | 形式 | 每章为Jupyter Notebook,含完整代码实现 | | 资源 | 免费,可在 d2l.ai 下载 | | 代码框架 | MXNet(numpy)、PyTorch、TensorFlow 2.0 | ### **1.3 影响力** - **中文版**:网页用户超65万,GitHub近2万star - **教材采用**:140+所大学,包括MIT、Stanford、北大、清华等 --- ## **二、深度学习基础概念** ### **2.1 AI技术体系全景图** ![[image-a8519abb.png]] ### **2.2 AI能力层次模型** | **层次** | **定义** | **深度学习表现** | **典型任务** | | --- | --- | --- | --- | | **感知** | 基础识别能力 | ⭐⭐⭐⭐⭐ | 图像识别、语音识别 | | **推理** | 简单逻辑判断 | ⭐⭐⭐ | 问答系统、关系推理 | | **知识** | 规律总结形成 | ⭐⭐ | 知识图谱构建 | | **规划** | 长期决策能力 | ⭐ | 游戏AI、机器人控制 | ### **2.3 深度学习的定义** > ***深度学习**:机器学习的重要分支,通过**多层神经网络**模拟人脑层级化信息处理机制,能够自动从原始数据中学习多层次的特征表示。* **核心特点**: 1. **表示学习**:自动学习数据的层次化特征 2. **端到端学习**:从原始输入直接到最终输出 3. **大规模数据驱动**:需要大量数据进行训练 4. **计算密集**:依赖GPU/TPU等硬件加速 --- ## **三、神经网络核心原理** ### **3.1 神经元模型** **生物神经元 vs 人工神经元** ![[image-94bf979c.png]] **数学表达**: \(y = f\left(\sum\_{i=1}^{n} w\_i x\_i + b\right) = f\left(\mathbf{w}^T \mathbf{x} + b\right)\) 其中: - **x**:输入向量 - **w**:权重向量 - *b*:偏置项 - f(⋅):激活函数 ### **3.2 常用激活函数** | **函数** | **公式** | **图形特点** | **优缺点** | | --- | --- | --- | --- | | **Sigmoid** | \(\sigma(x) = \frac{1}{1 + e^{-x}}\) | S形曲线,输出(0,1) | 梯度消失、非零中心 | | **Tanh** | \(\tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}\) | S形曲线,输出(-1,1) | 零中心,仍有梯度消失 | | **ReLU** | \(\max(0, x)\) | 分段线性 | 计算快,但有"死亡神经元" | | **Leaky ReLU** | \(\max(0.01x, x)\) | 分段线性,负半轴有斜率 | 解决死亡神经元问题 | | **GELU** | \(x \cdot \Phi(x)\) | 平滑曲线 | Transformer常用 | ### **3.3 多层感知机(MLP)** ![[image-c078621b.png]] **前向传播公式**: \(h\_1 = f\_1(W\_1 x + b\_1)\) \(h\_2 = f\_2(W\_2 h\_1 + b\_2)\) \(y = f\_3(W\_3 h\_2 + b\_3)\) ### **3.4 为什么需要"深度"** | **深度优势** | **说明** | | --- | --- | | **层次化特征提取** | 底层学习边缘,中层学习纹理,高层学习语义 | | **参数效率** | 深而窄的网络比浅而宽的网络参数更少 | | **表达能力** | 理论上可以逼近任意连续函数 | | **组合爆炸** | 深层网络可表示指数级多的线性区域 | --- ## **四、深度学习数学基础** ### **4.1 损失函数** **分类任务**: \(\text{交叉熵损失} = -\sum\_{i=1}^{C} y\_i \log(\hat{y}\_i)\) **回归任务**: \(MSE \text{损失} = \frac{1}{n} \sum\_{i=1}^{n} (y\_i - \hat{y}\_i)^2\) \(\text{MAE损失} = \frac{1}{n} \sum\_{i=1}^{n} |y\_i - \hat{y}\_i|\) ### **4.2 反向传播算法** **核心思想**:利用链式法则计算损失函数对各层参数的梯度 ![[image-5639d0f8.png]] **链式法则**: \(\frac{\partial L}{\partial \hat{W}\_i} = \frac{\partial L}{\partial h\_i} \cdot \frac{\partial h\_i}{\partial W\_i}\) ### **4.3 梯度下降优化** **基本公式**: \(W\_{t+1} = W\_t - \eta \cdot \nabla\_W L\) **常见变体对比**: | **优化器** | **更新规则** | **特点** | | --- | --- | --- | | **SGD** | \(W = W - \eta \cdot g\) | 基础方法,可能震荡 | | **Momentum** | \(v = \gamma v + \eta g, W = W - v\) | 加速收敛,减少震荡 | | **AdaGrad** | 自适应学习率(累积梯度平方) | 适合稀疏数据,学习率衰减 | | **RMSprop** | 指数加权移动平均 | 解决AdaGrad学习率过快下降 | | **Adam** | Momentum + RMSprop | 最常用,自适应+动量 | ### **4.4 正则化技术** | **技术** | **原理** | **应用场景** | | --- | --- | --- | | **L1正则化** | \(L + \lambda\| \|W\|\|\_1\) | 产生稀疏权重 | | **L2正则化** | \(L + \lambda ||\|W||\|^2\_2\) | 权重衰减,防止过大 | | **Dropout** | 训练时随机丢弃神经元 | 防止过拟合,集成效果 | | **Batch Normalization** | 层间归一化 | 加速训练,稳定梯度 | | **数据增强** | 扩充训练数据多样性 | 图像旋转、裁剪等 | ### **4.5 过拟合与欠拟合** ![[image-158c810c.png]] **诊断方法**: - **欠拟合**:训练误差高、验证误差高 → 增加模型复杂度 - **过拟合**:训练误差低、验证误差高 → 增加正则化/数据 --- ## **五、卷积神经网络(CNN)** ### **5.1 核心思想** **针对图像的三大特性设计**: 1. **局部性**:像素主要与邻近像素相关 2. **平移不变性**:目标可能出现在任意位置 3. **层次性**:从低级特征到高级语义逐层抽象 ### **5.2 卷积操作** ![[image-1e01ce74.png]] **输出尺寸公式**: \(O = \frac{I - K + 2P}{S} + 1\) 其中:*I*=输入尺寸,*K*=卷积核尺寸,*P*=填充,*S*=步幅 ### **5.3 CNN基本组件** | **组件** | **功能** | **参数** | | --- | --- | --- | | **卷积层** | 特征提取 | 卷积核大小、数量、步幅 | | **池化层** | 降维、增强不变性 | 池化大小(max/avg) | | **全连接层** | 分类决策 | 神经元数量 | | **BN层** | 归一化加速训练 | γ, β参数 | ### **5.4 经典CNN架构演进** ![[image-1ca0e4b9.png]] #### **LeNet-5 (1998)** ```text 输入(32×32) → Conv → Pool → Conv → Pool → FC → FC → 输出(10类) ``` - **贡献**:CNN的开创性工作 - **应用**:手写数字识别 #### **AlexNet (2012)** ```text 输入(224×224×3) → Conv1 → Pool → Conv2 → Pool → Conv3-5 → Pool → FC → FC → 输出 ``` - **贡献**:引发深度学习热潮 - **创新**:ReLU、Dropout、数据增强、GPU训练 #### **VGG (2014)** - **核心思想**:使用小卷积核(3×3)堆叠代替大卷积核 - **优势**:更深网络、更少参数、更强表达能力 ```text VGG-16结构: Conv3-64 ×2 → Pool → Conv3-128 ×2 → Pool → Conv3-256 ×3 → Pool → Conv3-512 ×3 → Pool → Conv3-512 ×3 → Pool → FC ×3 ``` #### **ResNet (2015)** **核心创新:残差连接** ![[image-2a8650c5.png]] \(y = F(x, \{W\_i\}) + x\) **为什么有效**: - 解决深层网络的梯度消失问题 - 学习残差比学习完整映射更容易 - 允许构建非常深的网络(152层+) #### **其他重要架构** | **架构** | **年份** | **核心创新** | | --- | --- | --- | | **Inception** | 2014 | 多尺度并行卷积 | | **DenseNet** | 2017 | 密集连接,特征复用 | | **MobileNet** | 2017 | 深度可分离卷积,轻量化 | | **EfficientNet** | 2019 | 复合缩放,NAS搜索 | ### **5.5 CNN特征可视化** ![[image-b5171109.png]] --- ## **六、循环神经网络(RNN)** ### **6.1 为什么需要RNN** | **CNN的局限** | **RNN的解决** | | --- | --- | | 输入固定长度 | 可处理变长序列 | | 无法建模时序依赖 | 有记忆能力 | | 无法处理顺序信息 | 考虑先后顺序 | ### **6.2 基本RNN结构** ![[image-b2612459.png]] **数学公式**: \(h\_t = \tanh(W\_{hh} h\_{t-1} + W\_{xh} x\_t + b\_h)\) \(y\_t = W\_{hy} h\_t + b\_y\) ### **6.3 RNN的问题:梯度消失/爆炸** **BPTT(时间反向传播)**: \(\frac{\partial L}{\partial W} = \sum\_{t=1}^{T} \frac{\partial L\_t}{\partial W}\) 当序列很长时: - **梯度消失**:梯度指数衰减,无法学习长期依赖 - **梯度爆炸**:梯度指数增长,训练不稳定 ### **6.4 LSTM(长短期记忆网络)** **核心思想**:引入门控机制,控制信息流动 ![[image-6d7b7f59.png]] **三个门的作用**: | **门** | **公式** | **功能** | | --- | --- | --- | | **遗忘门** | \(f\_t = \sigma(W\_t \cdot [h\_{t-1}, x\_t] + b\_f)\) | 决定丢弃哪些信息 | | **输入门** | \(i\_t = \sigma(W\_i \cdot [h\_{t-1}, x\_t] + b\_i)\) | 决定更新哪些信息 | | **输出门** | \(o\_t = \sigma(W\_o \cdot [h\_{t-1}, x\_t] + b\_o)\) | 决定输出哪些信息 | **完整公式**: \(\tilde{C}\_t = \tanh(W\_C \cdot [h\_{t-1}, x\_t] + b\_C)\) \(C\_t = f\_t \odot C\_{t-1} + i\_t \odot \tilde{C}\_t\) \(h\_t = o\_t \odot \tanh(C\_t)\) ### **6.5 GRU(门控循环单元)** **简化版LSTM**,将遗忘门和输入门合并 ```text ┌─────────────────────────────────────┐ │ 重置门 rₜ: 控制利用多少历史信息 │ │ 更新门 zₜ: 控制更新/保留的比例 │ └─────────────────────────────────────┘ ``` \(z\_t = \sigma(W\_z \cdot [h\_{t-1}, x\_t])\) \(r\_t = \sigma(W\_r \cdot [h\_{t-1}, x\_t])\) \(\tilde{h}\_t = \tanh(W \cdot [r\_t \odot h\_{t-1}, x\_t])\) \(h\_t = (1 - z\_t) \odot h\_{t-1} + z\_t \odot \tilde{h}\_t\) ### **6.6 Seq2Seq模型** **应用**:机器翻译、文本摘要、对话系统 ![[image-98637c0c.png]] --- ## **七、注意力机制与Transformer** ### **7.1 注意力机制的动机** **Seq2Seq的局限**: - 所有输入信息压缩到固定长度向量 - 长序列信息丢失严重 - 无法关注输入的不同部分 **注意力解决方案**:动态地关注输入序列的不同位置 ### **7.2 注意力机制原理** ![[image-90facfd4.png]] **数学表达**: \(\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d\_k}}\right)V\) ### **7.3 自注意力(Self-Attention)** ![[image-80b99e76.png]] **与RNN对比**: | **特性** | **RNN** | **Self-Attention** | | --- | --- | --- | | 计算并行性 | ❌ 串行 | ✅ 并行 | | 长距离依赖 | 较弱 | 直接连接 | | 计算复杂度 | O(n) | O(n²) | | 位置信息 | 隐式 | 需显式编码 | ### **7.4 Transformer架构** ![[image-0b477f70.png]] #### **核心组件详解** **1. 多头注意力(Multi-Head Attention)** \(\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}\_1, \ldots, \text{head}\_h) W^O\) \(\text{head}\_i = \text{Attention}\left(QW\_i^Q, KW\_i^K, VW\_i^V\right)\) **2. 位置编码(Positional Encoding)** \(PE\_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i}/d\_{model}}\right)\) \(PE\_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i}/d\_{model}}\right)\) **3. 残差连接 + Layer Normalization** \(\text{output} = \text{LayerNorm}(x + \text{Sublayer}(x))\) ### **7.5 BERT与GPT** | **模型** | **架构** | **预训练任务** | **应用方式** | | --- | --- | --- | --- | | **BERT** | Encoder | 掩码语言模型(MLM) + 下一句预测(NSP) | 微调(Fine-tuning) | | **GPT** | Decoder | 自回归语言模型 | 提示(Prompting) | ![[image-5ec98f66.png]] --- ## **八、优化算法详解** ### **8.1 优化目标** \(\min\_{\theta} \mathcal{L}(\theta) = \frac{1}{N} \sum\_{i=1}^{N} \ell(f(x\_i; \theta), y\_i) + \lambda R(\theta)\) ### **8.2 学习率调度策略** ![[image-d488b21c.png]] ### **8.3 优化器对比总结** | **优化器** | **自适应LR** | **动量** | **适用场景** | | --- | --- | --- | --- | | SGD | ❌ | ❌ | 简单任务,精确调参 | | SGD+Momentum | ❌ | ✅ | 深层网络,需加速收敛 | | Adam | ✅ | ✅ | 大多数情况的默认选择 | | AdamW | ✅ | ✅ | 需要L2正则化,NLP任务 | | LAMB | ✅ | ✅ | 大batch训练 | --- ## **九、高性能计算** ### **9.1 计算需求分析** | **模型** | **参数量** | **训练FLOPs** | | --- | --- | --- | | AlexNet | 60M | ~10^18 | | ResNet-50 | 25M | ~10^18 | | BERT-Large | 340M | ~10^20 | | GPT-3 | 175B | ~10^23 | ### **9.2 并行策略** ![[image-29a25241.png]] ### **9.3 混合精度训练** ![[image-dc745f24.png]] --- ## **十、应用领域深度解析** ### **10.1 计算机视觉任务** ![[image-64b1fec0.png]] #### **目标检测经典模型** | **类型** | **模型** | **特点** | | --- | --- | --- | | **两阶段** | R-CNN系列 | 精度高,速度慢 | | **单阶段** | YOLO, SSD | 速度快,实时检测 | | **Anchor-free** | FCOS, CenterNet | 无预设锚框 | | **Transformer** | DETR | 端到端,无NMS | ### **10.2 自然语言处理任务** ![[image-22123dc1.png]] ### **10.3 生成式模型** | **模型** | **原理** | **应用** | | --- | --- | --- | | **VAE** | 变分推断,学习隐变量分布 | 图像生成、数据增强 | | **GAN** | 生成器-判别器对抗训练 | 图像生成、风格迁移 | | **Diffusion** | 逐步去噪生成 | DALL-E、Stable Diffusion | | **自回归** | 逐token生成 | GPT、文本生成 | --- ## **十一、深度学习的可解释性** ### **11.1 可解释性的层次** ![[image-454f8ad5.png]] ### **11.2 常用解释方法** | **方法** | **原理** | **可视化** | | --- | --- | --- | | **Grad-CAM** | 梯度加权的类激活映射 | 热力图显示重要区域 | | **SHAP** | 博弈论Shapley值 | 特征贡献度 | | **LIME** | 局部线性近似 | 关键特征高亮 | | **Attention** | 注意力权重可视化 | Token重要性 | ### **11.3 "为何有效" vs "可解释性"** | **概念** | **定义** | **示例** | | --- | --- | --- | | **为何有效** | 模型设计时的原理解释 | ResNet因残差连接解决梯度消失 | | **可解释性** | 理解具体预测的原因 | 为什么这张图被识别为猫 | --- ## **十二、实战案例:广告推荐系统** ### **12.1 系统架构** ![[image-905ab598.png]] ### **12.2 CTR预估模型演进** | **模型** | **年份** | **核心思想** | | --- | --- | --- | | LR | - | 线性模型,可解释性好 | | FM | 2010 | 二阶特征交叉 | | Wide&Deep | 2016 | 记忆+泛化 | | DeepFM | 2017 | FM+DNN端到端 | | DIN | 2018 | 用户兴趣注意力 | | DIEN | 2019 | 兴趣演化建模 | ### **12.3 团队协作模式** ![[image-8b41e52a.png]] --- ## **十三、常见问题汇总** ### **13.1 概念辨析** | **问题** | **解答** | | --- | --- | | 数据科学家 vs AI专家 | 无本质区别,AI专家更深入特定领域 | | 深度学习 vs 机器学习 | 深度学习是机器学习的子集,使用深层神经网络 | | 符号学能否与DL融合 | 可以,如图神经网络、神经符号推理 | ### **13.2 技术问题** | **问题** | **解答** | | --- | --- | | Mac支持PyTorch吗 | 支持,但仅CPU,复杂任务慢 | | 如何解决过拟合 | 正则化、Dropout、数据增强、早停 | | 如何选择优化器 | Adam是默认选择,精调可尝试SGD | ### **13.3 实践建议** | **场景** | **建议** | | --- | --- | | 论文阅读 | 关注顶会,使用Google Scholar追踪引用 | | 无人驾驶安全 | 多模型融合、多传感器、不确定性估计 | | 职业发展 | 广度(多领域应用) 或 深度(领域专家) | --- ## **十四、学习资源汇总** | **资源类型** | **链接/说明** | | --- | --- | | 📚 免费教材 | zh-v2.d2l.ai | | 🎬 视频课程 | B站/YouTube (d2l官方) | | 💻 代码仓库 | github.com/d2l-ai | | 💬 讨论区 | 课程官网论坛 | | 🔧 PyTorch文档 | pytorch.org/docs | --- ## **十五、核心要点总结** ![[image-9c5eca4e.png]] > *📌 **学习建议**:理论与实践相结合,先理解原理,再动手实现,最后深入数学细节。从经典模型开始,逐步掌握最新技术!* --- **组内导航**:⬅️ [[00-信息基础大赛|00-信息基础大赛]] | 🏠 [[00-基础与理论|00-基础与理论]]