IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> mmcls多标签分类实战(三):多标签分类指标 -> 正文阅读

[人工智能]mmcls多标签分类实战(三):多标签分类指标

前面两篇分别介绍了制作多标签数据,resnet多标签分类。接下来,我将介绍多标签分类的指标并分享一些关于多标签分类的细节,即如何操作可以提点。

在此之前,想提一下损失函数cross_entropy与binary_cross_entropy的区别
在这里插入图片描述
交叉熵的数学公式如上所示,P表示target,Q表示prediction,H就是交叉熵损失。在pytorch中可以调用 F.cross_entropy(input, target)来实现交叉熵损失的计算。其实分解一下就是下面的公式,先把prediction按照最后的dim求softmax,然后再求它们的log,最后,分别乘上对应的target就ok了。

loss = -label * F.log_softmax(pred, dim=-1)

binary_cross_entropy与cross_entropy最大的区别在于binary_cross_entropy没有采用softmax,而是使用了sigmoid来归一化prediction。在多标签分类中,这一点很重要,因为softmax.sum()=1,多标签中,一个图片存在多个属性,所以softmax.sum()=1的假设是不成立的。因此,多标签分类中会使用F.binary_cross_entropy_with_logits。

多标签分类评价指标

	precision_class = tp.sum(axis=0) / np.maximum(tp.sum(axis=0) + fp.sum(axis=0), eps)
    recall_class = tp.sum(axis=0) / np.maximum(tp.sum(axis=0) + fn.sum(axis=0), eps)
	CP = precision_class.mean() * 100.0
    CR = recall_class.mean() * 100.0
    CF1 = 2 * CP * CR / np.maximum(CP + CR, eps)
    OP = tp.sum() / np.maximum(tp.sum() + fp.sum(), eps) * 100.0
    OR = tp.sum() / np.maximum(tp.sum() + fn.sum(), eps) * 100.0
    OF1 = 2 * OP * OR / np.maximum(OP + OR, eps)

多标签分类的评价指标比较简单,一般我比较关注CP,CR,即平均准确率与召回率。在求CP,CR时,需要设置阈值thr(一般设置thr=0.5),tp是指预测值大于thr的正样本,fp指预测值大于thr的负样本,fn指预测值小于thr的正样本。准确率precision=tp/(tp+fp),召回率=tp/(tp+fn)。

多标签分类tips
相信大家在做项目时都会遇到数据量不足,数据样本分布不均等问题。下面我结合自己的经验给大家提供一些tips
1.数据量有限时(train数据少于1w张时),小模型的效果会由于大模型(过拟合)。
2.使用ClassBalancedDataset,对样本少的类别重复采样,可以有效提高召回。
3.loss,我试验过focal loss,asymmetric loss,效果很差(召回很高,但是准确率低得离谱)。focal与 asymmetric loss都是为了降低负样本在loss的占比,从而平衡正负样本。asymmetric将gamma分为gamma+与gamma-,相较于focal loss中gamma=2来说,asymmetric更加夸张的降低了负样本的loss(因为我的数据类别分布极不均匀,在实验中,正样本loss大概是负样本loss的几十倍甚至几百倍),这就导致模型极度聚焦于正样本,模型只知道什么是正确的,对错误的并不care,因此recall提高了,precision却低的离谱。focal loss也存在这样的问题,但是alpha可以稍微缓解这样的情况。
在这里插入图片描述
4.魔改模型结构,注意力机制,dropout,框架等等各种,大家可以试试。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-06-29 19:04:19  更:2022-06-29 19:07:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 1:57:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码