数据集中所有图像中特定对象的存在是否会影响 CNN 的性能

Does the presence of an particular object in all the images of data set affect a CNN's performance

上下文:我的数据集中有不同类型车辆尺寸视图的部分图像(部分图像是因为我的相机镜头视野有限)。这些局部图像覆盖了车辆的一半以上,可以被认为是车辆的良好代表性图像。车辆类别为轿车、公共汽车、卡车。我总是在这些图像中得到一个车轮,因为我在一天的不同时间拍摄这些图像,所以车轮的颜色强度在一天中会发生变化。然而,所有图像中肯定都存在一个轮子。

问题:我想知道在逻辑上对分类无用的数据集的所有图像中存在一个对象是否会以任何方式影响 CNN。基本上我想知道在训练 CNN 之前我应该​​屏蔽对象,即在所有图像中将其涂黑还是让它在那里。

CNN 将图像分层分解为各种可区分模式的组合。这些模式是在训练过程中学习的,以找到能够很好地将 classes 分开的模式。

如果每个图像中都存在一个对象,则很可能不需要分离 classes 并且不会被学习。如果依赖 class 的对象有一些变化,那么可能会使用它。事先很难知道哪些功能很重要。也许公共汽车的轮子比其他汽车更闪亮,这是你没有注意到的,因此图像中有轮子是有益的。

如果您无意中引入了一些 class 特定变体,这可能会给以后的 class 化带来问题。例如,如果您只在晚上拍摄公共汽车的照片,网络可能会学习 night = bus 而当您向它展示白天的公共汽车照片时,它不会 class 正确识别。

但是,在网络中使用 dropout 会强制它学习多个特征以进行 class化,而不仅仅是依赖一个特征。所以如果有变化,这可能不会有那么大的影响。

我会在不删掉任何内容的情况下使用这些图像。除非它是一些简单的事情,例如去除背景粒子等,否则找到对象并将其涂黑会增加另一层复杂性。您可以通过在正常图像上训练网络来测试轮子是否有很大的不同,然后 class 验证一些带有黑色对象的训练示例并查看 class 概率是否改变。

把你的精力集中在做好数据扩充上,那是你获得最大收益的地方。

您可以查看在 MNIST in this paper 上学习了哪些特征的示例。