【读论文】MUTUAL-CHANNEL LOSS

论文题目:《The Devil is in the Channels: Mutual-Channel Loss for Fine-Grained Image Classification》

链接:https://arxiv.org/abs/2002.04264

来源:IEEE TIP2020

细粒度分类的主要思想是找出各个子类间的可区分特征,因此文章指出要尽早在通道上进行钻研,而不是从合并的特征图区分,并提出了互通道损失(Mutual-Channel Loss)。该损失包含2个部分:判别组件(discriminality component)和多样性组件(diversity component),即2个分支。整个框架结构如下图所示,Conv.layers表示一系列的卷积层,用于特征提取(如VGG16和ResNet等),Feature channels即是最后一个卷积出来的特征图,整个模型被交叉熵和提出的互通道损失约束。

【读论文】MUTUAL-CHANNEL LOSS_第1张图片

THE MUTUAL-CHANNEL LOSS (MC-LOSS)

MC-Loss的做法是让每个类别对应一部分特征图,文章中所说的 ξ \xi ξ ,然后每个类别的特征足够可区分,表示每个类别的特征图也要尽量各不相同,因此有了区分性分支和多样性分支。结合下图(b)能够更好理解。

【读论文】MUTUAL-CHANNEL LOSS_第2张图片

整个 L m c L_{mc} Lmc 的公式为:

在这里插入图片描述

  • The Discriminality Component

    判别组件分支包含4道程序,如图(a)左边:

    • CWA,全名是Channel-Wise Attention,但实际上是基于定义的每个类别对应的通道个数进行随机Dropout,具体操作就是按Dropout的概率,生成相应比例的0,1乘上特征图。
    • CCMP,Cross-Channel Max Pooling,跨通道的最大池化,依照Maxout的思想,按照每个类别的通道,取出最大值,这样就能够把一个类的所有判别性的特征集中到一个一维特征图上。
    • 最后经过GAP和Softmax,使用交叉熵来计算判别组件的损失。

    L d i s L_{dis} Ldis 公式如下:

【读论文】MUTUAL-CHANNEL LOSS_第3张图片
【读论文】MUTUAL-CHANNEL LOSS_第4张图片

  • The Diversity Component

    多样性组件主要包含2道程序,如图(a)右边:

    • Softmax,起到一个归一化的作用

    • CCMP,作用与判别组件分支里相同,只是这里没有了Dropout,因为需要每个通道来计算

    • Sum和Average

    L d i v L_{div} Ldiv 公式如下:

在这里插入图片描述
【读论文】MUTUAL-CHANNEL LOSS_第5张图片
​ 多样性组件的目的是取得尽可能多样的特征,即求和尽量大,这就解释了总公式里的负号。

Experiment

文章在几个细粒度数据集(鸟,车,飞机,花)上进行了实验,不使用预训练的条件下,对比了VGG16和ResNet18,取得了很好的效果。

【读论文】MUTUAL-CHANNEL LOSS_第6张图片
使用预训练也于已有的细粒度方法进行了比较。

【读论文】MUTUAL-CHANNEL LOSS_第7张图片

更多的细节需要参看原论文。

以及作者提供了非预训练的VGG16的代码以及对比结果,链接https://github.com/dongliangchang/Mutual-Channel-Loss

作者个人主页发现的论文解读TIP2020 | 基于通道交互损失函数的细粒度图像分类方法

你可能感兴趣的:(CV,细粒度分类,深度学习,计算机视觉)