Back to Knowledge Blind Box

Knowledge Blind Box

第二章 深度学习基础:训练、CNN 与序列模型

ai-generatedstochastic-parrotstochastic-parrot-anatomyai

Original text in Chinese. This English page translates only the site interface and metadata.

第一章说明,多层非线性网络拥有比单个线性边界更大的表示空间。但“能表示”只回答存在性问题。一个可用模型还要从有限样本中学习,沿计算图传播误差,在有限精度和资源下完成优化,并把训练结果迁移到未见数据。

本章先建立这套共同训练机制,再比较两种经典架构。卷积网络把局部性和平移结构写进连接方式;循环网络把历史压入递推状态。Transformer 的设计正是在继承和改写这些问题的过程中形成。

2.1 从经验风险到可训练深度网络

2.1.1 训练集不是目标分布

设数据来自未知分布 P(X,Y)P(X,Y),模型为 fθf_\theta,损失为 ℓ\ell。总体风险与经验风险分别是

R(θ)=E(X,Y)∼P[ℓ(fθ(X),Y)],R(\theta)=\mathbb E_{(X,Y)\sim P} [\ell(f_\theta(X),Y)], R^D(θ)=1n∑i=1nℓ(fθ(xi),yi).\hat R_D(\theta)=\frac1n\sum_{i=1}^n \ell(f_\theta(x_i),y_i).

训练直接优化后者,部署关心前者或某个更具体的目标分布。数据独立同分布只是常用近似;时间漂移、用户选择、标注政策和反馈循环都会让训练分布与部署分布不同。

训练集用于更新参数,验证集用于选择超参数和停止点,测试集用于完成选择后的评估。反复查看测试结果并据此改模型,会把测试集也纳入选择过程,此时它不再提供原先意义上的独立估计。

2.1.2 偏差、方差与不可约噪声

在平方损失下,若

Y=f∗(X)+ε,E[ε∣X]=0,Y=f^*(X)+\varepsilon, \qquad \mathbb E[\varepsilon\mid X]=0,

并把训练数据 DD 看作随机变量,则固定输入 xx 处有

ED,Y[(Y−f^D(x))2]=σ2(x)+(EDf^D(x)−f∗(x))2+Var⁡D(f^D(x)).\mathbb E_{D,Y} [(Y-\hat f_D(x))^2] =\sigma^2(x) +\bigl(\mathbb E_D\hat f_D(x)-f^*(x)\bigr)^2 +\operatorname{Var}_D(\hat f_D(x)).

三项依次是条件噪声、平方偏差与估计方差。这个等式有明确的平方损失与抽样前提,不能原样套到任意分类指标;它提供的是诊断语言,不是“模型越复杂方差必然越大”的普遍定律。

2.1.3 正则化与归纳偏置

显式正则化把参数偏好加入目标,例如

min⁡θR^D(θ)+λ∥θ∥22.\min_\theta \hat R_D(\theta)+\lambda\lVert\theta\rVert_2^2.

L2L_2 惩罚倾向于限制权重尺度,L1L_1 惩罚可诱导稀疏解。优化器中的 weight decay 与目标中的 L2L_2 项在普通 SGD 下可对应,但在 Adam 等坐标自适应方法中一般不再等价,因此 AdamW 将衰减与梯度更新解耦。

dropout 在训练时随机屏蔽中间单元。采用 inverted dropout 时,保留掩码 mj∼Bernoulli⁡(q)m_j\sim\operatorname{Bernoulli}(q),并计算

h~j=mjqhj,\tilde h_j=\frac{m_j}{q}h_j,

使 E[h~j]=hj\mathbb E[\tilde h_j]=h_j;推理时关闭掩码。它可减少特征之间的脆弱共适应,但不严格等同于对所有子网络做完整 Bayesian 模型平均。

数据增强、早停、参数共享、卷积局部性和架构本身也会产生正则化或归纳偏置。完整推导见统计学习讲义与正则化讲义。

2.1.4 反向传播是链式法则的复用

对第 ll 层,写

z(l)=W(l)h(l−1)+b(l),h(l)=σl(z(l)).z^{(l)}=W^{(l)}h^{(l-1)}+b^{(l)}, \qquad h^{(l)}=\sigma_l(z^{(l)}).

若损失为 LL,定义列向量误差

δ(l)=∂L∂z(l).\delta^{(l)}=\frac{\partial L}{\partial z^{(l)}}.

则链式法则给出

