小餐馆里来了位学徒阿明,菜单上挂着一道招牌“番茄炒蛋”和一道功夫菜“佛跳墙”——每天99桌客人点番茄炒蛋,只有1桌点佛跳墙。老板按“点对的菜加分”给阿明算绩效,阿明发现只要埋头狂练番茄炒蛋就能拿高分,于是佛跳墙越来越生疏。这就像AI模型遇上了类别不平衡:多数类样本把模型“喂饱”了,少数类却一直被忽视。Focal Loss就是那位睿智的老师傅——他不改菜单,只改评分方式:你已经做得很好的菜,不再额外加分;做得越差的菜,越要加大训练力度。如此一来,学徒被迫把精力分给那些容易被搞砸的功夫菜。本文就带你拆解这套“因材施教”的评分法,看懂它如何让模型在长尾数据上不再偏科。
对AI从业者而言,Focal Loss是处理样本不平衡问题的“标配武器”。掌握它的原理与调参,能让你在目标检测、医疗诊断、工业质检等少数类稀缺的真实场景中显著提升模型表现,也是面试中展示深度的热门考点。
可视化演示
通过CE与Focal Loss曲线对比、长尾分布动画和gamma参数调节,直观展示Focal Loss如何通过难样本挖掘攻克类别不平衡。
本节配有交互动效(进入视口后自动加载,约 3KB)。
CE vs Focal Loss曲线 标准CE:易样本仍贡献大量损失 Focal Loss:γ抑制易样本损失权重 FL(p_t) = −α(1−p_t)^γ log(p_t) γ越大,易样本抑制越强
1. 不平衡之痛
阿明练厨艺的第一天,老板递给他一张“错题本”:每道菜做错了就记一笔,做对了不加分也不减分。按理说这种“纠错式训练”很公平,可问题出在菜单结构上——客人点番茄炒蛋的次数是佛跳墙的99倍。阿明每天记录的错题几乎全是番茄炒蛋的火候问题,佛跳墙的失误一星期都轮不到一次,他自然觉得“把番茄炒蛋练好就万事大吉了”。这种“订单失衡”在AI世界里无处不在:自动驾驶罕见障碍物、银行欺诈交易、工厂瑕疵品,少数类往往才是真正要命的问题。
在深度学习里,“错题本”对应交叉熵损失函数。它对多数类和少数类样本一视同仁地计算误差,可误差总和被多数类牢牢把持。如果1000个样本里只有10个是正类,那么每次梯度更新时,负类的贡献可能占到90%以上,模型为了尽快降低总损失,就会倾向于把一切输入都判成负类——准确率虚高,可少数类一个都预测不出来。
回到厨房:错题本的设计本身没错,错的是“每道菜占同样篇幅”。如果老板想拯救佛跳墙,得让错题本更偏心——这正是Focal Loss的出场理由。
- 真实标签 y告诉模型这个样本属于哪个类,正类记为1,负类记为0。
- 预测概率 p模型对正类的信心值,范围为0到1,越接近1越有把握。
- 对数惩罚预测越离谱(概率趋近0),对数项的绝对值越大,扣分越狠。
- 类别交叉求和正类只关心第一项,负类只关心第二项,两部分相加才是完整损失。
2. 核心思想
老师傅看了阿明的错题本,提出一个反直觉的改法:“番茄炒蛋你已经九成把握做对了,以后做对了不再奖励,做错了也只轻轻扣一分;佛跳墙每次练习都记双倍错题,逼你反复琢磨。”这就是Focal Loss的核心——降低易分样本的损失权重,把训练重心推向难分样本。
Focal Loss在交叉熵前面挂了一个“调制因子”$(1-p_t)^\gamma$。这里的$p_t$代表模型对该样本真实类别的置信度:如果模型对某个番茄炒蛋样本有95%把握做对,$p_t$就是0.95;如果佛跳墙完全没头绪,模型瞎猜概率0.5,$p_t$就是0.5。调制因子的妙处在于:$p_t$越接近1(越容易),$(1-p_t)^\gamma$越小,损失被压得越低;$p_t$越小(越困难),因子越接近1,损失几乎不受影响。
阿明的感受最直接:自从错题本变了规则,番茄炒蛋做对了不再占篇幅,佛跳墙的每个步骤细节都被反复放大咀嚼。模型训练也是如此——多数类里的简单样本不再霸占梯度,少数类的难样本终于有机会被模型真正“记住”。
- 真实类别置信度 $\boldsymbol{p_t}$模型对正确类别给出的概率,它是所有后续调制的基准。
- 平衡权重 $\boldsymbol{\alpha_t}$按类别频率分配的先验权重,用来扳正负类比例,稍后细讲。
- 调制因子 $(1-p_t)^\gamma$Focal Loss的灵魂,按置信度对损失打折。
- 基座 $\log(p_t)$沿用交叉熵的对数惩罚,保证困难样本仍能获得足够的梯度信号。
3. alpha平衡
老师傅发现光“惩罚难度”还不够:佛跳墙就算再难,一星期只练一次,进步还是太慢。于是他给每道菜贴标签——佛跳墙的错题权重×0.75,番茄炒蛋的错题权重×0.25。这相当于在Focal Loss里引入了一个类别天平α:给少数类更大的基础权重,多数类的基础权重被压低。
数学上,$\alpha_t$就像一把有刻度的秤,砝码总重量为1:正类放$\alpha$克,负类就放$1-\alpha$克。RetinaNet那篇论文里最常用的配置是$\alpha=0.25$——看起来很偏心?恰恰相反,因为负类(背景框)数量实在太多,即使每份只乘0.25,累加起来依然可观。$\alpha$管的是“整体类别的初始地位”,它不关心单个样本难不难,只关心这个类别占总人口的份额。
阿明恍然大悟:老板不是不让练番茄炒蛋,而是给它戴上了“低权重手环”——练还是要练,但练错了扣分少,练对了不加分;佛跳墙则戴着“高权重勋章”,每练一次都刻骨铭心。两把尺子配合,厨房的学徒才真正雨露均沾。
- 正类权重当样本真实标签是稀有类别时,给它分配权重α。
- 负类权重当样本是多数类时,权重自动变成互补的$1-\alpha$。
- 互补约束两者之和恒为1,保证天平不会整体倾斜失衡。
4. gamma调制
如果说alpha是“给哪道菜加权重”,那么gamma就是“按熟练度打多少折”。老师傅定了个规矩:做菜成功率超过90%的,损失权重按 $(1-0.9)^2=0.01$ 记——等于白练;成功率刚过50%的,按 $(1-0.5)^2=0.25$ 记——保留四分之一的学习压力。折叠系数就是调制因子$(1-p_t)^\gamma$,它像一个“熟练度滤镜”,自动识别哪些菜已炉火纯青、哪些菜仍需千锤百炼。
当$\gamma=0$时,调制因子恒等于1,Focal Loss退化成带alpha的加权交叉熵,没有任何难易区分;当$\gamma$增大,曲线的右端(高置信度区域)被压得越来越扁,模型几乎不再从简单样本身上学到梯度。这也带来一个隐藏的梯度效应:简单样本的梯度贡献指数级衰减,困难样本的相对梯度占比随之提升,模型被迫把注意力集中在那些“一做就错”的样本上。
阿明后来笑称这规则是“熟菜回避术”:番茄炒蛋闭着眼睛都能做对,损失权重接近0,老师不再盯着它;佛跳墙每次翻车都原原本本记进错题本。于是他的厨艺曲线出现了神奇转折——简单菜不再进步,难菜却突飞猛进,整体水平反而上了一个台阶。
- 置信度评分$p_t$越高代表模型越有把握,取$1-p_t$得到“不熟练度”。
- γ次幂放大不熟练度做次幂运算,γ越大,越熟练的样本被折叠得越狠。
- 极端退火$\gamma=0$时所有样本一视同仁;$\gamma \to \infty$时只有完全不会的样本参与训练。
5. 参数调优
老师傅的评分法有两个旋钮:α管“类别的起始地位”,γ管“熟练度的折扣力度”。怎么拧才合适?RetinaNet的团队在COCO数据集上做过系统实验,发现默认开局 $\alpha=0.25, \gamma=2.0$ 效果最好。但这不等于所有任务都照抄——如果少数类样本特别稀少且难度极大,可以适当把α往0.5以上调;如果发现训练初期损失震荡剧烈,说明γ太大导致简单样本梯度几乎消失,可以降到1.5试试。
实践中的调参套路是“先粗后细”:先在验证集上分别扫γ∈{0.5, 1.0, 2.0, 3.0}(固定α=0.25),挑出最优γ;再固定γ,扫α∈{0.25, 0.5, 0.75}。注意看PR曲线下面积和少数类召回率,而不是总损失。一个直观的数字对比:置信度0.9的简单样本,在γ=2时调制因子只有0.01;置信度0.5的困难样本,调制因子是0.25——后者保留的学习压力是前者的25倍。
阿明把这组数字贴在灶台上:“同样是错题,佛跳墙要记25遍,番茄炒蛋只记1遍。”调参的本质就是调节这个倍率——倍率太小偏科依旧,倍率太大简单任务彻底荒废。找到一个让验证集指标最优的“偏心程度”,才是老师傅的真正功力。
- 高置信度样本模型对简单样本给出0.9的置信度,调制因子被压到0.01。
- 低置信度样本困难样本置信度0.5,调制因子保留0.25。
- 压力倍率两者的学习压力相差25倍,直观展示gamma对难易样本的再分配。
6. 长尾适配
现实中大部分数据集并不只是“两类失衡”,而是像一张长长的菜单:少数几个热门菜霸占头部,大量小众菜稀稀拉拉排在尾巴上。这种“头部类别样本过剩、尾部类别样本稀缺”的分布叫长尾分布。阿明的餐馆菜单上有300道菜,前10道菜占90%的订单,剩下290道菜分走10%的订单——以前他只练前10道就够了,现在老板要求每道菜都得会做。
长尾场景下,Focal Loss的难点在于“尾部类别遗忘”:头部类别每次epoch都能见到大量样本,尾部类别可能几个epoch才露一次脸。单靠loss层面的调制因子,仍难以阻止模型对尾部类别逐渐失忆。一个经典改进思路是引入“有效样本数”概念——同类别的样本存在信息冗余,第n个样本带来的边际信息会随n增加而衰减,用$\beta$控制衰减速度,把“样本数”折算成“有效信息量”。
回到长尾菜单:老板把每道菜的“真实练习次数”按有效样本数折算——尾部冷门菜每练一次都算实打实的一课,头部菜练到第10000次时几乎不再增长经验值。Focal Loss负责“难点优先”,有效样本数负责“稀缺优先”,两者结合让长尾菜单上的每一道菜都被真正关照到。
- 样本数 n该类别在训练集中出现的总次数。
- 衰减系数 β$\beta$越接近1,重复样本的信息衰减越平缓;$N$是数据集总样本数。
- 几何求和把前$n$个样本的有效信息累加,得到该类别的有效样本数。
7. 策略对比
老师傅有三位同行,各自提出拯救佛跳墙的方案。第一位主张“过采样”:把佛跳墙这道菜反复端上桌,练100遍自然就会了。可它有个隐患——翻来覆去练同一道菜,学徒容易把这道菜的固定做法背下来,换个调料就懵了,这就是过采样导致的过拟合。第二位主张“欠采样”:既然番茄炒蛋订单太多,干脆把大部分番茄炒蛋订单扔掉,只留一小部分。这样确实让天平摆正了,但大量订单数据被浪费,模型也学不到番茄炒蛋的丰富变化。
第三位主张“类别加权交叉熵”:给每道菜按订单量配一个固定权重。这比原始方案强,但它是“一刀切”——同一道菜不管做得好不好,权重都一样。Focal Loss的独到之处是在类别权重的“静态天平”上,叠加了“动态难度滤镜”:静态权重管类别失衡,动态滤镜管单样本难易。工程上最聪明的做法是组合拳——先用欠采样砍掉部分冗余头部数据,再用Focal Loss动态压权。数据层面和损失层面的策略并不互斥,搭配使用往往效果最佳。
| 策略 | 机制 | 优点 | 缺点 |
|------|------|------|------|
| 过采样 | 复制少数类样本 | 简单直接 | 易过拟合 |
| 欠采样 | 丢弃多数类样本 | 训练更快 | 丢失信息 |
| 类别加权CE | 固定类别权重 | 稳健基线 | 不区分难易 |
| Focal Loss | 动态难度调权 | 聚焦难样本 | 需调γ/α |
阿明听完三位同行的方案,觉得老师傅最聪明的地方是“不改菜谱,只改评分”——不丢弃任何订单,也不重复刻板训练,只是让每一次失误都以合适的力度印在记忆里。这正是Focal Loss在工程中最受欢迎的原因:不折腾数据,只改一个损失函数。
8. 工程实践
真正上灶台之前,老师傅还给阿明立了三条规矩。第一条:别只盯准确率。番茄炒蛋订单占99%,哪怕阿明完全不会佛跳墙,闭眼乱做也能有99%的“准确率”。要看他有没有真正学会佛跳墙,得看精确率与召回率拧成的F1分数,以及PR曲线下面积。这就像面试时不能只看他“接单量”,要看他“最难的菜做得怎么样”。
第二条:调参顺序有讲究。先固定一个安全的α(如0.25),把γ从0逐步升到2~3,观察验证集上少数类的PR-AUC何时停止上升;再回头微调α。如果γ升到3以后少数类指标突然下滑,多半是简单样本的梯度被压得太狠,模型连基础特征都没学好。第三条:部署后持续监控。线上数据的类别分布会漂移,今天佛跳墙还是冷门菜,明天可能就热门了——所以要在推理链路里记录每类的召回率,定期回头重新校准alpha。
老师傅最后拍了拍阿明的肩膀:“评分法只是手段,真正的标准永远是——顾客点佛跳墙的时候,你端出来的那碗到底能不能打。”对AI工程师来说,Focal Loss只是工具,最终要回答的问题是:少数类样本在真实场景里,到底被识别出了多少。
- 精确率 Precision预测为正类的样本中有多少是真正类。
- 召回率 Recall真实正类中有多少被成功找出。
- 调和平均二者相乘除以相加再乘2,惩罚“只中不全”或“全而不准”的极端模型。
AI 应用场景
目标检测中的前景背景失衡(RetinaNet)
阶段:模型训练与损失函数设计
解决的问题:一阶段目标检测器在图像上铺几万个候选框,绝大多数是背景框。传统交叉熵让背景框的损失淹没了微小的目标框,模型训练半天只会“啥也没检测到”。Focal Loss把大量“容易识别的背景”损失压到接近零,让梯度集中在“像目标但不确定”的困难框上。
具体案例:自动驾驶场景中,一张路面图只有零星几个行人,其余全是道路和天空。RetinaNet用α=0.25、γ=2的Focal Loss把行人检测的AP从交叉熵的30.2%提升到37.8%,在相同推理速度下追平了两阶段检测器。
医学影像中的罕见病筛查
阶段:数据建模与模型评估
解决的问题:罕见病的阳性样本在数据集中可能只有0.5%的比例,模型轻易被阴性样本“带偏”。Focal Loss不仅按类别给权重,还自动给“看起来像病变但医生标注为正常”的难分样本更高学习权重,缓解漏诊。
具体案例:某视网膜OCT影像数据集里,正常样本8000张,罕见的脉络膜新生血管只有200张。引入Focal Loss后,模型对罕见类别的召回率从54%提升到79%,同时保持了正常类别的98%特异度。
工业质检中的缺陷检测
阶段:模型调参与上线部署
解决的问题:流水线上合格品占比超过99.8%,缺陷样本零星出现。传统模型为了把loss降到最低,会把所有产品判为合格——准确率99.8%但缺陷漏检率100%。Focal Loss配合在线难例挖掘,让模型抓住“有划痕但光照不佳”这类模棱两可的缺陷样本。
具体案例:某手机外壳质检线,用Focal Loss替换交叉熵后,划痕类缺陷召回率从61%提升到88%,误检率仅上升0.3%。工程师还发现γ调到2.5、α设为0.3时,细小微裂纹的检出最佳。
Python 演示
import numpy as npimport matplotlibmatplotlib.use("Agg")import matplotlib.pyplot as plt def focal_loss(p, y, alpha=0.25, gamma=2.0): p_t = np.where(y == 1, p, 1 - p) alpha_t = np.where(y == 1, alpha, 1 - alpha) return -alpha_t * np.power(1 - p_t, gamma) * np.log(p_t + 1e-9) def ce_loss(p, y): p_t = np.where(y == 1, p, 1 - p) return -np.log(p_t + 1e-9) def run_demo(): rng = np.random.default_rng(42) n_pos = 100 n_neg = 9000 y = np.concatenate([np.zeros(n_neg), np.ones(n_pos)]) p = rng.beta(0.4, 2.5, size=len(y)) p = np.where(y == 1, np.maximum(0.85, p), p) ce = ce_loss(p, y) fl = focal_loss(p, y) print("CE: pos=%.4f neg=%.4f | pos损失占比=%.2f%%" % (ce[y == 1].mean(), ce[y == 0].mean(), 100 * ce[y == 1].sum() / ce.sum())) print("FL: pos=%.4f neg=%.4f | pos损失占比=%.2f%%" % (fl[y == 1].mean(), fl[y == 0].mean(), 100 * fl[y == 1].sum() / fl.sum())) def plot_curve(): p = np.linspace(0.01, 0.99, 200) ce = -np.log(p) fl = -np.power(1 - p, 2) * np.log(p) plt.figure(figsize=(7, 4)) plt.plot(p, ce, label="CE", color="#818CF8") plt.plot(p, fl, label="FL gamma=2", color="#F43F5E") plt.xlabel("confidence p_t") plt.ylabel("loss") plt.legend() plt.grid(True) plt.savefig("focal_loss_compare.png") if __name__ == "__main__": run_demo() plot_curve() print("曲线图已保存: focal_loss_compare.png")
p_t = np.where(y == 1, p, 1 - p)提取模型对真实类别的置信度:正类用p本身,负类用1-p。alpha_t = np.where(y == 1, alpha, 1 - alpha)按类别分配互补权重,模拟Focal Loss的静态天平α。return -alpha_t * np.power(1 - p_t, gamma) * np.log(p_t + 1e-9)完整Focal Loss公式,加1e-9避免log(0)。np.maximum(0.85, p)模拟正类置信度普遍偏高,代表“多数负类样本其实容易分类”的设定。p = rng.beta(0.4, 2.5, size=len(y))用Beta分布模拟真实模型的预测分布:多数样本置信度偏低,少数样本信心较足。100 * ce[y == 1].sum() / ce.sum()计算正类损失占总损失的百分比,交叉熵下少数类占比极低,Focal Loss下显著提升。
常见误区
误区“既然gamma能压低简单样本的损失,那把gamma设成5甚至10,模型岂不是更专注难样本,效果肯定更好?”
正解gamma过大会让简单样本的梯度几乎归零,模型连“番茄炒蛋的基本火候”都学不到了——地基没打牢,难菜更练不好。实践中gamma=2是RetinaNet调出来的甜点区,超过3以后多数任务性能反而下滑。正确做法是在验证集上做小范围网格搜索,而不是盲目加大。
为何常见:看到“gamma越大曲线右端压得越扁”的示意图,很容易线性外推成“越扁越专注”,忽略了模型需要基础特征打底。
误区“alpha只管类别权重,gamma只管难易调制,两者互不影响,所以先定好alpha再调gamma就行。”
正解二者在损失函数里是乘法耦合关系。gamma增大后,简单负样本的损失被压得极低,此时alpha对“整体正负比例”的影响变小;反过来alpha偏离0.5太远,也会扭曲gamma对不同难度样本的调制效果。RetinaNet的α=0.25、γ=2组合是联合网格搜索出来的,换到新任务最好也做联合调参。
为何常见:人们习惯把参数理解成“一个旋钮管一件事”,但连续乘积公式让它们天然相互牵连。
误区“Focal Loss不是已经解决类别不平衡了吗?那过采样、欠采样都可以删掉了。”
正解Focal Loss在损失层面提升少数类的相对梯度,但并没有增加少数类的绝对样本量。极端长尾下(比如10000:1),少数类一个epoch只出现几次,模型仍会逐渐遗忘。工程上常见做法是“重采样保底 + Focal Loss调权”双管齐下:先动数据,再动损失。
为何常见:论文标题和宣传语容易让人误以为它是“万能药”,忽略它只是损失函数层面的一个组件。
误区“换了Focal Loss以后训练loss降得比原来快很多,看来模型已经学得很好了。”
正解Focal Loss刻意压缩了简单样本的损失数值,所以全局loss的绝对大小本来就会变小——这是“评分标准变了”,不是“能力变强了”。判断模型好坏要看验证集上的PR-AUC、F1、少数类召回率等指标。训练loss降得快但验证集PR-AUC没涨,说明只是把损失曲线“压扁”了而已。
为何常见:训练损失下降是所有深度学习实验中最直观的反馈信号,新手容易忘记损失函数本身已经被改写过。
面试题
Q1. Focal Loss最初主要针对哪类问题设计?
- A.训练速度过慢收敛困难
- B.正负样本数量严重失衡← 正确答案
- C.模型参数量过于庞大
- D.数据标注错误率较高
答案:B。Focal Loss诞生于目标检测场景,核心痛点是候选框中前景与背景数量极度失衡。选项A是优化器问题,C是网络结构设计问题,D是数据质量问题,均与Focal Loss的初衷不符。
Q2. 当gamma=0时,Focal Loss等价于什么?
- A.带alpha值的加权交叉熵← 正确答案
- B.标准的交叉熵损失函数
- C.均方误差回归损失函数
- D.合页损失加入正则惩罚
答案:A。gamma=0时调制因子恒为1,Focal Loss退化为$-\alpha_t \log(p_t)$,即按类别加权的交叉熵。它保留了alpha的类别权重,但失去了难易样本的区分能力。B缺少alpha权重,C、D是其他损失函数。
Q3. 调制因子$(1-p_t)^\gamma$的核心作用是什么?
- A.提升简单样本的损失数值
- B.降低易分样本的损失权重← 正确答案
- C.让所有样本损失一致化
- D.把损失值等比例放大
答案:B。$p_t$越接近1说明样本越容易分类,$(1-p_t)^\gamma$越小,损失被压缩得越狠。A与事实相反,C忽略了调制因子对不同样本的差异化处理,D完全不涉及调制概念。
Q4. alpha_t在Focal Loss中扮演什么角色?
- A.调节正负类整体损失权重← 正确答案
- B.控制梯度优化器学习率
- C.决定网络卷积核个数
- D.修改输入图像的通道数
答案:A。alpha_t按类别频率分配基础权重,正类用α、负类用1-α,相当于“类别天平”。B是学习率调度的职责,C、D分别是网络结构和输入预处理的事,与损失函数无关。
Q5. 下列哪些场景Focal Loss收益最明显?
- A.医疗影像病灶区域稀疏← 正确答案
- B.工业质检瑕疵样本稀少← 正确答案
- C.各类别样本数量均衡
- D.训练数据完全无噪声
答案:AB。医疗影像和工业质检都是典型的正负样本极度失衡场景,Focal Loss能显著提升少数类召回。C在类别均衡时Focal Loss与交叉熵差异很小,D属于数据质量条件,并非Focal Loss的适用优势场景。
Q6. 类别不平衡导致模型偏科的根本原因是什么?
- A.多数类样本在损失中占主导← 正确答案
- B.少数类特征维度偏高
- C.网络激活函数选择错误
- D.数据增强导致分布偏移
答案:A。交叉熵对每个样本等权累加,多数类样本数量巨大,自然占据了梯度更新的大部分份额。模型发现“全判多数类”就能把损失降得很低,于是放弃少数类。B、C、D均不是类别不平衡的特有原因。
Q7. gamma取值过大(如5)可能引发什么问题?
- A.简单样本梯度全部被压没← 正确答案
- B.训练损失数值直接溢出
- C.模型收敛速度大幅提升
- D.少数类精度必然增高
答案:A。gamma过大时$(1-p_t)^\gamma$对高置信度样本趋近于0,简单样本的梯度几乎消失,模型失去学习基础特征的能力。B与gamma无直接关系,C与gamma增大带来的梯度稀疏相矛盾,D中少数类精度会受基础特征缺失拖累而非必然增高。
Q8. 比较Focal Loss与欠采样策略,下列说法正确的是?
- A.FL不丢弃数据保留全部信息← 正确答案
- B.FL训练时间成倍增长
- C.FL无法缓解类别不平衡
- D.FL只适用于二分类任务
答案:A。Focal Loss通过调整损失权重保留全部训练数据,而欠采样会丢弃多数类样本造成信息损失。FL不增加训练时间,能有效缓解不平衡,且在多分类中同样适用,因此B、C、D均错误。
Q9. Focal Loss与类别加权交叉熵相比有哪些区别?
- A.FL额外降低易分样本权重← 正确答案
- B.FL对难易样本自适应调节← 正确答案
- C.两者在数学上完全等价
- D.加权CE对同类别样本固定权重← 正确答案
答案:ABD。加权CE只按类别给固定权重,同一类别内所有样本一视同仁;Focal Loss的调制因子$(1-p_t)^\gamma$让权重随样本置信度动态变化,自动压低易分样本的贡献,因此A、B、D正确,C错误。
Q10. 评估类别不平衡模型时应优先关注哪个指标?
- A.Accuracy整体准确率
- B.PR曲线下面积AP值← 正确答案
- C.模型推理耗时时长
- D.训练集总样本数量
答案:B。类别不平衡时Accuracy会被多数类主导,出现“全猜多数类也有99%准确率”的假象。PR-AUC对少数类的精确率与召回率敏感,能真实反映模型在稀有类别上的表现。C是工程性能指标,D是数据集规模,都与模型效果无关。