多标签分类

参考文章:
<<YOLO9000: Better, Faster, Stronger>>
<<YOLOv3: An Incremental Improvement>>
<<Large-Scale Object Detection in the Wild from Imbalanced Multi-Labels>>

多标签,根据标签之间的关系,有以下几种情况:

  • 标签A与标签B独立,从不同方面描述一件事物,比如玩具车=玩具+车

  • 标签A与标签B存在层级关系,比如苹果,属于水果

  • 标签A与标签B同义词,从一个方面描述事物,比如flashlight和torch,都是手电筒


    多标签

    在进行分类时,神经网络通常采用交叉熵作为损失函数,softmax用于获取不同类别的概率:


    交叉熵损失

但是在多标签时,softmax会引入各个类别之间的竞争。
在YOLOv2中,提出可以联合训练分类和检测数据,但是分类数据集往往类别较多。建立一个表示类别层次关系的WordTree,“同级”类别之间做softmax。


WordTree预测

在YOLOv3中,使用logistic对于每一类进行2分类。每个类别使用二元交叉熵损失。
举例:在训练YOLOv3时,如果一个目标x有2个类别0和1,在给真值标签时,会给2条——(x, y=0)和(x, y=1),这样在训练时,损失函数如下,其中y^c是one-hot编码的向量,在索引为c的地方为1.在最小化损失函数的过程中,对于-\sum_kq_k\log p_k,p=q。这样在进行预测时,优化的目标是p(x)=(1/2,1/2),可能导致在预测时,类别的置信度会接近0.5,而不是1。

类别损失函数

论文<<Large-Scale Object Detection in the Wild from Imbalanced Multi-Labels>>提出concurrent-softmax

concurrent-softmax

其中y_i为1表示目标有类别i,否则为0.在进行前向推理时,舍去(1-y_j)项。
r_{ij}表示类别i相对于类别j的相关系数,通过计算训练集中类别i被标记成类别j的概率来获得,如果i是j的子类别,则r_{ij}=0,相反地,则r_{ij}=1

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容