为什么使用softmax而不是标准的标准化?

在neural network的输出层中,通常使用softmax函数来近似概率分布:

在这里输入图像说明

由于指数的原因,计算起来很昂贵。 为什么不简单地执行一个Z变换,使所有的输出都是正的,然后用所有输出的和除以所有输出之和来归一化呢?

我发现这里的解释非常好: CS231n:用于视觉识别的卷积neural network。

在表面上,softmaxalgorithm似乎是一个简单的非线性(我们正在扩展数据的指数)归一化。 然而,还有更多。

具体来说,有几个不同的意见( 与上述相同的链接 ):

  1. 信息理论 – 从信息论的angular度来看,softmax函数可以被看作是试图最小化预测和真值之间的交叉熵。

  2. 概率视图 – 从这个angular度来看,我们实际上是在查看对数概率,因此当我们进行指数运算时,我们最终会得到原始概率。 在这种情况下,softmax方程findMLE(最大似然估计)

总之,尽pipesoftmax方程似乎可以是任意的,但它不是。 它实际上是一个相当原则的方法,使分类正常化,以最小化预测和事实之间的交叉熵/负面可能性。

与标准标准化相比,Softmax有一个很好的属性。

它对分布相当均匀的neural network的低刺激(认为模糊的图像)和对概率接近于0和1的高刺激(即大数目,认为清晰的图像)做出反应。

标准的正常化并不在意,只要比例相同即可。

看一下当soft max有10倍大的input时会发生什么情况,也就是说你的neural network有一个清晰的图像,并且有很多神经元被激活

>>> softmax([1,2]) # blurry image of a ferret [0.26894142, 0.73105858]) # it is a cat perhaps !? >>> softmax([10,20]) # crisp image of a cat [0.0000453978687, 0.999954602]) # it is definitely a CAT ! 

然后将其与标准归一化进行比较

 >>> std_norm([1,2]) # blurry image of a ferret [0.3333333333333333, 0.6666666666666666] # it is a cat perhaps !? >>> std_norm([10,20]) # crisp image of a cat [0.3333333333333333, 0.6666666666666666] # it is a cat perhaps !? 

q_i的值表示对数似然。 为了恢复概率值,您需要对其进行指数化。

统计algorithm经常使用对数似然损失函数的一个原因是它们在数值上更稳定:概率的乘积可以表示为非常小的浮点数。 使用对数似然损失函数,概率的乘积成为总和。

另一个原因是当推导假设从多元高斯分布中得出的随机variables的估计量时,对数似然性自然出现。 参见例如最大似然(ML)估计量和它与最小二乘法的连接方式。

作为一个旁注,我认为这个问题更适合CS理论或计算科学堆栈交换。

假设我们改变了softmax函数,所以输出激活由下式给出 在这里输入图像说明

其中c是一个正的常数。 请注意, c=1对应于标准的softmax函数。 但是如果我们使用不同的c值,我们可以得到一个不同的函数,但它的性质与softmax相当类似。 特别是,显示输出激活形成一个概率分布,就像通常的softmax一样。 假设我们允许c变大,即c→∞ 。 什么是输出激活的限制值a^L_j ? 解决这个问题之后,应该清楚为什么我们把c=1函数看作最大函数的“软化”版本。 这是“softmax”这个词的起源。 你可以按照这个来源的细节(公式83)。

我们正在考虑一个多分类问题。 预测variablesy可以取k值中的一个,其中k > 2 。 在概率上,这满足多项分布,多项分布属于一个称为指数族的大家族。 根据指数族分布的性质,我们可以重构P(k=?|x)的概率,它与softmax公式相吻合。

有关进一步的信息和正式的certificate参考CS229讲义(Softmax回归) 。

softmax(soft)(x)= softmax(x + c)是一个有用的技巧,softmax对input中的常数偏移是不变的。

输入图像描述herse

softmax函数的select似乎是任意的,因为还有许多其他可能的规范化函数。 因此不清楚为什么log-softmax损失比其他损失替代schemeperformance更好。

来自“ Softmax替代品属于球形损失家庭的探索https://arxiv.org/abs/1511.05042

作者探索了一些其他函数,其中exp是泰勒展开,所谓的球面softmax,发现有时他们可能比平常softmaxperformance更好。