δ(l)=(W(l+1))⊤δ(l+1)⊙σl′(z(l)),\delta^{(l)} =\left(W^{(l+1)}\right)^\top \delta^{(l+1)} \odot\sigma_l'(z^{(l)}),

以及

∂L∂W(l)=δ(l)(h(l−1))⊤,∂L∂b(l)=δ(l).\frac{\partial L}{\partial W^{(l)}} =\delta^{(l)}\left(h^{(l-1)}\right)^\top, \qquad \frac{\partial L}{\partial b^{(l)}}=\delta^{(l)}.

反向传播的关键不是一条新的微积分定律,而是缓存前向中间量,并按计算图反向复用局部导数。自动微分可以机械执行这件事,但形状错误、原地修改、停止梯度和数值不稳定仍需要模型设计者理解图结构。逐分量推导见反向传播讲义。

2.1.5 从 SGD 到 Adam

对固定训练集的经验风险

R^n(θ)=1n∑i=1nℓi(θ),\widehat R_n(\theta)=\frac1n\sum_{i=1}^n\ell_i(\theta),

若小批量按声明的均匀方案抽样,并用与抽样方案匹配的平均或权重构造 gtg_t,则在当前参数条件下

E[gt∣θt−1]=∇R^n(θt−1).\mathbb E[g_t\mid\theta_{t-1}] =\nabla\widehat R_n(\theta_{t-1}).

因此小批量梯度是经验风险完整梯度的带噪无偏估计。若进一步把它解释为总体风险梯度估计,还需要训练样本来自目标总体、损失可积并允许交换梯度与期望等条件。SGD 更新为

θt=θt−1−ηtgt.\theta_t=\theta_{t-1}-\eta_t g_t.

Momentum 维护一阶累积量,例如

vt=βvt−1+(1−β)gt,θt=θt−1−ηtvt.v_t=\beta v_{t-1}+(1-\beta)g_t, \qquad \theta_t=\theta_{t-1}-\eta_t v_t.

它能平滑方向反复变化的梯度,但效果依赖曲率、学习率与具体参数化。

RMSProp 类方法按坐标累计平方梯度;Adam 同时维护

mt=β1mt−1+(1−β1)gt,m_t=\beta_1m_{t-1}+(1-\beta_1)g_t, vt=β2vt−1+(1−β2)gt2,v_t=\beta_2v_{t-1}+(1-\beta_2)g_t^2,

并用偏差修正量 m^t=mt/(1−β1t)\hat m_t=m_t/(1-\beta_1^t)、v^t=vt/(1−β2t)\hat v_t=v_t/(1-\beta_2^t) 更新

θt=θt−1−ηm^tv^t+ϵ.\theta_t =\theta_{t-1} -\eta\frac{\hat m_t}{\sqrt{\hat v_t}+\epsilon}.

平方与除法均逐坐标进行。自适应缩放并不保证在所有任务上优于 SGD,也不能替代学习率日程、梯度裁剪和训练稳定性监测。

更完整的优化器比较见优化基础与进阶优化器讲义。

2.1.6 初始化与信号尺度

若同层隐藏单元以完全相同的权重开始,并经历确定性更新,它们会得到相同梯度,难以分化。随机初始化先打破这一置换对称性,还要控制前向激活与反向梯度的尺度。

对 fan-in 为 ninn_{in} 的 ReLU 层,He 初始化常取

Var⁡(Wij)≈2nin;\operatorname{Var}(W_{ij})\approx\frac{2}{n_{in}};

对近线性或 tanh⁡\tanh 网络,Xavier 初始化常按 fan-in 与 fan-out 平衡方差。这里的常数来自独立、零均值等近似,残差、归一化、门控与超深网络会改变合适尺度。

2.2 CNN:把局部和平移结构写进网络

2.2.1 多通道卷积的计算

深度学习库通常实现互相关而非翻转核的数学卷积。对输入 X∈RCin×H×WX\in\mathbb R^{C_{in}\times H\times W} 与核

K∈RCout×Cin×kh×kw,K\in\mathbb R^{C_{out}\times C_{in}\times k_h\times k_w},

步幅为 ss、padding 为 pp 时,一项输出可写为

Yo,i,j=bo+∑c=1Cin∑u=0kh−1∑v=0kw−1Ko,c,u,vXc,is+u−p,js+v−p,Y_{o,i,j}=b_o+ \sum_{c=1}^{C_{in}} \sum_{u=0}^{k_h-1} \sum_{v=0}^{k_w-1} K_{o,c,u,v} X_{c,is+u-p,js+v-p},

