Soft Labels for Ordinal Regression

CVPR-2019

Abstract

提出了简单有效的方法约束类别之间的关系(其实就是在输入的label中考虑到类别之间的顺序关系)

这种encoding使得NN可以自动学习类内和类间的关系,不需要显示修改网络结构

我们的方法将数据标签转换成软概率分布,使其与常见的分类损失函数(如交叉熵)很好的匹配

结果表明,该方法在图像质量排序、年龄估计、地平线回归和单目深度估计四种不同的情况下都是有效的。

1. Introduction

有序分类又称有序回归,是机器学习任务的一种,类似于实值度量的传统回归和独立、多分类任务的混合

举例:电影评级、用户满意度调查

有序回归解决的问题:not all wrong classes are equally wrong

前人研究【21】【14】【9】【37】

回归角度:把输入映射到一条实线上,然后根据决策面(线 boundaries )预测最终的输出

分类角度:采用K-rank公式把问题转化为多个等级或阈值问题~~(将多分类任务转化成多个二分类任务)~~

【14】举例:K-1个二分类器,每个分类器都被拿去训练对于输入的x,是否有输出y>k,(注意与前面的大K不一样,这里k表示这个二分类器的等级)《A simple approach to ordinal classification 》ECML 2001 温度的例子

结论:这个方法用在神经网络进行分类任务特别适合

本文贡献:提出一种将问题看作分类任务的有序回归方法;

提出soft target encoding scheme for data labels (这个encoding可以很好地和CNN结合用于分类任务)

结果显示soft优于hard one-hot

2.Related Work

最流行的方法:K-rank 方法【14】

Soft methods

soft 损失项对于 domain and task transfer 是有用的,主要是为了避免数据集的偏差,【45】中有详细的损失函数的定义。

Age estimation 可被认为是个 image ranking 问题。

Image ranking

一个有序回归很流行的应用。将每个图片都分成离散等距的标签

【26】Age estimation使用浅层卷积网络避免过拟合 (三层卷积+两层fc+softmax)

《Age and Gender Classification using Convolutional Neural Networks 》CVPR_2015

【32】使用相似的CNN+K-1个二分类器

https://blog.csdn.net/u011961856/article/details/78984696

https://blog.csdn.net/MatouKariya/article/details/82562358

《Ordinal Regression with Multiple Output CNN for Age Estimation》 CVPR_2016

30使用了深度NN框架, uses multiple instances of the VGG-16 network

Monocular depth estimation

很有用: 机器人和自动驾驶,如场景理解,三维重建,和三维物体分析

二维图像的深度研究【34】【1】【24】【35】

CNN出现后:【49】【13】【11】【47】【12】【17】,效果好很多

ordinal regression 出现更好了!DORN network 【15】

Horizon estimation

一般来说,只要参数空间适当地离散化,任何涉及度量回归的任务都可以解释为有序回归任务。

Horizon estimation在单目和多视点的场景理解任务中显示出许多优点 【22】【10】

【48】 传统的分类方法是利用图像中地平线参数的离散值和候选值来估计图像的消失点。

【46】subwindow aggregation method

【25】horizon被提取为潜在的语义线。

3.Method

与K-rank方法不同,提出一种简单直观的方法,将有序回归的问题看作是传统分类问题

最后一层不是像K-rank方法输出神经元是类别的2倍,而是和类别一样的数量。

不显式修改网络架构;

3.1.Encoding Regression as Classification

分类通常表示为one-hot向量;训练时使用像交叉熵这样的损失函数;输出层的激活函数通常是softmax;通过loss尽可能使得网络输出值和真实label(one-hot)接近。

问题:存在一些比真实label值更接近的类(个人理解:比如电影评级时候,评3级,可能3.4级更接近真实label)

K-rank解决方式:最后加了多个二分类 one-hot向量( 但是在标签属于连续域的情况下,会丢失有价值的信息 )

ours:

引入了一个新的公式来描述类别,它自然地封装了类之间的显式顺序关系。
y = { r 1 , r 2 , . . . , r k } y = \{r_1,r_2,...,r_k \} y={r1​,r2​,...,rk​}
表示在这个分类问题中的有序类别或等级


y表示一个特定rank rt下样本的ground-truth label

从该式子可以看出,其实就是在输入label的时候将其转换为带顺序的label

按照论文给出的公式敲了一下5分类的代码,以及最后的soft label结果

