如何在机器学习中处理(标记和处理)边缘案例输入?

人工智能 计算机视觉 分类 数据集 物体检测 约洛
2021-11-12 19:03:09

在每个计算机视觉项目中,我都在为边境案例的标签指南而苦苦挣扎。基准数据集没有这个问题,因为它们是“清理过的”,但在现实生活中,不确定的情况通常构成了大部分数据。

猫尾巴的15%是猫吗?猫的非常模糊的图像仍然是猫吗?马有 4 条腿,但框架的其余部分仍然是马吗?

学习回归问题而不是分类会更容易还是更难?即采用 5 个类置信度子类(0.2,0.4,0.6,0.8,1.)并将它们用作软目标?

还是从训练或/和测试集中删除每个不确定的案例更好?

我尝试了很多不同的选项,但无法得出任何明确的结论。这个问题太常见了,我想知道它是否已经被某人永久解决了?

1个回答

不幸的是,这里的答案是“视情况而定”。人们对这个问题采取了不同的方法,我将在这里描述一些。然而,这些都不是“正确”的答案。

标签

在生成基准数据集时,我们确实遇到了这个问题。老实说,大多数时候标记是为了人类的最佳能力。有时模棱两可或困难的情况会被分离出来并清理干净,但通常会给贴标者一套具体的指导方针来判断某物是否是猫。在人类不确定的情况下,通常,该数据被丢弃或移至“困难”堆。不幸的是,在许多公共数据集中,这个困难的堆大部分都不是公开的。但是,如果您查看大多数公共数据集,即使经过大量清理,这些情况也存在。

贝叶斯深度学习

我见过的一个常见主题是人们在他们的模型中添加了适当的概率不确定性。这与对象检测网络末端的 softmax 输出不同。softmax 的输出只是一些数字[0,1]表示模型内分类的回归输出。例如,在 SSD 中,softmax 只是特定锚框的分类。没有与之相关的真正“确定性”信息。在大多数独立模型中(并且没有一些非常硬的假设),它没有任何严格的概率含义。

那么我们如何添加概率呢?我们怎么能说“这张图片有 80% 的可能性是猫?”论文“我们在贝叶斯深度学习中需要哪些不确定性来实现计算机视觉?在看待这个问题方面做得很好。

基本上他们所做的是建立贝叶斯模型来打破他们的模型明确输出两种类型的不确定性。

任意不确定性 捕获观察中固有的噪声。另一方面,认知不确定性解释了模型中的不确定性——如果有足够的数据,不确定性可以被解释掉。

您可以阅读本文以更好地了解正在发生的事情,但基本上,它们适合模型以回归与模型相关的不确定性以及与数据相关的不确定性。

零样本学习

如果您有一个非常明确的对象,但您以前从未见过它,那该怎么办?假设您见过一群马,但从未见过斑马。作为一个人类,你会看着它一段时间,基本上只是假设它是一匹有黑白条纹的马。有一个完整的机器学习领域致力于这个主题。我个人不是这方面的专家,但如果你有兴趣,网上有很多资源

实用笔记

在工业中,我们通常会尽可能地尝试确定问题的范围,这样我们就不必过多地处理这个问题。现在,有时这显然是不可避免的。我所看到的,如果一个物体不能清楚地检测到,那么算法可能会退回到只是说那里有“东西”。考虑自动驾驶汽车的情况。检测道路上是否有行人很好,但如果您不知道某物是否是行人,那么知道道路上有什么东西仍然很有用。为此,您可以回退到无监督方法来帮助区分对象。从标签的角度来看,您可以为此目的想象一个对象本体。在这个本体的根节点上,“something in the road”并分支到“car”,“