- 背景:最近看到一些分解卷积层的方法,比如三个3×3的卷积层替代一个7×7的卷积层,或者两个3乘3的卷积层替代一个5×5的卷积层,本文主要是个人粗浅的分析下原因
一、两个3乘3的卷积层替代一个5×5的卷积层
- 经典原理网图:
- 如图所示:
- 对于两层3×3的卷积层而言
- 最上面一层的3×3卷积层,每个1×1区域的感知野都是3×3
- 第二层的3×3卷积层,每个1×1区域的感知野还是3×3
- 所以两层3×3卷积层,叠加效果可以覆盖一个5乘5的区域,既是两层3×3卷积层,可以获得一个5×5的感知野;
二、三个3×3的卷积层替代一个7×7的卷积层
- 和两个3乘3的卷积层替代一个5×5的卷积层原理一样
- 再叠加一层3×3的卷积层,叠加效果就可以覆盖一个7×7的区域,既是可以获得一个7×7的感知野
三、先知道怎么做,再讨论下为什么
-
对于一个5×5的卷积核,假设输入图片尺寸为 C K G;
-
训练过程中涉及的权重数量:5×5×C;
-
对于2个3×3的卷积核;
-
涉及的权重数量:2×3×3×C;
-
可以知道涉及的参数数量,在卷积核分解后会减少,所以这样做,可以减少需要维护的参数数量,减少计算量;