likes
comments
collection
share

【AI面试】卷积神经网络中的1x1卷积核是什么?作用是什么?1x1卷积核,又称为网中网(Network in Netwo

作者站长头像
站长
· 阅读数 28

「点击关注小白CV,加关注,设星标,学习从此快人一步」

1x1形式的卷积核在目前的网络模块中经常被使用到,1x1卷积核,又称为网中网(Network in Network),是目前大多数网络结构中不可或缺的模块。比如Resnet模块、分离卷积模块、transformer模块等等中常常需要添加1x1卷积核。与此同时,也是一道面试中经常会被问到的问题。

在知道1x1卷积之前,首先回顾卷积网络的基本概念:神经网络中,卷积核是什么?本文,我们会学到两个知识点:

  1. 卷积核是什么?
  2. 1x1卷积核是什么?
  3. 1x1卷积核常被加入基础模块,有什么作用?

阅读全文大约需要2 minutes,建议关注+收藏,边学习边思考,效率更高哦!

卷积核

卷积核可以看作对某个局部区域的加权求和,它是对局部进行感知。以我们人类为例,在观察某个物体全貌时,我们既不能只观察某一个像素,也不能一次观察整体。而是先从局部开始认识,最终局部的组合,构成了观察对象的整体全貌。这个局部区域的观察就对应了卷积。

卷积核单层(channel)的大小一般有1x1,3x3、5x5、7x7的尺寸(一般是奇数x奇数的形式)。同时,在channel尺度上,可以是任意大小的,比如3x3x32、5x5x32等等。其形状如下图所示:

【AI面试】卷积神经网络中的1x1卷积核是什么?作用是什么?1x1卷积核,又称为网中网(Network in Netwo

上图按行结构,可以分为两个组块:

  1. 输入6x6x1的矩阵,这里的1x1卷积形式为1x1x1,内容为元素2,输出也是6x6x1的矩阵。但输出矩阵中的每个元素值是输入矩阵中每个元素值x2的结果。
  2. 当输入为6x6x32时,1x1卷积的形式是1x1x32,当只有一个1x1卷积核的时候,此时输出为6x6x1。此时的channel便由输入时候的32,变成了输出时候的1。

上文中,卷积核的个数就对应输出的通道数(channels),这里需要说明的是对于输入的每个通道,输出每个通道上的卷积核是不一样的。比如输入是28x28x192(WxDxC,C代表通道数)。然后在3x3的卷积核,卷积通道数为128,那么卷积的参数有3x3x192x128

其中前两个对应的每个卷积里面的参数3x3,后两个对应的卷积总的个数192x128(一般理解为,卷积核的权值共享只在每个单独通道上有效,至于通道与通道间的对应的卷积核是独立不共享的,所以这里是192x128)。

这样,1x1卷积核的定义和结构就明显了,就是卷积核大小为1x1,channel可以是任意大小形式的一种卷积核。

作用:

  1. 降维或升维
  2. 增加非线性特性
  3. 跨通道信息交互(channal 的变换)
  4. 降低网络参数

1. 降维或升维

由于 1×1 并不会改变 height 和 width改变通道的第一个最直观的结果,就是可以将原本的数据量进行增加或者减少。这里看其他文章或者博客中都称之为升维、降维。PS:这里改变的只是 height × width × channels 中的 channels 这一个维度的大小。

2. 增加非线性特性

1*1卷积核,可以在保持feature map尺度不变的(即不损失分辨率)的前提下大幅增加非线性特性(利用后接的非线性激活函数),把网络做的很deep。

3. 跨通道信息交互

使用1x1卷积核,实现降维和升维的操作其实就是channel间信息的线性组合变化,3x3,64channels的卷积核后面添加一个1x1,28channels的卷积核,就变成了3x3,28channels的卷积核,原来的64个channels就可以理解为跨通道线性组合变成了28 channels,这就是通道间的信息交互。

4. 降低网络参数

假如上一层的输出为100x100x128,经过具有256个输出的5x5卷积层之后(stride=1,pad=2),输出数据为100x100x256。其中,卷积层的参数为128x5x5x256=819200

假如换一种组合形式,上一层输出100x100x128,先经过具有32个输出的1x1卷积层,再经过具有256个输出的5x5卷积层,那么最终的输出数据仍为为100x100x256,但卷积参数量变成2层卷机的和,即:128x1x1x32 + 32x5x5x256=4096+204800=208896。此时相比于之前的,参数大约减少了4倍。


最后,引申下开头的NIN, 《Network In Network》 ,论文地址:arxiv.org/abs/1312.44… In Network仅为29M。

这篇文章的创新点有两个:

  1. MLP (multilyer perceptron)Convolution Layers:在常规卷积(感受野大于1的)后接若干1x1卷积,每个特征图视为一个神经元,特征图通过1x1卷积就类似多个神经元线性组合.

  2. Global Average Pooling:用全局平均池化代替全连接层,具体做法是对最后一层的特征图进行平均池化,得到的结果向量直接输入softmax层。这样做好处之一是使得特征图与分类任务直接关联,另一个优点是全局平均池化不需要优化额外的模型参数,因此模型大小和计算量较全连接大大减少,并且可以避免过拟合。

【AI面试】卷积神经网络中的1x1卷积核是什么?作用是什么?1x1卷积核,又称为网中网(Network in Netwo

这是AI面试系列的开篇文章,尽量简单的描述,读懂很重要。如果有什么问题,欢迎评论留言,小编第一时间进行回复。后续的文章,我们也会继续整理出实用有趣的wen z ,分享给大家。喜欢记得关注哦。

(第一次周末在书城的咖啡屋看书和写文章,感觉很好,下次还要来。纪念下)

【AI面试】卷积神经网络中的1x1卷积核是什么?作用是什么?1x1卷积核,又称为网中网(Network in Netwo

参考内容:zhuanlan.zhihu.com/p/40050371

往期回顾

点击图片回顾往期热文

Python 100题(一)万事开头难,3小题过把瘾\

Python基础精炼点(一):这8个小点,可都是工作、面试常见题\

Python数据系列(一)- 列表List:Python的“苦力”\

转载自:https://juejin.cn/post/6993307693045940261
评论
请登录