softmax激活函数解释

softmax activation function interpretation

我在 tensorflow 中有一个神经网络,它有三个隐藏层,输出层有两个神经元,它由一个热编码值表示(可能输出 0 或 1,所以 [1, 0] 和 [0 , 1]). 输入层由 60 个神经元组成,隐藏层内的激活是 reLU,我使用学习率为 0.001 的 AdamOptimizer。 当我尝试计算网络模型的结果时遇到问题:

预测 - 代表网络输出的变量

prediction_run = sess.run(prediction, feed_dict={x: mydata.reshape(1, 60)})
print("Original class: ", [1, 0], "Predicted values: ", prediction_run)

这将输出: 原class:[1.0.]预测值:[[1.00000000e+00 3.35827508e-08]]

因为我m using the softmax in the final layer, isn't this supposed to be an output that will sum up to 1? Like a probability or something. I我无法理解那些预测的数字,因为 softmax 应该转换它们,但它们不是。

self.tf.nn.softmax(self.tf.matmul(last_hidden_layer_activation, `output_layer_weights) + output_layer_biases)

有什么想法吗?

你是对的。 Softmax 输出总和应该为 1。

问题是浮点数。在浮点数的情况下,没有绝对零这样的东西。浮点总是有一点不确定性。更多信息 here