Machine learning 补丁/内核的大小如何影响convnet的结果?

Machine learning 补丁/内核的大小如何影响convnet的结果?,machine-learning,neural-network,conv-neural-network,image-recognition,Machine Learning,Neural Network,Conv Neural Network,Image Recognition,我在家里用tensorflow玩卷积神经网络(顺便说一句,我已经完成了udacity深度学习课程,所以我有理论基础)运行卷积时,修补程序的大小有什么影响?当图像变大/变小时,这样的大小必须改变吗? 我做的一个练习涉及到CIFAR-10图像数据库(32x32像素),然后我使用了3x3的卷积(填充为1),得到了不错的结果 但是假设现在我想玩比这更大的图像(比如100x100),我应该把补丁做得更大吗?我要留3x3吗?此外,让补丁变得真正大会有什么影响?(比如说50x50) 通常我会直接在家里测试,但

我在家里用tensorflow玩卷积神经网络(顺便说一句,我已经完成了udacity深度学习课程,所以我有理论基础)运行卷积时,修补程序的大小有什么影响?当图像变大/变小时,这样的大小必须改变吗?

我做的一个练习涉及到CIFAR-10图像数据库(32x32像素),然后我使用了3x3的卷积(填充为1),得到了不错的结果

但是假设现在我想玩比这更大的图像(比如100x100),我应该把补丁做得更大吗?我要留3x3吗?此外,让补丁变得真正大会有什么影响?(比如说50x50)

通常我会直接在家里测试,但在我的电脑上运行有点慢(没有nvidia GPU!)

因此,这个问题应该概括为

  • 当我的输入图像较大/较小时,我是否应该增大/减小补丁的大小
  • 增加/减少路径大小对性能/过度拟合有何影响?

  • 如果不使用填充,内核越大,下一层的神经元数量就会越少

    示例:大小为1x1的内核为下一层提供相同数量的神经元;大小为NxN的内核在下一层只提供一个神经元

    较大内核的影响:

    • 计算时间更快,内存使用量更小
    • 损失了很多细节。想象一下NxN输入神经元,内核大小也是NxN,那么下一层只给你一个神经元。丢失很多细节可能会导致不合身
    答案是:

  • 这取决于图像,如果需要图像中的大量细节,则不需要增加内核大小。如果您的图像是一个1000x1000像素的MNIST图像大版本,我会增加内核大小
  • 较小的内核会给你很多细节,它会导致你过度拟合,但较大的内核会让你丢失很多细节,它会导致你不拟合。您应该调整模型以找到最佳尺寸。有时,应考虑时间和机器规格

  • 如果使用填充,可以进行调整,使卷积后的结果相同。我不能说它会比不使用填充更好,但与使用较小的内核相比,会丢失更多的细节。这更多地取决于您想要检测的对象的大小,或者换句话说,取决于您想要的接收区域的大小。然而,选择内核大小始终是一个具有挑战性的决定。这就是为什么创建了使用不同内核大小(1x1、3x3、5x5)的Inception模型。该模型的创造者也更深入地尝试将卷积层分解为更小的斑块,同时保持相同的感受野,以加快训练(例如,5x5分解为两个3x3,3x3分解为3x1和1x3),创建不同版本的初始模型

    您还可以查看Inception V2论文以了解更多详细信息