φ ( r t , r i ) φ(r_t,r_i) φ(rt​,ri​)表示loss function,(衡量真实ground truth label r t r_t rt​和 r i r_i ri​之间的距离)

———————————上式为Soft Ordinal vectors (or SORD)—————————————————

其实就是比较像softmax

3.2.Backpropagation of Metrics

优点:梯度容易计算

假设使用交叉熵作为loss function,其梯度为

yi is the element of a soft label vector for rank ri ,and pi is the network’s Softmax value of the logit output node oi that corresponds to the same rank.

给定真实rank rt的一个输入,C是个大于0的常数使得softmax分母和SORD分母匹配

令 O i ′ = o i + l o g C O_i'=o_i+logC Oi′​=oi​+logC则可以简化损失函数的梯度

直观上,SORD能训练网络使得在接近真实类节点的值大,而不接近的话,值小

loss最小

3.3. SORD Properties

优点:

1、公式容易复现,只需两行代码。1)计算所有φ,2)通过φ计算soft label y

2、 可以使用现有的分类架构来进行有序回归,而不需要显式地修改单个层(开始批评K-rank方法,在最后一层时使用了二倍类别的神经元,而本文就不一样了,就和类别数一样)

3、既可以在最后一层使用argmax作为输出,也可以使用一个简单求期望的值

4、 SORD能轻易的封装来自连续域的数据 。举了个例子,在单目深度估计任务中,真实深度值rt=2.3,不属于Y。现在有两个连续的ranks,ri=2m,ri+1=3m,那SORD就会慢慢向ri去平衡,但是最终不会达到ri,最后呢rt_predication=2.1m并且产生一个y_predication

4.Experimental Results

图像美学数据集 Image Aesthetics dataset —>image quality
Adience dataset —> age estimation
https://www.douban.com/note/643300888/ + https://blog.csdn.net/qq_24819773/article/details/88596521

自动驾驶场景 KITTI dataset —> predict depth
Wild dataset —> estimate the horizon line parameters ???
setup:
Intel i7+1080Ti GPU+Keras+pre-trained network+当误差稳定时,lr*0.1+SGD(momentum=0.9)+loss(KL散度)

4.1. Image Ranking

Image aesthetics

The Aesthetics dataset 类别:

1、 “unacceptable” :质量极差、失焦、曝光不足或画框差;

2、“flawed” : 低质量图像(稍微模糊,过度/曝光不足,框架不正确),没有艺术价值

3、 “ordinary”:没有技术缺陷(画框好,焦点清晰),但没有艺术价值;

4、 “professional” :(完美的取景、对焦、闪电),或具有一定的艺术价值;

5、 “exceptional”:非常吸引人的图像,表现出突出的质量(摄影和/或编辑技术)和很高的艺术价值

图片由至少5个不同等级的人进行注释,最后的ground-truth label为所有评级取均值

75%, 5%, and 20% for training, validation, and test respectively

VGG-16 LR=10-4 mini_batch=32 epoch=50

Training images are resized to 256 × 256 pixels, and randomly cropped to 224 × 224 when fed to the network.(数据增强)

5折交叉验证

与【30】baseline作比较

accuracy平均提高2% MAE平均提高0.02

Age estimation

https://blog.csdn.net/chaipp0607/article/details/90739483

The Adience dataset

2284个人 36k个人脸图像 5折交叉

年龄分成八个组:0-2, 4-6, 8-13, 15-20, 25-32, 38-43, 48-53, 大于60

对性别&年龄分类

VGG-16 LR=10-3 mini_batch=32 epoch=50

accuracy平均提高2% MAE平均提高0.05

4.2. Monocular Depth Estimation

之后有一篇《Deep Ordinal Regression Network for Monocular Depth Estimation》是ROB2018 中深度预测的冠军方案。**(抓紧看)**https://blog.csdn.net/kingsleyluoxin/article/details/82377902

用到了空间递增离散化(SID)

size about 375×1241. There are 42,949 stereo training pairs and 3,426 validation pairs. The official test set consists of 500 images that have been cropped to size 352×1216

三种loss:

SQ
SL
【12】SILog error

Number of intervals

4.3. Horizon Estimation

