Tom*_*tor 3 python tensorflow sigmoid
我在最后一层创建了一个带有 sigmoid 激活函数的神经网络,所以我得到的结果在 0 到 1 之间。我想将事物分为 2 个类,所以我检查“数字是否 > 0.5,然后是 1 类,其他类0”。都是基本的。但是,我想说“它属于 0 类的概率是x,属于 1 类的概率是y”。
我怎样才能做到这一点?
我应该使用 0.5 并查看“数字离中心有多远,然后就是百分比”?
或者我误解了NN的结果?
正如 Teja 指出的,简短的答案是否定的,但是,根据您使用的损失,它可能比您想象的更接近事实。
想象一下,您尝试训练网络将数字区分为两个任意类别:beautiful和ugly。假设您的输入数字是0or 1,并且0s 有0.2被标记的概率ugly,而1s 有 o0.6被标记的概率ugly。
想象一下,您的神经网络将0s 和1s 作为输入,将它们传递到某些层,最后以 softmax 函数结束。如果你的损失是二元交叉熵,那么你的网络的最佳解决方案是0.2当它看到一个0输入时以及0.6当它看到一个1输入时输出(这是交叉熵的一个属性,当你输出真实的时,它会被最小化)每个标签的概率)。因此,您可以将这些数字解释为概率。
当然,现实世界的例子并不那么容易,并且通常是确定性的,因此解释有点棘手。然而,我相信,只要你使用交叉熵作为损失,将你的结果视为概率并不是完全错误的。
抱歉,这个答案不是非黑即白,但现实有时很复杂;)
| 归档时间: |
|
| 查看次数: |
2440 次 |
| 最近记录: |