AI 学习路线 05:神经网络、反向传播和深度学习怎么理解?
前言
前面一篇我们学习了机器学习:监督学习、无监督学习、训练集、测试集、过拟合、评估指标等。
这一篇进入很多人更熟悉、也更容易觉得"玄学"的主题:深度学习。
但深度学习不是一上来就背:
text
CNN、RNN、LSTM、Transformer、GAN、Diffusion......
更重要的是先搞懂几个基础问题:
- 神经网络到底是什么?
- 权重、偏置、激活函数、损失函数、优化器分别做什么?
- 反向传播到底在"传播"什么?
- CNN、RNN、Transformer 这些网络结构有什么区别?
- Dropout、BatchNorm、数据增强、早停这些训练技巧解决什么问题?
这篇文章会继续用图、表格、例子和代码,把深度学习的核心框架讲清楚。
一、神经网络到底是什么?
深度学习的核心是神经网络。
先不要把神经网络想得太神秘。它可以先理解成:
text
很多层函数组合起来,从数据中自动学习特征。
更工程一点说,神经网络是在学习一个从输入到输出的映射关系:
text
输入 X -> 模型 f(X) -> 输出 y
比如:
| 输入 | 神经网络输出 |
|---|---|
| 图片像素 | 猫 / 狗 |
| 用户行为 | 是否会流失 |
| 商品标题 | 商品类别 |
| 一句话文本 | 下一个 token |
神经网络的基本流程如下:

可以这样理解:
text
输入
-> 第一层:学习简单特征
-> 中间层:组合更复杂的特征
-> 输出层:给出分类、数值或生成结果
比如判断一张图片是不是猫:
text
像素
-> 边缘
-> 纹理
-> 眼睛、耳朵、胡须
-> 猫脸
-> 判断是不是猫

这就是深度学习相对传统机器学习的重要特点:
text
传统机器学习更依赖人工设计特征。
深度学习更强调从数据中自动学习多层特征。
当然,深度学习不是所有场景都一定更好。小规模表格数据里,逻辑回归、随机森林、XGBoost 可能就很强。深度学习的优势更常出现在图像、语音、自然语言这类复杂高维数据中。
二、神经元、权重和偏置
神经网络由很多神经元组成。
一个神经元可以先理解成一个小计算器:
text
输入数据 x
-> 乘以权重 w
-> 加上偏置 b
-> 经过激活函数
-> 得到输出

简化公式是:
text
输出 = 激活函数(w1*x1 + w2*x2 + w3*x3 + b)
这里先抓住三个词:
| 组件 | 直觉理解 |
|---|---|
| 输入 x | 数据提供的信息 |
| 权重 w | 每个输入有多重要 |
| 偏置 b | 整体判断的基准线 |
举个用户流失预测的例子。
假设我们用三个特征判断用户是否可能流失:
| 特征 | 含义 | 数值 |
|---|---|---|
| x1 | 最近 7 天登录次数是否很少 | 1 |
| x2 | 最近是否有投诉 | 1 |
| x3 | 最近是否有购买 | 0 |
某个神经元当前参数是:
| 参数 | 含义 | 数值 |
|---|---|---|
| w1 | 登录少的影响 | 0.8 |
| w2 | 有投诉的影响 | 1.2 |
| w3 | 有购买的影响 | -0.7 |
| b | 基准偏置 | -0.3 |
先做加权求和:
text
z = 0.8*1 + 1.2*1 + (-0.7)*0 + (-0.3)
z = 1.7
这说明:
text
登录少、有投诉,会把"可能流失"的判断往上推。
最近有购买,会把"可能流失"的判断往下拉。
权重和偏置不是人手工写死的,而是模型在训练过程中从数据里学出来的。
三、激活函数、损失函数、优化器
神经网络训练离不开几个核心组件:

整体流程是:
text
输入数据
-> 权重和偏置做加权计算
-> 激活函数引入非线性
-> 模型输出预测
-> 损失函数衡量预测错多少
-> 优化器根据误差更新参数
1. 激活函数:让模型学复杂关系
如果神经网络只有加权求和,没有激活函数,那么很多层叠在一起,本质上仍然接近一个线性模型。
简单说:
text
没有激活函数,多层网络很难表达复杂弯曲关系。
有激活函数,网络才能学习非线性规律。

