Soft-argmin 和 Softmax 是两个不同的函数,尽管它们都涉及到概率分布的计算。
Softmax 是一种常用的激活函数,用于将一个向量 x\mathbf{x}x 转换为概率分布。具体来说,Softmax 的计算公式如下:
softmax(x)i=exp(xi)∑j=1Nexp(xj) \operatorname{softmax}(\mathbf{x})_i = \frac{\exp(x_i)}{\sum_{j=1}^{N} \exp(x_j)} softmax(x)i=∑j=1Nexp(xj)exp(xi)
其中,NNN 是向量的长度,softmax(x)i\operatorname{softmax}(\mathbf{x})_isoftmax(x)i 表示 x\mathbf{x}x 中第 iii 个元素在 Softmax 转换后得到的概率值。Softmax 中的分母是所有元素的指数和,用于将元素的值标准化为概率分布。Softmax 的输出结果是一个概率分布,其所有元素的值都在 [0,1][0, 1][0,1] 的范围内,并且所有元素的和为 111。
相比之下,Soft-argmin 的计算公式和 Softmax 不同。Soft-argmin 的输入是一个向量或张量,其输出是一个实数,而不是一个概率分布。Soft-argmin 的计算过程中,首先使用 softmax 函数将输入向量或张量转换为概率分布,然后使用加权平均的方式计算实数值的输出结果。与 Softmax 不同,Soft-argmin 的输出结果不是一个概率分布,因此其所有元素的值没有必要在 [0,1][0, 1][0,1] 的范围内,并且不需要满足所有元素的和为 111。
在应用中,Soft-argmin 和 Softmax 通常用于不同的场景。Softmax 常用于分类任务中,用于将输入向量转换为概率分布,以便进行分类推断。而 Soft-argmin 则常用于回归任务中,例如姿态估计和深度估计等,用于计算向量的加权平均。同时,Soft-argmin 的计算过程中需要使用加权平均,相比之下,Softmax 的计算比较简单,只需要进行指数和归一化。