参考文章:
<<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),这样在训练时,损失函数如下,其中是one-hot编码的向量,在索引为c的地方为1.在最小化损失函数的过程中,对于,p=q。这样在进行预测时,优化的目标是,可能导致在预测时,类别的置信度会接近0.5,而不是1。
论文<<Large-Scale Object Detection in the Wild from Imbalanced Multi-Labels>>提出concurrent-softmax
其中为1表示目标有类别i,否则为0.在进行前向推理时,舍去项。
表示类别i相对于类别j的相关系数,通过计算训练集中类别i被标记成类别j的概率来获得,如果i是j的子类别,则,相反地,则。
网友评论