常见激活函数:
| 激活函数 | 输出范围 | 直觉 |
|---|---|---|
| Sigmoid | 0 到 1 | 常用于把结果理解成概率 |
| Tanh | -1 到 1 | 输出有正有负,中心在 0 附近 |
| ReLU | 小于 0 变 0,大于 0 保留 | 简单高效,深度学习中很常见 |
ReLU 的公式很简单:
text
ReLU(x) = max(0, x)
比如:
| 输入 x | ReLU(x) |
|---|---|
| -3 | 0 |
| -1 | 0 |
| 0 | 0 |
| 2 | 2 |
| 5 | 5 |
一句话记忆:
text
激活函数负责给神经网络引入非线性能力。
2. 损失函数:预测错了多少
模型做完预测以后,需要知道自己错得多不多。
损失函数就是用来衡量:
text
预测结果和真实答案之间的差距。
比如图片分类:
text
真实答案:猫
模型预测:
猫:0.20
狗:0.70
鸟:0.10
这个预测就很差,因为正确类别"猫"的概率太低。
不同任务会用不同损失函数:
| 任务类型 | 常见损失函数 | 直觉 |
|---|---|---|
| 回归 | MSE、MAE | 预测数值和真实数值差多少 |
| 二分类 | Binary Cross Entropy | 预测概率和真实类别差多少 |
| 多分类 | Cross Entropy | 正确类别的概率够不够高 |
3. 优化器:怎么改参数
知道错了还不够,模型还要知道:
text
权重和偏置应该往哪个方向改?每次改多少?
优化器就是负责更新参数的组件。
常见优化器:
| 优化器 | 直觉 |
|---|---|
| SGD | 按梯度方向一步步更新参数 |
| Momentum | 更新时带一点惯性,减少来回震荡 |
| Adam | 自适应调整不同参数的更新幅度,实践中很常用 |
简单记:
text
损失函数告诉模型错多少。
优化器根据损失和梯度调整参数。
四、反向传播到底在传播什么?
前面说优化器要根据梯度更新参数。
那问题来了:
text
模型有那么多参数,怎么知道每个参数应该改多少?
答案就是:反向传播。
一句话理解:
text
反向传播 = 从输出误差出发,反过来计算每个参数对误差的影响。

训练神经网络时有两个方向:
| 阶段 | 方向 | 做什么 |
|---|---|---|
| 前向传播 | 输入层 -> 输出层 | 根据当前参数算预测结果 |
| 反向传播 | 输出层 -> 输入层 | 根据误差计算每个参数的梯度 |
前向传播像做题:
text
给定输入 -> 一层层计算 -> 得到答案
反向传播像批改和复盘:
text
看答案错了多少 -> 追溯每一步哪里影响了错误 -> 指导下次怎么改
梯度可以直观理解成:
text
某个参数变化一点点,会让损失函数怎么变化。

参数更新的核心直觉是:
text
新参数 = 旧参数 - 学习率 * 梯度
为什么是减号?
因为梯度指向 loss 增大的方向,而训练目标是让 loss 变小,所以要朝梯度的反方向走。
举个极简例子:
text
y_pred = w * x
x = 2
真实答案 y = 10
当前 w = 3
预测值:
text
y_pred = 3 * 2 = 6
预测 6,真实 10,预测偏小。为了让下一次预测变大,w 应该变大。
用代码手算一次梯度更新:
python
x = 2
y = 10
w = 3
lr = 0.1
y_pred = w * x
loss = (y_pred - y) ** 2
# 对 loss = (w*x - y)^2 求 w 的梯度
grad_w = 2 * (y_pred - y) * x
new_w = w - lr * grad_w
print("预测值:", y_pred)
print("损失:", loss)
print("w 的梯度:", grad_w)
print("更新后的 w:", new_w)
输出直觉:
text
预测值: 6
损失: 16
w 的梯度: -16
更新后的 w: 4.6
下一次预测:
text
4.6 * 2 = 9.2
就更接近真实答案 10 了。
一句话总结:
text
反向传播负责算梯度,优化器负责用梯度改参数。
五、常见网络结构:先看数据形态
深度学习里有很多网络结构,但不要一开始就背名字。
先问:
text
数据是什么形态?
任务要解决什么问题?

