Neural network 为什么在深层神经网络中使用卷积1x1?
我正在研究InceptionV3(GoogLeNet)体系结构,不明白为什么我们需要conv1x1层Neural network 为什么在深层神经网络中使用卷积1x1?,neural-network,tensorflow,deep-learning,convolution,conv-neural-network,Neural Network,Tensorflow,Deep Learning,Convolution,Conv Neural Network,我正在研究InceptionV3(GoogLeNet)体系结构,不明白为什么我们需要conv1x1层 我知道卷积是如何工作的,但我认为补丁大小>1会带来利润 将1xd卷积放在网络的某个位置时,可以将其视为一种降维技术 如果输入卷为100x100x512,并使用一组D过滤器将其卷积,每个过滤器的大小为1x512,则功能部件的数量将从512减少到D。 因此,输出音量为100x100xD 如您所见,这(1x1x512)xD卷积在数学上相当于一个完全连接的层。主要区别在于,虽然FC层要求输入具有固定大小
我知道卷积是如何工作的,但我认为补丁大小>1会带来利润 将
1xd
卷积放在网络的某个位置时,可以将其视为一种降维技术
如果输入卷为100x100x512
,并使用一组D
过滤器将其卷积,每个过滤器的大小为1x512
,则功能部件的数量将从512减少到D。
因此,输出音量为100x100xD
如您所见,这(1x1x512)xD
卷积在数学上相当于一个完全连接的层。主要区别在于,虽然FC层要求输入具有固定大小,但卷积层可以接受空间范围大于或等于100x100
的每个卷的输入
由于这种等价性,1xd
卷积可以替代任何完全连接的层
此外,1x1xD
卷积不仅减少了下一层的输入特性,而且还将新的参数和新的非线性引入网络,这将有助于提高模型精度
当1x1xD
卷积放在分类网络的末端时,它正好充当FC层,但与其将其视为一种降维技术,不如将其视为一个将输出具有形状wxhnum_类的张量的层
输出张量的空间范围(由W
和H
确定)是动态的,由网络分析的输入图像的位置决定
如果网络的输入定义为200x200x3
,我们在输入中给它一个这样大小的图像,那么输出将是一个带有W=H=1
和深度=num\u class
的映射。
但是,如果输入图像的空间范围大于200x200
,卷积网络将分析输入图像的不同位置(就像标准卷积一样),并将产生W>1
和H>1
的张量。
如果FC层限制网络接受固定大小的输入并产生固定大小的输出,这是不可能的。1x1卷积只是将输入像素映射到输出像素,而不查看自身周围的任何东西。它通常用于减少深度通道的数量,因为增加深度非常大的体积通常非常缓慢
input (256 depth) -> 1x1 convolution (64 depth) -> 4x4 convolution (256 depth)
input (256 depth) -> 4x4 convolution (256 depth)
底部的速度大约慢3.7倍
从理论上讲,神经网络可以使用这种方法来“选择”要查看的输入“颜色”,而不是用蛮力将所有内容相乘。那么,像1x1x1这样的conv操作绝对没有用,对吗?没有什么是单靠
1x1x1x1
卷积,卷积总是与输入体积的深度有关。一般来说,这种卷积的结构是:WxHxD
->(1x1xD)x1
->WxHx1
。然后将D
输入特征组合成一个特征。但是如果输入卷具有D=1
,那么您将把一个功能组合到另一个功能中。您只需将特征值传递给一个神经元,该神经元将把这个值映射到另一个空间。在某些情况下,它可能很有用guess@Verych你说得对。从数学上来说,你可以定义一个1x1x1卷积,但它确实是无用的(输出将等于原始输入)。出于某种原因,在机器学习中,人们通常假设存在第三维度,即通道数(或过滤器数)。所以,隐含地说,“1x1卷积”实际上是指“1x1xD卷积”。澄清链接:全连接网络的输出是一个向量,但NiN的输出仍然是一个矩阵,为什么“数学上等同于一个全连接层”?我在谷歌上搜索了很多,但无法理解这种等价。对此有直观的解释吗?