在接下来的TensorFlow函数中,我们必须在最后一层中输入人工神经元的激活。我能理解。但我不明白为什么叫logits?这不是一个数学函数吗?

loss_function = tf.nn.softmax_cross_entropy_with_logits(
     logits = last_layer,
     labels = target_output
)

当前回答

个人理解,在TensorFlow领域,logits是用作softmax输入的值。我是在这个张量流教程的基础上得到这个理解的。

https://www.tensorflow.org/tutorials/layers


虽然logit确实是数学(尤其是统计学)中的一个函数,但我不认为这是你所看到的那个“logit”。在Ian Goodfellow的《深度学习》一书中,他提到,

函数σ−1(x)在统计学中被称为logit,但这个术语 很少用于机器学习。σ−1(x)为 logistic s型函数的逆函数。

在TensorFlow中,它经常被视为最后一层的名称。在Aurélien Géron的《使用Scikit-learn和TensorFLow进行动手机器学习》一书的第10章中,我看到了这段话,其中清楚地说明了logits层。

注意,logits是神经网络在运行之前的输出 通过softmax激活函数:出于优化原因,我们 稍后将处理softmax计算。

也就是说,虽然我们在设计的最后一层使用了softmax作为激活函数,但是为了计算方便,我们分别取出了logits。这是因为同时计算软最大和交叉熵损失效率更高。记住,交叉熵是一个代价函数,不用于正向传播。

其他回答

(FOMOsapiens)。

如果你检查数学Logit函数,它将真实空间从[0,1]区间转换为无穷大[-inf, inf]。

Sigmoid和softmax正好相反。它们将[-inf, inf]实空间转换为[0,1]实空间。

这就是为什么在机器学习中,我们可以在sigmoid和softmax函数之前使用logit(因为它们是匹配的)。

这就是为什么“我们可以称”机器学习中位于sigmoid或softmax函数前面的任何东西为logit。

这是G. Hinton使用这个术语的视频。

logit (/ o . oʊdʒɪt/ LOH-jit)函数是数学,特别是统计学中使用的s型“逻辑”函数或逻辑变换的逆函数。当函数的变量表示概率p时,logit函数给出log-odds,或p/(1 - p)的对数。

请看这里:https://en.wikipedia.org/wiki/Logit

日志

分类模型生成的原始(非归一化)预测向量,然后通常将其传递给归一化函数。如果模型要解决一个多类分类问题,对数通常会成为softmax函数的输入。然后,softmax函数生成一个(规范化)概率向量,每个可能的类都有一个值。

此外,对数有时指的是sigmoid函数的元素逆。有关更多信息,请参见tf.nn.sigmoid_cross_entropy_with_logits。

官方的张量流文档

Logits是一个重载的术语,可以有很多不同的含义:


在数学中,Logit是一个将概率([0,1])映射到R ((-inf, inf))的函数。

概率0.5对应logit为0。负logit对应概率小于0.5,正到>等于0.5。

在ML中,它可以是

原始向量(非规格化)的预测即一种分类 生成模型,然后通常将其传递给规范化 函数。如果模型正在解决一个多类分类 问题是,对数通常成为softmax函数的输入。的 然后,Softmax函数生成一个(标准化)概率向量 每个可能的类都有一个值。

logit有时也指sigmoid函数的元素逆。

个人理解,在TensorFlow领域,logits是用作softmax输入的值。我是在这个张量流教程的基础上得到这个理解的。

https://www.tensorflow.org/tutorials/layers


虽然logit确实是数学(尤其是统计学)中的一个函数,但我不认为这是你所看到的那个“logit”。在Ian Goodfellow的《深度学习》一书中,他提到,

函数σ−1(x)在统计学中被称为logit,但这个术语 很少用于机器学习。σ−1(x)为 logistic s型函数的逆函数。

在TensorFlow中,它经常被视为最后一层的名称。在Aurélien Géron的《使用Scikit-learn和TensorFLow进行动手机器学习》一书的第10章中,我看到了这段话,其中清楚地说明了logits层。

注意,logits是神经网络在运行之前的输出 通过softmax激活函数:出于优化原因,我们 稍后将处理softmax计算。

也就是说,虽然我们在设计的最后一层使用了softmax作为激活函数,但是为了计算方便,我们分别取出了logits。这是因为同时计算软最大和交叉熵损失效率更高。记住,交叉熵是一个代价函数,不用于正向传播。