1. CNN:图像和局部空间特征
CNN 是卷积神经网络,最经典的场景是图像任务:
text
图片分类
目标检测
图像分割
医学影像识别
工业缺陷检测
CNN 的直觉是:
text
用一个小窗口在图片上滑动,提取局部特征。
浅层 CNN 看边缘、颜色、纹理;中层看眼睛、耳朵、轮廓;深层看猫脸、车辆、商品整体。
2. RNN、LSTM、GRU:序列和记忆
RNN 适合处理序列数据:
text
文本、语音、时间序列、用户行为序列
它的直觉是:
text
从左到右逐步读取,每一步都带着前面的记忆。
但普通 RNN 有个问题:序列很长时,前面的信息容易被遗忘。
LSTM 和 GRU 是 RNN 的改进版本,它们用类似"门"的机制控制:
text
哪些信息应该记住?
哪些信息应该忘掉?
哪些信息应该输出给下一步?
一句话记忆:
text
LSTM/GRU 是更会管理记忆的 RNN。
3. Transformer:现代大模型核心结构
Transformer 是现代大语言模型的核心结构。
它和 RNN 最大的直觉差异是:
text
RNN 按顺序一个个读。
Transformer 可以通过注意力机制同时看不同位置之间的关系。

Attention 的直觉是:
text
不是所有上下文都同样重要,模型要学会把注意力放在关键位置。
Transformer 的优势:
| 优势 | 说明 |
|---|---|
| 更擅长长距离依赖 | 能直接关注远处相关位置 |
| 并行计算更友好 | 不必像 RNN 那样严格一步步读 |
| 可扩展性强 | 支撑了现代大语言模型的发展 |
4. AutoEncoder、GAN、Diffusion
除了分类和序列建模,深度学习还有很多生成和表示学习结构。

| 结构 | 核心直觉 | 常见用途 |
|---|---|---|
| AutoEncoder | 压缩再重建 | 降维、去噪、异常检测 |
| GAN | 生成器和判别器对抗 | 图像生成、风格迁移 |
| Diffusion | 从噪声一步步去噪 | 文生图、图像生成 |
AutoEncoder 像是:
text
输入数据 -> 编码器压缩 -> 低维表示 -> 解码器重建 -> 输出
GAN 像是:
text
生成器:我要骗过判别器。
判别器:我要识破生成器。
Diffusion 像是:
text
训练时:清晰图片 -> 加噪 -> 纯噪声
生成时:纯噪声 -> 去噪 -> 清晰图片
六、训练技巧:让模型更稳、更能泛化
模型能训练不代表训练得好。
深度学习经常遇到:
text
过拟合
训练不稳定
学习率难选
数据不够
不知道什么时候停止
常见训练技巧如下:

| 技巧 | 主要解决什么问题 | 核心直觉 |
|---|---|---|
| Dropout | 过拟合 | 随机让部分神经元休息,避免过度依赖 |
| BatchNorm | 训练不稳定 | 稳定中间层数据分布 |
| 学习率调度 | 学习率难选 | 动态调整参数更新步长 |
| 数据增强 | 数据不够、泛化差 | 制造合理样本变体 |
| 早停 | 训练太久导致过拟合 | 验证集不再提升就停止 |
1. Dropout
Dropout 的直觉是:
text
训练时随机让一部分神经元暂时不工作。
这样可以避免模型过度依赖少数神经元,从而减少过拟合。
注意:
text
Dropout 通常训练时开启,推理时关闭。
2. 数据增强
数据增强是在不改变标签的前提下,制造合理的数据变体。
图像任务里常见:
text
随机裁剪、水平翻转、轻微旋转、颜色扰动、缩放、加噪声
比如一张猫图,轻微裁剪、翻转、调整亮度后,标签仍然是猫。
这样模型不会只记住某张图的固定角度和背景,而是更容易学到稳定特征。

3. 学习率调度和早停
学习率决定每次参数更新的步子有多大。
text
学习率太大:可能震荡,loss 不降反升。
学习率太小:训练很慢,很久都学不动。
学习率调度的直觉是:
text
前期步子大一点,快速接近较好区域;
后期步子小一点,细致调整参数。
早停的直觉是:
text
验证集不再提升时停止训练,避免模型继续死记训练集。

