【OpenVI—论文解读系列】开源低成本大规模分类框架FFC CVPR论文深入解读

本文涉及的产品
视觉智能开放平台,视频资源包5000点
视觉智能开放平台,图像资源包5000点
视觉智能开放平台,分割抠图1万点
简介: 图像分类是当前AI最为成功的实际应用技术之一,它已经融入了人们的日常生活。它被广泛的应用到了计算机视觉的大部分任务中,比如图像分类、图像搜索、OCR、内容审核、识别认证等领域。目前已形成一个普遍共识:“当数据集越大ID越多时,只要训练得当,相应分类任务的效果就会越好”。但是面对千万ID甚至上亿ID,当下流行的DL框架下,很难低成本的直接进行如此超大规模的分类训练。

一、背景

     解决该问题最直观的方式是通过集群的方式消耗更多的显卡资源,但即便如此,海量ID下的分类问题,依然会有如下几个问题:

     1.)成本问题:分布式训练框架 + 海量数据情况下,内存开销、多机通信、数据存储与加载都会消耗更多的资源。

     2.)长尾问题:实际场景中,当数据集达到上亿ID时,往往其绝大部分ID内的图片样本数量会很少,数据长尾分布非常明显,直接训练难以获得较好效果。


二、方法

     在介绍方法之前,首先回顾下超大规模分类当前存在的主要挑战点:


2.1 挑战点1:成本居高不下

   ID数目越大分类器显存需求越大,如1.png显存越大所需机器卡数越多,成本也就越高,相应多机协同的硬件基础设施成本也越高。与此同时,当分类 ID数目达到极超大规模的时候,主要计算量将浪费在最后一层分类器上,骨架网络消耗的时间可忽略不计。下示意图所示:

2.2 长尾学习困难

   实际场景下,上亿ID中的绝大部分ID内的图片样本数量会很少,长尾数据分布非常明显,直接训练难以收敛。如果按照同等权重训练,则长尾样本会被淹没学习不充分。此时,一般采用imbalanced sample,在这个研究课题上,有非常多的方法可以借鉴,采取怎样的方式融入到简易超大规模分类框架上较为合适呢?

     带着上述两个挑战点,首先来看下现有可行的方案有哪些,是否能很好的解决上述两个挑战。

2.3 可行方法1:度量学习

2.png

2.4 可行方法2:PFC框架

3.png

2.5 可行方法3:VFC框架

4.png

2.6 本论文方法:FFC框架

大规模分类采用FC训练时损失函数如下

5.png

   在每一次反传过程中,所有的类中心都会更新

6.png

   但FC太大了,直观的思路是合理地选择一定比例的类中心,即如下Vj为1部分:

7.png

   由上述动机,引出了如下初步的方案:

8.png

    首先,为了解决长尾带来的影响,我们引入两个loaders,分别是基于id采样的id_loader和基于样本采样的instance_loader,有了这两个loader。在每个epoch当中,样本多的类和样本少的(few-shot)类能够有机会被训练到。

     其次,在训练开始之前,先将一部分样本送入id group,这里假设放入10% id的样本进入group。这时候gallery用的是随机参数。

     然后,训练开始时,batch样本挨个进入probe net。然后对于每个batch里面的样本就有两种情况:1.)group中存在此样本同样id的特征,2.)group中不存在同类样本的特征。对于这两种情况,我们分别称之为existing id和fresh id。对于existing的样本,拿特征和group里面的特征做内积,计算与标签的交叉熵损失函数,后回传。对于fresh的样本,跟group里面的样本来个最小化余弦相似度。

     最后,对group里面特征更新,采取新类中心替换,现有类中心加权的原则。对于gallery net,采用moving average策略把probe里面的参数渐渐更新进去。

2.7 本论文方法:FFC框架

  大规模分类采用FC训练时损失函数如下

9.png

  在每一次反传过程中,所有的类中心都会更新

10.png

  但FC太大了,直观的思路是合理地选择一定比例的类中心,即如下Vj为1部分:

11.png

  由上述动机,引出了如下初步的方案:

