【深度学习实践与解惑】Basic Block 与 Bottleneck Block 的结构差异与适用深度范围?

深度学习中 Basic Block 与 Bottleneck Block 的结构差异与适用深度范围

目录

  1. 结构差异
  2. 数学公式对比
  3. 适用深度范围
  4. 总结

结构差异

特征 Basic Block Bottleneck Block
卷积层组合 两个 3 × 3 3 \times 3 3×3 卷积层 三个卷积层: 1 × 1 → 3 × 3 → 1 × 1 1 \times 1 \rightarrow 3 \times 3 \rightarrow 1 \times 1 1×13×31×1
通道数变化 保持或略微增加通道数 中间层显著降维(例如缩减为输入的 1 / 4 1/4 1/4
计算复杂度 较高(直接处理高维特征) 较低(通过降维减少计算量)
残差连接 输入直接叠加到输出(维度匹配时) 可能需要 1 × 1 1 \times 1 1×1 卷积调整维度

数学公式对比

Basic Block

  • 输入输出关系
    y = F ( x , { W i } ) + x y = F(x, \{W_i\}) + x y=F(x,{Wi})+x
  • 函数 F F F 结构
    F = W 2 ⋅ σ ( W 1 ⋅ x ) F = W_2 \cdot \sigma(W_1 \cdot x) F=W2σ(W1x)
    其中 W 1 , W 2 W_1, W_2 W1,W2 为两个 3 × 3 3 \times 3 3×3 卷积层, σ \sigma σ 为 ReLU 激活函数。

Bottleneck Block

  • 输入输出关系
    y = F ( x , { W i } ) + W s ⋅ x y = F(x, \{W_i\}) + W_s \cdot x y=F(x,{Wi})+Wsx
    (若维度不匹配,需用 1 × 1 1 \times 1 1×1 卷积 W s W_s Ws 调整输入)
  • 函数 F F F 结构
    F = W 3 ⋅ σ ( W 2 ⋅ σ ( W 1 ⋅ x ) ) F = W_3 \cdot \sigma(W_2 \cdot \sigma(W_1 \cdot x)) F=W3σ(W2σ(W1x))
    其中:
    • W 1 W_1 W1 1 × 1 1 \times 1 1×1 卷积(降维至输入的 1 / 4 1/4 1/4
    • W 2 W_2 W2 3 × 3 3 \times 3 3×3 卷积(处理低维特征)
    • W 3 W_3 W3 1 × 1 1 \times 1 1×1 卷积(恢复至原维度)

适用深度范围

结构类型 适用网络深度 典型应用案例
Basic Block 浅层网络(≤34层) ResNet-18、ResNet-34
Bottleneck Block 深层网络(≥50层) ResNet-50、ResNet-101/152

原因

  1. Basic Block 计算成本较高,但结构简单,适合浅层网络快速训练。
  2. Bottleneck Block 通过降维显著减少参数量,缓解深层网络的梯度消失问题。

总结

  • Basic Block:简单高效,适合浅层网络,直接通过两个 3 × 3 3 \times 3 3×3 卷积提取特征。
  • Bottleneck Block:通过降维降低计算复杂度,适合深层网络,避免参数量爆炸。
  • 【哈佛博后带小白玩转机器学习】

你可能感兴趣的:(大模型技术开发与实践,哈佛博后带你玩转机器学习,深度学习,深度学习,人工智能,机器学习,神经网络,反向传播,大模型,python)