例如,我有 CNN,它尝试从 MNIST 数据集(使用 Keras 编写的代码)中预测数字。它有 10 个输出,形成 softmax 层。只有一个输出可以为真(对于从 0 到 9 的每一位数字都是独立的):
Real: [0, 1, 0, 0, 0, 0, 0, 0, 0, 0]
Predicted: [0.02, 0.9, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01]
由于 softmax 的定义,预测的总和等于 1.0。
假设我有一个任务,需要对一些可以分为几个类别的对象进行分类:
Real: [0, 1, 0, 1, 0, 1, 0, 0, 0, 1]
所以我需要以其他方式正常化。我需要一个在 [0, 1] 范围内给出值并且总和可以大于 1 的函数。
我需要这样的东西:
Predicted: [0.1, 0.9, 0.05, 0.9, 0.01, 0.8, 0.1, 0.01, 0.2, 0.9]
每个数字都是对象属于给定类别的概率。之后,我可以使用像 0.5 这样的阈值来区分给定对象所属的类别。
出现以下问题:
- 那么哪个激活函数可以用于此目的呢?
- 这个函数可能已经存在于 Keras 中了吗?
- 也许您可以提出其他方法来预测这种情况?