何时在卷积层之间插入汇集层

时间:2017-11-06 02:12:49

标签: machine-learning neural-network deep-learning conv-neural-network

通常我们会在卷积层之间插入最大池数。主要思想是总结"转发中的功能。层。但是很难决定何时插入。我背后有一些问题:

  1. 如何决定转发多少。图层,直到我们插入最大池。什么是太多/少数转化的影响。层

  2. 因为max-pooling会减小尺寸。因此,如果我们想要使用非常深的网络,我们不能做很多maxpooling否则大小太小。例如,MNIST只有28x28输入,但我确实看到有些人使用非常深的网络来试验它,所以它们最终可能会有非常小的尺寸?实际上,当尺寸太小(极端情况,1x1)时,它的'就像一个完全连接的层,似乎对它们进行卷积没有任何意义。

  3. 我知道没有黄金角色,但我只是想了解这背后的基本直觉,以便我在实施网络时做出合理的选择

1 个答案:

答案 0 :(得分:0)

  1. 你是对的,没有一种最好的方法可以做到这一点,就像没有一个最佳的过滤器大小或一般的最佳神经网络架构一样。

    VGG-16在汇集层之间使用2-3个卷积层(下图),VGG-19最多使用4层,...

    vgg-16

    ..并且GoogleNet在两者之间应用了令人难以置信的卷积(图片打击),有时与最大化层次并行

    google-net

    显然,每个新层都会增加网络灵活性,因此它可以逼近更复杂的目标函数。另一方面,它需要更多的训练计算,但是使用1x1 convolution trick来保存计算是很常见的。 您的网络需要多大的灵活性?很大程度上取决于数据,但通常2-3层对于大多数应用程序而言足够灵活,而其他层不会影响性能。没有比交叉验证各种深度模型更好的策略了。 (图片来自this blog-post

  2. 这是一个已知问题,我想在此提及一种处理过于激进的下采样的特定技术:Fractional Pooling。我们的想法是为图层中的不同神经元应用不同大小的感受域,以便以任何比例缩小图像:90%,75%,66%等。

    fmp

    这是制作更深层网络的方法之一,特别是对于像MNIST数字这样的小图像,它表现出非常好的准确性(0.32%的测试误差)。