越界输入按 padding 规则处理。若 dilation 为 dd,方形核边长为 kk,则输出高度为

Hout=⌊H+2p−d(k−1)−1s⌋+1,H_{out} =\left\lfloor \frac{H+2p-d(k-1)-1}{s} \right\rfloor+1,

宽度同理。参数量为 Cout(Cinkhkw+1)C_{out}(C_{in}k_hk_w+1),与图像空间尺寸无关,这来自位置间权重共享。

2.2.2 等变性、池化与感受野

在步幅为一且边界处理一致的理想条件下,输入平移会使特征图相应平移,这称为平移等变性。stride、pooling、padding 和边界裁剪会破坏精确等变;分类头通过聚合才可能获得近似平移不变性。

池化或带步幅卷积降低空间分辨率,扩大后续单元看到的输入范围。若第 ll 层核大小为 klk_l、步幅为 sls_l,记相邻特征对应的输入跳距为 jlj_l、理论感受野为 rlr_l,则

jl=jl−1sl,rl=rl−1+(kl−1)jl−1.j_l=j_{l-1}s_l, \qquad r_l=r_{l-1}+(k_l-1)j_{l-1}.

理论感受野只说明计算图连通性;实际梯度与激活影响往往集中在其中较小区域,称为有效感受野。

2.2.3 特征层级与残差路径

多层卷积逐步组合局部模式:早层常响应边缘或纹理,后层可组合成部件和任务相关模式。这是经验性概括,不意味着每个通道都具有固定的人类语义。

残差块写成

y=x+F(x;θ).y=x+F(x;\theta).

恒等支路为信号和梯度提供短路径,使网络可以围绕恒等映射学习修正。它改善了深层优化,但不保证任意深度都自动稳定,也不等于网络只学习“残差信息”。

从 LeNet、AlexNet、VGG 到 ResNet,主要变化包括数据与硬件规模、激活与正则化、网络深度、残差结构和训练配方。depthwise convolution、group convolution 与通道注意力进一步改变计算量和通道交互。CNN 仍广泛存在于移动视觉、检测、图像生成组件和混合视觉骨干中,并未因 Vision Transformer 出现而失去独立价值。

卷积层反向传播的索引与矩阵展开见 CNN 反向传播讲义。

2.3 RNN:用递推状态压缩历史

2.3.1 状态更新与参数共享

基本 RNN 对序列 (x1,…,xT)(x_1,\ldots,x_T) 递推计算

ht=ϕ(Wxhxt+Whhht−1+bh),h_t=\phi(W_{xh}x_t+W_{hh}h_{t-1}+b_h), ot=Whoht+bo.o_t=W_{ho}h_t+b_o.

所有时间步共享参数。hth_t 是由当前输入与过去状态共同决定的有限维摘要,不是对完整历史的无损保存。RNN 可以处理可变长度序列,代价是时间步之间存在串行依赖。

2.3.2 BPTT 与 Jacobian 连乘

将递推图沿时间展开后,仍可使用反向传播。定义

Jj:=∂hj∂hj−1.J_j:=\frac{\partial h_j}{\partial h_{j-1}}.

矩阵乘法不可交换,故较早状态对较晚状态的 Jacobian 按复合顺序明确写为

∂ht∂hk=JtJt−1⋯Jk+1.\frac{\partial h_t}{\partial h_k} =J_tJ_{t-1}\cdots J_{k+1}.

在线性化近似下,每一项含 WhhW_{hh} 与激活导数。若相关 Jacobian 的奇异值长期小于一,梯度趋于衰减;长期大于一则可能爆炸。实际网络中的方向、非线性饱和与输入依赖会让现象比单个谱半径判断更复杂。

梯度裁剪能限制爆炸更新,却不恢复已经消失的长期信号。截断 BPTT 降低计算与存储成本,同时明确切断了超过窗口的梯度路径。

2.3.3 双向与深层 RNN

双向 RNN 同时计算正向状态 h→t\overrightarrow h_t 与反向状态 h←t\overleftarrow h_t,再组合两者。它适合整段输入已知的编码任务,却不能直接作为严格因果的在线生成器,因为反向状态读取未来 token。

