4

假设我们有一个包含 3 个类的多类分类任务

{芝士蛋糕、冰淇淋、苹果派}

鉴于我们有一个训练有素的神经网络,可以对随机厨师更喜欢的三种甜点中的哪一种进行分类。另外,假设输出层由 3 个激活了 softmax 的神经元组成,每个神经元代表喜欢相应甜点的概率

例如,这种网络的可能输出可能是:

输出(chef_1) = { P(芝士蛋糕) = 0.3; P(冰淇淋)= 0.1;P(苹果派) = 0.6; }

输出(chef_2) = { P(芝士蛋糕) = 0.2; P(冰淇淋)= 0.1;P(苹果派) = 0.7; }

输出(厨师_3)= { P(芝士蛋糕)= 0.1;P(冰淇淋)= 0.1;P(苹果派) = 0.8; }

在这种情况下,所有实例(chef_1、chef_2 和 chef_3)都可能更喜欢 Apple Pie,但信心不同(例如,chef_3 比 chef_1 更喜欢 Apple Pie,因为网络概率输出分别为 0.8 和 0.6)

假设我们有一个包含 1000 位厨师的新数据集,并且我们想要计算他们最喜欢的甜点的分布,我们只需对 1000 位厨师中的每一位进行分类,并根据最大概率的神经元确定他最喜欢的甜点。

我们还希望通过丢弃最大预测概率低于 0.6 的厨师来提高预测准确性。让我们假设 1000 人中有 200 人以这样的概率被预测,我们将它们丢弃。

在这种情况下,如果一种甜点比另一种更容易预测,我们可能会偏向 800 位厨师(预测的概率高于 0.6)的分布。

例如,如果类的平均预测概率是:

平均P(芝士蛋糕)= 0.9

平均 P(冰淇淋)= 0.5

平均P(苹果派)= 0.8

并且我们丢弃了预测概率低于 0.6 的厨师,在被丢弃的 200 位厨师中,可能有更多的厨师更喜欢冰淇淋,这将导致其他 800 位厨师的分布有偏差。

在这个很长的介绍之后(我很高兴你还在阅读),我的问题是:

  1. 我们是否需要为每个班级设置不同的阈值?(例如,在 Cheesecake 预测中丢弃概率低于 X 的实例,在 Ice Cream 预测中丢弃概率低于 Y 的实例,以及在 Apple Pie 预测中丢弃概率低于 Z 的实例)。

  2. 如果是,我如何在不影响我的 1000 个厨师数据集的整体分布的情况下校准阈值(即丢弃低概率预测以提高准确性,同时保留原始数据集的分布)。

我尝试使用每个类别的平均预测概率作为阈值,但我不能保证它不会影响分布(因为这些阈值可能会过度拟合测试集而不是 1000 名厨师数据集)。

有什么建议或相关论文吗?

4

1 回答 1

0

我有一个类似的多标签问题。我已经将每个班级的 F1 分数绘制到阈值上,以查看每个班级的最大 F1 分数在哪里。每个班级都不一样。对于某些人来说,精确率与召回率在阈值 > 0.8 时更高,而对于某些人来说,我甚至低至 0.4。我选择了不同的阈值来将类称为类。但我想如果你不想让一个类偏向于高精度或高召回率,你可以根据测试集选择不同的阈值(你可以优化测试集集合)

于 2018-02-25T06:36:39.833 回答