如果出现:
text
训练集 loss 一直下降
验证集 loss 开始上升
这通常说明模型可能开始过拟合。
七、一个最小 NumPy 例子
下面用 NumPy 模拟一个神经元做预测。
重点是看清楚:
text
输入 -> 权重 -> 偏置 -> 激活函数 -> 输出
python
import numpy as np
def sigmoid(z):
return 1 / (1 + np.exp(-z))
# x1 = 登录少,x2 = 有投诉,x3 = 最近有购买
x = np.array([1, 1, 0])
w = np.array([0.8, 1.2, -0.7])
b = -0.3
z = np.dot(w, x) + b
prob = sigmoid(z)
print("加权结果 z =", z)
print("预测流失概率 =", round(prob, 4))
可能输出:
text
加权结果 z = 1.7
预测流失概率 = 0.8455
这段代码虽然很小,但已经包含了神经网络最基础的计算直觉:
text
输入特征
权重
偏置
激活函数
输出预测
八、面试中可以怎么回答?
1. 什么是神经网络?
text
神经网络是一种由多层计算单元组成的模型。每一层会对输入数据做特征转换,前面的层通常学习简单特征,后面的层会组合出更复杂的语义特征。训练过程中,模型会通过数据不断调整权重和偏置,让预测结果越来越接近真实答案。深度学习中的"深度"主要指网络层数较多,能够自动学习复杂特征表示。
2. 为什么神经网络需要激活函数?
text
激活函数的核心作用是引入非线性。如果没有激活函数,多层线性变换叠加后本质上仍然接近一个线性模型,表达能力会受到很大限制。有了 ReLU、Sigmoid、Tanh 等激活函数,神经网络才能学习复杂的非线性关系。
3. 什么是反向传播?
text
反向传播是神经网络训练中用于计算梯度的核心算法。模型先通过前向传播得到预测结果,再用损失函数计算预测和真实答案之间的误差;然后从输出层往输入层反向计算每个参数对损失的影响,也就是梯度。优化器再利用这些梯度更新权重和偏置,让下一轮预测更接近真实答案。
4. CNN、RNN 和 Transformer 有什么区别?
text
CNN 主要擅长提取局部空间特征,经典应用是图像分类、检测和分割;RNN 适合传统序列建模,会按时间或顺序逐步处理输入,但长序列中容易遗忘早期信息;LSTM 和 GRU 是 RNN 的改进,用门机制缓解长期依赖问题;Transformer 通过注意力机制建模不同位置之间的关系,更适合长距离依赖和并行计算,是现代大语言模型的核心结构。
5. 怎么缓解深度学习模型过拟合?
text
可以从数据、模型和训练过程三个方向处理。数据上可以增加训练数据或使用数据增强;模型上可以使用 Dropout、正则化或适当简化模型;训练过程中可以使用早停,观察验证集表现,避免模型在训练集上继续死记硬背。同时还要关注训练集、验证集和测试集之间的表现差距。
九、常见误区
| 误区 | 更准确的理解 |
|---|---|
| 神经网络就是数据库 | 神经网络通过参数表达规律,不是精确存储事实 |
| 层数越多一定越好 | 层数更多可能更强,但也更难训练、更容易过拟合 |
| 深度学习不需要数据处理 | 数据清洗、标注、划分、评估仍然很重要 |
| 激活函数只是装饰 | 激活函数决定模型能否表达复杂非线性关系 |
| 反向传播负责直接改参数 | 反向传播主要算梯度,优化器负责更新参数 |
| 训练集 loss 越低越好 | 还要看验证集和测试集表现,防止过拟合 |
| 所有任务都该用最新大模型 | 小规模表格任务传统机器学习可能更合适 |
十、本篇小结
这篇文章我们完成了深度学习入门的核心框架:
- 神经网络是多层计算结构,可以从数据中自动学习特征。
- 权重表示输入重要程度,偏置表示整体判断基准线。
- 激活函数引入非线性,让模型能表达复杂关系。
- 损失函数衡量预测错多少,优化器负责更新参数。
- 反向传播负责从输出误差反向计算每个参数的梯度。
- CNN 擅长图像,RNN/LSTM/GRU 适合序列,Transformer 是现代大模型核心结构。
- AutoEncoder、GAN、Diffusion 分别对应压缩重建、对抗生成、逐步去噪生成。
- Dropout、BatchNorm、学习率调度、数据增强、早停都是为了让训练更稳、泛化更好。
学到这里,你已经具备了理解神经网络和深度学习训练流程的基本地图。
十一、下一篇预告
下一篇进入 Transformer 与大语言模型。
我们会继续讨论:
- Token、Embedding、上下文窗口是什么?
- Transformer 和 Attention 到底怎么理解?
- 预训练、指令微调、RLHF 分别做什么?
- 大语言模型为什么能生成文本?
深度学习帮我们理解"模型如何学习复杂特征",下一篇会进一步进入现代大模型的核心结构。