什么是验证损失单位Keras/Tensorflow?

什么是验证损失单位Keras/Tensorflow?,tensorflow,machine-learning,keras,Tensorflow,Machine Learning,Keras,引言–问题很简单,我是该领域的新手,在StackOverFlow上找不到令人满意的答案 问题本身—— 准确度单位显然是百分比(%),但损失和验证损失单位是什么?它们与准确性的关系如何?我如何使用它们?他们通常的基准目标是什么? 问题是HTR/OCR字符分类 例如,这是第16个型号的损耗0.07和val损耗0.09,它们的真正含义是什么 主要区别在于,由于损失函数不同,如@Matias Valdenegro所述,它们没有单位,不同损失函数的相同值与其他损失函数相比,会产生更好/更差的模型/结果(由

引言–问题很简单,我是该领域的新手,在StackOverFlow上找不到令人满意的答案

问题本身—— 准确度单位显然是百分比(%),但损失和验证损失单位是什么?它们与准确性的关系如何?我如何使用它们?他们通常的基准目标是什么? 问题是HTR/OCR字符分类

例如,这是第16个型号的损耗0.07和val损耗0.09,它们的真正含义是什么


主要区别在于,由于损失函数不同,如@Matias Valdenegro所述,它们没有单位,不同损失函数的相同值与其他损失函数相比,会产生更好/更差的模型/结果(由于损失函数的构造,
二进制交叉熵
的0.15损失不同于
焦点
的0.15损失)。

然而,我想在这里指出的是,上述答案中没有提到这一点

原则上,损失函数的值越低,精度越高

但并非总是如此。

在上面的图片中,您可以看到100%的准确度是如何随着2.0794的损失而变化的,而66,67%的准确度是如何随着1.8220的损失而变化的

哪种型号更好

不太明显(特别是对于初学者)的答案是:显然是第一个模型。事实是,如果你看一下预测,如果第二个模型对所有预测都有0.49的pApple,那么你将有0%的准确率(在大多数情况下,给定的阈值为0.5)


另一个例子(与上图无关)更为明显:

假设您有两个模型,测试集的准确率为100%

现在假设,如上面的示例所示,您的所有测试图像都是苹果

当你看这些预测时,第一个模型预测所有苹果的置信度为0.6,而第二个模型预测所有苹果的置信度为0.96。如果你考虑阈值,如果预测>0.5给你一个特定的类,那么两个模型的准确度为100%。 但是如果你看损失函数值图,你会发现第二个模型的损失要低得多


始终根据验证集上的最佳损失值保存/检查您的模型。

损失通常没有单位,只有一些损失有单位,但通常它们不会传递任何信息。是的,而且不同的损失结构/公式非常不同,因此它们的损失值范围可能会有所不同例如:给定模型/架构的平均损耗可能为0.15,而IoU损耗(相交于并集)100个时期后的公式,而在训练的同一阶段,诸如焦点损失或L2损失的平均损失可能为0.01。对于其他损失公式,损失可能高于0.5或1。因此,没有标准单位来衡量各种损失公式中的损失。我认为,即使它们没有表示数字不传递信息的单位,但事实上,数字之所以被发明是因为它们有助于提取一些有关计数的信息。你如何准确计算置信值?这取决于你指的是什么:在二元分类的情况下,人们会说,如果你的模型预测苹果和苹果的置信值为0.90.1表示橙色,那么模型90%/0.9表示你的水果是橙色。如果我们有一点分歧,预测信心的概念可能会把我们带到概率模型——贝叶斯网络。为了更清楚,我修改了答案的文本:现在可以了,我做了一些编辑,更清楚一些,好像我错过了——也许是我的错——,未来的初学者也可以。交叉熵和损失是不能互换的。交叉熵是一个损失函数。还有许多其他损失函数。