12.png

     首先,为了解决长尾带来的影响,我们引入两个loaders,分别是基于id采样的id_loader和基于样本采样的instance_loader,有了这两个loader。在每个epoch当中,样本多的类和样本少的(few-shot)类能够有机会被训练到。

     其次,在训练开始之前,先将一部分样本送入id group,这里假设放入10% id的样本进入group。这时候gallery用的是随机参数。

     然后,训练开始时,batch样本挨个进入probe net。然后对于每个batch里面的样本就有两种情况:1.)group中存在此样本同样id的特征,2.)group中不存在同类样本的特征。对于这两种情况,我们分别称之为existing id和fresh id。对于existing的样本,拿特征和group里面的特征做内积,计算与标签的交叉熵损失函数,后回传。对于fresh的样本,跟group里面的样本来个最小化余弦相似度。

     最后,对group里面特征更新,采取新类中心替换,现有类中心加权的原则。对于gallery net,采用moving average策略把probe里面的参数渐渐更新进去。

2.8 本论文方法:trick介绍

2.8.1引入的ID Group,其size是个可调参数,一般默认为3万。

2.8.2为达到稳定训练,参考moco类方法,引入moving average,相应收敛情况对别:

13.png


三、实验结果

3.1 双Loader消融实验

14.png

3.2 SOTA方法效果对比

15.png

3.3 显存与样本吞吐对比

16.png

四、更多体验

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


相关文章
|
6月前
|
人工智能 自然语言处理 网络架构
单一作者论文,谷歌提出百万专家Mixture,超越密集前馈、稀疏MoE
【7月更文挑战第27天】谷歌提出了一种名为“百万专家Mixture”的神经网络架构,旨在解决Transformer模型处理大规模数据时面临的计算和内存效率问题。该架构通过利用“产品键”技术实现从大规模专家池中的高效检索,相较于传统密集前馈网络和稀疏MoE模型,在性能-计算权衡方面展现出明显优势。尽管如此,模型训练的复杂性和大规模模型的有效管理仍然是挑战。[链接](https://arxiv.org/abs/2407.04153)
72 2
|
机器学习/深度学习 存储 编解码
【OpenVI—论文解读系列】ICCV | 开源融合不确定度的自监督MVS框架
论文链接:Digging into Uncertainty inSelf-supervised Multi-view Stereo 多视图立体视觉作为计算机视觉领域的一项基本的任务,利用同一场景在不同视角下的多张图片来重构3D的信息。自监督多视角立体视觉(MVS)近年来取得了显著的进展。然而,以往的方法缺乏对自监督MVS中pretext任务提供的监督信号进行有效性的全面解释。本文首次提出在自监督MVS中估计认知不确定性(epistemic uncertainty)。
325 5
|
机器学习/深度学习 达摩院 数据建模
ICML 2023 | 基于模块化思想,阿里达摩院提出多模态基础模型mPLUG-2
ICML 2023 | 基于模块化思想,阿里达摩院提出多模态基础模型mPLUG-2
258 0
|
存储 人工智能 达摩院
CVPR 2022|达摩院开源低成本大规模分类框架FFC
CVPR 2022|达摩院开源低成本大规模分类框架FFC
122 0
|
编解码 计算机视觉
详细解读 | Google与Waymo教你如何更好的训练目标检测模型!!!(附论文)(二)
详细解读 | Google与Waymo教你如何更好的训练目标检测模型!!!(附论文)(二)
144 0
|
编解码 计算机视觉 异构计算
详细解读 | Google与Waymo教你如何更好的训练目标检测模型!!!(附论文)(一)
详细解读 | Google与Waymo教你如何更好的训练目标检测模型!!!(附论文)(一)
206 0
|
人工智能 搜索推荐 算法
AAAI 2023杰出论文一作分享:新算法加持的大批量学习加速推荐系统训练
AAAI 2023杰出论文一作分享:新算法加持的大批量学习加速推荐系统训练
302 0
|
机器学习/深度学习 存储 缓存
VLDB 2022最佳研究论文:克服通信挑战,新框架SANCUS实现GNN高效训练
VLDB 2022最佳研究论文:克服通信挑战,新框架SANCUS实现GNN高效训练
114 0
|
人工智能 算法 计算机视觉
用图像混合学习更细粒度的特征表示,CMU邢波团队新论文入选AAAI 2022
用图像混合学习更细粒度的特征表示,CMU邢波团队新论文入选AAAI 2022
|
机器学习/深度学习 人工智能 自动驾驶
大模型如何可靠?IBM等学者最新《基础模型的基础鲁棒性》教程|NeurIPS 2022
大模型如何可靠?IBM等学者最新《基础模型的基础鲁棒性》教程|NeurIPS 2022
238 0

热门文章

最新文章