高效神经网络架构解析
1. 高效卷积层
1.1 1×1(逐点)卷积
1×1 卷积(也称为逐点卷积)是一种特殊的标准卷积层,其内核大小 K 为 1。根据相关公式,用 1×1 卷积层替换 K×K 标准卷积层将使乘法累加运算次数(#MACs)和参数数量(#Params)减少 $K^2$ 倍。在实际应用中,由于 1×1 卷积本身无法聚合空间信息,它通常与其他卷积层结合使用,以构成卷积神经网络(CNN)架构。例如,1×1 卷积常用于减少或增加 CNN 中特征图的通道维度。
1.2 分组卷积
与通过减小内核大小维度来降低成本的 1×1 卷积不同,分组卷积通过减小通道维度来降低成本。具体来说,输入特征图 $F_i$ 会沿着通道维度被分割成 G 组:
[split(F_i) = (F_i[0 : c, :, :], F_i[c : 2c, :, :], \cdots, F_i[I_c - c : I_c, :, :])]
其中 $c = I_c / G$。
然后,每组被输入到一个大小为 $\frac{O_c}{G} \times \frac{I_c}{G} \times K \times K$ 的标准 K×K 卷积中。最后,输出沿着通道维度进行拼接。与标准的 K×K 卷积相比,分组卷积的 #MACs 和 #Params 减少了 G 倍。
1.3 深度可分离卷积
在分组卷积中,分组数 G 是一个可调整的超参数。G 越大,计算成本越低,参数数量也越少。极端情况下,当 G 等于输入通道数 $I_c$ 时,分组卷积层被称为深度可分离卷积。深度可分离卷积的 #MACs 和 #Params 计算公式如下:
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



