机器学习基础

Softmax 与交叉熵:多分类的标配

10 分钟

两个以上类别怎么办

判断猫还是狗,一个概率就够;可手写数字有 10 类、图像识别有上千类。Softmax 的办法:每个类别先各算一个分数,然后把所有分数变成「加起来正好等于 1」的一串概率。白话:把一堆任意大小的分数,变成一碗分完的概率,分数最高的类别概率也最高。

一个数字例子

模型给一张图打分:猫 2.0、狗 1.0、兔 0.1。经过 Softmax 变成大约:猫 0.59、狗 0.24、兔 0.09(剩下给别的类)。不用记公式也能看出来:原始分数的差距被保留下来,最高的猫拿到最大份额,而且所有概率加起来是 1。

配对的损失:交叉熵

第一章提过交叉熵,这里说透:它只看模型给正确答案分配了多少概率。正确答案是猫,模型给猫 0.59,扣分中等;如果只给猫 0.05,扣分非常狠。白话:对正确答案越没信心,罚得越重——逼着模型把信心押在正确类别上。Softmax + 交叉熵,是多分类任务雷打不动的标配。

常见误区

概率最高 ≠ 就是真相。模型说「猫 0.59」只是相对最有把握,0.59 本身并不算很确定。医疗、金融等场景里,低置信度的预测应该转交人工,而不是硬输出。

练一练:三个类别分数相同(比如都是 1.0),不计算,猜猜 Softmax 后的概率各是多少?

小纸条

说出 Softmax 的两个作用,并解释交叉熵为什么只关心正确答案的概率。

登录 后可看答案