一文读懂卷积神经网络中的1x1卷积核
1x1卷积(Conv 1*1)的作用
Conv 1×1 一般只改变输出通道数,而不改变输出的宽度和高度;
而Pooling 操作一般只改变输出的宽和高,而不改变通道数。
一、来源
Conv 1 × 1 是 Network in Network 的简称。
对于单通道图像,其作用仅是进行线性运算;
对于多通道图像,Conv 1×1 会遍历图像的所有位置,将每个位置处所有通道的值作为其输入,与1×1 卷积核中对应通道的值进行线性运算。本质上可以视为一个全连接神经网络。
输出通道数为卷积核的个数。
如下图,2232与2个1132卷积,得到222
二、作用
1. 添加非线性特性
即保持特征图尺寸不发生变化且维持上一层的通道数,在增加网络的深度的同时令网络能够学习更为复杂的函数(特征信息)。
filters是滤波器(卷积核)的个数
2. 对通道数实现升维/降维
设卷积核大小为 5 × 5 × 192 ,以 降维减少计算量 为例。
未使用 Conv 1×1 的情况下,
输出大小为 28 × 28 × 32 ,其中每个值均需要经过 5 × 5 × 192 次乘法,忽略加法的情况下,该层计算量为:
28 × 28 × 32 × 5 × 5 × 192 ≈ 120 m
使用 Conv 1×1 构建瓶颈层(bottleneck)的情况下,
Conv 1×1 层:28 × 28 × 16 × 192 ≈ 2.4 m ;
Conv 1×1 层:28 × 28 × 32 × 5 × 5 × 16 ≈ 10.0 m 。
总参数量为 12.4 m。与上一种方式相比,在保证输入和输出的维度相同的情况下,参数量大幅减少。
这就是Conv 1×1 的降维作用。
Conv 1×1 一般只改变输出通道数,而不改变输出的宽度和高度;
而Pooling 操作一般只改变输出的宽和高,而不改变通道数。
3. 实现跨通道的信息交互与整合
Conv 1×1 所实现的通道数增加/减少,本质上其实是通道之间信息的线性组合,这些组合能够使得网络提取更加丰富的高级特征,如上一部分中 28×28×192 的输入经过1×1×192×16 的卷积操作后输出为28×28×16,即该层输入中的原192 个特征经过 跨通道线性组合 变成了输出中的 16 个特征。这就是通道间的信息交互。