Lecture 2:神经网络与后向传播
Chinese-language Computer Science 408 note: Lecture 2:神经网络与后向传播. Original source available where applicable.
On this page
This note is currently available in Chinese. The original wording, formulas and diagrams are preserved to avoid an unverified technical translation.
描述:本节整理神经网络的符号、感知机、前向传播、非线性表达能力、梯度下降与反向传播推导,并进一步讨论数据划分、Mini-batch、激活函数、数据标准化、参数初始化、Batch Normalization、正则化、Softmax、常用数据集和自编码器。
2.1 神经网络的基本符号
2.1.1 历史背景
1957 年,Frank Rosenblatt 提出感知机思想:权重和偏置不必手工给定,可以从输入输出样本对 $(X,y)$ 中通过学习算法获得。
2.1.2 层与样本的记号
用方括号表示层号,用圆括号表示样本号:
- $W^{[l]}$:第 $l$ 层的权重矩阵。
- $b^{[l]}$:第 $l$ 层的偏置向量。
- $z^{[l]}$:第 $l$ 层的线性输入。
- $a^{[l]}$:第 $l$ 层的激活输出。
- $a^{l}$:第 $i$ 个训练样本在第 $l$ 层的激活。
- $W_{jk}^{[l]}$:从第 $l-1$ 层第 $k$ 个单元到第 $l$ 层第 $j$ 个单元的权重。
若第 $l$ 层有 $n_l$ 个单元,则:
$$ W^{[l]}\in\mathbb R^{n_l\times n_{l-1}}, \qquad b^{[l]}\in\mathbb R^{n_l\times1}. $$
分层:
- 输入层记作第 $0$ 层,通常不计入可学习层数。
- 隐藏层位于输入与输出之间,其中间表征不由数据直接给出,而由网络学习。
- 输出层产生回归值、类别分数或概率等最终结果。
2.1.3 单个神经元
第 $k$ 个神经元执行:
$$ y_k
\varphi \left( \sum_{i=1}^{m}w_{ki}x_i+b_k \right)
\varphi(\boldsymbol{w}_k^{\mathrm T}\boldsymbol{x}+b_k). $$
它包含两个步骤:
- 加权求和并加偏置。
- 通过激活函数 $\varphi$。
神经网络就是许多此类单元按层连接并重复计算。
2.2 感知机算法
2.2.1 模型
二分类感知机常把标签写为:
$$ y_i\in{-1,+1}. $$
预测依据为:
$$ \operatorname{sign}(\boldsymbol{w}^{\mathrm T}\boldsymbol{x}+b). $$
2.2.2 更新规则
随机初始化 $\boldsymbol{w},b$,反复检查训练样本。若样本被误分类,即:
$$ y_i(\boldsymbol{w}^{\mathrm T}\boldsymbol{x}_i+b)\leq0, $$
则更新:
$$ \boldsymbol{w} \leftarrow \boldsymbol{w}+\eta y_i\boldsymbol{x}_i, $$
$$ b \leftarrow b+\eta y_i, $$
其中 $\eta>0$ 是学习率。
源课件分别讨论 $y=-1$ 与 $y=+1$ 的加减更新,本质上与上述统一公式一致。
2.2.3 感知机收敛定理
若训练集线性可分,则存在 $\boldsymbol{w}*,b*$ 使:
$$ y_i(\boldsymbol{w}_^{\mathrm T}\boldsymbol{x}i+b)>0, \qquad i=1,\ldots,N. $$
在标准感知机更新条件下,算法经过有限次误分类更新后能找到一个分离超平面。
- 定理只保证线性可分数据上的有限步收敛。
- 线性不可分或带噪数据上,原始感知机可能持续振荡,需要设置迭代上限、容错或使用其他损失。
2.3 前向传播
2.3.1 单样本计算
以一层含四个神经元的隐藏层为例:
$$ z_j^{[1]}
(\boldsymbol{w}_j^{[1]})^{\mathrm T}\boldsymbol{x} +b_j^{[1]}, \qquad a_j^{[1]}=\sigma(z_j^{[1]}), $$
其中 $j=1,2,3,4$。
把四个标量方程向量化:
$$ \boldsymbol{z}^{[1]}
W^{[1]}\boldsymbol{x}+\boldsymbol{b}^{[1]}, $$
$$ \boldsymbol{a}^{[1]}
\sigma(\boldsymbol{z}^{[1]}). $$
输出层:
$$ \boldsymbol{z}^{[2]}
W^{[2]}\boldsymbol{a}^{[1]}+\boldsymbol{b}^{[2]}, $$
$$ \boldsymbol{a}^{[2]}
\varphi^{[2]}(\boldsymbol{z}^{[2]}). $$
2.3.2 一般形式
令 $\boldsymbol{a}^{[0]}=\boldsymbol{x}$,对 $l=1,\ldots,L$:
$$ \boldsymbol{z}^{[l]}
W^{[l]}\boldsymbol{a}^{[l-1]}+\boldsymbol{b}^{[l]}, $$
$$ \boldsymbol{a}^{[l]}
\varphi^{[l]}(\boldsymbol{z}^{[l]}). $$
对 $m$ 个样本按列组成批矩阵:
$$ Z^{[l]}
W^{[l]}A^{[l-1]}+b^{[l]}, $$
其中 $b^{[l]}$ 会沿样本维广播。
2.4 多层网络为什么需要非线性
若两层都没有非线性:
$$ \boldsymbol{a}^{[1]}
W^{[1]}\boldsymbol{x}+b^{[1]}, $$
$$ \boldsymbol{y}
W^{[2]}\boldsymbol{a}^{[1]}+b^{[2]}, $$
则:
$$ \boldsymbol{y}
W^{[2]}W^{[1]}\boldsymbol{x} +W^{[2]}b^{[1]}+b^{[2]}, $$
仍然只是一次仿射变换。无论堆叠多少纯线性层,都不能形成非线性决策边界。
加入 $\varphi(\cdot)$ 后,各层可以组合出复杂非线性函数。
2.4.1 用半空间组合决策区域
源课件用阶跃神经元和直线近似说明:
- 每个第一层神经元可判断点位于一条直线的哪一侧,即一个半空间。
- 后续神经元可以组合多个半空间,形成交集或并集。
- 三角形需要三条边界,四边形需要四条边界。
- 两个互不相连的三角形可先用六条边界分别描述,再在更高层合并。
- 圆形或不规则边界可用越来越多线段逼近,神经元数随近似精度增加。
源课件把结论表述为“三层神经网络可以模拟所有决策面”。更准确地说:在合适非线性激活、足够隐藏单元以及一定函数条件下,含一个隐藏层的前馈网络可任意精度逼近紧集上的连续函数;有限网络通常是逼近复杂边界,而不是精确表示任意决策面。
2.4.2 多层网络的特点
优点:
- 基本单元简单,组合后表达能力强。
- 矩阵计算具有较好的 GPU/并行执行能力。
- 可从数据中学习层次化特征,减少完全手工设计特征的负担。
局限:
- 深度网络目标通常非凸,训练结果受初始化、优化器和超参数影响。
- 参数含义与最终决策之间关系复杂,可解释性往往有限。
- 层数、宽度、激活、学习率、优化器、正则化和停止条件都需选择。
- 复杂模型通常需要更多高质量数据和计算资源。
2.5 梯度下降与局部极值
2.5.1 一维更新
对目标 $f(w)$:
$$ w_{k+1}
w_k-\alpha f'(w_k). $$
一阶泰勒展开:
$$ f(w+\Delta w)
f(w)+f'(w)\Delta w+o(\Delta w). $$
令:
$$ \Delta w=-\alpha f'(w), $$
有:
$$ f(w+\Delta w) \approx f(w)-\alpha[f'(w)]^2. $$
当学习率足够小时,只要梯度不为零,函数值就会沿负梯度方向下降。
2.5.2 多维形式
$$ \boldsymbol{w}_{k+1}
\boldsymbol{w}_k
\alpha\nabla f(\boldsymbol{w}_k). $$
下降量的一阶近似为:
$$ -\alpha|\nabla f(\boldsymbol{w}_k)|_2^2. $$
- 梯度给出局部最陡上升方向,负梯度给出局部最陡下降方向。
- 深度网络中可能遇到局部极小值、鞍点和平坦区域。
- 实现时通常用梯度范数、目标变化或验证指标低于阈值作为停止条件,而不是要求梯度精确等于零。
2.6 后向传播的基本过程
给定训练样本 $(\boldsymbol{x},\boldsymbol{Y})$,平方误差可写为:
$$ E
\frac{1}{2} |\boldsymbol{a}^{[L]}-\boldsymbol{Y}|_2^2. $$
训练过程:
- 初始化 $W^{[l]},b^{[l]}$。
- 前向传播,计算所有 $z^{[l]}$、$a^{[l]}$ 和输出。
- 从损失出发,按链式法则从输出层向输入层传播梯度。
- 得到每层 $\partial E/\partial W^{[l]}$ 和 $\partial E/\partial b^{[l]}$。
- 用优化器更新参数。
反向传播不是一种与梯度下降并列的更新规则:反向传播负责高效计算梯度,梯度下降或 Adam 等优化器负责使用梯度更新参数。
2.7 激活函数
2.7.1 Sigmoid
$$ \sigma(x)=\frac{1}{1+e^{-x}}, $$
$$ \sigma'(x)=\sigma(x)[1-\sigma(x)]. $$
- 输出范围 $(0,1)$,适合二分类概率或门控。
- $|x|$ 很大时导数接近 $0$,深层连乘容易产生梯度消失。
2.7.2 双曲正切
$$ \tanh(x)
\frac{e^x-e^{-x}}{e^x+e^{-x}}, $$
$$ \tanh'(x)=1-\tanh^2(x). $$
- 输出以 $0$ 为中心,范围 $(-1,1)$。
- 大幅值区域同样会饱和并造成梯度消失。
2.7.3 ReLU
$$ \operatorname{ReLU}(x)=\max(0,x), $$
$$ \operatorname{ReLU}'(x)= \begin{cases} 1, & x>0,\ 0, & x<0. \end{cases} $$
在 $x=0$ 处不可导,实际框架选用约定的次梯度,PyTorch 通常取 $0$。
- 正半轴不饱和,计算简单,常缓解 Sigmoid/tanh 的梯度消失。
- 负半轴输出为零,会产生稀疏激活。
- 若神经元长期落在负半轴,梯度持续为零,可能形成“死亡 ReLU”。
- 稀疏激活不等同于 Dropout,也不能简单解释为“为了减少过拟合而干掉神经元”。
2.7.4 Leaky ReLU
$$ \operatorname{LeakyReLU}(x)
\begin{cases} x, & x>0,\ \beta x, & x\leq0, \end{cases} $$
其中 $\beta$ 是较小正数。负半轴保留小梯度,可降低死亡 ReLU 风险。
2.7.5 图示中的其他激活
源课件比较图还包含:
- Maxout:输出多个仿射函数的最大值,如
$$ \max(\boldsymbol{w}_1^T\boldsymbol{x}+b_1, \boldsymbol{w}_2^T\boldsymbol{x}+b_2). $$
它是分段线性函数,表达灵活,但参数量较大。
- ELU:
$$ \operatorname{ELU}(x)= \begin{cases} x, & x\geq0,\ \alpha(e^x-1), & x<0. \end{cases} $$
负区间平滑且允许负输出,但计算比 ReLU 复杂。
2.8 反向传播公式推导
2.8.1 前向定义
对第 $l$ 层:
$$ \boldsymbol{z}^{[l]}
W^{[l]}\boldsymbol{a}^{[l-1]}+\boldsymbol{b}^{[l]}, $$
$$ \boldsymbol{a}^{[l]}
\varphi^{[l]}(\boldsymbol{z}^{[l]}). $$
定义误差信号:
$$ \boldsymbol{\delta}^{[l]}
\frac{\partial E}{\partial\boldsymbol{z}^{[l]}}. $$
2.8.2 输出层误差
一般形式:
$$ \boldsymbol{\delta}^{[L]}
\frac{\partial E}{\partial\boldsymbol{a}^{[L]}} \odot \varphi^{[L]\prime}(\boldsymbol{z}^{[L]}), $$
其中 $\odot$ 表示逐元素乘法。
若使用平方误差:
$$ \boldsymbol{\delta}^{[L]}
(\boldsymbol{a}^{[L]}-\boldsymbol{Y}) \odot \varphi^{[L]\prime}(\boldsymbol{z}^{[L]}). $$
2.8.3 隐藏层递推
从后一层向前一层:
$$ \boldsymbol{\delta}^{[l]}
(W^{[l+1]})^{\mathrm T} \boldsymbol{\delta}^{[l+1]} \odot \varphi^{[l]\prime}(\boldsymbol{z}^{[l]}), $$
其中 $l=L-1,L-2,\ldots,1$。
分量形式:
$$ \delta_i^{[l]}
\varphi^{[l]\prime}(z_i^{[l]}) \sum_j W_{ji}^{[l+1]} \delta_j^{[l+1]}. $$
2.8.4 参数梯度
单个样本:
$$ \frac{\partial E}{\partial W^{[l]}}
\boldsymbol{\delta}^{[l]} (\boldsymbol{a}^{[l-1]})^{\mathrm T}, $$
$$ \frac{\partial E}{\partial\boldsymbol{b}^{[l]}}
\boldsymbol{\delta}^{[l]}. $$
元素形式:
$$ \frac{\partial E}{\partial W_{ij}^{[l]}}
\delta_i^{[l]}a_j^{[l-1]}. $$
对含 $m$ 个样本的批次,梯度通常在样本维求和后除以 $m$。
2.8.5 参数更新
$$ W^{[l]} \leftarrow W^{[l]}-\alpha \frac{\partial E}{\partial W^{[l]}}, $$
$$ b^{[l]} \leftarrow b^{[l]}-\alpha \frac{\partial E}{\partial b^{[l]}}. $$
2.9 数据划分与训练监控
2.9.1 三类数据
| 数据集 | 用途 |
|---|---|
| 训练集 | 计算梯度并拟合参数 |
| 验证集 | 选择超参数、早停和保存最佳模型 |
| 测试集 | 所有选择完成后做一次最终无偏评估 |
源课件示例使用训练/验证/测试为 $40%/10%/50%$,这只是示例,不是通用最优比例。数据较大时常保留较小比例给验证和测试;数据较小时可使用交叉验证。
- 划分前通常打乱数据,并在分类任务中尽量分层抽样。
- 同一主体、相邻时间片或重复样本不能跨集合泄漏。
- 测试集不能反复用于挑模型,否则它会失去独立评估作用。
2.9.2 损失与验证指标
- 全批次训练损失通常应总体下降,但 Mini-batch 损失本来就会波动,不能要求每一步单调下降。
- 损失突然持续上升,常见原因包括学习率过高、数值不稳定、数据或实现错误,而不是简单地说明“模型太简单或已经训练好”。
- 学习率过大可能震荡或发散;过小则收敛缓慢。
- 应定期在验证集计算准确率或任务指标,并保存验证性能最好的检查点。
- 验证指标长时间不再改善时可早停,防止过拟合。
2.10 批量梯度下降、SGD 与 Mini-batch
| 方法 | 每次更新使用的样本数 | 特点 |
|---|---|---|
| 全批量梯度下降 | 全部训练集 | 梯度稳定,但单次计算和内存开销大 |
| 随机梯度下降(严格意义) | 1 | 更新频繁、噪声大 |
| Mini-batch SGD | $1<B<m$ | 并行效率和梯度噪声之间折中 |
源课件把“一批样本求平均梯度”统称为 SGD,更精确的名称是 Mini-batch SGD。
基本过程:
- 每轮训练开始前打乱样本索引。
- 按
batch_size划分多个批次。 - 对每批执行前向传播。
- 反向传播计算平均梯度。
- 更新 $W,b$。
for inputs, targets in train_loader:
optimizer.zero_grad()
outputs = model(inputs)
loss = loss_fn(outputs, targets)
loss.backward()
optimizer.step()
- 课件建议批大小约 50-200,这是经验示例;现代任务中批大小取决于模型、显存、归一化方法和优化器。
- 最后一个批次可能小于
batch_size,不一定要丢弃。
2.11 训练数据标准化
对每个特征维度,用训练集统计量做标准化:
$$ \hat x_j
\frac{x_j-\mu_j}{\sqrt{\sigma_j^2+\varepsilon}}. $$
作用:
- 让不同量纲的特征处于可比较的数值范围。
- 改善目标函数的条件数,使梯度下降不必在狭长等高线中来回摆动。
- 往往允许使用更合适的统一学习率并加快收敛。
注意:
- $\mu_j,\sigma_j$ 只能在训练集上估计,再原样用于验证集和测试集。
- 标准化把各维变为近似零均值、单位方差,但不会自动消除特征间相关性。
2.12 参数初始化
2.12.1 为什么不能全部初始化为零
若同一层所有权重完全相同,各神经元会得到相同梯度并始终学习相同特征,产生对称性问题。因此权重需要随机初始化;偏置通常可以初始化为零。
2.12.2 梯度消失与爆炸
Sigmoid/tanh 在 $|z|$ 很大时导数接近零。若:
$$ z=W^Tx+b $$
一开始绝对值过大,或深层链式乘积持续小于 $1$,前层梯度会越来越小;持续大于 $1$ 则可能梯度爆炸。
2.12.3 方差缩放初始化
源课件给出:
$$ w_i\sim U\left(-\frac{1}{\sqrt d},\frac{1}{\sqrt d}\right), $$
其中 $d$ 是输入维度。若输入各维独立、零均值、单位方差,则单个权重方差为 $1/(3d)$,$W^Tx$ 的方差约为 $1/3$,有助于让初始激活处在不过度饱和的范围。
现代常用:
- Xavier/Glorot 初始化:适合 tanh 或近似对称激活,常令
$$ \operatorname{Var}(W) \approx \frac{2}{\operatorname{fan}{in}+\operatorname{fan}{out}}. $$
- He/Kaiming 初始化:适合 ReLU,常令
$$ \operatorname{Var}(W) \approx \frac{2}{\operatorname{fan}_{in}}. $$
初始化目标不是让所有参数“在零附近徘徊”,而是保持各层激活和梯度的方差处于合理尺度。
2.13 Batch Normalization
2.13.1 前向公式
对 Mini-batch $\mathcal B={x_1,\ldots,x_m}$:
$$ \mu_{\mathcal B}
\frac{1}{m} \sum_{i=1}^{m}x_i, $$
$$ \sigma_{\mathcal B}^2
\frac{1}{m} \sum_{i=1}^{m} (x_i-\mu_{\mathcal B})^2, $$
$$ \hat x_i
\frac{x_i-\mu_{\mathcal B}} {\sqrt{\sigma_{\mathcal B}^2+\varepsilon}}, $$
$$ y_i
\gamma\hat x_i+\beta. $$
- $\varepsilon$ 防止除零。
- $\gamma,\beta$ 是可学习的缩放和平移参数,使网络在需要时恢复或改变标准化后的分布。
典型次序:
Linear/Conv -> BatchNorm -> Activation
2.13.2 训练与推理
- 训练时使用当前 Mini-batch 的均值和方差,并更新运行统计量。
- 推理时使用训练期间积累的运行均值和运行方差,而不是当前单个样本统计量。
- 因而框架中要正确使用
model.train()与model.eval()。
BatchNorm 往往改善优化稳定性、允许更大学习率并带来一定正则化效果。原论文标题强调减少 internal covariate shift,但现代研究认为其有效机制不只这一种解释。
2.14 目标函数与正则化
一般形式:
$$ L(W)=F(W)+\lambda R(W), $$
其中 $F$ 是数据拟合损失,$R$ 是正则项。
L2 正则:
$$ R(W)=\frac{1}{2}\sum_l|W^{[l]}|_F^2. $$
对批次平方误差可写为:
$$ L
\frac{1}{2B} \sum_{i=1}^{B} |\hat y_i-y_i|_2^2 + \frac{\lambda}{2} \sum_l|W^{[l]}|_F^2. $$
- L2 正则会惩罚过大的权重,常对应优化器中的 weight decay。
- 偏置和 BatchNorm 的缩放/平移参数是否衰减,应按实现和经验单独设置。
2.15 Softmax 与交叉熵
2.15.1 Softmax
给定 $K$ 类 logits:
$$ \boldsymbol{z}=(z_1,z_2,\ldots,z_K), $$
Softmax 输出:
$$ q_i
\frac{e^{z_i}} {\sum_{j=1}^{K}e^{z_j}}, \qquad i=1,\ldots,K. $$
性质:
$$ q_i>0, \qquad \sum_{i=1}^{K}q_i=1. $$
为避免指数溢出,可利用平移不变性:
$$ q_i
\frac{e^{z_i-z_{max}}} {\sum_j e^{z_j-z_{max}}}. $$
2.15.2 多分类交叉熵
若真实标签是 one-hot 向量 $\boldsymbol{p}$:
$$ E
-\sum_{i=1}^{K}p_i\log q_i. $$
若真实类别为 $c$,则:
$$ E=-\log q_c. $$
- 分类框架通常把 Softmax 和对数交叉熵合并为数值稳定的函数,直接接收 logits。
- 注意力机制也用 Softmax 把相似度分数变为和为 $1$ 的权重,但这些权重不一定等同于类别概率。
2.16 常用深度学习数据集
2.16.1 MNIST
- 手写数字 $0$ 到 $9$,共 10 类。
- 训练集 60,000 张,测试集 10,000 张。
- 灰度图大小为 $28\times28$。
- 由 LeCun 等人整理,是入门分类和模型验证的经典数据集。
2.16.2 ImageNet
- ImageNet 项目由 Fei-Fei Li 团队推动,数据收集始于约 2007 年,2009 年公开介绍。
- 完整 ImageNet 包含超过 1,400 万张图像和两万多个 WordNet 类别节点。
- 深度学习论文常说的 ImageNet 分类基准通常指 ILSVRC-2012 子集:约 128 万张训练图像、1,000 类。
- 源课件的“1000 类、1000 万张”和“20,000 类”混合了竞赛子集与完整数据库口径,使用时必须区分。
2.17 自编码器与逐层预训练
2.17.1 自编码器
自编码器包含:
- 编码器:把输入 $X$ 压缩成潜在表示 $h$。
- 解码器:用 $h$ 重构 $\hat X$。
训练目标是使:
$$ \hat X\approx X. $$
瓶颈层迫使模型保留对重构有用的信息,可用于降维、表征学习和初始化。
2.17.2 逐层无监督预训练
课件图示的历史方法:
- 先训练第一层编码和对应解码,使输出重构输入。
- 保留第一层编码参数,用第一层表示作为下一层输入。
- 固定前面层,逐层训练新的编码层。
- 全部层完成初始化后,再展开完整网络,用反向传播联合微调。
图示把约 2000 维输入逐步压缩到 30 维,再由解码器重构图像。
2006 年前后,Hinton 等人的深度信念网络和逐层无监督预训练工作推动了深度学习复兴。课件把这一历史与自编码器合并描述;更准确地说,当时既有 RBM/深度信念网络路线,也有自编码器式逐层预训练。现代残差结构、归一化和初始化技术成熟后,监督任务通常可以端到端训练,逐层预训练不再是所有深网的必需步骤。
2.18 易错点
- $W^{[l]}$ 连接第 $l-1$ 层到第 $l$ 层,形状为 $(n_l,n_{l-1})$。
- 输入层通常记为第 0 层,不计入可学习层数。
- 感知机收敛定理要求线性可分;不可分数据上原始算法不保证停止。
- 多个线性层仍等价于一个线性层,隐藏层之间必须有非线性才能提升表达能力。
- “三层网络模拟所有决策面”应理解为带条件的通用逼近,而不是任意有限网络精确表示一切边界。
- 反向传播计算梯度,优化器使用梯度;二者不是同一概念。
- ReLU 的稀疏激活不等于 Dropout,且存在死亡 ReLU 风险。
- 隐藏层误差递推必须使用下一层权重的转置:$(W^{[l+1]})^T\delta^{[l+1]}$。
- Mini-batch 损失会波动,不应把单步上升直接判断为训练失败。
- 严格意义的 SGD 每次使用一个样本;一批样本更新是 Mini-batch SGD。
- 数据标准化统计量只能来自训练集,验证和测试不能重新估计。
- 权重不能全部初始化为零;tanh 常用 Xavier,ReLU 常用 He 初始化。
- BatchNorm 训练时用批统计,推理时用运行统计,并通过 $\gamma,\beta$ 恢复表达能力。
- Softmax 应使用减去最大 logit 的数值稳定形式;交叉熵损失通常直接接收 logits。
- 完整 ImageNet 与 ILSVRC-2012 的图片数、类别数口径不同。
- 逐层自编码器预训练是重要历史方法,但不是现代网络训练的普遍必需步骤。
相关知识
- 科目导航:复试常考科目导航
- 阅读顺序:上一篇:预备知识 · 下一篇:卷积神经网络
- 关联专题:神经网络基础
2.19 本节复盘
- 神经元执行加权和、偏置与激活;网络按层重复该过程。
- 感知机对误分类样本更新参数,并只在线性可分条件下保证有限步收敛。
- 前向传播统一写为 $z^{[l]}=W^{[l]}a^{[l-1]}+b^{[l]}$、$a^{[l]}=\varphi^{[l]}(z^{[l]})$。
- 非线性使多层网络能够组合半空间并逼近复杂决策边界。
- 梯度下降沿负梯度方向更新;反向传播通过链式法则高效计算各层参数梯度。
- 输出层先计算 $\delta^{[L]}$,隐藏层用 $(W^{[l+1]})^T\delta^{[l+1]}\odot\varphi'(z^{[l]})$ 递推。
- Mini-batch 在梯度稳定性、并行效率和更新频率之间折中;验证集用于早停和模型选择。
- 标准化、Xavier/He 初始化和 BatchNorm 都有助于控制各层数值尺度,但作用机制不同。
- L2 正则限制权重规模;Softmax 把多类 logits 转为和为 1 的分布,并与交叉熵配合训练。
- MNIST 与 ImageNet 是经典视觉数据集;自编码器通过重构学习压缩表示,逐层预训练在深度学习历史上具有重要作用。