【图像分类损失】SimLoss:一个适合于年龄估计的分类损失

news2024/9/24 15:21:44

Roses are red, violets are blue,
both are somehow similar, but the classifier has no clue.

论文题目:《SimLoss: Class Similarities in Cross Entropy》(2020年)
论文地址:https://arxiv.org/pdf/2003.03182v1.pdf

1.背景

       神经网络分类任务中一种常见的损失函数是分类交叉熵(CCE),它平等地惩罚所有错误分类。但是,类通常具有固有的结构。例如,将玫瑰的图像分类为“紫罗兰”比分类为“卡车”要好。为此提出SimLoss,它是 CCE 的直接替代品,它结合了类相似性以及两种从特定任务构建此类矩阵的技术。在年龄估计和图像分类任务上实验,发现SimLoss在几个指标上的表现优于CCE。总结为一句话来讲就是:Simloss是能够考虑到类之间相关性的图像分类损失函数。

2.SimLoss

在这里插入图片描述

       SimLoss和交叉熵损失最主要的区别就是上述公式()里面的内容。对于SimLoss来说,()里的内容表示每个类别的概率输出分别乘以该类别与标签类别的相似度,然后加和。因此相比于交叉熵损失平等的惩罚所有错误分类,Simloss不仅考虑到了对正例的惩罚,也兼顾了对不同负例的惩罚或者叫容忍度。

3. 相似度矩阵S的创建

       两种分类任务相似度矩阵S的创建:Class Order & General Class Similarity

3.1. Class Order

在这里插入图片描述
       我后续在年龄估计上进行的实验就是利用的这种矩阵创建方式,因为对于年龄估计来说它的类别之间有固定的顺序,例如,婴儿和儿童之间相邻,距离就为1,婴儿和青少年中间隔了个儿童,那么他们的距离就为2。体现在公式上就是|i-j|,因为r是属于0到1之间的,那么矩阵S的所有值也就是相似度取值范围都是在0到1之间的。
       举个具体的例子,假设现在我们年龄分类的类别标签一共有8个:婴儿、儿童、青少年、青年、青中年、中年、中老年和老年,现有一张图像的标签为青少年,那么它与其他7个类别(包括自身)的距离可以设置为2、1、0、1、2、3、4、5,假设超参数r取值为0.3,那么我们就可以得到婴儿类别与其他类别(包括自身)的相似度向量:[0.09, 0.3, 1, 0.3, 0,09, 0.0.27, 0.0081, 0.00243],类似的,我们就可以得到每个标签与其他标签(包括自身)的相似度向量,所有的向量组合起来就形成了我们的相似度矩阵S,如下:
在这里插入图片描述
       假设现在一张图片的标签为青年,它的模型得分为[0.02, 0.03, 0.04, 0.77, 0.05, 0.04, 0.03, 0.02],对于交叉熵损失来说,onehot形式为[0, 0, 0, 1, 0, 0, 0, 0],对应的损失为-log(0.77)。那么对于SimLoss来说,我们可以根据上面预先设定好的相似度矩阵得到青年与其他类别标签(包括自身)的相似度,即为:[0.027, 0.09, 0.3, 1, 0.3, 0.09, 0.027, 0.0081],根据第2节提到的SimLoss公式,可以得到损失为:-log(0.02x0.027+0.03x0.09+0.04x0.3+1x0.77+0.05x0.3+0.04x0.09+0.03x0.027+0.02x0.0081)。对比交叉熵损失与SimLoss,我们可以很清晰的看出,SimLoss提高了对于与标签类别相似度高的标签的容忍度。(极端情况下,如果超参数r设置为1的话,那么相似度矩阵S里的值都为1,也就意味着没有损失了)

3.2. General Class Similarity

在这里插入图片描述
       公式中的sim(i,j)就是你所定义的类别i和j之间的相似度,可以是手动的、半自动的或全自动的去设置。l它的作用就是作为一个下界,体现在公式上就是,如果两个类别之间的相似度小于l直接取0。

4. 试验结果

在这里插入图片描述
       表1 是在两个年龄估计数据集上对于不同的的缩减因子 r 的的平均指标。r=0就是代表交叉熵损失,可以看到验证集和测试集上表现最好的缩减因子总是高于 0.0,这意味着 SimLoss 优于 CCE。对于 UTKFace,0.3 的缩减因子取得最佳验证Acc,而 0.8 或 0.9 分别取得最优的 MAE 和 MSE。对于 AFAD,r = 0.5 验证Acc最高,而 r = 0.7 MAE 和 MSE最优。总体而言,选择较小的缩减因子 r ≈ 0.4 可优化准确率,而较大的 r ≈ 0.8 可优化 MAE 和 MSE。这是因为较大的 r 会导致更高的矩阵值,也就是相似度,因此对于估计接近正确年龄的类别的惩罚会更小。

在这里插入图片描述
       对于图像分类任务,表 2 显示了给定下界 l 的 CIFAR-100 数据集的验证和测试集的结果,对于 l ≈ 1,损失相当于 CCE,平均而言,表现最好的模型的下限总是小于 0.99,l = 0.9时取得最佳acc ,较小的下限往往会降低准确性,因为损失函数几乎不会惩罚任何错误分类。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/56937.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hbuilder打包成APP流程,以及遇到的坑

1.打包项目 期间遇到的坑,提前说下,避免重复工作。 【因为很多网友说自己打包的APP是白屏,这是需要实名认证才能使用的工具,灰灰产还是用其他的工具吧】 我打包的安卓APP给大家欣赏一下: https://wwttl.lanzout.co…

Spring MVC使用SessionLocaleResolver实现用户自定义切换语言实例

