机器学习-卷积神经网络简介(2)

代替大卷积
在这里,我们解释了级联几个小卷积的作用,在下面的图中,我们有2个3x3卷积层。 如果从右侧的第二层开始,则第二层上的一个神经元具有3x3的接收场,并且第一层上的每个神经元都会在输入上创建5x5的接收场。
因此,用简单的话来说,级联可以用来代表较大的级联。

机器学习-卷积神经网络简介(2)

新的成功模型的新趋势是使用较小的卷积,例如,可以将7x7卷积替换为具有相同深度的3个3x3卷积。 由于第一转换层和输入文件深度之间的深度不匹配,因此无法在第一转换层上进行此替换(除非您的第一层只有3个过滤器)。
机器学习-卷积神经网络简介(2)

在上图中,我们用3个3x3卷积替换了一个7x7卷积,观察到它们之间有relu层,因此我们具有更多的非线性。 同样,我们的权重和乘加运算更少,因此计算速度更快。

替换第一层
如前所述,我们不能在第一层上替代大卷积。 实际上,第一层上的小卷积会导致内存消耗爆炸。
为了说明这个问题,让我们比较一下卷积神经网络的第一层,它是3x3,带有64个滤镜,步幅为1,相同深度的深度为7x7,步幅为2,考虑图像大小为256x256x3。

机器学习-卷积神经网络简介(2)

继续进行3x3替换(Bottleneck)
也可以通过称为瓶颈的机制来简化3x3卷积。 这又将具有正常3x3卷积的相同表示,但参数更少,非线性更多。
请注意,替换是在3x3卷积上进行的,该卷积具有与上一层相同的深度(在这种情况下为50x50x64)
机器学习-卷积神经网络简介(2)

打破3x3xC卷积的另一种方法是使用1x3xC,然后使用3x1xC,这已在剩余的googlenet初始层中使用。

机器学习-卷积神经网络简介(2)
机器学习-卷积神经网络简介(2)

FC->转换层转换
可以将完全连接的层转换为卷积层,反之亦然,但是我们对FC-> Conv转换更感兴趣。 这样做是为了提高性能。
例如,假设一个FC层具有输出K = 4096和输入7x7x512,则转换为:
CONV:内核:7x7,Pad:0,步幅:1,numFilters:4096。
使用2d卷积公式的大小:
机器学习-卷积神经网络简介(2)

在简历中,通过将FC层转换为卷积可以获得的收益:
性能:由于重量分配,计算速度更快
你可以使用比您训练的图像更大的图像,而无需进行任何更改
你将能够在同一图像上检测到2个对象(如果使用更大的图像),则最终输出将比单个行向量更大。

计算感受野
接收场基本上是特定卷积窗口在其输入张量上“看到”的程度。
有时,确切了解输入图像上特定层的每个单元有多少是有用的,这在对象检测系统上尤为重要,因为我们需要以某种方式将一些**图尺寸与原始图像尺寸进行匹配(标签 图片)。
机器学习-卷积神经网络简介(2)

要注意的一点:
对于第一层(仅),接受字段是内核大小。
这些计算与层的类型(CONV,POOL)无关,例如,步幅为2的CONV与步幅为2的POOL具有相同的接收场。