为啥 TensorFlow 的文档将 softmax 的输入称为“logits”?

Posted

技术标签:

【中文标题】为啥 TensorFlow 的文档将 softmax 的输入称为“logits”?【英文标题】:Why does TensorFlow's documentation call a softmax's input "logits"?为什么 TensorFlow 的文档将 softmax 的输入称为“logits”? 【发布时间】:2017-10-27 20:55:23 【问题描述】:

TensorFlow calls softmax 的每个输入一个 logit。他们继续将 softmax 的输入/logits 定义为:“未缩放的对数概率。”

Wikipedia 和其他消息来源说 logit 是几率的对数,是 sigmoid/logistic 函数的倒数。即,如果 sigmoid(x) = p(x),则 logit( p(x) ) = log( p(x) / (1-p(x)) ) = x。

TensorFlow 将 softmax 的输入称为“logits”是否有数学或常规原因?它们不应该被称为“未缩放的对数概率”吗?

也许 TensorFlow 只是想为二元逻辑回归(使用术语 logit 有意义)和分类逻辑回归保留相同的变量名称...

这个问题是covered a little bit here,但似乎没有人对使用“logit”这个词来表示“未缩放的对数概率”感到困扰。

【问题讨论】:

【参考方案1】:

Logit 现在在 ML 社区中用于任何非归一化概率分布(基本上是通过无参数变换映射到概率分布的任何东西,例如二进制变量的 sigmoid 函数或多项式变量的 softmax)。它不是一个严格的数学术语,但获得了足够的普及,可以包含在 TF 文档中。

【讨论】:

你知道为什么/如何产生这个约定吗?可能是这样的:logits 是非标准化概率,因此非标准化概率是 logits? 恐怕是这样。只是人们开始更改最后一层之后的内容(标准化方案、损失),并且没有费心去更改最后一个激活的名称。社区显然需要为这个对象命名,而它变成“logit”这一事实可能不是最理想的(从数学角度来看是有问题的),但有点“有效”。

以上是关于为啥 TensorFlow 的文档将 softmax 的输入称为“logits”?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 TensorFlow 分类示例不使用激活函数?

为啥 TensorFlow 返回 [[nan nan]] 而不是 CSV 文件中的概率?

为啥 TensorFlow 中的 'tf.python_io.TFRecordWriter' 如此缓慢且占用存储空间?

Tensorflow:为啥'pip uninstall tensorflow'找不到tensorflow

为啥 TensorFlow Lite 比桌面版 TensorFlow 慢?

为啥在windows下用不了tensorflow