深度学习(Deep Learning)¶
深度学习是机器学习的一个子领域,通过多层神经网络自动从原始数据中学习层次化的特征表示,从而完成分类、生成、决策等任务。
什么是深度学习?¶
传统机器学习依赖人工设计特征(特征工程),而深度学习的核心突破在于:让网络自己学特征。
一句话理解
深度学习 = 多层神经网络 + 大量数据 + 强大算力
"深度" 指的是网络的层数多。浅层网络只能学到简单模式(边缘、颜色),而深层网络可以逐层抽象,从低级特征组合出高级语义:
graph LR
A[输入层<br>原始数据] --> B[隐藏层 1<br>低级特征]
B --> C[隐藏层 2<br>中级特征]
C --> D[隐藏层 N<br>高级特征]
D --> E[输出层<br>预测结果]
核心概念速览¶
1. 神经元与激活函数¶
神经元 是神经网络的基本单元,模拟生物神经元的工作方式:
\[
z = \sum_{i=1}^{n} w_i x_i + b, \quad a = \sigma(z)
\]
其中 \(w_i\) 是权重,\(b\) 是偏置,\(\sigma\) 是激活函数。激活函数引入非线性,让网络能拟合复杂函数:
| 激活函数 | 公式 | 特点 |
|---|---|---|
| Sigmoid | \(\sigma(z) = \frac{1}{1+e^{-z}}\) | 输出 \((0,1)\),易梯度消失 |
| Tanh | \(\tanh(z) = \frac{e^z - e^{-z}}{e^z + e^{-z}}\) | 输出 \((-1,1)\),零中心化 |
| ReLU | \(\text{ReLU}(z) = \max(0, z)\) | ⭐ 最常用,计算快,缓解梯度消失 |
| Leaky ReLU | \(\max(0.01z, z)\) | 解决 ReLU 神经元"死亡"问题 |
2. 前向传播与反向传播¶
- 前向传播:输入数据从输入层逐层经过隐藏层,最终到达输出层,得到预测值
- 反向传播(Backpropagation):根据损失函数计算梯度,从输出层向输入层反向传递,利用链式法则逐层更新权重
\[
\frac{\partial L}{\partial w^{(l)}} = \frac{\partial L}{\partial a^{(L)}} \cdot \frac{\partial a^{(L)}}{\partial z^{(L)}} \cdots \frac{\partial z^{(l+1)}}{\partial a^{(l)}} \cdot \frac{\partial a^{(l)}}{\partial z^{(l)}} \cdot \frac{\partial z^{(l)}}{\partial w^{(l)}}
\]
直觉理解
前向传播像是考试做题(得出答案),反向传播像是对答案改错(找出哪一步错了、错多少,然后调整)。
3. 损失函数¶
损失函数衡量模型预测与真实值的差距,是训练优化的目标:
- 回归任务:均方误差 \(\text{MSE} = \frac{1}{n}\sum(y - \hat{y})^2\)
- 分类任务:交叉熵损失 \(L = -\sum_{c} y_c \log \hat{y}_c\)
- 多标签/特殊场景:Focal Loss、Dice Loss 等
4. 深度学习 vs 传统机器学习¶
| 对比维度 | 传统机器学习 | 深度学习 |
|---|---|---|
| 特征提取 | 人工设计 | 自动学习 |
| 数据需求 | 小/中等数据即可 | 通常需要大量数据 |
| 计算资源 | CPU 即可 | 通常需要 GPU/TPU |
| 可解释性 | 较好 | 较差("黑箱") |
| 适用场景 | 结构化数据、小数据 | 图像、语音、文本等非结构化数据 |
经典网络架构一览¶
深度学习的发展史就是网络架构的演化史:
graph TD
A[感知机 1958] --> B[多层感知机 MLP]
B --> C[CNN 卷积神经网络 1998]
B --> D[RNN 循环神经网络]
D --> E[LSTM / GRU]
C --> F[深度 CNN<br>VGG / ResNet]
E --> G[Seq2Seq + Attention]
G --> H[Transformer 2017]
H --> I[GPT / BERT / ViT]
| 架构 | 擅长领域 | 核心思想 | 典型应用 |
|---|---|---|---|
| MLP | 结构化数据 | 全连接,万能逼近 | 表格数据分类/回归 |
| CNN | 空间数据 | 局部感受野 + 权值共享 | 图像识别、目标检测 |
| RNN / LSTM | 序列数据 | 循环结构,记忆上下文 | 文本生成、语音识别 |
| Attention | 长距离依赖 | 动态加权聚焦关键信息 | 机器翻译、文档理解 |
知识体系导航¶
以下是深度学习各专题的详细笔记:
| 专题 | 核心内容 | 关键词 |
|---|---|---|
| 神经网络基础 | 从感知机到多层网络,前向/反向传播 | 感知机、MLP、激活函数、反向传播、万能逼近定理 |
| 卷积神经网络 | 卷积操作原理与经典架构演进 | 卷积核、池化、LeNet、VGG、ResNet、特征图 |
| 循环神经网络与序列模型 | 序列建模、长短期记忆、门控机制 | RNN、LSTM、GRU、梯度消失、Seq2Seq |
| 优化与训练技巧 | 优化器、正则化与训练稳定性 | SGD、Adam、Dropout、Batch Norm、学习率调度 |
| 注意力机制 | 从 Attention 到 Self-Attention 的演进 | 注意力权重、QKV、多头注意力、位置编码 |
深度学习环境配置¶
- 1、配置前需要保证的底层基础:NVIDIA 显卡、NVIDIA 显卡驱动。
- 2、安装 PyTorch 的版本选择:显卡架构要求的最低版本 \(\le\) PyTorch 的 CUDA 版本 \(\le\) nvidia-smi 显示的上限版本
最低版本取决于显卡架构
在代码或终端中检查显卡是否能用的一行命令:
