Focal Loss:解决长尾图像分类中“多数类太强势”的损失函数

1. 图像分类里为什么需要 Focal Loss?

在真实的图像分类任务中,你经常会遇到:

  • 类别不均衡 / 长尾分布

    头部类别样本很多,尾部类别样本很少(例如 10000:10)。

  • 训练被"容易样本"主导

    多数类样本多、而且往往更容易,模型很快就能把它们分对;但它们数量巨大,导致训练过程中的++梯度贡献仍主要来自这些样本++,尾部类/难样本的信号被淹没。

Focal Loss 的核心目标就是一句话:

降低"容易样本"的损失权重,让训练更关注"难样本"和"少数类"


2. 基线:多分类交叉熵(Cross Entropy)在做什么?

图像分类常见是 多分类 softmax。设:

  • 类别数为 (C)

  • 模型输出 logits 为,为一组实数。++(如果把模型比作一个法官,Logits 就是他心里对各个选项的"原始评分",还没有转换成百分比形式)++

  • softmax 概率为

  • 真实标签为

softmax公式定义:。++(将 Logits 映射到 [0, 1]之间,且总和为 1)++

多分类交叉熵:

交叉熵在长尾场景的问题:

交叉熵会对每个样本都"认真对待"。当多数类样本数量巨大时,即使它们早已变成 easy samples( 接近 1),总体上仍会累积出大量损失/梯度贡献,使优化方向更偏向多数类。


3. Focal Loss:在交叉熵上加一个"聚焦因子"

Focal Loss 的关键做法是:给交叉熵乘上一个随样本难度变化的权重项。

在多分类中,直接令,真实类别概率:

3.1 多分类 Focal Loss 公式

其中:

  • 聚焦参数(focusing parameter),控制"压制 easy 样本"的力度

  • 类别权重(每一类一个权重),用来缓解类别不均衡


4. 这条公式到底解决了什么?

关键在这项:

  • 当样本很容易(模型很自信且正确):

    ,损失被大幅降低

  • 当样本很难(模型不自信或预测错):

    ,损失基本保留,模型会更关注这些样本

给一个"可读性强"的小例子(不依赖公式渲染也能看懂):

  • ,则

    easy 样本的损失会被压到原来的万分之一量级

  • ,则

    难样本损失仍然很大,继续驱动模型学习


5. 两个超参数怎么设?(图像分类实战建议)

5.1 :聚焦难样本的强度

  • :Focal Loss 退化为"带类权重的交叉熵"

  • 常用范围:

  • 常见默认:

经验判断:

  • 如果你发现 多数类精度很高、少数类 recall 很差 ,可尝试增大

  • 如果训练变慢、或对噪声数据很敏感,可尝试减小

5.2 :处理类不均衡(长尾分类里很关键)

在图像分类长尾中, 通常设置为"每类一个权重"。常见做法包括:

  • 按类别频次的反比或幂次:

6. 在图像分类任务里,Focal Loss 适合哪些场景?

  • 长尾分类(最典型):尾部类别样本少,模型容易忽略

  • 难例较多:例如细粒度分类(鸟类、车型)、易混淆类别多

  • 你关心宏平均指标:如 macro-F1、balanced accuracy,而不只是 overall accuracy

++不太建议直接上 Focal Loss 的情况:++

  • 数据比较均衡、且训练中不存在"easy 样本淹没问题"

  • 标签噪声较多:Focal Loss 会更强调"难样本",噪声样本往往也"难",可能被放大


7. 总结

Focal Loss 可以看作是"交叉熵 + 动态难度加权"。在长尾图像分类中,它通过 自动降低大量 easy 样本的影响,让训练把更多注意力放在难样本与少数类上 ;配合 的类别权重,通常能显著改善尾部类别的召回与 macro 指标( 确保那些样本稀少的类别也能被正确地识别*)*。

相关推荐
财富自由且长命百岁1 天前
移动端老兵转型端侧 AI:第一周,我跑通了 ResNet50 推理
机器学习
美酒没故事°1 天前
Open WebUI安装指南。搭建自己的自托管 AI 平台
人工智能·windows·ai
云烟成雨TD1 天前
Spring AI Alibaba 1.x 系列【6】ReactAgent 同步执行 & 流式执行
java·人工智能·spring
AI攻城狮1 天前
用 Obsidian CLI + LLM 构建本地 RAG:让你的笔记真正「活」起来
人工智能·云原生·aigc
鸿乃江边鸟1 天前
Nanobot 从onboard启动命令来看个人助理Agent的实现
人工智能·ai
lpfasd1231 天前
基于Cloudflare生态的应用部署与开发全解
人工智能·agent·cloudflare
俞凡1 天前
DevOps 2.0:智能体如何接管故障修复和基础设施维护
人工智能
comedate1 天前
[OpenClaw] GLM 5 关于电影 - 人工智能 - 的思考
人工智能·电影评价
财迅通Ai1 天前
6000万吨产能承压 卫星化学迎来战略窗口期
大数据·人工智能·物联网·卫星化学
liliangcsdn1 天前
Agent Memory智能体记忆系统的示例分析
数据库·人工智能·全文检索