深度学习完全入门笔记(小白友好版)
目标:理解深度学习是什么、神经网络如何工作、常见模型与训练技巧,涵盖从零到面试级核心知识点。
目录
- 深度学习是什么
- 单个神经元与激活函数
- 前向传播与反向传播
- 损失函数与优化器
- 多层神经网络与过拟合处理
- 卷积神经网络(CNN)
- 循环神经网络(RNN)与 LSTM
- Transformer(必学)
- 生成模型与自编码器
- 训练深度网络的实用技巧
- 评价指标与调参
- 学习路线建议
1. 深度学习是什么
- 传统机器学习:需要手工设计特征(例如图片的边缘、纹理)。
- 深度学习:使用多层神经网络自动提取特征,从低层到高层组合出抽象概念。
- 三个关键因素:海量数据 + 强大算力(GPU)+ 复杂模型。
比喻:深度学习就像一个多层的筛子,每一层把数据变得更抽象,最后一层给出判断。
2. 单个神经元与激活函数
神经元计算
输入 \(x_1, x_2, x_3\),权重 \(w_1, w_2, w_3\),偏置 \(b\):
\[z = w_1 x_1 + w_2 x_2 + w_3 x_3 + b
\]
然后通过 激活函数 得到输出 \(a = f(z)\)。
常见激活函数(务必记住图或性质)
| 名字 | 公式 | 优点 | 缺点 |
|---|---|---|---|
| Sigmoid | \(\sigma(x) = \frac{1}{1+e^{-x}}\) | 输出0~1,适合二分类输出层 | 梯度饱和 → 梯度消失 |
| Tanh | \(\tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}\) | 输出-1~1,零中心 | 仍会梯度饱和 |
| ReLU | \(ReLU(x) = \max(0, x)\) | 计算快、缓解梯度消失 | 神经元可能坏死 |
| Leaky ReLU | \(\max(\alpha x, x)\) | 解决坏死 | 多一个超参数 |
| Softmax | \(\frac{e^{z_i}}{\sum_j e^{z_j}}\) | 输出概率分布 | 仅用于多分类输出层 |
💡 隐藏层通常用 ReLU,输出层:二分类用Sigmoid,多分类用Softmax,回归用线性。
3. 前向传播与反向传播
前向传播
数据从输入层进入,经过每一层计算,最终输出预测值 \(\hat{y}\)。
反向传播(最核心算法)
- 计算损失 \(L\) 对每个参数 \(w\) 的梯度(导数)。
- 利用链式法则从输出层往回推导梯度。
- 然后用梯度更新参数:\(w = w - \eta \cdot \frac{\partial L}{\partial w}\)。
不用怕,你只需知道:反向传播让网络能从错误中学习,逐层调整权重。
4. 损失函数与优化器
损失函数(衡量预测与真实值的差距)
- 均方误差 (MSE):回归任务 \(L = \frac{1}{n}\sum (y - \hat{y})^2\)
- 交叉熵 (Cross-Entropy):分类任务 \(L = -\sum y_i \log \hat{y}_i\)
优化器(如何更新参数)
- SGD(随机梯度下降):每次用一个样本来更新,波动大。
- Mini-batch SGD:每次用一小批数据,最常见。
- Momentum:引入惯性,加速收敛。
- Adam:自适应学习率 + Momentum,默认首选(lr=0.001)。
小白直接记住:分类用交叉熵 + Adam 优化器,回归用 MSE + Adam。
5. 多层神经网络与过拟合
深度网络的问题
- 过拟合:在训练集上太好,测试集差(记住别人家的孩子)。
- 梯度消失/爆炸:层数深时梯度越来越小或越来越大。
防止过拟合的方法(面试高频)
| 方法 | 解释 |
|---|---|
| L2 正则化 | 损失函数加 \(\lambda |w|^2\),让权重变小 |
| Dropout | 训练时随机丢弃一部分神经元,防止依赖特定特征 |
| Batch Normalization | 归一化每一层输入,加速训练,轻微正则化 |
| Early Stopping | 验证集准确率不再提升就停止训练 |
| 数据增强 | 随机旋转、翻转、裁剪图片等 |
缓解梯度消失/爆炸
- 使用 ReLU(相比 Sigmoid/Tanh)。
- Batch Normalization 也管用。
- 残差连接(ResNet)——后面会讲。
6. 卷积神经网络(CNN)
专门处理图像、视频等网格数据。
核心操作
- 卷积:用一个很小的滤波器(如 3×3)滑过图像,提取局部特征。
- 池化:下采样(最大池化最常用),缩小尺寸,保留主要特征。
- 全连接层:最后把特征拉平做分类。
经典 CNN(建议了解名字和特点)
| 模型 | 贡献 |
|---|---|
| LeNet | 最早用于手写数字识别 |
| AlexNet | 引入 ReLU、Dropout、GPU 并行 |
| VGG | 只用 3×3 卷积,层数更深 |
| ResNet | 残差连接,训练几百层不退化 |
| Inception | 多尺度卷积核并行 |
残差块公式
\[y = F(x, \{W_i\}) + x
\]
相当于跳跃连接,让梯度可以直接流过。
7. 循环神经网络(RNN)与 LSTM
处理序列数据(文本、音频、时间序列)。
RNN 的问题
- 长期依赖导致梯度消失/爆炸。
- 记不住太早的信息。
LSTM(长短期记忆)
引入三个门:遗忘门、输入门、输出门,以及一个细胞状态,能记住很久前的信息。
GRU
LSTM 的简化版,效果差不多,参数更少。
面试常问:LSTM 如何解决梯度消失?答:门控机制让梯度能选择性流过。
8. Transformer(必学,当前主流)
抛弃了 RNN 的序列结构,完全靠 注意力机制。
自注意力(Self-Attention)
对于序列中的每个向量,计算与其他所有向量的相关性分数,然后加权求和。
公式:
\[\text{Attention}(Q,K,V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) V
\]
多头注意力(Multi-Head)
多个注意力并行,捕捉不同子空间的信息。
Transformer 结构
- 编码器(Encoder):双向看上下文(BERT 使用)。
- 解码器(Decoder):从左到右自回归(GPT 使用)。
现在你用到的几乎所有大模型都是 Transformer 变体
- BERT(擅长理解)
- GPT(擅长生成)
- ViT(图像分类)
9. 生成模型与自编码器
自编码器(Autoencoder)
编码器 → 压成低维向量 → 解码器 → 恢复原图。
- 用途:降维、去噪、特征提取。
变分自编码器(VAE)
能生成新样本,因为学习了隐变量的分布。
生成对抗网络(GAN)
生成器 vs 判别器互相对抗,生成非常逼真的图。
扩散模型(Diffusion)
逐步加噪声再逆过程生成图像,代表作:DALL-E、Stable Diffusion。
小白可以暂时只记住名字和主要思想,面试很少深究。
10. 训练深度网络的实用技巧
- 归一化输入:每个特征减去均值除以方差。
- 权重初始化:ReLU 用 He 初始化,Sigmoid/Tanh 用 Xavier。
- 学习率调度:先用 warmup,再阶梯下降或余弦退火。
- 梯度裁剪:尤其在 RNN 中,把超过阈值的梯度截断。
- 监控损失曲线:训练损失下降慢 → 学习率太小或模型太浅。
- 使用验证集:早停、模型选择。
11. 评价指标(面试必问)
分类
- 准确率(Accuracy)
- 精确率(Precision)、召回率(Recall)、F1
- ROC、AUC
- 混淆矩阵
回归
- MSE、MAE、R²
生成任务(图片、文本)
- Inception Score(IS)、FID(图像)
- BLEU、ROUGE(文本)
12. 小白学习路线建议
如果你真的想学会深度学习,不要只背笔记,按这个顺序来:
- 学 Python(Numpy、Matplotlib)
- 学 PyTorch 或 TensorFlow 基础(官方教程 3 天)
- 手写一个线性回归 + 简单的神经网络(不用框架自己写反向传播)
- 跑通 CNN 分类 MNIST(LeNet)
- 跑一个简单的 RNN 做文本分类
- 用 Transformer 做机器翻译(或看一个开源项目)
- 做一个小项目:比如猫狗分类、情感分析。
不要贪多:每天理解一个概念 + 写一点代码。

浙公网安备 33010602011771号