在 CNN 中寻找特征重要性?

数据挖掘 深度学习 美国有线电视新闻网 特征选择 卷积神经网络 特征
2022-03-10 20:29:44

假设我有汽车的图像。对于数据集中的每张图片,我假设 3 张图片是同一辆车,但角度不同。

1)第一张图片是汽车的正面图片。2)第二张图片是那辆车从任一侧面看的照片。3) 第三张图片是那辆汽车的背面照片。

如果我有 1000 辆汽车,我将有 3000 张图像作为我的数据集。有没有办法找出汽车的哪个角度最能代表它的标签?换句话说,汽车图像的哪个角度最有助于确定特定图像是否是汽车?

我的想法是建立一个随机猜测模型来确定我们损失的下限,然后迭代地使用图像的每个角度作为训练,并在同一角度上进行预测并得出损失分数。例如:首先我用角度 1 的所有图像进行训练和预测,并得出一个损失分数。所以如果我有 3 个角度的图像,我最终会得到 3 个损失值。因此,损失分数最低的角度被确定为获胜者。但问题是,我不确定这种方法是否正确,因为如果我在数据集中有多个类,那么与任何其他非主导类相比,主导类的损失会更低,而且我们不会使用整个任何时间点的数据,因此最终可能会得出错误的结论。

感谢您提前回复。这个问题已经在我脑海中萦绕了很久。

2个回答

如果您只在一个角度训练分类器,您将过度拟合到该特定位置 - 它无法从不同角度识别同一辆车。我猜它可能会学到一些东西,你可以通过从其他两个角度测试看不见的图像来测试泛化。因此,单独训练每组并单独测试所有 3 组,并注意训练与测试的常见注意事项。

然而,更好的方法是对所有数据进行训练。网络将自动学习什么是最有效的,然后您可以查看 3 个测试集的每一个的结果,看看哪个给出了最好的结果。我猜这是一个示例问题,因此更一般地,对分类器失败的原因进行统计分析是有意义的。如果您可以确定哪些特征使分类变得困难,您就可以更加努力地创建一个可以改进模型的训练策略。主要目标是制作一个通用的模型。我怀疑使用其他角度的额外信息进行培训只会提高所有案例的有效性。

根据您的问题,我不确定您的动机是什么,但是如果您只是想找出从不同视角捕获的对象数据集上的给定类标签最具有代表性的视觉特征,我建议您执行以下操作方法:

  • 在训练过程中,使用所有不同角度的图片,将它们打乱,然后训练你的 CNN。
  • 然后,取测试数据集并测量准确性作为整体基准。
  • 第二步,根据视角划分数据,并测量先前训练的模型在每个视角上的准确性。
  • 现在,选择您获得最高准确度的角度,并选择一些已正确分类的图像。用显着图分析这些图像
  • 随后,从准确度最低的角度拍摄一些错误分类的图像,并以相同的方式对其进行分析。

从显着性图中,您将更深入地了解哪些视觉特征导致您训练的 CNN 预测某个标签。