一、说明
来源:链接
深度卷积网络(如VGG,AlexNet)的缺点之一是特征图的数量通常随着网络的深度而增加。当使用较大的过滤器尺寸(如 5x5 和 7x7)时,此问题可能会导致参数数量和计算复杂性显著增加。为了解决这个问题,可以使用 1x1 卷积层来提供通道级池化,通常称为特征池化或投影层。这种简单的技术可以通过减少通道数量同时引入非线性来用于“降维”。
二、用途1:降维
顾名思义,1x1 卷积是一种简单的操作,涉及使用大小为 1x1 的过滤器卷积输入图像。现在,让我们尝试通过一个例子来理解这一点。假设卷积层的输出形状为 — N, F, H, W,其中 N 是批量大小,F 是 #convolution 层,H,W 是输出维度。在将其卷积为带有G滤波器的1x1 conv层的输入后,输出的形状为N,G,H,W。 以数值为例,如果大小为64x64x3的输入通过单个1x1x3滤波器,则输出将具有与输入相同的高度和宽度,但只有一个通道64x64x1。现在,考虑具有大量通道的输入(HxWx192),例如192。为了降低维数,可以应用带有 1 个过滤器的 1x32 卷积。生成的输出特征图将具有相同的空间维度 (HxW),但通道数减少 (32)。在每个空间位置,1x1 卷积将独立地将 32 个过滤器集应用于输入通道。每个滤波器将执行192个输入通道的线性组合,生成单个输出值。
示例:减少 #channels
三、用途2:计算效率
接下来,让我们看一个示例来演示降维如何导致计算负载的减少。假设,一个 28x28x128 的输入特征图需要在 32 个 7x7 滤波器上进行卷积。这将导致约236.1亿次操作。现在,如果我们通过在 1x7 层之前添加一个 7x21 卷积层来执行相同的操作,则操作数量(约 11 万次操作)将减少 ~<> 倍。这种效率特别有利于降低深度神经网络的计算成本,从而实现更快的训练和推理。
四、网络设计
1x1卷积通常用于网络架构中,用于控制通道数并调整模型的复杂性。它们通常与较大的卷积一起使用,以创建在不同层具有不同数量通道的网络,从而使模型能够捕获不同比例的特征。
五、结论
总体而言,1x1 卷积为深度学习模型中的通道级特征转换和降维提供了强大的工具。它们可实现高效灵活的网络设计,同时在特征图中捕获通道之间的基本关系。
引用:
- https://hanlab.mit.edu/files/course/slides/MIT-TinyML-Lec07-NAS-I.pdf
- https://medium.com/analytics-vidhya/talented-mr-1x1-comprehensive-look-at-1x1-convolution-in-deep-learning-f6b355825578
- #016 CNN Network in Network - 1x1 Convolutions - Master Data Science
陶塞夫·艾哈迈德