999 字
5 分钟
深度学习的基本结构:层,块,组件,网络
2026-06-20
无标签

之前一直苦恼于抽象的概念,层,块,组件,网络之间的关系。

通用
CNN(ResNet)
Transformer(BERT)
M
模型
模型 / Model
完整可训练对象
ResNet-50
4 stage × N ResBlock
BERT-base
12 × EncoderBlock
堆叠 ↑
B
块 / Block
可复用子图
ResBlock
Conv+BN+ReLU + 跳跃
EncoderBlock
MHA + AddNorm + FFN
组合 ↑

层 / Layer
原子算子单元
Conv2d, BN, ReLU
单个卷积或激活
Linear, LayerNorm
单个线性变换
拥有 ↑
θ
参数
参数 / Parameter
可学习张量
W, b
卷积核权重与偏置
W_Q, W_K, W_V
注意力投影矩阵
层、块、模型共享同一接口:forward(x) → y  parameters() → {θ}  粒度不同,行为协议相同。
Sequential

顺序

B₁ → B₂ → … → Bₙ
VGG 各阶段、GPT 主干
Parallel

并行

x → B₁ ⊕ B₂ ⊕ B₃
Inception Module、多头注意力
Skip

跳跃

y = F(x) + x
ResBlock、Transformer AddNorm
M(x) = B_N ∘ B_{N−1} ∘ … ∘ B_1(x)
B_i(x) = _k ∘ … ∘ _1(x) + skip(x)
(x) = σ( W x + b ) , W, b ∈ θ
每一层都可以被当作"更小的模型";每一个模型都可以被当作"更大的块"。层次之间没有本质不同,只有粒度之分。

用一张结构图来展示这些关系。图里有三条主线,顺着读下来会比较清楚。

纵向:抽象阶梯。 从 θ(参数)到 ℓ(层)到 B(块)到 M(模型),是一条单向的”拥有/组合/堆叠”关系链。每往上一级,粒度变粗,表达能力变强,但接口不变——对外都是 forward(x) → y 这一个动作。CNN 和 Transformer 只是在每一级填了不同的名字,结构是完全同构的。

横向:同一层级内的三种拓扑。 块之间(以及层之间)的组合方式只有三种:顺序(Sequential,输出串行往下传)、并行(Parallel,同一个输入喂给多路,输出拼/加在一起)、跳跃(Skip,绕过某些变换把输入直接加回来)。VGG 纯顺序,Inception 是并行,ResNet 和 Transformer 的 AddNorm 是跳跃。现实的网络就是这三种拓扑的嵌套组合。

底部:自相似性的数学形式。 最底下三行递推式是整个体系的核心——模型是块的复合,块是层的复合加上可选的跳跃连接,层是参数的仿射变换加激活。这个递推可以在任意层级展开:可以把 ResNet 整个当作一个块嵌进更大的架构,也可以把一个 Linear 层当作退化的”零层块”。层次之间没有本质不同,只有粒度之分。

深度学习的基本结构:层,块,组件,网络
https://biscuit0613.github.io/posts/ml/basicstructure/
作者
Biscuit
发布于
2026-06-20
许可协议
CC BY-NC-SA 4.0
聚类-准则以及常见算法
可分性准则以及特征选择的经典方法