【OpenVI—论文解读系列】细粒度分类SoftTriple Loss ICCV高引论文深入解读

本文涉及的产品
视觉智能开放平台,图像通用资源包5000点
视觉智能开放平台,分割抠图1万点
视觉智能开放平台,视频通用资源包5000点
简介: SoftTriple Loss论文是在图像细粒度分类领域提出了新型度量学习方法,该方法可以被广泛应用于各种搜索、识别等领域中,目前谷歌学术引用240+,相对高引。相比原始论文文档,本文将介绍更多研究过程中遇到的问题点以及相应创新方法的演进历史。

一、背景 

度量学习是一种机器学习方法,它主要用于在相似性度量的基础上进行数据挖掘。具体来说,度量学习通过学习一种函数来度量两个数据样本点的相似性。这种函数称为度量函数,它的目的是在尽可能减少度量错误的同时最小化相似数据样本点之间的距离。典型的度量学习方法包括Triplet Loss、ProxyNCA、Npairs等。度量学习可以应用于许多领域,例如:

1.)图像分类:度量学习可以用来帮助计算机识别图像中的物体。例如,通过学习数据集中的图像时,可以计算出两张图像之间的相似度,从而帮助计算机对新图像进行分类。例如,能够将图像分类到“狗”、“猫”或“其他”的类别中。度量学习在图像识别和分类中的应用非常广泛,且取得了很好的效果。

2.)文本分类:在文本领域,度量学习可以用来对文本进行分类,例如将文本分为正面或负面的情感,或者将它们分类到特定的主题中。假设我们有一组文档,每个文档都属于某一个类别,比如技术文章、新闻报道、娱乐新闻或体育新闻。我们可以训练一个模型,该模型能够将一篇新闻报道与一篇技术文章区分开来,并将它们分别分类到新闻报道或技术文章的类别中。

3.)语音识别:例如,我们可以使用度量学习来学习语音中的特征,并根据这些特征来识别说话人的语音内容。也可以训练一个模型,该模型能够识别一段语音是否是某个特定的人的声音。度量学习在语音识别领域的应用也非常广泛,且取得了很好的效果。

    随着深度学习的兴起,度量学习也越来越多的跟深度学习网络得到的特征结合在了一起,本文结合深度学习框架,面向细粒度分类领域,提出了新型的SoftTriple Loss。如下简易示意图所示:

dd6a41a06d36402f87c049c903660831.png


二、方法

      该章节面向深度度量学习领域,选取了三类典型的Loss,做了相应的优缺点分析,最后引出本文SoftTriple方法及其创新演进历程解析。


2.1 triplet Loss分析

33.png


2.2 SoftMax Loss分析

论文对图像分类以及识别领域大为盛行且简单易用的SoftMax函数做了分析,通过巧妙的简单推导发现SoftMax函数其实就是等价于平滑(体现在每个类都有一个类中心,可理解为每个类共享一个中间proxy节点)的Triplet Loss函数,它的优点就是免triplet采样,一键batch化样本去训练。简易的推导示意如下图:

44.png


2.3 Cosine类Loss分析

       通过将类中心W与样本特征X进行单位化后,度量学习领域也跟上了一系列引入W*X Cosine距离以及从各个角度加margin的loss论文,可谓风极一时。接下来我们来看下相应Cosine类loss的演进历程以及相应优缺点,如下图:

55.png


2.4 SoftTriple Loss演进历程解析

2.4.1 类内max相似度

      基于上述的优缺点分析,本文的想法是如何通过类似SoftMax免采样的方式,实现可以克服类内样本差异较大的细粒度分类。由于以上的推导已经较为明显,本文的方法就是将SoftMax与Triplet进一步融合,示意图如下:

66.png

   该初代版本的效果并不好,实现过程中出现了收敛性问题,因为初代版本样本与某个类的相似度是直接粗暴的取与样本特征相似度最大的那个中心来计算的。

2.4.2 类内ave相似度

       接着又想到了加权平均的方法,示意图如下:

77.png

     加权平均的方式是提高了收敛性,但是实验过程中同时发现类中心个数都很大的相应情况。

2.4.3 自适应类中心个数

       紧接着通过加入正则的方式,对每个类的类中心个数做了相应的控制,具体过程与效果如下图所示:

