在给定的链接中,遮挡敏感度和预测的类映射是如何工作的?

2024-06-14 11:42:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在研究CIFAR-10数据集,试图了解模型如何预测图像(即人工智能的可解释性和解释性)。其中一种方法是使用遮挡敏感度。我在这个代码上找到了。我使用相同的代码(但3个频道)。我发现很难理解上面链接中的热图。我了解咬合敏感度的定义。这很简单。基本上,这个想法是通过覆盖一个矩形的灰色区域来遮挡图像中的物体,然后测试人工智能是否能够检测到目标。在链接中,我有三个问题:

  1. print('Predicted class: {} (prob: {})'.format(np.argmax(pred), np.amax(out)))
    

在上述代码中np.amax公司(out)用于概率,但由于变量“out”在循环中,np.amax公司(out)将返回for循环的上一次迭代的最大值,该循环可能预测到或可能没有预测到所需的类。不应该用np.amax公司(预测)?例如:如果正确的类是2,而最后一次迭代预测的是类5,np.amax公司(out)将返回第5类而不是第2类的概率。还是我的理解错了?在

  1. 链接中提到了这一点

    heatmap (low value = important field) and predicted-class map
    

现在,我了解到当灰色斑块覆盖了图像中的重要信息时,热图显示的阴影较暗,这意味着图像的这一部分在被遮挡时会大大降低模型预测的类(如果模型具有高精度,则为正确类)的概率。但是我不理解预测的类映射。在这些领域,其他课程是如何预测的?当在15-20之间有一个补丁(在y轴上),2级的概率会降低,但是神经网络是如何预测8级和9级的呢?

  1. 现在,我对遮挡敏感度有冲突:

    • 当图像被灰色斑块遮挡时,当该图像被赋予模型时,模型会看到除灰色斑块区域以外的整个图像,并根据所看到的内容给出预测(这是我认为的,但当我查看预测类映射时,这没有意义)
    • 当图像被灰色斑块遮挡时,当这个图像给模型时,模型只看到灰色斑块区域下的图像,并根据它在灰色斑块区域中看到的情况给出预测(这对我来说没有意义,但是有了这个,我可以解释预测的类映射)

以上哪项是正确的?在

我正在使用CIFAR-10数据集(即Class 8)中的船舶图像

Ship image

被遮挡的图像是

Occluded image in Montage

输出包括:

Correct class: [8]
Predicted class: 8 (prob: 0.9992953538894653) #Here I have replaced np.amax(out) with np.amax(pred) (Doubt 1)
Predictions:
Class id 8: Count 8
Class id 0: Count 37
Class id 3: Count 2
Class id 1: Count 13
Class id 2: Count 4

热图和预测类映射

heat map and the predicted class-map

如您所见,模型预测0类(当被遮挡时)最多(计数为37),但模型预测的是8类(当没有被遮挡时,即当整个图像被提供给模型时)。为什么?在

还有,什么样的形象更适合培养模特?灰度图像或彩色(3通道:RGB)图像

如果有人能帮助我理解预测的类映射,或者为我提供一个好的链接,那就太完美了!

注意:以下链接已经被引用:

  1. sicara.ai/blog
  2. silverpond.com.au
  3. Mathwork

不幸的是,我并没有得到核心的敏感度。我有直觉(我猜)

非常感谢!在


Tags: 模型图像id区域链接countnp公司