尽管我们可以将每个值除以向量的总和,但为什么要使用 softmax 函数来计算概率?

机器算法验证 机器学习 神经网络 软最大
2022-01-25 03:19:00

对向量应用 softmax 函数将产生“概率”和之间的值。 01

但是我们也可以将每个值除以向量的总和,这将产生介于之间的概率和值。01

我在这里阅读了答案,但它说原因是因为它是可微的,尽管这两个功能都是可微的。

3个回答

只要元素的总和为零,您提出的函数就具有奇异性。

假设您的向量是该向量的和为 0,因此未定义除法。该函数在这里不可微。[1,13,23]

此外,如果向量的一个或多个元素为负但总和不为零,则您的结果不是概率。

假设您的向量是这总和为 1,因此应用您的函数会导致,这不是概率向量,因为它具有负元素和超过 1 的元素。[1,0,2][1,0,2]

从更广泛的角度来看,我们可以从将二元逻辑回归扩展到三个或更多分类结果的情况的角度来激发 softmax 函数的特定形式。

正如评论中所建议的那样,采取绝对值或平方等操作意味着具有相同的预测概率;这意味着模型没有被识别相比之下,都是单调的和正的,因此 softmax 结果是 (1) 概率向量和 (2) 多项式逻辑模型被识别。xxexp(x)x

Softmax 有两个组件:

  1. 将组件转换为 e^x。这允许神经网络使用对数概率,而不是普通概率。这将乘法概率转换为加法的常见操作,这对于基于线性代数的神经网络结构来说更为自然。

  2. 将它们的总和归一化为 1,因为这是我们需要的总概率。

这样做的一个重要结果是贝叶斯定理对于这样的网络非常自然,因为它只是由分母归一化的概率的乘法。

具有 softmax 激活的单层网络的平凡情况等价于逻辑回归。

双分量 softmax 的特殊情况相当于 sigmoid 激活,因此在只有两个类时很流行。在多类分类中,如果类是互斥的,则使用 softmax,如果它们是独立的,则使用组件方式的 sigmoid。

除了之前的建议之外,softmax 函数还允许一个额外的参数,通常从统计力学中命名为温度 ,它允许调节输出概率分布集中在具有较大输入值的位置周围的程度。较小的。 βt=1/β

σ(z)i=eβzij=1Keβzj or σ(z)i=eβzij=1Keβzj for i=1,,K
使用这个公式,也很难得到极不平衡的概率,例如 [1,0,0,..,0],并且系统在其估计中将被允许有一点不确定性。为了获得这些极端概率值,需要非常低的温度或非常高的输入。例如,在决策系统中,可能会假设温度随着样本数量的增加而降低,从而避免在数据非常少的情况下获得高确定性

此外,softmax 不仅考虑两个数字的相对值,还考虑它们的绝对值。当每个输入生成聚合来自多个来源的数据并且每个维度的总体值较低时,这可能很重要,这可能只是直观地意味着没有太多关于这种情况的信息,因此输出概率之间的差异应该很小。虽然当所有输入都相当高时,这可能意味着随着时间的推移聚合了更多信息并且有更多确定性。如果绝对值较高,则在具有相同输入比例的 softmax 中,将产生较大的输出概率差异。例如,当输入由具有与当前输入相似的较少样本或具有对比输出的 NN 生成时,可能会生成较低的输入值。