Soft Labels for Ordinal Regression阅读笔记相关推荐

  1. PseudoSeg: Designing Pseudo Labels for Semantic Segmentation阅读笔记

    原文链接:https://arxiv.org/abs/2010.09713  PseudoSeg比较少见地采用了将pixel-level label和image-level label结合在一起的设定 ...

  2. Removing the Bias of Integral Pose Regression 阅读笔记

    消除积分姿态回归的偏差 ICCV2021 论文链接 补充材料链接 参考链接 摘要: 尽管姿态估计的回归法更直观,但由于热图法的优越性能,使其在2D人体姿态估计中占主导地位.积分回归法在架构上使用隐式热 ...

  3. Deep Ordinal Regression Network for Monocular Depth Estimation 单目深度估计,论文阅读,DORN;视频笔记

    tags: 单目深度估计,论文阅读,DORN 原始论文是: Deep Ordinal Regression Network for Monocular Depth Estimation Huan Fu ...

  4. SCAN: learning to classify images without labels 阅读笔记

    SCAN: learning to classify images without labels 阅读笔记 概览 具体方法 实验设置 没用把论文的图片和公式放进来,太懒了 概览 Approach: A ...

  5. 论文阅读笔记:SCAN: Learning to Classify Images without Labels

    论文阅读笔记:SCAN: Learning to Classify Images without Labels 摘要 简介和相关工作 方法 表征学习 语义聚类损失 2.3 通过自标记进行微调 3 实验 ...

  6. P2PNet(代码阅读笔记)

    P2PNet 代码阅读笔记 一.主干网络 主干网络采用的是VGG16 class BackboneBase_VGG(nn.Module):def __init__(self, backbone: nn ...

  7. VITAL Tracker Pytorch 代码阅读笔记

    VITAL Tracker Pytorch 代码阅读笔记 论文链接:https://arxiv.org/pdf/1804.04273.pdf 代码链接:https://github.com/abner ...

  8. RocketQAv2阅读笔记(#问答系统 #NLP #检索)

    #问答系统 #NLP #检索 知乎博客:RocketQAv2 阅读笔记 - 知乎 百度的检索技术厉害的原因:现实中 海量的用户历史数据.强大的中文ERNIE预训练模型.各种创新的模型训练策略.其中Ro ...

  9. 代码分析:NASM源码阅读笔记

    NASM源码阅读笔记 NASM(Netwide Assembler)的使用文档和代码间的注释相当齐全,这给阅读源码 提供了很大的方便.按作者的说法,这是一个模块化的,可重用的x86汇编器, 而且能够被 ...

最新文章

  1. 前端面试知识点整理(二)
  2. 堆栈的生长方向和空栈满栈的区别
  3. y7000p内存是一个16还是8+8_16层蜜瓜蛋糕,每日限量8件,只卖一个夏天!
  4. geek_享受How-To Geek用户样式脚本的好处
  5. Android开发(1):随机绘制彩色实心圆
  6. gsoap 实现 C/C++ 调用web service
  7. 18000 Two String 暴力。——— 读题
  8. mysql 内存太大被杀_数据库mysqld进程频繁被杀解决方案[终]
  9. 秒杀系统设计中的业务性思考
  10. Ceph浅析”系列之四——Ceph的结构
  11. CISSP考试复习经历分享2020年12月
  12. 软件工程导论-Gantt图和工程网络图
  13. 个人名片+微信名片二维码 VUE
  14. Win11查看电脑磁盘分区格式的方法教学
  15. java 图片文字 乱码_关于java 向图片添加文字时的乱码问题
  16. Weblogic安装时闪退,无法进行下一步问题
  17. 统计100以内能被7整除的自然数c语言,编写程序,计算1到100中既能被3整除又能被7整除的所有数,并计算这些数的个数...
  18. 赠书:深入理解 Spring Cloud 与实战
  19. 知否:高增长时代已过,汽车互联网玩家如何开拓更多增量?
  20. 7-55 Keven裂了

热门文章

  1. 敏捷的精髓在于即时反馈
  2. rainbow和论坛的集成
  3. 【Github分享】GitHub 上值得收藏的100个精选前端项目!
  4. 怎么把桌面文件发到计算机文件夹E,怎么把桌面文件默认到d盘
  5. 操作Python列表Ⅰ
  6. Lorem在HTML的使用
  7. 2021-03-15我的博客
  8. 学习Vue3 第五章(Vue核心虚拟Dom和 diff 算法)
  9. bars 除障句完整_简单的治愈系晚安朋友圈问候语锦集83句
  10. 取消键盘Fn功能键方式