Introduction
- 作者认为在 FGVC 中,不仅 “细粒度” 的定义受专业知识影响,图像的质量也会影响标签的粒度,例如分辨率较低的图像往往会被分配更粗粒度的标签,这增加了构造单一粒度分类数据集的难度。因此,受到专业知识和图像分辨率的影响,样本可能在任意标签层级上被观察到,例如,一张低分辨率的信天翁图像可能只会被标上粗粒度标签 [“Albatross”] 而非细粒度标签 [“Albatross”, “Laysan Albatross”]。因此,在传统的层次多粒度分类问题中,样本都具有完整的从粗粒度到细粒度的多个层次标签,而作者要解决的问题是样本可能在任意标签层级上被观察到的层次多粒度分类问题 (samples are labeled at any level of the hierarchy),这样就可以有效利用那些只包含粗粒度标签的样本
Method
Hierarchical Residual Network (HRN)
- 模型架构包含 backbone、hierarchical feature interaction module 和 two parallel out-put channels。backbone 采用 ResNet-50。层次特征交互模块包括 granularity-specific blocks 和 residual connections,每个标签层级都对应一个 granularity-specific block 用于抽取该层级的特征,残差连接用于进行跨层级特征交互。并行输出体现在叶结点层级,第 1 个输出通道 O H i e r O_{Hier} OHier (sigmoid 输出) 用于计算 probabilistic classification loss,第 2 个输出通道 O C E O_{CE} OCE (softmax 输出) 用于计算 multiclass cross-entropy loss,该损失项被用于保证细粒度类别互相排斥 (mutually exclusive)
Loss Function
- Probabilistic Classification Loss: 设
n
n
n 为标签数,
y
∈
{
0
,
1
}
n
y\in\{0,1\}^n
y∈{0,1}n 为标签向量。给定输入图像
x
x
x,联合概率为
P
r
(
y
∣
x
)
=
P
~
(
y
∣
x
)
Z
(
x
)
Pr(y|x)=\frac{\tilde P(y|x)}{Z(x)}
Pr(y∣x)=Z(x)P~(y∣x)
其中, x ˉ i \bar x_i xˉi 为 O H i e r O_{Hier} OHier 中标签 i i i 对应的 sigmoid 输出, P ~ ( y ∣ x ) \tilde P(y|x) P~(y∣x) 为非归一化的概率分布, Z ( x ) Z(x) Z(x) 为归一化因子, ϕ i ( x ˉ i , y i ) = e x ˉ i δ y i = 1 \phi_i(\bar x_i,y_i)=e^{\bar x_i\delta_{y_i=1}} ϕi(xˉi,yi)=exˉiδyi=1 (这样定义的联合概率有一个不合理的地方。由于 x ˉ i ∈ ( 0 , 1 ) \bar x_i\in(0,1) xˉi∈(0,1),有 ϕ i ( x ˉ i , 1 ) > 1 \phi_i(\bar x_i,1)>1 ϕi(xˉi,1)>1,因此样本属于粗粒度类别的联合概率一定大于样本属于细粒度类别的联合概率), ψ i , j ( y i , y j ) \psi_{i, j}\left(y_{i}, y_{j}\right) ψi,j(yi,yj) 为标签层次带来的约束关系:
由联合概率可以得到 x x x 在标签 i i i 被观察到的边际概率:
细粒度标签对应的边际概率依赖于其所有父标签对应的 sigmoid 输出 (enables the parents’ scores to impact the descendants’ decisions),粗粒度标签对应的边际概率依赖于其所有子标签对应的 sigmoid 输出 (aggregating the information from all its subclasses),因此边际概率同时融合了不同粒度分类任务的特征信息。当图像 x x x 在不同标签层次上被观察到时,我们的目标就是最大化对应的边际概率,也就是最小化如下损失函数:
其中, m m m 为训练样本数, y ( l ) y^{(l)} y(l) 为样本 l l l 的标签向量, g ( l ) ∈ { 1 , . . . , n } g^{(l)}\in\{1,...,n\} g(l)∈{1,...,n} 为被观察到标签的索引。如上的损失项可以很容易地用矩阵乘法进行计算:设 X ∈ R n × k X\in\mathcal R^{n\times k} X∈Rn×k 为 O H i e r O_{Hier} OHier 的 sigmoid 输出, n n n 为标签数, k k k 为 batch size。 S ∈ R ( n + 1 ) × n S\in\mathcal R^{(n+1)\times n} S∈R(n+1)×n 代表了标签向量所有可能取得的 n + 1 n+1 n+1 种情况 (We traverse all legal assignments by assigning each label a value of 1, along with an assignment that is all zeros),每一行都是一个符合类别层次约束的标签向量。则非归一化的联合概率为 J = exp ( S X ) J=\text{exp}(SX) J=exp(SX) (如果按照这样的计算方法,联合概率为各个标签的输出概率之和而非概率之积),归一项 z z z 为 J J J 的列和。要获得样本 j j j 在标签 i i i 的边际概率,就只需要从 S S S 中找到所有 i i i 列不为 0 的行号 S [ : , i ] > 0 S[:, i] > 0 S[:,i]>0,然后将 J J J 的第 j j j 列中这些行号对应的元素相加,再除以 z z z 即可 - Combinatorial Loss: 损失项包括 probabilistic classification loss 和 multiclass cross-entropy loss。设置 multiclass cross-entropy loss 的原因是作者发现当具有细粒度标签的样本数量比较少的时候,probabilistic classification loss 就不能很好地对细粒度类别进行分类,因此作者增设了 multiclass cross-entropy loss 来增加细粒度分类损失的权重 (further increase the discriminative power for fine-grained leaf classes)
Experiments
- 实验采用 ResNet-50 作为 backbone,metrics 采用 FGVC 中常用的 overall accuracy (OA) 和 HMC 中常用的
A
U
(
P
R
C
‾
)
AU(\overline{PRC})
AU(PRC) (the area under the average precision and recall curve),对于给定阈值,
P
R
C
‾
\overline{PRC}
PRC 曲线上的一个点
(
P
r
e
c
‾
,
R
e
c
‾
)
(\overline{Prec},\overline{Rec})
(Prec,Rec) 为
此外,实验中还模拟了样本在不同标签层级被观察到的情况。为了模拟缺乏专业知识的情况,作者选择了训练集中 0%, 30%, 50%, 70%, 90% 的样本,将它们的细粒度标签替换为对应的父标签 (relabel)。为了模拟图像质量不佳的情况,作者在 relabel 之后还使用最近邻插值将所选图像的分辨率缩小为 1/4 - Ablation Study
- Comparison with State-of-the-art Methods:作者主要与 3 种 SOTA 的 HMC 模型 HMC-LMLP、HMCN、C-HMCNN 和挖掘标签层次关系的 SOTA FGVC 模型 Chang
et al. (Your “Flamingo” is My “Bird”) 进行了比较。作者认为,Chang et al. 只使用层级分类头捕捉了标签之间的互斥关系,C-HMCNN 只捕捉了父子标签之间的包含关系,而作者提出的模型通过网络结构和损失函数的改进,能够同时捕捉标签之间的互斥和包含关系 (这里 CUB-200-2011 数据集的训练集 / 测试集划分和正常的不一样,所以这里的指标会比别的论文里的高很多,因此只能比较表里的方法)
- Generate Relabeled Images by Reducing Image Resolution
- Sum up
- Evaluation on Traditional FGVC Setting