Featured image of post 图像篡改检测性能指标虚高

图像篡改检测性能指标虚高

起因

在 IML 领域中,通常使用 F1 来对模型的 Pixel-level (Location) 性能进行评估。

HIFI_IFDL项目中,有一个issue讨论了F1 score的选择问题:

alt text

提出者认为,当使用average = ‘macro’时,F1 score会比使用average = ‘binary’时更高。

When you use “average = ‘macro’”, will the F1 score be inflated higher than normal (average = ‘binary’)?

在IMDLBenco项目中也针对这个问题做了一个实验,表明使用average = ‘macro’时,F1 score确实会比使用average = ‘binary’时更高。

数学分析

那么从数学上如何解释这个现象呢?首先要知道 F1 score 和 Macro-F1 score 的定义。

F1 Score

F1 score是针对二分类问题提出的评价指标,是precision和recall的调和平均数,定义如下:

$$ F1 = \frac{2 \times Precision \times Recall}{Precision + Recall} $$

其中,precision和recall的定义如下:

$$ Precision = \frac{TP}{TP + FP} $$

$$ Recall = \frac{TP}{TP + FN} $$

在IMDL中,正样本是伪造区域(前景),负样本是真实区域(背景)。

Macro-F1 Score

Macro-F1 score是对每个类别的F1 score取平均值,定义如下:

$$ Macro-F1 = \frac{1}{N} \sum_{i=1}^{N} F1_i $$

为什么在IML中Macro-F1 Score会比F1 Score高?

由于IML是一个二分类问题,所以N=2,Macro-F1 score的定义如下:

$$ Macro-F1 = \frac{F1_{positive} + F1_{negative}}{2} $$

首先计算 $F1_{positive}$ 和 $F1_{negative}$ :

$$ \begin{align*} F1_{positive} & = \frac{2 \times Precision_{positive} \times Recall_{positive}}{Precision_{positive} + Recall_{positive}} \\ & = \frac{2TN}{2TN + FN + FP} \end{align*} $$

$$ \begin{align*} F1_{negative} & = \frac{2 \times Precision_{negative} \times Recall_{negative}}{Precision_{negative} + Recall_{negative}} \\ & = \frac{2TP}{2TP + FP + FN} \end{align*} $$

所以,Macro-F1 score的计算公式如下:

$$ \begin{align*} Macro-F1 &= \frac{F1_{positive} + F1_{negative}}{2} \\ & = \frac{\frac{2TN}{2TN + FN + FP} + \frac{2TP}{2TP + FP + FN}}{2} \\ & = \frac{TP}{2TP + FP + FN} + \frac{TN}{2TN + FN + FP} \end{align*} $$

要比较Macro-F1和F1的大小,可以将Macro-F1和F1相减:

$$ \begin{align*} Macro-F1 - F1 &= \frac{TP}{2TP + FP + FN} + \frac{TN}{2TN + FN + FP} - \frac{2TP}{2TP + FP + FN} \\ & = \frac{TN}{2TN + FN + FP} - \frac{TP}{2TP + FP + FN} \\ \end{align*} $$

让两个分数都分子分母同时处以分子,得到:

$$ \begin{align*} Macro-F1 - F1 & = \frac{1}{2+\frac{FP+FN}{TN}}-\frac{1}{2+\frac{FN+FP}{TP}} \end{align*} $$

由于FP和FN都是正数,所以$\frac{FP+FN}{TN} > 0$,$\frac{FN+FP}{TP} > 0$,所以只需要看TP和TN的大小关系。

alt text

由于在IML领域中,通常背景的面积是大于伪造区域的面积的,一般模型也可以很容易检测出背景,所以通常情况下有$TP > TN$,所以有:

$$ \begin{align*} Macro-F1 - F1 & = \frac{1}{2+\frac{FP+FN}{TN}}-\frac{1}{2+\frac{FN+FP}{TP}} > 0 \end{align*} $$

即Macro-F1 score会比F1 score高。

IML任务中应该使用哪个?

知道了MacroF1会比F1高,那么在IML领域中,我们应该使用哪个呢?

在IML领域中,背景像素与伪造区域像素的数量并不平衡,背景像素点是大于伪造区域像素点的,一个模型在一定范围内模型倾向于多检测出背景像素点可以使得Macro-F1 score有一定的提升,但是从实际效果上来说模型更难完整的检测出伪造区域,所以在IML领域中,我们应该使用F1 score来评估模型的性能。

另外,许多IML的Paper中也使用F1 score来评估模型的性能,为了评价指标的一致性,我们也应该使用F1 score来评估模型的性能。

结论

在IML领域中,当使用average = ‘macro’时,F1 score会比使用average = ‘binary’时更高,这是因为Macro-F1 score会综合考虑背景区域的点和伪造区域的点是否被正确分类,而F1 score只考虑伪造区域的点是否被正确分类。但是在IML领域中由于背景区域的面积通常大于伪造区域的面积且模型更容易检测出背景区域,相当于给背景分类任务增加了权重,所以Macro-F1 score会比F1 score高。

在IML领域中背景像素与伪造区域像素的数量并不平衡,在IML领域中,我们应该使用F1 score来评估模型的性能。同时,为了指标的一致性,我们也应该使用F1 score来评估模型的性能。

不积跬步无以至千里
使用 Hugo 构建
主题 StackJimmy 设计