起因
在 IML 领域中,通常使用 F1 来对模型的 Pixel-level (Location)
性能进行评估。
HIFI_IFDL项目中,有一个issue讨论了F1
score的选择问题:
提出者认为,当使用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 \cdot precision \cdot 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{1}{2} \sum_{i=1}^{2} F1_i = \frac{F1_{positive} +
F1_{negative}}{2}
\]
针对负样本来说,定义\(F1_{0}\)为负样本的F1 score,\(F1_{1}\)为正样本的F1 score
首先计算\(F1_{0}\)
\[
F1_{0} = \frac{2 \cdot precision_{0} \cdot recall_{0}}{precision_{0} +
recall_{0}}
= \frac{2TN}{2TN + FP + FN}
\]
然后计算\(F1_{1}\)
\[
F1_{1} = \frac{2 \cdot precision_{1} \cdot recall_{1}}{precision_{1} +
recall_{1}}
= \frac{2TP}{2TP + FP + FN}
\]
所以Macro_F1 score为
\[
\begin{align*}
MacroF1 & = \frac{F1_{0} + F1_{1}}{2} \\
& = \frac{\frac{2TN}{2TN + FP + FN} + \frac{2TP}{2TP + FP + FN}}{2}
\\
& = \frac{TP}{2TP + FP + FN} + \frac{TN}{2TN + FP + FN} \\
\end{align*}
\]
要比较MacroF1和 \(F1_{1}\)
(就是标准的 \(F_1\),只计算了正样本)的大小,只需要比较MacroF1和
\(F1_{1}\) 的差值即可。
\[
\begin{align*}
MacroF1 - F1_{1} & = \frac{TP}{2TP + FP + FN} + \frac{TN}{2TN + FP +
FN} - \frac{2TP}{2TP + FP + FN} \\
& = \frac{TN}{2TN + FP + FN} - \frac{TP}{2TP + FP + FN} \\
\end{align*}
\]
让两个两个分数都分子分母同时除以分子,得到
\[
\begin{align*}
MacroF1 - F1_{1} & = \frac{1}{2+\frac{FP+FN}{TN}} -
\frac{1}{2+\frac{FP+FN}{TP}}
\end{align*}
\]
由于\(FP+FN >
0\),所以只需要看TP和TN的大小关系即可。
由于在IML领域中,通常背景的面积是大于伪造区域的面积的,一般模型也可以很容易检测出背景,所以通常情况下有\(TN > TP\),所以\(MacroF1 - F1_{1} > 0\), 即MacroF1
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来评估模型的性能。