当前位置: 首页 > ops >正文

【深度学习】为什么2个3×3的卷积可以相当于一个5×5的卷积核?为什么3个3×3的卷积相当于一个7×7的卷积核,到底区别在哪里?我们该如何使用?

文章目录

  • 一、基础参数对比(以输入特征图640×640为例)
  • 二、2个3×3串联卷积 vs 1个5×5卷积
    • 1. 输出特征图尺寸
    • 2. 参数量与计算量
    • 3. 感受野与特征提取差异
    • 4. 实际效果对比
  • 三、3个3×3串联卷积 vs 1个7×7卷积
    • 1. 输出特征图尺寸
    • 2. 参数量与计算量
    • 3. 感受野与网络深度差异
    • 4. 实际应用场景对比
  • 四、核心区别总结表
  • 五、实际应用中的选择建议
  • 六、数学本质:卷积核的空间域分解

一、基础参数对比(以输入特征图640×640为例)

假设输入通道数为 C i n C_{in} Cin,输出通道数为 C o u t C_{out} Cout,步长均为1, padding均为相同填充(保证输出尺寸一致)。

二、2个3×3串联卷积 vs 1个5×5卷积

1. 输出特征图尺寸

  • 2个3×3卷积
    每层卷积后尺寸:((640 + 2×padding - 3)/1 + 1 = 640)(假设padding=1,保持尺寸不变)
    两层后输出尺寸仍为640×640。
  • 1个5×5卷积
    输出尺寸:((640 + 2×padding - 5)/1 + 1 = 640)(假设padding=2,保持尺寸不变)。

结论:通过合理设置padding,两者输出尺寸相同。

2. 参数量与计算量

指标2个3×3串联卷积1个5×5卷积
参数量 2 × ( 3 × 3 × C i n × C o u t ) 2×(3×3×C_{in}×C_{out}) 2×(3×3×Cin×Cout) 5 × 5 × C i n × C o u t 5×5×C_{in}×C_{out} 5×5×Cin×Cout
计算量(乘加运算) 2 × ( 640 × 640 × 3 × 3 × C i n × C o u t ) 2×(640×640×3×3×C_{in}×C_{out}) 2×(640×640×3×3×Cin×Cout) 640 × 640 × 5 × 5 × C i n × C o u t 640×640×5×5×C_{in}×C_{out} 640×640×5×5×Cin×Cout
参数节省比例相比5×5减少 ( 25 − 18 ) / 25 = 28 % (25-18)/25=28\% (2518)/25=28%-

3. 感受野与特征提取差异

  • 2个3×3卷积
    感受野为5×5,且中间层引入一次激活函数(如ReLU),可提取更复杂的非线性特征。
  • 1个5×5卷积
    感受野直接为5×5,但仅一次激活,特征表达更依赖单一卷积核的权重设计。

4. 实际效果对比

  • 特征多样性:3×3串联卷积因多层激活,能生成更丰富的特征图(如边缘、纹理的组合特征)。
  • 训练难度:5×5卷积参数更集中,可能因梯度消失/爆炸导致训练不稳定,而3×3串联因层数增加可通过残差连接等优化训练。

三、3个3×3串联卷积 vs 1个7×7卷积

1. 输出特征图尺寸

  • 3个3×3卷积
    每层padding=1,三层后输出尺寸保持640×640( ( 640 + 2 × 1 − 3 ) / 1 + 1 = 640 (640+2×1-3)/1+1=640 (640+2×13)/1+1=640)。
  • 1个7×7卷积
    padding=3时,输出尺寸为 ( 640 + 2 × 3 − 7 ) / 1 + 1 = 640 (640+2×3-7)/1+1=640 (640+2×37)/1+1=640

2. 参数量与计算量

指标3个3×3串联卷积1个7×7卷积
参数量 3 × ( 3 × 3 × C i n × C o u t ) 3×(3×3×C_{in}×C_{out}) 3×(3×3×Cin×Cout) 7 × 7 × C i n × C o u t 7×7×C_{in}×C_{out} 7×7×Cin×Cout
计算量 3 × ( 640 × 640 × 3 × 3 × C i n × C o u t ) 3×(640×640×3×3×C_{in}×C_{out}) 3×(640×640×3×3×Cin×Cout) 640 × 640 × 7 × 7 × C i n × C o u t 640×640×7×7×C_{in}×C_{out} 640×640×7×7×Cin×Cout
参数节省比例相比7×7减少 ( 49 − 27 ) / 49 ≈ 45 % (49-27)/49≈45\% (4927)/4945%-

