【问题标题】:What does it mean when my CNN has zero false negatives?当我的 CNN 的误报为零时,这意味着什么?
【发布时间】:2021-03-31 09:11:42
【问题描述】:

我正在使用卷积神经网络对具有二进制标签(0 或 1)的图像数据集进行分类。在训练网络时,每个 epoch 最终都有零假阴性,这是否意味着我的网络只是将所有内容分类为 1,甚至不费心去匹配 0? 如果是这样,我该如何对抗?数据集是不均匀的,但有更多的 0。对于训练集,0:1 的比例约为 8000:5000,而对于验证集,比例为 700:500。

【问题讨论】:

  • "当我的 CNN 的误报为零时,这意味着什么?" 我认为这意味着您做得很好。现在您可以检查数据集中的每个项目,看看它是否准确。
  • 可能是。有多少误报?
  • 是的,就是这样,有很多误报(数千个)。准确率约为 40 %。

标签: tensorflow keras conv-neural-network false-positive


【解决方案1】:

假阴性为零听起来很可疑。你的准确率是多少?混淆矩阵是什么样子的?无论如何,我建议为不平衡的训练数据引入类权重

【讨论】:

  • 准确率只有40%左右,误报很多。感谢您对班级权重的建议,这是个好主意。
  • 好的,我认为那是有问题的。图片有多大?您使用什么激活函数进行分类?哪个损失?您的网络架构是什么样的?我想我们只有知道这些事情才能帮助你......
  • 看起来是这样,是的。图像都被调整为 320x320(我使用来自数据帧的流生成它们),批量大小为 64,我使用二进制交叉熵作为损失函数,使用 softmax 作为激活函数,架构是 VGG(所有它的层是可训练的=false),然后它的输出被展平,通过 3 个连续的 Dense(128) 层,然后是 Dense(1) 输出层。这些添加的是可训练的
  • 听起来还不错,但为什么不让 CNN 层可训练呢?
  • 我想如果我使用的是预训练的 VGG 模型,那么我只需要训练我之后添加的位。也许这在概念上并不正确,这是我第一次接触迁移学习。你认为我应该让所有层都训练,或者只是后面的一些 VGG 层加上我自己的层?虽然,我已经尝试过了,仍然有零假阴性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-08
  • 1970-01-01
  • 2013-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多