多标签分类新建模方法

常见的多标签分类方法是同时生成多个标签的logits,然后接一个sigmoid激活函数做二分类。该方法简单直接,但忽略了标签之间的相关性。虽然业界针对该问题提出了很多解决思路,但大多是任务特定,通用性不强,也不够优雅。

Transformer decoder倒是可以序列输出多个标签,但却加入了位置偏差。而标签之间是没有位置关系的,谁先谁后无所谓,只要输出全就行。这样也导致数据集不好构造。

C-Tran

General Multi-label Image Classification with Transformers 这篇论文提供了新思路,类似BERT的MLM预训练任务:通过在输入端对多个标签做随机mask,然后预测被mask的标签,从而强制模型去学习标签之间的依赖关系:

model

模型细节:
detail

params

  • Label Embeddings: 可学习的参数矩阵,由模型隐式学习到标签的语义信息和标签间依赖。有点像DETR的query。
  • State Embeddings: 控制标签的mask比例,这样就跟标签学习实现了解耦,也方便在推理阶段注入全比例mask
实验结果

不说了,全是sota:

exp


相关推荐

  1. 标签分类的区别

    2024-03-18 14:28:03       37 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-18 14:28:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-18 14:28:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-18 14:28:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-18 14:28:03       18 阅读

热门阅读

  1. python实现数据可视化大屏

    2024-03-18 14:28:03       19 阅读
  2. Redis常见面试题--基础篇

    2024-03-18 14:28:03       18 阅读
  3. 使用Python和Wireshark进行数据包分析:简易指南

    2024-03-18 14:28:03       20 阅读
  4. 软考高级,高项和架构哪个更容易?

    2024-03-18 14:28:03       18 阅读
  5. HarmonyOS 鸿蒙 arkts 自定义组件插槽

    2024-03-18 14:28:03       15 阅读
  6. Linux 开机启动Springboot程序

    2024-03-18 14:28:03       18 阅读