为什么不使用输出张量的最大值而不是 Softmax 函数?
why not use the max value of output tensor instead of Softmax Function?
我在图像上构建了一个 CNN 模型-class class化。
输出张量是一个包含 65 个元素的列表。我将这个张量输入到 Softmax 函数,并得到了 class 化的结果。
我认为这个输出张量中的最大值是class化的结果,为什么不用这种方式来做class化任务呢?只是Softmax Function可以轻松求导吗?
Softmax 用于 multi-class classification。在多 class class class 化中,模型有望以更高的概率将输入 class 化为单个 class。以高概率进行预测会使其他 classes 的概率变低。
正如您所述,人们在 max 函数上使用 Softmax 的原因之一是 softmax 函数在实数上是微分的,而 max 函数不是。
编辑:
与 max 相比,softmax 函数还有一些其他属性使其适合用于神经网络。首先它是 max 函数的软版本。假设神经网络的 logits 有 4 个输出 [0.5, 0.5, 0.69, 0.7]。 Hard max returns 最大索引为 1(在本例中为第 4 个索引),其他索引为 0。这导致信息丢失。
softmax 的第二个重要 属性 是 sofmax 函数的输出在区间 [0,1] 并且这些值的总和等于 1。因此 softmax 函数的输出可以解释为概率。这意味着输出可以被视为模型 class 将输入验证为每个输出 class 之一的置信度。
我在图像上构建了一个 CNN 模型-class class化。 输出张量是一个包含 65 个元素的列表。我将这个张量输入到 Softmax 函数,并得到了 class 化的结果。 我认为这个输出张量中的最大值是class化的结果,为什么不用这种方式来做class化任务呢?只是Softmax Function可以轻松求导吗?
Softmax 用于 multi-class classification。在多 class class class 化中,模型有望以更高的概率将输入 class 化为单个 class。以高概率进行预测会使其他 classes 的概率变低。
正如您所述,人们在 max 函数上使用 Softmax 的原因之一是 softmax 函数在实数上是微分的,而 max 函数不是。
编辑:
与 max 相比,softmax 函数还有一些其他属性使其适合用于神经网络。首先它是 max 函数的软版本。假设神经网络的 logits 有 4 个输出 [0.5, 0.5, 0.69, 0.7]。 Hard max returns 最大索引为 1(在本例中为第 4 个索引),其他索引为 0。这导致信息丢失。 softmax 的第二个重要 属性 是 sofmax 函数的输出在区间 [0,1] 并且这些值的总和等于 1。因此 softmax 函数的输出可以解释为概率。这意味着输出可以被视为模型 class 将输入验证为每个输出 class 之一的置信度。