在许多成熟的商业软件系统中可以让用户自由切换语言,而不是修改浏览器的语言设置。一旦用户选择了自己需要使用的语言环境,整个系统的语言环境将一直是这种语言环境。 Spring MVC 也可以允许用户自行选择程序语言。本章通过 Web 应用 springMVCDemo09 演…

Linux安装使用Minio

目录简介安装方式1(推荐)安装方式2使用简介 需要一个靠谱的文件管理系统,所以想到了minio。在此记录过程。使用树莓派搭建。Linux下载不同的包即可。 官网地址:https://www.minio.org.cn/ 官方下载地址:https://dl.min.io/server/minio/rele…

FFmpeg二次开发

本文主要讲解 FFmpeg 的二次开发,ffmpeg.exe 的命令行功能特别强大,很多需求都能直接用命令行实现,但是总有一些需求用 命令行实现不太好做。 而你实现那些特殊需求,通常需要把 ffmpeg.exe 里面的某部分代码抄过来,本…

Android databinding之RecycleView使用与讲解(二)

一 、介绍 通过上一篇databinding接入,我们已大概了解到databinding接入的流程和数据的简单绑定。 如果你刚看这边,并不了解databinding的使用,可以查看:Android databinding的接入使用与详解(一) Activity和fragment的数据绑定…

Pr:导出设置之字幕

如果序列中包含字幕轨道,则导出设置中的字幕 CAPTIONS模块将提供用于处理字幕信息的选项。如果源序列不包含任何字幕轨道,此模块将被禁用。导出选项Export Options选择导出活动字幕轨道的方式。--无None若选择此项,则不以任何形式导出字幕。-…

flink状态与容错-1.13

1. 版本说明 本文档内容基于 flink-1.13.x,其他版本的整理,请查看本人博客的 flink 专栏其他文章。 2. Checkpoint 2.1. 概述 Checkpoint 使 Flink 的状态具有良好的容错性,通过 checkpoint 机制,Flink 可以对作业的状态和计算…

【Java实战】这样写代码与Bug说拜拜

目录 一、前言 二、OOP 规约 1.【强制】避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用类名来访问即可。 2.【强制】所有的覆写方法,必须加 Override 注解。 3.【强制】相同参数类型,相…

手把手教你成为荣耀开发者:账户结算操作指南

荣耀开发者服务平台是荣耀面向开发者的统一生态入口,通过聚合周边内外部系统,分全球多站点部署,为全球开发者提供业务全生命周期的商业支撑服务,拥有应用分发、智慧服务、开放能力、HONOR Connect等众多业务等您来合作。 账户结算…

408 考研《操作系统》第一章第二节:操作系统的发展与分类和操作系统的运行机制与体系结构

文章目录教程1. 操作系统的发展与分类1.1 手工操作阶段1.2 批处理阶段1.2.1 单道批处理系统1.2.2 多道批处理系统1.3 分时操作系统1.4 实时操作系统1.5 其他几种操作系统1.6 总结教程 操作系统的发展与分类https://www.bilibili.com/video/BV1YE411D7nH/?p4&share_source…

本周推荐 | mysql中业务系统可借鉴的设计

推荐语:学习优秀的开源系统来优化我们业务的架构设计,这是我们作为业务开发的必修课,这篇文章从经典的mysql系统原理引申到业务系统设计思考,让人耳目一新,值得我们学习。——大淘宝技术工程师 默达如果一个系统能存活…

HTML+CSS鲜花静态网页设计

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

Win11的两个实用技巧系列之如何关闭文字热门搜索、任务栏上的应用

目录 in10和Win11 22H2如何关闭文字热门搜索? Win11 22H2关闭文字热门搜索 Win10 22H2关闭文字热门搜索 Win11中如何不用鼠标打开已固定在任务栏上的应用 鼠标的操作方式如下: 点击拿去 in10和Win11 22H2如何关闭文字热门搜索? 不管是Win10还是Win11&#…

R语言GARCH-DCC模型和DCC(MVT)建模估计

这个简短的演示说明了使用r软件包的DCC模型及其方法的使用,尤其是在存在MVT分布形状参数的情况下进行2级DCC估计的另一种方法。 最近我们被客户要求撰写关于GARCH-DCC的研究报告,包括一些图形和统计输出。 相关视频:时间序列分析&#xff…

[附源码]计算机毕业设计springboot小型银行管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

用HTML、CSS技术设计的个人网页与实现制作(web前端期末大作业)

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

“极致成本向左,本质安全向右”-谈谈锂电池储能系统的发展趋势

极致成本 or 本质安全? 1 快速增长的电化学储能电站 根据CNESA全球储能项目库的不完全统计,截至 2021 年底,全球已投运电力储能项目累计装机规模 209.4GW, 同比增长 9%。其中,抽水蓄能的累计装机规模占比首次低于 90%,比去年同期下降4.1个百分点;新型储能的累计装机规模…

Windows性能监视器使用说明

如何使用性能计数器 进入性能计数器 方式一: 命令行 perfmon 方式二:图形化操作 控制面板→系统与安全→管理工具→性能监视器 创建计数器收集器 创建收集器 在采集数据前,需要做好相应的收集器创建。 监视工具性能监视器&#xf…

Global Mapper将0-255的色彩映射表导出为RGB波段

当我们拿到0-255的色彩映射表栅格文件的时候,可能不太好用,需要导出为RGB波段或者其他波段形式的,在Global Mapper中可以做到。 打开0-255色彩映射表的栅格文件,在Arcmap中可以看到是这样的: 在Global Mapper中操作…

android灰色滤镜布局

android灰色滤镜布局 h5网页灰色滤镜 只要给 html 加下列css 样式就可以了 html {filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale1);-webkit-filter: grayscale(100%); }Android组件灰色滤镜 ColorMartrix类,这个类对外提供了很多 API&#x…