Softmax函数是一个在机器学习和深度学习中常用的函数,特别是在分类问题中。通常被用于多分类的输出层,将模型输出的原始分数(也称为logits)转换成概率分布。Softmax函数的主要作用是确保输出的概率总和为1,并且每个输出的概率都在0到1之间。
函数表达式:
表示模型对于第
个类别的原始分数(logit),而K是类别的总数。函数的输出
就是第
个类别的概率。
-
指数函数 e:对于每个类别的原始分数
,Softmax函数首先计算e的指数幂。指数函数能够将所有原始分数转换成正数,并且当分数的值相差很大时,指数函数能够放大这些差异。
-
归一化分母:为了确保所有类别的概率总和为1,Softmax函数在每个类别的指数值上加上一个归一化因子,即所有类别指数值的总和。这个分母确保了所有输出概率的和为1,从而可以被视为一个有效的概率分布。
举个例子,假设我们有一个三分类问题,模型输出的原始分数(logits)为 = -2,
= 1,
= 3,应用Softmax函数后,可以得到:
这样,就得到了每个类别的概率分别为0.05、0.25和0.70,总和为1。
Softmax函数的一个重要性质是,当输入的原始分数(logits)差异很大时,输出的概率分布会非常尖锐,即某个类别的概率会非常接近1,而其他类别的概率则会非常接近0。这反映了模型对于某个类别的强烈信心。相反,如果原始分数相差不大,概率分布会更加均匀,表明模型对各个类别的预测信心相近。