每个实例有许多图像的分类问题

数据挖掘 机器学习 美国有线电视新闻网 计算机视觉
2021-10-01 02:23:27

我正在处理以下类型的分类问题:我必须使用实例的许多图像将每个实例分类为 A 类或 B 类。也就是说,每个训练实例都不是一张图像(这是图像分类中常见的事情),而是很多图像,并且每个训练实例的图像数量不是固定的。也就是说,实例 1 可以有 3 张图像,根据这些图像我们必须将其分类为 A 或 B,而实例 2 可以有 5 张图像。

与任何机器学习问题一样,我得到了许多标记的图像,我必须构建一个分类器。

尽管也欢迎提出想法,但我正在寻找一种记录在案的方法来解决这类问题(主要是 Kaggles、论文或书籍)。

我的主要想法如下:训练模型f 给定一张图像给出该图像属于 A 类的概率。然后,对于每个训练实例,评估 f在实例的每个图像中,并计算这些概率分布的统计数据(聚合),作为平均值、中值、最大值和最小值。然后,训练一个模型g 将这些聚合作为输入并使用 f,聚合和 g作为最终模型。这个想法有点简单,所以我正在寻找更好的东西。

4个回答

这可能是一个 hack,但是,您是否考虑过重复一些图像以使每个实例都包含固定数量的图像?假设您有图像 A、B、C、D、E、F、G、H 和 I。您的数据集可能如下所示:

  • 甲,乙
  • C
  • D、E、F
  • G
  • 你好

制作一个函数,该函数将在实例中随机选择一个图像,然后将其用作占位符。从我们的示例中,我们现在将数据集修改为:

  • 甲,乙,甲
  • C, C, C
  • D、E、F
  • G, G, G
  • 哈,我,我

然后,从这里,您可以使用具有 3 个输入的卷积神经网络。这是具有多个输入的 CNN 示例:用于花卉分级的多输入卷积神经网络- 以不同角度拍摄的相同花朵的图像。

此外,您可以打乱每个实例中的图像以生成更多训练样本。

我假设每个实例都是酒店或旅馆以及两者的分组数据。我认为本文讨论了您的问题,提供了不同框架之间的解决方案和比较。

我们可以使用实例中所有观察值的分布来表征组,而不是表征单个图片。我们可以假设旅馆和酒店的图片都是从参数化分布中提取的。主要思想建议训练每张图像以计算属于某个类别的概率。当您计算单个概率时,将这些概率聚合到一个组中会导致更高的错误分类率。此方法利用实例中的额外信息。例如,如果这些实例是一个区域的不同邻域,并且所有图片都来自不同的邻域,那么预测实例的类别变得更加困难,但是使用 DBA,网络还可以特别了解这些邻域。

因此,在发生此类问题时,可以采用的一种方法是将一个子类中的所有图像一个接一个地堆叠起来,以形成高维图片并用空白张量填充其余空间。

可以说,我们有 A、B、C、D、E、F、G、H、I、J 图像分散如下:

酒店1:A、B、C
酒店2:D、E、F、G、H
酒店3:I、J

在这里,我将简单地将每个子类(如通道)中的每个图像堆叠成一个形状为(number_of_subclass, maximum_images_subclass)的向量,以获得仅(height, width, channels)上的更高维度图像。

旅馆1:A、B、C、0、0
旅馆2:D、E、F、G、H
旅馆3:I、J、0、0、0

所以得到的向量将是形状(number_of_subclass, maximum_images_subclass, height, width, channels)

现在获得的张量可以很容易地根据需要输入到模型中。

使用逻辑回归。它解释了图像标注的不确定性;新图像将被分类为 A 或 B,并具有与之相关的概率。