【发布时间】:2020-09-30 23:56:33
【问题描述】:
我正在使用 keras 库训练一个包含五个类的 cnn 模型。使用 model.predict 函数我得到类的预测百分比。我的问题是对于不属于这些类并且完全不相关的图像,预测类仍然根据类预测百分比。
如何预防?我如何识别它是无关紧要的?
【问题讨论】:
标签: tensorflow keras conv-neural-network
我正在使用 keras 库训练一个包含五个类的 cnn 模型。使用 model.predict 函数我得到类的预测百分比。我的问题是对于不属于这些类并且完全不相关的图像,预测类仍然根据类预测百分比。
如何预防?我如何识别它是无关紧要的?
【问题讨论】:
标签: tensorflow keras conv-neural-network
我假设您在最后一层使用 softmax 激活来生成每个类的概率。根据定义,softmax 激活的输出之和必须加起来为 1。因此,在您当前的设置下,神经网络不可能说图像不属于您的任何类别。
有两种方法可以解决这个问题:
添加另一个代表“其他”或“未知”对象的类(因此您有 6 个类)。
将另一个输出添加到您的神经网络(或训练一个完全独立的神经网络),对图像是否属于 5 个类别之一进行二元分类。这样,如果您的辅助输出表明图像不在 5 类中,您可以忽略 softmax 输出。
在这两种情况下,您都需要使用不属于您的 5 个类别的图像来扩充您的数据集。
【讨论】: