作者:Cody Coleman, Peter Bailis, and Matei Zaharia

翻译:杨毅远

校对:王琦

本文长度为1800字,建议阅读7分钟

本文为你介绍SVP方法如何在保证识别准确率的同时,有效地提高深度学习中计算效率。

本文主要介绍了SVP(Selection via proxy)方法。作为一种用于深度学习的数据选择方法,其可以在保证识别准确率的同时,有效地提高深度学习中计算效率。例如,在主动学习中,SVP运行速度最多可提高41.9倍,同时误差没有显著增加,这对于深度学习中提高模型训练速度来说是一个有效方法。

在许多任务中我们会用可获得的海量数据来训练深度网络,那么在实际训练中我们怎样可以快速确定应该使用哪些数据呢?像主动学习(active learning)和核心集选择(core-set selection)之类的数据选择方法是确定训练数据的强大手段,但是这些方法计算花销大且难以大规模使用。

在最近ICLR 2020的工作中(https://openreview.net/pdf?id=HJg2b0VYDr),我们提出了一种将数据选择速度提高多达41.9倍的方法。我们使用一种规模较小、精度较差的模型作为规模较大目标模型的低代价的代理,并用此来选择用于训练的“核心”数据。尽管这些代理模型准确性较低,但它们选择的是不会对最终模型的准确性产生较大影响(通常在0.1%以内)的高质量数据。另外,在不影响ResNet-164模型准确性的情况下,上述代理模型可以清洗掉50%以上的CIFAR-10训练数据,从而使端到端模型的训练速度提升40%。

我们在ICLR 2020(https://iclr.cc/) 上发表了关于SVP(selection via proxy)方法的论文,并且代码可在github中获得。

论文链接:

https://openreview.net/pdf?id=HJg2b0VYDr

代码链接:

https://github.com/stanford-futuredata/selection-via-proxy

直觉:模型架构对样本的排序相似

从宏观上来看,数据选择方法中的迭代过程包括以下三个步骤:

  1. 根据一些信息的度量(例如:熵)对样本进行排序;

  2. 选择排名最高的样本;

  3. 根据选定的样本更新模型。

其中第三步是深度学习的主要瓶颈。模型需要花费数小时甚至数天的时间进行训练,因此对于我们选择的每个样本,从头开始训练模型都不划算。在SVP背后我们核心见解是,虽然较大的模型更准确,但它们排序并且选择相似样本的能力跟规模更小、准确率更低的模型一样。

例如,下图显示了来自相似模型架构不同模型之间的相关程度。我们可以利用这些高相关性来创建代理模型,从而将数据选择速度提高一个数量级。

在ImageNet数据集下模型架构的排名。 上图为在ImageNet数据集上PyTorch预训练模型与最大熵排名之间的Spearman相关性。大多数模型架构之间相关性很高。例如,MobileNet V2基于熵的排名与ResNet50模型高度相关,尽管该模型参数要少得多(3.5M vs 25.6M)。

创建高效且有用的代理模型

我们探索了两种创建代理模型的主要方法:

  • 缩小网络规模

对于具有多层的深层模型,我们可以减小隐藏层的大小或数量,这是在权衡模型精度下减少训练时间的简单方法。例如,ResNet20模型在26分钟内在CIFAR10数据集中取得了7.6% 的 top-1误差,而更大的ResNet164模型花费了4小时才减少了2.5%的误差。

  • 训练轮数减少

在训练期间,大部分时间都花在了误差减少相对较小的时间段。例如,在训练ResNet20模型时,几乎一半的训练时间(26分钟中的12分钟)都花费在改进测试集的1.4%错误率上。基于这些观察,我们还研究了可以更快地获得目标模型决策边界的近似值并且使用较少迭代次数的代理训练模型。

结果

为了评估SVP对数据选择运行时间和质量的影响,我们将SVP使用在主动学习和核心集选择中来对于以下五个数据集进行数据选择:CIFAR10,CIFAR100,ImageNet,Amazon Review Polarity和Amazon Review Full。对于主动学习,SVP在数据集中达到了相似甚至更高的准确率,并且在标签预算(labeling budgets)的数据选择的运行时间上提升了多达41.9倍:

主动学习中的SVP表现。使用最小置信度不确定性采样(通过不同的代理模型和在四个数据集上的标签预算)来进行3次主动学习的平均(±1std)数据选择加速。粗体的加速表明使用相同模型来进行选择和使用最终预测的基准方法的设置不是误差较低就是误差在平均top-1误差的1 std之内。在整个数据集中,SVP加快了数据选择速度的同时没有显著增加最终结果的误差。

对于核心集选择,代理模型在选择保持高精度数据子集时的性能几乎与目标模型相同甚至更好。

特别是在CIFAR10上,小规模代理模型删除了50%的数据,但不会影响在子集上训练的更大、更准确的模型的最终准确性。此外,在所有数据上训练代理模型,选择要保留的样本以及在子集上训练目标模型的整个过程仅花费了2小时23分钟,相比于在完整数据集上训练目标模型的标准方法,端到端的训练速度提高了1.6倍,如下图所示:

在有无代理选择数据的情况下,ResNet164(带有预激活)在CIFAR10上的训练曲线。浅红色线表示训练代理模型(ResNet20)。红色实线表示在使用代理的图像子集上训练目标模型(ResNet164)。使用代理的方法,删除了50%的数据且不会影响ResNet164的最终准确性,将端到端的训练时间从3小时49分钟缩短到2小时23分钟。

总结

SVP方法可以通过在数据选择期间用计算花销小的代理模型来代替计算花销大的模型,从而提高了深度学习中主动学习和核心集选择的计算效率。在主动学习中,SVP的数据选择运行时间最多可提高41.9倍,同时误差没有显著增加(通常在0.1%以内);在核心集选择中,SVP可以从CIFAR10中删除多达50%的数据,并使训练目标模型花费的时间缩短为原来的十分之一,从而使端到端模型的训练速度提高1.6倍。

原文标题:

Selection via Proxy: Efficient Data Selection for Deep Learning

原文链接:

https://dawn.cs.stanford.edu/2020/04/23/selection-via-proxy/


如您想与我们保持交流探讨、持续获得数据科学领域相关动态,包括大数据技术类、行业前沿应用、讲座论坛活动信息、各种活动福利等内容,敬请扫码加入数据派THU粉丝交流群,红数点恭候各位。

编辑:黄继彦

校对:龚力

译者简介

杨毅远,清华大学自动化系研一在读,本科毕业于华中科技大学自动化学院实验班,研究方向为工业过程检测中的AI算法。喜欢唱歌、喜欢接触新鲜事物的我对于“AI+”格外感兴趣;入门CV和数据挖掘的我,希望接触到更多非自己研究领域内的事物,拓宽自己的知识圈。

翻译组招募信息

工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。

你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。

其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。

点击文末“阅读原文”加入数据派团队~

转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。

点击“阅读原文”拥抱组织

独家 | SVP:一种用于深度学习的高效数据选择方法相关推荐

  1. AIDATANG_1505ZH:一种用于深度学习的大规模汉语语音语料库

    AIDATANG_1505ZH:一种用于深度学习的大规模汉语语音语料库 文章来源:数据堂 网址:https://www.datatang.com/ 前言: 近年来,深度学习在语音识别领域取得了突破性进 ...

  2. 基于linux火焰识别算法,一种基于深度学习模型的火焰识别方法与流程

    本发明属于通信领域,具体涉及一种基于深度学习模型的火焰识别方法. 背景技术: 随着我国工业化与城镇水平的不断提高,现代设施大型公共建筑朝着空间大.进深广功能复杂的多元化方向发展,这对于防烟火朝着空间大 ...

  3. [综述类] 一文道尽深度学习中的数据增强方法(上)

    今天带来一次有关于深度学习中的数据增强方法的分享. 00 什么是数据增强 在深度学习项目中,寻找数据花费了相当多的时间.但在很多实际的项目中,我们难以找到充足的数据来完成任务. 为了要保证完美地完成项 ...

  4. 总结 62 种在深度学习中的数据增强方式

    数据增强 数据增强通常是依赖从现有数据生成新的数据样本来人为地增加数据量的过程 这包括对数据进行不同方向的扰动处理 或使用深度学习模型在原始数据的潜在空间(latent space)中生成新数据点从而 ...

  5. 【技术综述】深度学习中的数据增强方法都有哪些?

    很多实际的项目,我们都难以有充足的数据来完成任务,要保证完美的完成任务,有两件事情需要做好:(1)寻找更多的数据.(2)充分利用已有的数据进行数据增强,今天就来说说数据增强. 作者 | 言有三 编辑 ...

  6. 深度学习中图片数据增强方法

    简 介: 在深度学习中需要对图像进行不同的处理.本文对比了基于Numpy以及Paddle.vision.transforms函数中对于图片处理的效果. 关键词: 图像预处理,cv2,paddle #m ...

  7. 深度学习中的数据增强方法

    对于较深层次的深度神经网络,其性能会随着训练数据的提升而进一步提升. 目前深度学习方法广泛采用的数据增强方法,主要有: multi-scale:多尺度: translate:平移,[-6, -6],左 ...

  8. 深度学习中常用数据预处理方法

    数据归一化处理,比较简单公式为 (x-min)/(max-min),主要目的是将数据的范围缩小至0-1之间,因而对数据绝对值的大小不敏感 2.数据标准化处理,也比较简单,公式为(x-avg)/sigm ...

  9. 用于深度学习的医学图像预处理

    用于深度学习的医学图像数据,往往非常庞大,如果从网上下载公开数据集数据,往往有几十GB的图象数据,我们需要先进行预处理,将其转换成适合深度学习网络训练的形式:        变为      或者我们还 ...

最新文章

  1. linux下安装oracle sqlplus以及imp、exp工具
  2. 读书,是成本最低的投资,却是一生的高贵
  3. 外链引入css有哪些方式_快速收录的外链操作技巧
  4. [译] 美国证券法对 ICO 及相关 Fund 的最新动态
  5. phpyii框架倒叙_快速入门php框架(Lumen thinkphp Yii)
  6. MkDocs安装、生成文档、风格配置、插件安装
  7. html5 手机uc浏览器 复制链接,H5手机移动端调起浏览器(qq浏览器,uc浏览器)自带分享功能实例...
  8. python计算手机销量年增长率_python如何计算环比增长率
  9. Python 获取本周、上周、下周周一、周天的日期
  10. Detecting Causality in Complex Ecosystems(检测复杂生态系统中的因果关系)
  11. keil 中 warning: #1-D: last line of file ends without a newline的解决办法
  12. ContexIoT: Towards Providing Contextual Integrity to Appified IoT Platforms
  13. 解决联想小新air14装虚拟机镜像时蓝屏问题
  14. Python3程序设计题解: 三连击(升级版)
  15. 一个能够屏蔽百度广告的爬虫:BaiduSpider
  16. 通网网站被大规模挂马 15个频道中病毒
  17. A4988驱动步进电机
  18. 99%IT人都应该收藏的学习,找资料必备之网站
  19. 一个期货杠杆炒股高手的简单交易方法!
  20. java物业系统源码 物业管理系统源码

热门文章

  1. mysql is复制表结构_MySQL复制表结构和内容到另一张表中的SQL语句
  2. 18怎么确定板子形状_板绘怎么画线条排线?板绘小白画线不稳怎么办?
  3. apt-get 404 not found 问题解决
  4. PHP数组式访问接口ArrayAccess
  5. Windump网络命令的简单用法
  6. 51CTO交流摘录(2):SOC的应用现状
  7. c++ 求四边形面积和周长_C语言编程题 题目:任意输入4个点,求围成四边形的面积是多少?...
  8. html点击播放生日快乐歌曲大全,播放生日快乐歌曲.doc
  9. Linux学习(八)---crond 任务调度
  10. conda不是内部或外部命令