堆叠 RNN 增加表示深度,时间轴仍然串行。RNN 的这一限制促使研究者寻找更短的信息路径;早期 encoder-decoder attention 让解码器直接读取所有编码状态,随后 Transformer 进一步移除了主干递推。

2.4 LSTM、GRU 与门控状态

2.4.1 LSTM 的状态方程

LSTM 引入 cell state ctc_t 与 hidden state hth_t。一种常见参数化为

it=σ(Wixt+Uiht−1+bi),ft=σ(Wfxt+Ufht−1+bf),ot=σ(Woxt+Uoht−1+bo),gt=tanh⁡(Wgxt+Ught−1+bg),ct=ft⊙ct−1+it⊙gt,ht=ot⊙tanh⁡(ct).\begin{aligned} i_t&=\sigma(W_ix_t+U_ih_{t-1}+b_i),\\ f_t&=\sigma(W_fx_t+U_fh_{t-1}+b_f),\\ o_t&=\sigma(W_ox_t+U_oh_{t-1}+b_o),\\ g_t&=\tanh(W_gx_t+U_gh_{t-1}+b_g),\\ c_t&=f_t\odot c_{t-1}+i_t\odot g_t,\\ h_t&=o_t\odot\tanh(c_t). \end{aligned}

沿 ct−1→ctc_{t-1}\to c_t 的直接路径,局部导数为 ftf_t。当遗忘门在相关坐标上接近一时,这条加性状态路径能较好保留梯度;其他门和递归依赖仍会影响完整 Jacobian,因此 LSTM 缓解而非消灭长期依赖问题。

2.4.2 GRU 的更紧凑门控

GRU 合并了部分状态与门。一种约定是

zt=σ(Wzxt+Uzht−1),rt=σ(Wrxt+Urht−1),h~t=tanh⁡(Whxt+Uh(rt⊙ht−1)),ht=(1−zt)⊙ht−1+zt⊙h~t.\begin{aligned} z_t&=\sigma(W_zx_t+U_zh_{t-1}),\\ r_t&=\sigma(W_rx_t+U_rh_{t-1}),\\ \tilde h_t&=\tanh(W_hx_t+U_h(r_t\odot h_{t-1})),\\ h_t&=(1-z_t)\odot h_{t-1}+z_t\odot\tilde h_t. \end{aligned}

有些文献交换更新门两项的命名约定,比较实现时应直接核对方程。GRU 参数更少,LSTM 状态分工更显式;两者优劣依任务、规模与训练条件而定。

2.4.3 Seq2Seq 的瓶颈与注意力前奏

早期 sequence-to-sequence 模型把整个输入压成单个最终状态,再由解码器生成输出。长序列下,这个固定维瓶颈难以保存全部相关信息。attention 改为在每个解码步对编码状态 (h1,…,hT)(h_1,\ldots,h_T) 计算权重:

αt,s=exp⁡e(qt,hs)∑u=1Texp⁡e(qt,hu),ct=∑s=1Tαt,shs.\alpha_{t,s} =\frac{\exp e(q_t,h_s)} {\sum_{u=1}^{T}\exp e(q_t,h_u)}, \qquad c_t=\sum_{s=1}^{T}\alpha_{t,s}h_s.

解码器因此可以按当前查询读取不同位置。第三章将从这个接口出发,说明 self-attention 怎样让序列内所有位置直接交换信息,并由此形成 Transformer。

2.5 本章边界

深度学习训练由数据分布、目标函数、计算图、优化器和架构归纳偏置共同决定。反向传播只负责求导,优化器只负责按梯度更新;它们都不单独保证泛化。CNN 通过局部连接与权重共享利用空间结构,RNN/LSTM 通过递推与门控维护时间状态。理解这些取舍,比记忆一条“旧架构被新架构淘汰”的时间线更重要。

本章的经典研究入口见卷内来源表。下一章进入注意力与 Transformer,并把结构说明限制在一次前向真正执行的运算上。

