焦损函数(Focal Loss)与RetinaNet目标检测模型详解


📖阅读时长:19分钟

🕙发布时间:2025-02-14

近日热文:全网最全的神经网络数学原理(代码和公式)直观解释
欢迎关注知乎和公众号的专栏内容
LLM架构专栏
知乎LLM专栏
知乎【柏企
公众号【柏企科技说】【柏企阅文

目前,精度最高的目标检测器大多基于由R-CNN推广的两阶段方法,即对稀疏的候选目标位置集应用分类器。相比之下,在规则、密集的可能目标位置采样上应用的单阶段检测器,虽具有速度更快、结构更简单的潜力,但到目前为止,其精度仍落后于两阶段检测器。

造成这种情况的主要原因是,在密集检测器的训练过程中,会遇到极其严重的前景-背景类别不平衡问题。

焦损函数(Focal Loss)旨在通过重塑标准交叉熵损失函数,来解决这种类别不平衡问题。它会降低对分类良好样本所分配的损失权重。

为了评估这种损失函数的有效性,作者设计并训练了一个名为RetinaNet的简单密集检测器。

焦损函数详解

让我们从二分类的交叉熵损失函数开始。

交叉熵损失(Cross Entropy Loss)

$$CE(p, y) = \begin{cases} -\log(p) & \text{if } y = 1 \\ -\log(1 - p) & \text{otherwise} \end{cases}$$
其中,$y \in \{1, -1\}$ 表示真实类别,$p \in [0, 1]$ 是模型对标签 $y = 1$ 类别的估计概率。

为了表示方便,我们定义 $p_t$:
$$p_t = \begin{cases} p & \text{if } y = 1 \\ 1 - p & \text{otherwise} \end{cases}$$
因此:
$$CE(p, y) = CE(p_t) = -\log(p_t)$$

这种损失函数有一个显著特点,即使是那些很容易分类的样本($p_t << 0.5$),也会产生不可忽视的损失值。当对大量容易分类的样本的损失进行求和时,这些小的损失值可能会掩盖掉稀有类别的损失。

平衡交叉熵(Balanced Cross Entropy)

解决类别不平衡的一种常用方法是,为类别1引入加权因子 $\alpha \in [0, 1]$,为类别 -1引入 $1 - \alpha$ 。在实际应用中,$\alpha$ 可以通过逆类频率来设置,或者作为超参数通过交叉验证来确定 。为了表示方便,我们类似于定义 $p_t$ 的方式来定义 $\alpha_t$ 。我们将 $\alpha$ 平衡的交叉熵损失写为:
$$CE(p_t) = -\alpha_t \log(p_t)$$

焦损函数定义

虽然 $\alpha$ 平衡了正负样本的重要性,但它并没有区分容易分类和难分类的样本。作者提出在交叉熵损失上添加一个调制因子 $(1 - p_t)^{\gamma}$,其中 $\gamma \geq 0$ 是可调节的聚焦参数。

因此,焦损函数可以定义为:
$$FL(p_t) = -(1 - p_t)^{\gamma} \log(p_t)$$

焦损函数有两个特性:

  1. 当一个样本被误分类且 $p_t$ 很小时,调制因子接近1,损失不受影响。当 $p_t \to 1$ 时,该因子趋近于0,对分类良好样本的损失进行了降权处理。
  2. 聚焦参数 $\gamma$ 可以平滑地调整对容易分类样本的降权程度。当 $\gamma = 0$ 时,$FL$ 等同于 $CE$;随着 $\gamma$ 的增加,调制因子的作用也会增强(在实验中,$\gamma = 2$ 效果最佳,并且RetinaNet对 $\gamma \in [0.5, 5]$ 具有较好的鲁棒性)。

在实际应用中,会使用焦损函数的 $\alpha$ 平衡变体:
$$FL(p_t) = -\alpha_t(1 - p_t)^{\gamma} \log(p_t)$$

RetinaNet检测器

RetinaNet是一个单一、统一的网络,由骨干网络和两个特定任务的子网络组成。骨干网络负责计算整个输入图像的卷积特征图,它是一个现成的卷积网络。第一个子网络对骨干网络的输出执行卷积目标分类;第二个子网络执行卷积边界框回归。

特征金字塔网络骨干(Feature Pyramid Network Backbone)

简而言之,特征金字塔网络(FPN)通过自上而下的路径和横向连接来增强标准卷积网络,使网络能够从单一分辨率的输入图像中高效构建丰富的多尺度特征金字塔。金字塔的每一层都可用于检测不同尺度的目标。

分类子网(Classification Subnet)

分类子网预测每个空间位置上,$A$ 个锚框和 $K$ 个目标类别中每个类别目标存在的概率。

边界框回归子网(Box Regression Subnet)

与目标分类子网并行,我们在金字塔的每一层附加另一个小型全卷积网络(FCN),目的是在存在真实目标的情况下,回归从每个锚框到附近真实目标的偏移量。

论文推荐

Feature Pyramid Networks for Object Detection (论文链接:1708.02002)

## 推荐阅读
1. DeepSeek-R1的顿悟时刻是如何出现的? 背后的数学原理
2. 微调 DeepSeek LLM:使用监督微调(SFT)与 Hugging Face 数据
3. 使用 DeepSeek-R1 等推理模型将 RAG 转换为 RAT
4. DeepSeek R1:了解GRPO和多阶段训练
5. 深度探索:DeepSeek-R1 如何从零开始训练
6. DeepSeek 发布 Janus Pro 7B 多模态模型,免费又强大!

本文由mdnice多平台发布


柏企科技圈
15 声望4 粉丝