┌───────────────┐ │ ...

Créé le : 9 août 2026

Répondu en utilisant GPT-5.5 par Chat01

Question

text
┌───────────────┐ │ │ │ x │ │ ↓

x ──→ Conv ──→ ReLU ──→ Conv ──→ (+) ──→ 输出
│ ↑
└──────────────────────────────┘
Shortcut

如何理解这些中间参数?

Réponse

你画的是一个ResNet 残差块(Residual Block),里面最容易让人困惑的就是那些"中间参数"到底是什么。其实可以从数据流和**参数(权重)**两个角度来理解。

先把你的图写成数学形式:

text
输入 x ├───────────────┐ │ │ ▼ │ Conv1 │ │ │ ReLU │ │ │ Conv2 │ ▼ │ F(x) │ │ │ └─────── + ─────┘ x + F(x) 输出

1. x 是什么?

这里的 x 不是一个数字

它通常是一个 Feature Map(特征图)

例如:

text
输入图片 224×224×3

经过前几层网络之后,可能变成

text
x 56×56×64

也就是说:

x = 一个 56×56×64 的张量

2. Conv 的参数是什么?

卷积层真正学习的是

text
Weight(卷积核) Bias(偏置)

例如:

text
64 个输入通道 64 个输出通道 3×3 卷积

那么卷积核大小就是

64 × 64 × 3 × 3

这些就是网络真正训练出来的参数。

它们通常记为

text
W1 W2

于是

第一层卷积

y1 = Conv(x; W1)

第二层卷积

y2 = Conv(ReLU(y1); W2)

于是

F(x)=Conv2(ReLU(Conv1(x)))

这里

F(x)

不是参数,而是经过参数计算后的结果


3. ReLU 有参数吗?

没有。

ReLU只是

f(x)=max(0,x)

例如

text
-3 → 0 5 → 5 -1 → 0

它没有任何需要学习的参数。


4. Shortcut 有参数吗?

你的图里面这个 Shortcut 是

x ─────────────→

这种叫

Identity Shortcut

它什么都不做。

所以

Shortcut(x)=x

没有参数。


但有时候尺寸变了,例如

text
56×56×64 28×28×128

这时候不能直接相加。

于是 Shortcut 会变成

1×1 Conv

Shortcut(x)=Ws*x

这里

Ws

就是额外学习的参数。


5. 为什么要加起来?

普通网络学习的是

H(x)

ResNet 改成学习

F(x)=H(x)-x

所以最后输出

H(x)=F(x)+x

如果发现

H(x)

其实跟

x

很接近,

那么网络只需要学一个很小的

F(x)

训练就容易很多。


6. 中间这些变量是什么?

如果写完整一点:

text
输入 x

第一层卷积

z1 = W1*x+b1

ReLU

a1 = ReLU(z1)

第二层卷积

z2 = W2*a1+b2

得到

F(x)=z2

最后

y = x + F(x)

这里:

符号含义是否训练参数
x输入特征图
W1第一层卷积核
b1第一层偏置
z1第一层卷积输出
a1ReLU输出
W2第二层卷积核
b2第二层偏置
F(x)残差分支输出
x+F(x)残差块输出

只有 卷积层(以及可能存在的 BatchNorm 等层)的权重和偏置是需要训练的参数;中间的 z1a1F(x) 等都是根据这些参数和输入计算得到的中间激活(中间结果),不是参数。


7. 一个直观的小例子

假设输入特征(为便于说明,用一维表示)是:

x = [2, 5]

经过两层卷积后得到残差:

F(x) = [0.3, -0.4]

残差块输出就是:

text
y = x + F(x) = [2, 5] + [0.3, -0.4] = [2.3, 4.6]

可以看到,残差分支只是对原始特征做了增量修正,而不是完全重新生成新的表示。这正是 ResNet 能够训练很深网络的核心思想:网络学习的是"需要修改多少",而不是"从头生成什么"。

Partager cette Q&R