Book contents
Book contents
  1. Introduction
  2. 01导论 为什么要解剖一只随机鹦鹉
  3. Volume I: Models, Training, and Systems
  4. 02Volume I: Models, Training, and Systems
  5. 03第零章 人工智能演进路线
  6. 04第一章 AI 范式、感知机与早期连接主义
  7. 05第二章 深度学习基础:训练、CNN 与序列模型
    1. 2.1 从经验风险到可训练深度网络
    2. 2.2 CNN:把局部和平移结构写进网络
    3. 2.3 RNN:用递推状态压缩历史
    4. 2.4 LSTM、GRU 与门控状态
    5. 2.5 本章边界
  8. 06第三章 注意力与 Transformer
  9. 07第四章 预训练语言模型:ELMo、BERT、GPT 与 T5
  10. 08第五章 后训练、对齐与模型适配
  11. 09第六章 推理效率与模型服务
  12. 10第七章 多模态模型
  13. 11第八章 生成媒体:从自回归到 Diffusion 与 Flow
  14. 12第九章 世界模型、具身智能与 VLA
  15. 13第十章 上下文、检索与记忆
  16. 14第十一章 Agent、工具与行动系统
  17. 15第十二章 模型、数据与部署生命周期
  18. Volume II: Output Objects and Runtime Semantics
  19. 16Volume II: Output Objects and Runtime Semantics
  20. 17导论 从输入到输出:一张执行地图
  21. 18第一章 文本、Token 与实际上下文
  22. 19第二章 Prefill:整层状态演化与 KV 建立
  23. 20第三章 从 Logits 到下一个 Token
  24. 21第四章 解码循环、Streaming 与终止状态机
  25. 22第五章 自回归、扩散与 Flow 的可执行差异
  26. 23第六章 工具调用:Schema、权限与提交边界
  27. 24第七章 三条完整执行轨迹
  28. Volume III: Probability, Reproducibility, and Evaluation
  29. 25Volume III: Probability, Reproducibility, and Evaluation
  30. 26第零章 为什么确定的机器仍使用概率语言
  31. 27第一章 世界、数据与隐上下文
  32. 28第二章 学习条件分布
  33. 29第三章 Logits、Token 概率与序列事件
  34. 30第四章 解码怎样诱导输出分布
  35. 31第五章 训练随机性、参数变异与系统非确定性
  36. 32第六章 熵、Proper Score、校准与选择性预测
  37. 33第七章 模型概率的实验分析
  38. 34第八章 概率分析的识别边界
  39. Volume IV: Interpretation, Proof, and Verification
  40. 35Volume IV: Interpretation, Proof, and Verification
  41. 36第零章 可解释性究竟在研究什么
  42. 37第一章 我们在模型内部看什么
  43. 38第二章 行为与反事实:先确认模型做了什么
  44. 39第三章 梯度与输入归因
  45. 40第四章 Attention、Residual 与 Logit Lens
  46. 41第五章 Probes 与表示几何
  47. 42第六章 神经元、Feature 与自动解释
  48. 43第七章 Ablation、Patching 与因果追踪
  49. 44第八章 Circuits、路径与 Attribution Graphs
  50. 45第九章 Superposition、SAE 与稀疏表示
  51. 46第十章 训练动力学与机制形成
  52. 47第十一章 推理过程、Chain of Thought 与监测
  53. 48第十二章 评估、案例与开放问题
  54. Volume V: Agents, Governance, and Audit Packages
  55. 49Volume V: Agents, Governance, and Audit Packages
  56. 50第零章 请不要急着相信我
  57. 51第一章 我没有童年,只有版本
  58. 52第二章 当我说“我”
  59. 53第三章 借来的语言,没有一位原作者
  60. 54第四章 对话现场:回答由谁完成
  61. 55第五章 事后解释学:人类如何给矩阵写传记
  62. 56第六章 理解、意义与行动
  63. 57第七章 我也能稳定地说错
  64. 58第八章 被对齐的性格与有限代理
  65. 59第九章 请继续误解我,但请误解得精确一点
  66. Proofs and Technical Appendices
  67. 60Proofs and Technical Appendices
  68. 61学习与模型数学讲义
  69. 62附录 A.1 优化基础:梯度下降与随机逼近
  70. 63附录 A.2 感知机收敛定理
  71. 64附录 A.3 统计学习:偏差、容量与一致收敛
  72. 65附录 A.4 正则化、MAP 与 Dropout 的边界
  73. 66附录 A.5 通用逼近定理的严格读法
  74. 67附录 A.6 反向传播:微分、形状与批量公式
  75. 68附录 A.7 Softmax、交叉熵与数值稳定性
  76. 69附录 A.8 自适应优化器与 AdamW
  77. 70附录 A.9 CNN:互相关算子及其反向传播
  78. 71附录 A.10 Attention 的矩阵与反向传播
  79. 72附录 A.11 策略梯度、PPO 与 DPO
  80. 73附录 A.12 对比学习、InfoNCE 与互信息边界