用于Multinoulli(多项分布)输出分布的softmax单元

单独拿一篇文章出来讲softmax单元是因为昨天去鹅厂面试,被要求给softmax求导,这么简单的事情,我竟然没有做到,所以只好以文铭志了。

话不多说。

任何时候,当我们想要表示一个具有n个可能取值的离散型随机变量的分布时,都可以使用softmax函数。它可以看作sigmoid函数的扩展,sigmoid函数用来表示二值型变量的分布。

softmax函数的形式如下:

用于Multinoulli(多项分布)输出分布的softmax单元

当使用最大化对数似然训练softmax来输出目标值y时,使用指数函数工作地非常好。

用于Multinoulli(多项分布)输出分布的softmax单元对softmax函数取对数,之后的结果很容易得到。而且,我们容易观察出,当样本分类正确时,它对于整体训练代价贡献很小,这个代价主要由其他的未本正确分类的样本产生。

对于softmax的情况,它有多个输出值。当输入值之间的差异变得极端时,这些输出值可能饱和。从softmax函数中可以得到。

softmax函数更接近于argmax函数而不是max函数。“soft”这个术语来源于softmax函数是连续可微的。“agemax”函数的结果表示为一个one-hot向量,不是连续可微的。softmax函数因此提供了argmax的“软化版本”。可能最好是把softmax函数称为“softargmax”。