如何让模型对tensorflow充满信心?

hc8w905p  于 2021-07-14  发布在  Java
关注(0)|答案(1)|浏览(274)

我把预先训练好的模型用3个类和softmax激活作为输出层的自定义数据集进行训练。我的测试集有91%的准确率,但问题是。我希望我的cnn能够说“我不知道图像上有什么”。这将有助于解决两个问题:
误分类
没有任何类的图像。我在图像上搜索蛇,希望能够说图像上没有蛇
我用softmax得到了奇怪的结果:

[[0.05 0.89 0.05]]
[[0.05 0.89 0.05]]

第一个图像是第二类的,所以模型是正确的,但第二个图像并没有已知的类,但模型非常确定有。我怎样才能得到更接近真实概率的东西?而且model在分类方面也不错,它总是得到0.85-0.89这样的值
我的第一个想法是添加另一个类,在图像上没有蛇。但这是一个相当肮脏的解决方案。检测/分割在这里有帮助吗?

20jt8wwn

20jt8wwn1#

文献中众所周知,大多数CNN没有输出经过良好校准的概率:换句话说,softmax的“概率”输出通常与正确的真实可能性没有很好的相关性。例如,参见郭等人关于现代神经网络校准的文章,了解有关该问题的一些背景。
最近人们对贝叶斯深度学习技术产生了兴趣,它可以对认知的不确定性(即模型本身的不确定性)进行建模,并且有很多有趣的论文可以阅读,例如kendall和gal的《计算机视觉贝叶斯深度学习中我们需要什么不确定性(还有一些来自肯德尔的幻灯片,这里读起来比较轻松)。
你可以试试郭等人的温度标度技术,这似乎在一定程度上改善了预测。

相关问题