← Back to Learning Notes

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). $$

它包含两个步骤:

  1. 加权求和并加偏置。
  2. 通过激活函数 $\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. $$

训练过程:

  1. 初始化 $W^{[l]},b^{[l]}$。
  2. 前向传播,计算所有 $z^{[l]}$、$a^{[l]}$ 和输出。
  3. 从损失出发,按链式法则从输出层向输入层传播梯度。
  4. 得到每层 $\partial E/\partial W^{[l]}$ 和 $\partial E/\partial b^{[l]}$。
  5. 用优化器更新参数。

反向传播不是一种与梯度下降并列的更新规则:反向传播负责高效计算梯度,梯度下降或 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。

基本过程:

  1. 每轮训练开始前打乱样本索引。
  2. 按 batch_size 划分多个批次。
  3. 对每批执行前向传播。
  4. 反向传播计算平均梯度。
  5. 更新 $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 自编码器

自编码器包含:

  1. 编码器:把输入 $X$ 压缩成潜在表示 $h$。
  2. 解码器:用 $h$ 重构 $\hat X$。

训练目标是使:

$$ \hat X\approx X. $$

瓶颈层迫使模型保留对重构有用的信息,可用于降维、表征学习和初始化。

2.17.2 逐层无监督预训练

课件图示的历史方法:

  1. 先训练第一层编码和对应解码,使输出重构输入。
  2. 保留第一层编码参数,用第一层表示作为下一层输入。
  3. 固定前面层,逐层训练新的编码层。
  4. 全部层完成初始化后,再展开完整网络,用反向传播联合微调。

图示把约 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 是经典视觉数据集;自编码器通过重构学习压缩表示,逐层预训练在深度学习历史上具有重要作用。