只需添加此说明,以使任何向下滚动这么多的人至少都能正确理解,因为提出了很多错误的答案。
点声的答案和JakeJ的答案正确。
Shital Shah发布的新答案是更好,更完整的答案。
是的, logit
是统计中的数学函数 , 但是用于神经网络的logit
是不同的。统计logit
在这里甚至没有任何意义。
我在任何地方都找不到正式定义,但是logit
基本上意味着:
来自神经网络最后一层的原始预测。
1.这是您在其中应用argmax
函数以获得预测类的张量。
2.这是您输入到softmax
函数中以获取预测类的概率的张量。
同样,从tensorflow官方网站上的教程中 :
Logits层
我们神经网络的最后一层是logits层,它将返回原始值供我们进行预测。我们创建一个具有10个神经元的密集层(每个目标类0–9一个神经元),并具有线性激活(默认):
logits = tf.layers.dense(inputs=dropout, units=10)
如果您仍然感到困惑,情况如下:
raw_predictions = neural_net(input_layer)
predicted_class_index_by_raw = argmax(raw_predictions)
probabilities = softmax(raw_predictions)
predicted_class_index_by_prob = argmax(probabilities)
其中, predicted_class_index_by_raw
和predicted_class_index_by_prob
将相等。
上面的代码中raw_predictions
另一个名称是logit
。
至于为什么 logit
...我不知道。抱歉。
[编辑:请参阅此答案以了解该术语背后的历史动机。]
琐事
虽然,如果需要,您可以将统计logit
应用于softmax
函数产生的probabilities
。
如果某类的概率为p
,
那么该类的对数奇数为L = logit(p)
。
同样,可以使用sigmoid
函数将此类概率恢复为p = sigmoid(L)
。
虽然对计算对数几率不是很有用。
0
在以下TensorFlow函数中,我们必须在最后一层中提供人工神经元的激活。我了解。但是我不明白为什么叫logits?那不是数学函数吗?