目录
Chapter 3 方法:将标签层次结构注入CNN分类器
在本章中,我们提出了基于CNN的模型,使用卷积层来提取视觉特征和分类图像。CNN本身的体系结构没有被修改,而是更多地关注如何使用不同的概率分布公式(跨标签)来增量地向模型传递更多关于标签层次结构的信息。本章详细描述了5个模型,其中第一个模型是对标签层次结构中的任何信息都不可知的基线。其余4个模型逐渐向模型提供更多信息,例如层次结构中的层数和不同标签之间的边。
3.1 层次不可知分类器
作为baseline,我们使用了最先进的卷积神经网络(CNN)图像分类。为此,我们使用了[18]提出的残差网络模型。基线对数据集中以标签层次结构形式提供的任何信息都是不可知的。换句话说,它以不相关的方式处理来自不同级别的类标签,只有图像可供模型用于预测层次结构中每个级别的标签。不同级别的标签没有任何特殊意义。
该模型执行分类。表示个级别上的所有标签,表示第级别上不同标签的数量。它对每一个标签都使用一对一策略。
这里的,,,以及。
,其中是模型最后一层的logit(标准化并解释为概率分布),该模型以输入图像为准。
图3.1.层次不可知分类器的模型示意图。该模型是一个多标签分类器,不利用任何关于标签中是否存在显式层次结构的信息。
3.1.1 每类决策边界(PCDB)
由于每个图像都与多个标签关联,我们将采用多标签方法,其中对单个图像的多个预测是有效的。对于每个类别,阈值都根据验证集上的micro-F1性能进行调整[44]。
在个类的评估期间,如果,则标签被分配给图像,分别针对标签进行调整,并设置为最大化该类验证集上F1分数表现的值。
3.1.2 一刀切的决策边界(OFADB)
在这种变体中,不是每个类都有不同的决策边界,而是只使用一个决策边界。为了在不同类别之间调整单个阈值,预测分数和不同类别之间的ground truth标签一起使用,以找到使验证集上的micro-F1分数最大化的阈值。
在个类的评估期间,如果,标签被分配给图像,, 这个版本的模型使用全局阈值,而不是每类。该值设置为在所有类的整个验证集上最大化F1分数性能的值。
3.2 每级分类器
对于下一种方法,将向网络提供来自标签层次结构的更多信息。在层次不可知模型的情况下,我们将其替换为个分类器,其中每个分类器处理级别中存在的所有标签,而不是单一的方式分类器。对于这项任务,我们使用多标签软损失。
式中,是第级的真实标签。,。
,其中是从作为输入图像的模型f的最后一层的logit。是预测logits 的连续子序列,即。
图3.2.每级分类器的模型示意图(=个 路分类器)。该模型通过明确预测给定图像的每个级别的单个标签,使用有关标签层次结构的信息。
3.3 边缘化(自底向上)
在基线(层次不可知分类器)中,该模型忽略标签中是否存在层次结构。在每级分类器中,每个样本都有个标签(由于级层次结构),这一事实通过使用个这样的独立多类分类器构建到模型的设计中。每级分类器仍然不知道这些级别是如何排序的,并且对不同级别的节点之间存在的关系漠不关心。通过边缘化方法,每个节点的父节点信息可供模型使用。
分类器被一个单独的分类器取代,该分类器在层次结构的最后一级上输出概率分布。而不是为剩下的级都设置一个分类器,我们通过对子节点的概率求和来计算每个节点的概率分布。尽管该网络没有明确预测这些分数,但使用交叉熵损失,模型仍然会因级层次结构中的错误预测而受到惩罚。
式中,是第级的真实标签。,。
,其中,是模型的最后一层的logit,该模型取输入图像。
这是等式(3.3)的相同损失,然而,计算每个的方式不同。不同的是,在这里,模型预测的概率分布仅在叶子标签上。为了获得非叶标签的概率,将直接子标签的概率相加,这种边缘化作为父标签的概率。通过这种方式,可以为层次结构中的每个级别获得有效的概率分布。
其中,是第级中的第个顶点(节点)。
除最后一级外,所有级别都使用公式(3.5)计算其标签的概率。
对于最后一级,我们通过直接使用模型的logits输出来计算叶节点上的概率分布。该计算在公式(3.6)中使用softmax表示。一旦确定,可以计算。因此,我们以自下而上的方式计算完整层次结构的概率:从最底层开始,移动到上层。
图3.3.边缘化方法的模型示意图。该模型没有预测每个级别的标签,而是在层次结构的叶子上输出概率分布。非叶节点的概率由直接后代的边缘化决定。边缘化方法模拟了不同节点之间的连接方式,以及标签层次结构中存在L层的事实 .
3.4 掩模每级分类器
在层次结构的上层,每个标签有更多的数据,可供选择的标签更少。这使得分类相对准确,更接近层次结构的根源。该模型以自上而下的方式利用有关节点之间父子关系的知识。
与边缘化(自下而上)不同,在这里,我们有个分类器,每个层级一个。对于第一个层次,该模型预测了logits中得分最高的类别。对于后继层次,有关模型的信息,即它对的预测是可以利用的。与其单纯预测级别得分最高的标签(在所有可能的logit中进行比较),不如将所有节点(除了级别预测标签的子节点)都加上掩码。这转化为计算级别中原始节点子集的损失。在父子关系可用的情况下,并假设模型正确预测父标签(在层次上),唯一可能的标签是该预测父项的子项。如前所述,上层的分类更准确,因为我们以自上而下的方式进行分类,这是一个合理的假设。另一项研究表明了这一点[21]。对于最后的级别,只有一个子集(由预测父级的子级组成)相互比较,忽略其余部分。
在训练期间,损失由符合ground truth的父节点的子节点计算。即使模型错误地预测了父节点,我们仍然使用ground truth来惩罚其对子节点的预测。
对于具有未知ground truth的数据,即在评估期间,模型通过屏蔽与不可能的标签相对应的节点,使用来自级的预测来推断级别。
式中,是第i级的真实标签。,。。
是第i级的第j个顶点(节点),因此是对应于i-1层ground truth的节点。
,其中是从作为输入图像的模型f的最后一层的logit。是预测logits 的连续子序列,即。
图3.4.掩码逐层分类器的模型示意图。该模型的训练方式与L 路分类器完全相同。在进行预测时,我们假设模型在较高层次上的性能优于较低层次。记住这一点,当预测较低级别的标签时,假设模型正确预测了上面级别,则模型对上面级别的预测将用于屏蔽所有不可行的后代节点。这只会导致上述级别中预测标签的后代之间的竞争。
3.5 层次Softmax
该模型预测层次结构中每个节点的logit。Logit由每组兄弟节点的专用线性层预测,因此在这些组中的每一组上都有一个单独的概率分布。这是以父节点为条件的概率,即,,以至于。
在自然语言处理的背景下,之前的工作[31,29]也讨论过类似的问题。但他们的主要目标是降低超大词汇表的计算复杂性。在计算机视觉的背景下,这是相对未被探索的,我们提出分解概率分布并预测层次结构中每一组直系后代的条件分布,以便利用标签层次结构并提高性能。
矢量表示只对应于节点的所有子节点的logits。对于给定节点的子节点集,模型F会输出条件概率分布。
,其中,是给定父节点的每个子节点的条件概率,。F取输入图像I。
为了计算叶节点上的联合分布,从根节点到每个叶节点的路径上的概率相乘。
其中,是的父节点。分别属于第i级和i+1级的节点。
交叉熵损失仅在叶节点上直接计算,但由于叶节点上的分布隐式使用内部节点进行计算,因此间接优化了所有级别,性能逐渐提高(在所有级别上)。
式中,是第i级的真实标签。,。
公式(3.11)可以重写为公式(3.12),因为当已知时,到根的路径是唯一的,剩余的已经被定义。