深度学习完全入门笔记(小白友好版)

目标:理解深度学习是什么、神经网络如何工作、常见模型与训练技巧,涵盖从零到面试级核心知识点。


目录

  1. 深度学习是什么
  2. 单个神经元与激活函数
  3. 前向传播与反向传播
  4. 损失函数与优化器
  5. 多层神经网络与过拟合处理
  6. 卷积神经网络(CNN)
  7. 循环神经网络(RNN)与 LSTM
  8. Transformer(必学)
  9. 生成模型与自编码器
  10. 训练深度网络的实用技巧
  11. 评价指标与调参
  12. 学习路线建议

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. 训练深度网络的实用技巧

  1. 归一化输入:每个特征减去均值除以方差。
  2. 权重初始化:ReLU 用 He 初始化,Sigmoid/Tanh 用 Xavier。
  3. 学习率调度:先用 warmup,再阶梯下降或余弦退火。
  4. 梯度裁剪:尤其在 RNN 中,把超过阈值的梯度截断。
  5. 监控损失曲线:训练损失下降慢 → 学习率太小或模型太浅。
  6. 使用验证集:早停、模型选择。

11. 评价指标(面试必问)

分类

  • 准确率(Accuracy)
  • 精确率(Precision)、召回率(Recall)、F1
  • ROC、AUC
  • 混淆矩阵

回归

  • MSE、MAE、R²

生成任务(图片、文本)

  • Inception Score(IS)、FID(图像)
  • BLEU、ROUGE(文本)

12. 小白学习路线建议

如果你真的想学会深度学习,不要只背笔记,按这个顺序来:

  1. 学 Python(Numpy、Matplotlib)
  2. 学 PyTorch 或 TensorFlow 基础(官方教程 3 天)
  3. 手写一个线性回归 + 简单的神经网络(不用框架自己写反向传播)
  4. 跑通 CNN 分类 MNIST(LeNet)
  5. 跑一个简单的 RNN 做文本分类
  6. 用 Transformer 做机器翻译(或看一个开源项目)
  7. 做一个小项目:比如猫狗分类、情感分析。

不要贪多:每天理解一个概念 + 写一点代码。

posted @ 2026-05-08 10:33  Petula  阅读(78)  评论(0)    收藏  举报