转自:https://blog.csdn.net/weixin_40516558/article/details/79962674
单独拿一篇文章出来讲softmax单元是因为昨天去鹅厂面试,被要求给softmax求导,这么简单的事情,我竟然没有做到,所以只好以文铭志了。
话不多说。
任何时候,当我们想要表示一个具有n个可能取值的离散型随机变量的分布时,都可以使用softmax函数。它可以看作sigmoid函数的扩展,sigmoid函数用来表示二值型变量的分布。
softmax函数的形式如下:
当使用最大化对数似然训练softmax来输出目标值y时,使用指数函数工作地非常好。
对softmax函数取对数,之后的结果很容易得到。而且,我们容易观察出,当样本分类正确时,它对于整体训练代价贡献很小,这个代价主要由其他的未本正确分类的样本产生。
对于softmax的情况,它有多个输出值。当输入值之间的差异变得极端时,这些输出值可能饱和。从softmax函数中可以得到。
softmax函数更接近于argmax函数而不是max函数。“soft”这个术语来源于softmax函数是连续可微的。“agemax”函数的结果表示为一个one-hot向量,不是连续可微的。softmax函数因此提供了argmax的“软化版本”。可能最好是把softmax函数称为“softargmax”。
https://blog.csdn.net/u014422406/article/details/52805924
sigmoid将一个real value映射到(0,1)的区间(当然也可以是(-1,1)),这样可以用来做二分类。
而softmax把一个k维的real value向量(a1,a2,a3,a4….)映射成一个(b1,b2,b3,b4….)其中bi是一个0-1的常数,然后可以根据bi的大小来进行多分类的任务,如取权重最大的一维