TensorFlow中如何获取模型置信度 实现CNN未知类图像判定
问题概述
基于预训练模型在包含3个类别的自定义蛇类数据集上完成CNN分类模型训练,输出层采用softmax激活函数,在测试集上取得了91%的准确率,但目前存在核心能力缺口:需要模型可以输出「无法识别图像内容」的判定,解决两类实际落地问题:
- 降低模型对模糊输入的误分类概率
- 实现无匹配类别的图像识别:应用场景为蛇类图像检索,需要模型可以准确判定输入图像中不存在蛇的情况
现存的输出异常问题
当前模型的softmax输出存在明显的分布错位,完全无法区分已知类和未知类输入:
- 第一幅输入图像实际属于第二类别,模型判断结果正确,输出向量为
[[0.05 0.89 0.05]] - 第二幅输入图像实际不属于任何已训练的已知类别,模型却给出了几乎完全一致的高置信度判断,输出向量为
[[0.05 0.89 0.05]]
当前模型对已知类别的分类能力本身无明显缺陷,但所有输入的最高输出置信度始终集中在0.85-0.89区间,完全无法区分未知类别图像,既达不到输出更贴近真实概率的预期效果,也无法实现“无匹配判定”的能力要求。
待验证的实现思路
最初考虑的落地方案是在原输出层新增「图像无蛇」的分类节点,但认为该实现方式较为粗糙、泛化能力不足。核心疑问为:上述无法识别未知类的痛点,是否可以通过目标检测(Detection)、语义分割(Segmentation)类技术路线来解决?
内容的提问来源于stack exchange,提问作者Argo
相关产品推荐
相关产品推荐

