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

时间:2017-08-07 03:21:37

标签: machine-learning neural-network conv-neural-network image-recognition

我正在家里使用张量流来玩卷积神经网络(顺便说一句,我已经完成了udacity深度学习课程,所以我有理论基础)。 当运行卷积时,补丁的大小会有什么影响?当图像更大/更小时,这种尺寸是否必须改变?

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

但是现在我想说我想玩大于那个的图像(例如100x100),我应该让我的补丁更大吗?我保持3x3吗?此外,制作补丁真的很大的影响是什么? (说50x50)。

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

所以问题应归纳为

  1. 当我的输入图像更大/更小时,我应该增加/减少补丁的大小吗?
  2. 增加/减少路径尺寸会对性能/过度拟合产生什么影响?

2 个答案:

答案 0 :(得分:3)

如果你没有使用填充,较大的内核会使下一层神经元的数量变小。

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

更大内核的影响:

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

答案:

  1. 这取决于图像,如果您需要图像中的大量细节,则不需要增加内核大小。如果您的图像是一个1000x1000像素的大型MNIST图像,我将增加内核大小。
  2. 较小的内核会给你很多细节,它可能会导致你过度拟合,但是更大的内核会让你失去很多细节,它会导致你不合适。您应该调整模型以找到最佳尺寸。有时,应考虑时间和机器规格
  3. 如果你正在使用填充,你可以进行调整,这样卷积后的结果神经元就会一样。我不能说它比不使用填充更好,但是比使用更小的内核仍然会丢失更多的细节

答案 1 :(得分:0)

这更多地取决于要检测的对象的大小,或者换句话说,取决于要具有的接收场的大小。尽管如此,选择内核大小始终是一个具有挑战性的决定。这就是创建使用不同内核大小(1x1、3x3、5x5)的Inception模型的原因。该模型的创建者也进行了更深入的研究,尝试将卷积层分解为较小的补丁大小,同时保持相同的接收场以加快训练速度(例如,将5x5分解为两个3x3,3x3分解为3x1和1x3)创建不同版本的初始模型。

您也可以查看Inception V2纸以了解更多详细信息,https://arxiv.org/abs/1512.00567