初探softmax

什么是softmax

Softmax,又称作归一化指数函数。主要用于分类任务,降多分类的结果以概率的形式展现

下图展示softmax计算方法

初探softmax_第1张图片

 

softmax本质上是归一化网络,目的是将多个标量映射为一个概率分布,其输出的每一个值范围在(0,1)。

举例

1)将预测结果转化为非负数

y1 = exp(x1) = exp(-3) = 0.05

y2 = exp(x2) = exp(1.5) = 4.48

y3 = exp(x3) = exp(2.7) = 14.88

2)各种预测结果概率之和等于1

z1 = y1/(y1+y2+y3) = 0.05/(0.05+4.48+14.88) = 0.0026

z2 = y2/(y1+y2+y3) = 4.48/(0.05+4.48+14.88) = 0.2308

z3 = y3/(y1+y2+y3) = 14.88/(0.05+4.48+14.88) = 0.7666

总结一下softmax如何将多分类输出转换为概率,可以分为两步:

1)分子:通过指数函数,将实数输出映射到零到正无穷。

2)分母:将所有结果相加,进行归一化。

干货

Softmax主要是用于训练中。因为我们使用交叉熵损失函数的时候,实际做的的是最大似然估计MLE,即要求你的预测标签分布要与one-hot给的GT标签越贴近越好,既然是比较分布,那自然得通过softmax或者sigmoid做概率化操作。

推理阶段是否需要softmax,需要视实际需求而定。

(1)业务要求输出topN结果时,可以采用softmax讲预测结果转化为概率;

(2)业务可以考虑网络的拒识情况。假设一个二分类问题,如果你采用softmax会发现两类的概率其实都在0.5附近,差别不是很大,这个时候就可以判定拒识,机器不能识别这张图片的类别,交给其他算法或者人工判别。

参考文献

softmax层的使用_Petersburg的博客-CSDN博客

为什么神经网络的推理通常不使用 Softmax层,而神经网络的学习阶段则需要 Softmax层? - 知乎

你可能感兴趣的:(深度学习杂货铺,人工智能,算法)