88.png

三、结果

3.1 SOTA效果展示

9.png

3.2 SOTA量化对比

10.png

四、更多体验

      想体验调用稳定、效果更好的API,详情请见视觉开放智能平台(https://vision.aliyun.com/


相关文章
|
数据挖掘 PyTorch 算法框架/工具
人脸识别中的损失函数ArcFace及其实现过程代码(pytorch)--理解softmax损失函数及Arcface
人脸识别中的损失函数ArcFace及其实现过程代码(pytorch)--理解softmax损失函数及Arcface
1407 0
|
机器学习/深度学习 编解码 PyTorch
CVPR 2023 | 主干网络FasterNet 核心解读 代码分析
本文分享来自CVPR 2023的论文,提出了一种快速的主干网络,名为FasterNet。核心算子是PConv,partial convolution,部分卷积,通过减少冗余计算和内存访问来更有效地提取空间特征。
9806 58
|
12月前
|
机器学习/深度学习 编解码 监控
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章详细介绍了如何使用YOLOv8进行目标检测任务,包括环境搭建、数据准备、模型训练、验证测试以及模型转换等完整流程。
18891 59
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
机器学习/深度学习 自动驾驶 数据可视化
【细粒度】由CUB_200_2011数据集展开讲解细粒度分类任务
【细粒度】由CUB_200_2011数据集展开讲解细粒度分类任务
1038 0
【细粒度】由CUB_200_2011数据集展开讲解细粒度分类任务
|
9月前
|
人工智能
Scaling Laws终结,量化无用,AI大佬都在审视这篇论文
《Scaling Laws for Precision》论文提出“精度感知”的扩展理论,将精度纳入模型发展的核心考量,弥补了传统AI模型发展理论忽视精度的不足。研究发现低精度训练会降低模型的有效参数计数,影响性能,并预测了低精度训练和后训练量化带来的损失。作者通过大量实验验证了理论的可靠性和有效性,为计算资源有限情况下如何平衡模型规模和精度提供了新思路。然而,该研究也引发了关于精度与性能权衡复杂性的争议。
195 27
|
机器学习/深度学习 并行计算 PyTorch
ONNX 优化技巧:加速模型推理
【8月更文第27天】ONNX (Open Neural Network Exchange) 是一个开放格式,用于表示机器学习模型,使模型能够在多种框架之间进行转换。ONNX Runtime (ORT) 是一个高效的推理引擎,旨在加速模型的部署。本文将介绍如何使用 ONNX Runtime 和相关工具来优化模型的推理速度和资源消耗。
6049 4
|
编解码 算法 计算机视觉
YOLOv8数据增强预处理方式详解:包括数据增强的作用,数据增强方式与方法
YOLOv8数据增强预处理方式详解:包括数据增强的作用,数据增强方式与方法
|
11月前
|
算法
客观评价模型与主观DMOS分数拟合的分享与实用性探讨
本文深入探讨了视频质量的主客观评价方法,指出客观评价方法旨在精确描述人眼的主观感受。文章介绍了微帧在日常训练中使用的拟合方法,通过映射函数将客观指标与主观评价DMOS分数进行非线性拟合,以提高评价的准确性、一致性、稳定性和单调性。具体讨论了SSIM、PSNR和VMAF等常见客观指标的拟合公式,并总结了拟合方法在分析质量差异、统一客观指标和指导参数设置方面的实用价值。
|
机器学习/深度学习 资源调度 自然语言处理
长短时记忆网络(LSTM)完整实战:从理论到PyTorch实战演示
长短时记忆网络(LSTM)完整实战:从理论到PyTorch实战演示
16907 0
|
机器学习/深度学习 编解码 算法
ICCV 2023 | 当尺度感知调制遇上Transformer,会碰撞出怎样的火花?
近年来,基于Transformer和CNN的视觉基础模型取得巨大成功。有许多研究进一步地将Transformer结构与CNN架构结合,设计出了更为高效的hybrid CNN-Transformer Network,但它们的精度仍然不尽如意。本文介绍了一种新的基础模型SMT(Scale-Aware Modulation Transformer),它以更低的参数量(params)和计算量(flops)取得了大幅性能的提升。

热门文章

最新文章