Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neural network 为什么在深层神经网络中使用卷积1x1?_Neural Network_Tensorflow_Deep Learning_Convolution_Conv Neural Network - Fatal编程技术网

Neural network 为什么在深层神经网络中使用卷积1x1?

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层要求输入具有固定大小

我正在研究InceptionV3(GoogLeNet)体系结构,不明白为什么我们需要conv1x1层


我知道卷积是如何工作的,但我认为补丁大小>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的输出仍然是一个矩阵,为什么“数学上等同于一个全连接层”?我在谷歌上搜索了很多,但无法理解这种等价。对此有直观的解释吗?