机器学习中的 Logits 是什么意思?

数据挖掘 机器学习 深度学习
2021-09-25 21:45:01

“我会犯的一个常见错误是在我的 logits 输出中添加非线性。”

“logit”一词在这里是什么意思或它代表什么?

2个回答

Logits 被解释为模型的未标准化(或尚未标准化)的预测(或输出)这些可以给出结果,但我们通常不会停止使用 logits,因为解释它们的原始值并不容易。

看看他们的定义,以帮助理解logits是如何产生的。

让我用一个例子来解释:

我们想训练一个模型来学习如何对猫和狗进行分类,使用每张照片包含一只猫或一只狗。你建立一个模型,给它一些你必须的数据来近似图像和预测之间的映射。然后你给模型一些看不见的照片,以测试它对新数据的预测准确性。由于我们有一个分类问题(我们试图将每张照片归入两个类别之一),该模型将为每个输入图像提供两个分数。它认为图像包含猫的可能性的分数,然后是它认为图像包含狗的分数。

也许对于第一个新图像,您会从16.917猫和狗中获取 logit 值0.772更高意味着更好,或者('更有可能'),所以你会说猫就是答案。正确答案是一只猫,所以模型成功了!

对于第二张图像,模型可能会说猫的 logit 值为 1.004,狗的 logit 值为 0.709。所以再一次,我们的模型说我们图像包含一只猫。正确答案又是一只猫,所以模型再次起作用了!

现在我们要比较这两个结果。一种方法是标准化分数。也就是说,我们对 logits 进行归一化这样做,我们对模型的置信度有了一些了解。

让我们使用softmax,其中所有结果总和1,因此我们可以将它们视为概率:

σ(z)j=ezjk=1Kezkforj=1,,K.

对于第一个测试图像,我们得到

prob(cat)=exp(16.917)exp(16.917)+exp(0.772)=0.9999
prob(dog)=exp(0.772)exp(16.917)+exp(0.772)=0.0001

如果我们对第二张图像做同样的事情,我们会得到结果:

prob(cat)=exp(1.004)exp(1.004)+exp(0.709)=0.5732
prob(dog)=exp(0.709)exp(1.004)+exp(0.709)=0.4268

该模型不太确定第二张图像,因为它非常接近 50-50 - 猜测!

您问题引用的最后一部分可能将神经网络称为模型。神经网络的层通常采用输入数据,将其乘以我们想要学习的一些参数(权重),然后应用非线性函数,它为模型提供了学习非线性关系的能力。如果没有这种非线性,神经网络将只是一个线性操作列表,对一些输入数据执行,这意味着它只能学习线性关系。这将是一个巨大的约束,这意味着模型总是可以简化为基本的线性模型。话虽如此,将非线性应用于模型的 logit 输出被认为没有帮助,因为您通常会在做出最终预测之前删除一些信息。在此线程中查找相关评论

Logits 是模型的非标准化最终分数。您对其应用 softmax 以获得类的概率分布。