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

简介: 图像分类是当前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/


相关文章
|
8月前
|
机器学习/深度学习 自然语言处理 搜索推荐
9月大型语言模型研究论文总结
大型语言模型(llm)在今年发展迅速,随着新一代模型不断地被开发,研究人员和工程师了解最新进展变得非常重要。本文总结9-10月期间发布了一些重要的LLM论文。
71 0
|
机器学习/深度学习 算法 搜索推荐
阿里云机器学习平台PAI与香港大学合作论文入选INFOCOM 2022,有效减少大规模神经网络训练时间
近日,阿里云机器学习平台 PAI 与香港大学吴川教授团队合作的论文”Efficient Pipeline Planning for Expedited Distributed DNN Training”入选INFOCOM(IEEE International Conference on Computer Communications) 2022,论文提出了一个支持任意网络拓扑的同步流水线并行训练算法,有效减少大规模神经网络的训练时间。
阿里云机器学习平台PAI与香港大学合作论文入选INFOCOM 2022,有效减少大规模神经网络训练时间
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
500篇论文!最全代码大模型综述来袭
11月14日,蚂蚁集团联合上海交通大学发布55页代码大模型综述,覆盖超过50个模型、30个下游任务、500篇参考文献,全方位总结大语言模型在代码相关应用中的最新进展与挑战。
785 0
|
22天前
|
机器学习/深度学习 分布式计算
ICLR 2024:首个零阶优化深度学习框架
【2月更文挑战第28天】ICLR 2024:首个零阶优化深度学习框架
69 1
ICLR 2024:首个零阶优化深度学习框架
|
22天前
|
存储 自然语言处理 文字识别
MLLM首篇综述 | 一文全览多模态大模型的前世、今生和未来
MLLM首篇综述 | 一文全览多模态大模型的前世、今生和未来
1003 0
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
大语言模型综述全新出炉:51页论文带你盘点LLM领域专业化技术
大语言模型综述全新出炉:51页论文带你盘点LLM领域专业化技术
187 0
|
11月前
|
机器学习/深度学习 存储 编解码
【OpenVI—论文解读系列】ICCV | 开源融合不确定度的自监督MVS框架
论文链接:Digging into Uncertainty inSelf-supervised Multi-view Stereo 多视图立体视觉作为计算机视觉领域的一项基本的任务,利用同一场景在不同视角下的多张图片来重构3D的信息。自监督多视角立体视觉(MVS)近年来取得了显著的进展。然而,以往的方法缺乏对自监督MVS中pretext任务提供的监督信号进行有效性的全面解释。本文首次提出在自监督MVS中估计认知不确定性(epistemic uncertainty)。
250 5
|
存储 人工智能 达摩院
CVPR 2022|达摩院开源低成本大规模分类框架FFC
CVPR 2022|达摩院开源低成本大规模分类框架FFC
|
机器学习/深度学习 存储 缓存
VLDB 2022最佳研究论文:克服通信挑战,新框架SANCUS实现GNN高效训练
VLDB 2022最佳研究论文:克服通信挑战,新框架SANCUS实现GNN高效训练
|
机器学习/深度学习 存储 算法
一文综述「联邦图机器学习」,概念、技术、应用全都有
一文综述「联邦图机器学习」,概念、技术、应用全都有
170 0

热门文章

最新文章