做太多分类任务的同学一定知道softmax函数。 softmax函数,也称为归一化指数函数。,是一种以概率表示多分类结果为目的的二分类函数sigmoid在多分类中的推广。 下图显示了如何计算softmax。
让我来解释一下为什么softmax是这样的形状吧。
首先,我们知道概率有两个性质。 1 )预测概率不是负2 )各预测结果概率之和等于1。
softmax是将从负无限到正无限的预测结果在这两个阶段中进行概率变换的装置。
1)将预测结果转化为非负数
下图为y=exp(x )的图像,可见指数函数的值域的可取值范围从零到正是无限的。softmax第一步就是将模型的预测结果转化到指数函数上,这样保证了概率的非负性。
2)各种预测结果概率之和等于1
为了使各预测结果的概率之和为1。 只需将转换后的结果规范化。 方法为将转化后的结果除以所有转化后结果之和,可以理解为转化后结果占总数的百分比这样可以得到近似的概率。
举个例子吧。 假设模型对三分类问题的预测结果为-3、1.5、2.7。 使用softmax将模型结果转换为概率。 步骤如下。
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/(Y1Y2Y3 )=0.05/(0. 054.4814.88 )=0.0026
Z2=Y2/(Y1Y2Y3 )=4.48/(0. 054.4814.88 )=0.2308
Z3=Y3/(Y1Y2Y3 )=14.88/(0. 054.4814.88 )=0.7666
总结softmax如何将多分类输出转换为概率,可以分为以下两个步骤:
1)分子:通过指数函数,将实数输出映射到零到正无穷。
2)分母:将所有结果相加,进行归一化。
下图是斯坦福大学CS224n课程中最softmax的说明: