1×1卷积的理解
1×1卷积有很多作用,在大多数情况下它作用是升/降特征的维度,这里的维度指的是通道数(厚度),而不改变图片的宽和高。
比如:
- 输入图片为6×6×32,使用3个大小为1×1×32的filter进行卷积,结果为6×6×3
这样就是实现通道数维度的降维。 - 再对生成的6×6×3的feature map使用24个大小为1×1×3的filter进行卷积,得到新的feature map大小为6×6×24,这样就属于升维了
我们放一张gif来展现这个过程:
长话短说:
- (32, 32, 256)变为了(32, 32, 512),就是通道数的升维;
- (32, 32, 256)变为了(32, 32, 128),就是通道数的降维。
1×1卷积的作用
- 实现通道数的升维/降维
- 跨通道信息交融
- 减少参数量
- 增加模型深度,提高非线性表达能力
因为我们使用了1×1卷积,所以卷积层会变多,层数越多我们模型的非线性表达能力越强。这和使用两个FC层的道理是一样的。
和我们使用两个3×3卷积去代替一个5×5卷积的道理一样:
- 可以显著减少参数量
- 感受野是相同的
- 增加模型深度,提高了模型的非线性表达能力
1×1卷积减少的参数量
看图说话,直接使用32个5×5 filter的参数量为:201.8k;我们在执行5×5卷积之前先使用16个1×1卷积进行降维,再使用32个5×5卷积的参数量为16.9k。
后者是前者参数量的8.37%。