为什么(MNIST 训练的)模型不擅长不在图片中心的数字

Why (MNIST trained) model is not good at digits which not in the center of the picture

关于问题

我的 CNN 模型在 MNIST 数据集上的准确率高达 99.4%。所以我尝试了一些不规则的输入。并且预测的结果不正确。

以下是我使用的一些不规则输入法

众所周知,CNN卷积会扫描整幅图像,也不关心关键特征在图像的哪些区域。

为什么CNN无法处理不规则输入

As we know, CNN convolution will scan the whole image, also don't care about the key features in which areas of the image.

这完全是错误的。 CNN不做"scan"图像,单个filter可以看成是扫描,但全网不做。 CNN由许多层组成,最终会减少信息量,并且在某些时候还会使用特定于位置的特征(在最终的全连接层中,在一些全局平均等中)。因此,虽然 CNN 对 扰动(平移或噪声,但不是旋转!)具有鲁棒性,但它们对这些变换并非 不变 。换句话说 - 将图像向左移动 3 个像素是可以的,但是尝试将一个数字分类为完全不同的 scale/position 将会失败,因为没有任何东西强制你的模型对此保持不变。 Spatial Transformers Networks 确实学习了这些不变性的一些模型,但 CNN 根本就没有。