为什么softmax功能必不可少?为什么不简单规范化?

时间:2017-08-30 16:47:45

标签: neural-network deep-learning softmax

我不熟悉深度学习,所以这可能是一个初学者的问题。 据我所知,多层感知器中的softmax函数负责每个类的归一化和分布概率。 如果是这样,为什么我们不使用简单的规范化?

让我们说,我们得到一个向量x = (10 3 2 1) 应用softmax,输出将为y = (0.9986 0.0009 0.0003 0.0001)

应用简单规范化(将每个元素除以sum(16)) 输出将为y = (0.625 0.1875 0.125 0.166)

似乎简单的规范化也可以分配概率。 那么,在输出层使用softmax函数有什么好处呢?

2 个答案:

答案 0 :(得分:2)

规范化并不总是产生概率,例如,当您考虑负值时,它不起作用。或者如果值的总和为零会怎么样?

但是使用logits的指数变化,理论上它永远不会为零,并且它可以将整个范围的logits映射到概率。因此它是首选,因为它确实有效。

答案 1 :(得分:1)

这取决于训练损失功能。许多模型都使用 log loss 算法进行训练,因此您在该向量中看到的值估计每个概率的 log 。因此, SoftMax 只是转换回线性值并进行标准化。

经验理由很简单: SoftMax 用于产生更好结果的地方。