通常我们会在卷积层之间插入最大池数。主要思想是总结"转发中的功能。层。但是很难决定何时插入。我背后有一些问题:
如何决定转发多少。图层,直到我们插入最大池。什么是太多/少数转化的影响。层
因为max-pooling会减小尺寸。因此,如果我们想要使用非常深的网络,我们不能做很多maxpooling否则大小太小。例如,MNIST只有28x28输入,但我确实看到有些人使用非常深的网络来试验它,所以它们最终可能会有非常小的尺寸?实际上,当尺寸太小(极端情况,1x1)时,它的'就像一个完全连接的层,似乎对它们进行卷积没有任何意义。
我知道没有黄金角色,但我只是想了解这背后的基本直觉,以便我在实施网络时做出合理的选择
答案 0 :(得分:0)
你是对的,没有一种最好的方法可以做到这一点,就像没有一个最佳的过滤器大小或一般的最佳神经网络架构一样。
VGG-16在汇集层之间使用2-3个卷积层(下图),VGG-19最多使用4层,...
..并且GoogleNet在两者之间应用了令人难以置信的卷积(图片打击),有时与最大化层次并行
显然,每个新层都会增加网络灵活性,因此它可以逼近更复杂的目标函数。另一方面,它需要更多的训练计算,但是使用1x1 convolution trick来保存计算是很常见的。 您的网络需要多大的灵活性?很大程度上取决于数据,但通常2-3层对于大多数应用程序而言足够灵活,而其他层不会影响性能。没有比交叉验证各种深度模型更好的策略了。 (图片来自this blog-post)
这是一个已知问题,我想在此提及一种处理过于激进的下采样的特定技术:Fractional Pooling。我们的想法是为图层中的不同神经元应用不同大小的感受域,以便以任何比例缩小图像:90%,75%,66%等。
这是制作更深层网络的方法之一,特别是对于像MNIST数字这样的小图像,它表现出非常好的准确性(0.32%的测试误差)。