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

背景:我的数据集中包含不同类型车辆的部分图像(由于相机镜头的视野有限)。这些部分图像覆盖了车辆的一半以上,可以作为车辆的良好代表图像。车辆类别包括轿车、公交车和卡车。在这些图像中,我总是能看到车辆的轮子,由于这些图像是在一天的不同时间段拍摄的,轮子的颜色强度在一天中有所变化。然而,所有的图像中都肯定有一个轮子存在。

问题:我想知道如果数据集中所有图像中都存在一个对分类逻辑上无用的对象,是否会对CNN产生任何影响。基本上,我想在训练CNN之前知道我是否应该遮盖这个对象,即在所有图像中将其变黑,还是就让它存在。


回答:

CNN会将图像分解成各种具有区分性的模式组合,并创建一个层次结构。这些模式是在训练过程中学习的,以找到能够很好地区分类别的模式。

如果一个对象出现在每张图像中,很可能它不是区分类别所必需的,因此不会被学习。如果这个对象的某些变化与类别相关,那么它可能会被使用。事先很难知道哪些特征是重要的。也许公交车的轮子比其他车辆更亮,这是你没有注意到的,因此在图像中保留轮子是有益的。

如果你无意中引入了某些特定于类别的变化,这可能会对后续的分类造成问题。例如,如果你只在晚上拍摄公交车的照片,网络可能会学习到夜晚 = 公交车,当你展示白天的公交车照片时,它就无法正确分类了。

然而,在网络中使用dropout会迫使它学习多个用于分类的特征,而不仅仅依赖一个特征。因此,如果存在变化,这可能不会产生太大的影响。

我建议使用未做任何遮盖处理的图像。除非是像去除背景颗粒等简单操作,找到并遮盖对象会增加另一层复杂性。你可以通过在正常图像上训练网络,然后对一些训练样本进行对象遮盖,并查看类别概率是否发生变化,来测试轮子是否有很大影响。

将你的精力集中在做好数据增强上,这是你能获得最大收益的地方。

你可以在MNIST上看到学习到的特征示例,在这篇论文中有介绍。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注