3. 感受野与网络深度差异

  • 3个3×3卷积
    感受野为7×7,且包含3层网络结构,每层激活后可提取不同层次的特征(如底层边缘→中层形状→高层语义)。
  • 1个7×7卷积
    感受野直接为7×7,但网络深度仅1层,特征提取层次单一,难以捕获多层级语义信息。

4. 实际应用场景对比

  • 3×3串联卷积:适用于需要深层网络的任务(如图像分类、目标检测),通过多层非线性变换提升模型表现力,典型如VGG16/19网络。
  • 7×7卷积:常在网络浅层作为初始特征提取(如ResNet的第一层7×7卷积),但因参数量大,深层网络中较少使用。

四、核心区别总结表

对比维度2个3×3 vs 5×53个3×3 vs 7×7
参数量优势减少28%,计算量降低约28%减少45%,计算量降低约45%
非线性能力2次激活,特征更复杂3次激活,非线性更强
网络深度2层 vs 1层,深度增加3层 vs 1层,深度显著增加
感受野扩展方式逐层扩展(3→5),特征更精细逐层扩展(3→5→7),适合捕获全局特征
过拟合风险参数分散,正则化效果更好参数更分散,过拟合风险更低
硬件加速友好性小卷积核更易被GPU/TPU优化同上,多层小卷积比单一大卷积更高效

五、实际应用中的选择建议

  1. 优先选择小卷积核堆叠

    • 当需要大感受野时(如语义分割中的全局上下文捕捉),用3×3串联替代大卷积核,平衡精度与效率。
    • 案例:ResNet中每个残差块使用2个3×3卷积,而非直接使用5×5卷积。
  2. 大卷积核的适用场景

    • 网络第一层(如ImageNet模型初始7×7卷积),用于快速降采样或提取底层特征,但需配合步长和padding优化。
    • 轻量级模型中谨慎使用,避免参数爆炸(如MobileNet、ShuffleNet采用深度可分离卷积替代)。
  3. 输入尺寸的影响

    • 当输入特征图尺寸较小时(如32×32),大卷积核可能导致特征图尺寸急剧缩小,而3×3串联可通过padding保持尺寸,更适合浅层网络。

六、数学本质:卷积核的空间域分解

  • 2个3×3卷积的级联等价于1个5×5卷积的线性变换,但引入了额外的非线性激活。
  • 这种分解本质是将“大尺度线性操作”拆分为“多层小尺度线性操作+非线性变换”,符合深度学习中“分层次特征提取”的核心思想。
  • 从信号处理角度看,3×3卷积堆叠相当于对输入进行多级滤波,每级滤波后通过激活函数增强特征区分度,优于单级大尺度滤波。

通过小卷积核堆叠替代大卷积核,已成为现代CNN架构设计的黄金法则,其核心优势在于用更少的参数、更高的计算效率实现更强的特征表达能力。

http://www.xdnf.cn/news/12204.html

相关文章:

  • ESP32C3中BLE开发问题汇总
  • 数字图像处理第二次实验
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(32):そうやすいにくいすぎ(過ぎ)
  • 链表相关知识
  • 一键切换不同状态,3D数字孪生场景搭建更便捷!
  • 【iOS】cache_t分析
  • Qt 按钮类控件(Push Button 与 Radio Button)(1)
  • COMSOL学习笔记-静电场仿真
  • 可视化图解算法48:有效括号序列
  • DFORMER: RETHINKING RGBD REPRESENTATION LEARNING FOR SEMANTIC SEGMENTATION 论文浅析
  • 电厂数字孪生:智能优化助力碳中和
  • 【定昌linux开发板】设置用户密码过期时间
  • eNSP实现WDS手拉手业务
  • 如何做好一份技术文档?(上篇)
  • Spring AI(11)——SSE传输的MCP服务端
  • Spring Plugin框架应用实践:医院多租户客户端动态路由方案解析
  • App使用webview套壳引入h5(二)—— app内访问h5,顶部被手机顶部菜单遮挡问题,保留顶部安全距离
  • 两个错误教训记录--java变量作用域问题导致变量值异常
  • calico/node is not ready: BIRD is not ready: BGP not established with xxx
  • sumatraPDF设置深色界面
  • ArcGIS Maps SDK for JavaScript:使用图层过滤器只显示FeatureLayer的部分要素
  • LG P9990 [Ynoi Easy Round 2023] TEST_90 Solution
  • 风机下引线断点检测算法实现
  • 免费wordpress模板下载
  • Astro深度解析:颠覆传统的前端架构革命,打造极致性能的现代Web应用
  • KMP 算法中 next 数组的构建函数 get_next
  • linux-------------------------进程间通信(上)
  • QMetaObject::invokeMethod调用失败
  • 摄像机ISP处理流程
  • 【面经分享】京东