在softmax分类器中,为什么要使用exp函数进行归一化?


30

为什么使用softmax而不是标准归一化?在此问题的最高答案的评论区域中,@ Kilian Batzner提出了2个问题,这也使我非常困惑。除数值上的好处外,似乎没有人给出任何解释。

我有使用交叉熵损失的原因,但这与softmax有什么关系?您说过“ softmax函数可以看作是试图最小化预测和真实之间的交叉熵”。假设我将使用标准/线性归一化,但仍将使用交叉熵损失。然后,我还将尝试最小化交叉熵。那么,除了数值收益外,softmax如何与交叉熵联系起来?

至于概率观点:查看对数概率的动机是什么?推理似乎有点像“我们在softmax中使用e ^ x,因为我们将x解释为对数概率”。出于同样的理由,我们可以在softmax中使用e ^ e ^ e ^ x,因为我们将x解释为log-log-log-概率(当然,这里夸大了)。我得到了softmax的数值好处,但是使用它的理论动机是什么?


它是可微的,导致非负的结果(例如对于概率而言是必需的,因此可以计算交叉熵),并且其行为类似于max函数,适用于分类设置。欢迎光临本站!
Emre

@Emre谢谢!但是“行为像max函数”是什么意思?此外,如果我还有另一个可微的函数,单调增加并导致非负结果,是否可以用它代替公式中的exp函数?
汉斯(Hans)

当您使用归一化时,由于指数函数的增长,最大的参数将映射为1,而其余的参数将映射为零。max
Emre

Answers:


37

它不仅仅是数字。快速提醒一下softmax:

P(y=j|x)=exjk=1Kexk

其中是长度等于类的输入向量。softmax函数具有3个非常好的属性:1.规范化数据(输出适当的概率分布); 2.可微化; 3.使用您提到的exp。一些要点:ķxK

  1. 损失函数与softmax不直接相关。您可以使用标准归一化,但仍可以使用交叉熵。

  2. “ hardmax”函数(即argmax)不可区分。softmax给输出向量中的所有元素至少提供最小的概率,因此可以很好地区分,因此softmax中的术语“ soft”。

  3. 现在我来回答你的问题。该在SOFTMAX是自然指数函数。归一化之前,我们将转换为的图形:x e xexex

自然指数函数

如果为0,则;如果为1,则;如果为2,则!迈出了巨大的一步!这就是我们未标准化对数得分的非线性转换。指数函数与softmax中的归一化相结合的有趣特性是,高分比低分变得更有可能。y = 1 x y = 2.7 x y = 7 xxy=1xy=2.7xy=7x

一个例子。假设,您的对数得分是向量。简单的argmax函数输出:X [ 2 4 2 1 ]K=4x[2,4,2,1]

[0,1,0,0]

argmax是目标,但它不可微,因此无法使用它训练模型:(一个可微的简单归一化输出以下概率:

[0.2222,0.4444,0.2222,0.1111]

确实离argmax太远了!:(而softmax输出:

[0.1025,0.7573,0.1025,0.0377]

距离argmax更近了!因为我们使用自然指数,所以与标准归一化相比,我们极大地增加了最高分的概率,并降低了较低分的概率。因此,softmax中的“最大值”。


3
很棒的信息。但是,不是使用,而是使用e常数3或4呢?结果会一样吗?
Cheok Yan Cheng

7
@CheokYanCheng,是的。但是e有更好的派生;)
vega

我已经看到,softmax的结果通常被用作属于每个类的概率。如果选择“ e”而不是其他常数是任意的,那么从概率的角度来看它是没有意义的,对吧?
javierdvalle 18-10-26

@vega对不起,但我仍然看不到如何回答这个问题:出于相同的原因,为什么不使用e ^ e ^ e ^ e ^ e ^ x?请说明
-Gulzar

@jvalle它不是e,使得它可解释为概率,这是事实的SOFTMAX输出的每个元素在[0,1]和整个总和界定为1
维加

2

除了维加的解释之外,

让我们定义通用SOFTMAX:

P(y=j|x)=ψxjk=1Kψxk
其中ψ是一个常数> = 1

如果ψ=1,那么您离argmax远,如@vega所述。

现在假设ψ=100,您已经很接近argmax了,但是对于负值,您有一个非常小的数字,对于正数,您也有一个很大的数字。这个数字溢出浮点算术限制容易(为numpy的float64的例子最大限制是10308)。除此之外,即使选择的ψ=e100小得多,框架也应该实现更稳定的softmax版本(将分子和分母都乘以常数C),因为结果变小了,可以用这样的精度。

因此,您想要选择一个足够大的常数以很好地逼近argmax,同时又选择一个足够小的常数以在计算中表达这些大小数字。

当然,e也具有非常好的导数。


2

这个问题很有趣。我不知道确切的原因,但我认为可以使用以下原因来解释指数函数的用法。这篇文章的灵感来自统计力学和最大熵原理。

我将通过使用用一个例子说明此N图像,这是由构成n1从类图像C1n2图像从类C2,...,和nK从类图像CK。然后我们假设我们的神经网络能够对图像进行非线性变换,从而可以为所有类别分配一个“能量水平” Ek。我们假设此能量处于非线性范围,这使我们能够线性分离图像。

的平均能量E¯是关系到其它能量Ek由以下关系

NE¯=k=1KnkEk.()

同时,我们看到图像的总量可以计算为以下总和

N=k=1Knk.()

最大熵原理的主要思想是,以使得给定能量分布的可能组合的数量最大化的方式来分布相应类别中的图像的数量。简而言之,系统将不会很可能进入只有n1类的状态,它也不会进入每个类中具有相同数量的图像的状态。但是为什么会这样呢?如果所有图像都在一个类别中,则系统的熵将非常低。第二种情况也是非常不自然的情况。我们很可能会拥有更多具有中等能量的图像,而更少具有非常高和非常低的能量的图像。

熵随着组合数量的增加而增加,在组合中我们可以将N图像分为具有相应能量的n1n2,...,nK图像类别。该组合数由多项式系数给出

(N!n1!,n2!,,nK!)=N!k=1Knk!.

假设我们有无限多的图像N,我们将尝试最大化此数字。但是他的最大化也有等式约束()()。这种优化类型称为约束优化。我们可以通过使用拉格朗日乘数的方法来解析地解决这个问题。我们引入Lagrange乘数βα作为等式约束,并引入Lagrange Funktion L(n1,n2,,nk;α,β)

L(n1,n2,,nk;α,β)=N!k=1Knk!+β[k=1KnkEkNE¯]+α[Nk=1Knk]

当我们假设N我们也可以假设nk并将斯特林近似用于阶乘

lnn!=nlnnn+O(lnn).

注意,该近似值(前两项)只是渐近的,并不意味着该近似值将收敛到lnn!对于n

拉格朗日函数的相对于偏导数nk~将导致

Lnk~=lnnk~1α+βEk~.

如果将偏导数设置为零,我们可以找到

nk~=exp(βEk~)exp(1+α).()

如果将其放回()我们可以获得

exp(1+α)=1Nk=1Kexp(βEk).

如果我们将其放回()我们会得到一些使我们想起softmax函数的信息

nk~=exp(βEk~)1Nk=1Kexp(βEk).

nk~/NCk~pk~

pk~=exp(βEk~)k=1Kexp(βEk).

βEk~=wkTxkth

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.