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

标签 machine-learning neural-network computer-vision conv-neural-network

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

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

最佳答案

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

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

如果您无意中引入了一些特定于类的变异,这可能会导致以后的分类出现问题。例如,如果您只在夜间拍摄公共(public)汽车的照片,网络可能会学习夜间 = 公共(public)汽车,并且当您向其展示白天公共(public)汽车的照片时,它不会正确分类。

然而,在网络中使用 dropout 会迫使它学习多种特征来进行分类,而不仅仅是依赖一种特征。因此,如果存在变化,可能不会产生那么大的影响。

我会使用这些图像而不删除任何内容。除非是简单的事情,例如去除粒子的背景等,否则查找并遮蔽对象会增加另一层复杂性。您可以通过在正常图像上训练网络来测试轮子是否会产生很大的差异,然后对一些物体变黑的训练示例进行分类,并查看类概率是否发生变化。

将精力集中在做好数据增强上,这才是您获得最大 yield 的地方。

您可以看到在 MNIST in this paper 上学习哪些特征的示例.

关于machine-learning - 数据集中所有图像中特定对象的存在是否会影响 CNN 的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50247675/

相关文章:

tensorflow - 神经网络高置信度不准确预测

machine-learning - Keras:ValueError:没有为 "input_1"提供数据。需要每个键的数据

algorithm - opencv 用于查找轮廓的算法是什么?

machine-learning - 我可以使用特征向量值作为机器学习模型的列权重吗?

artificial-intelligence - 人工智能和机器学习中的随机性

python - 在 Sklearn Pipeline 中将 VotingClassifier 与其他分类器一起使用

python - 验证准确性没有提高

python - 如何在 keras 中实现自定义指标?

matlab - 使用 MATLAB 对基于相机的图像进行 OMR

machine-learning - 微调VGG最后一层非常慢