什么是softmax?

softmax起到的是一种分类器 的作用

要知道什么是softmax首先我们来看max.
如果神经网络输出为[0,-2.4,8.9,100]
那么max()的结果为[0,0,0,100],如果将对应索引输出成 one hot encoding形式则成为[0,0,0,1]

很显然max的作用就是一种非极大值的抑制,如果其max输出向量维度对应到类别个数,就可以起到分类的作用

那么我们再来考虑这样一种设计在NN中的应用

很显然softmax有两个部分,先soft,然后max.

soft使用的就是logistic函数,将负数变正数,然后指数拉伸了input,再做归一化.
所以soft后的结果就是distribution形式 [0.1,0.9,0,0]

所以我们可以发现,网络输出的logists其实是soft后的结果,而max仅仅是为了得到一个分类标签,用于计算和真实数据的loss

比如常用的loss function,cross entropy,就是将网络认为正确的结果类别(max对应索引)的soft后的值直接作为loss。所以操作起来十分简单

ufldl从另一个角度解释:

softmax也可以理解为sigmoid一样的映射,只不过观察其形式,很特别地将各个输出映射到0-1之间且求和为1.
也就是为k个输出赋予了distribution的表达.当k等于2时,softmax可以写成sigmoid函数的形式,说明logistic回归实则为softmax回归的一个特例.

results matching ""

    No results matching ""