专栏首页机器之心学界 | CIFAR-10+ImageNet=?CINIC-10!

学界 | CIFAR-10+ImageNet=?CINIC-10!

选自GitHub

作者:Luke Darlow、Amos、Elliot J. Crowley

机器之心编译

参与:李诗萌、王淑婷

就神经网络方面而言,ImageNet 过于庞大,在计算资源不足的情况下,耗费的运行时间过长,而 CIFAR-10 又太小,有时候无法满足需求。于是,本文提出一种方法,将从 CIFAR-10 中选出的图像与 ImageNet 中下采样得到的图像相结合,编译出了 CINIC-10,可以替代 CIFAR-10。

CINIC-10 可以直接替代 CIFAR-10。由于 CIFAR-10 太小(太简单),而 ImageNet 又太大(太难),所以我们将 CINIC-10 编译为基准数据集。虽然 ImageNet32 和 ImageNet 64 比 ImageNet 小,但是它们却更难。CINIC-10 填补了基准数据集的这一空隙。

动机

「我们可以看到近些年来在深度学习领域取得的巨大进步(LeCun 等人,2015)」

可能许多读者都很熟悉这一推论。在许多深度学习方面的论文开头都有类似的话。我们要怎么评估这样的陈述呢?通过基准数据集。在 ImageNet 上,AlexNet(Krizhevsky 等人,2012)比传统的计算机视觉方法表现得更加出色,后来 VGG 网络(Simonyan&Zisserman,2015)超越了 AlexNet,然后又被 ResNet(He 等人,2016)等网络超越。

但 ImageNet 也有缺陷。这是一个庞大的数据集。数据集中的图像很大,至少有关神经网络方面的图像如此,而这个数据集中有超过一百万张这样的图像。在计算资源不充足的情况下,运行一次训练要花好几天的时间(Goyal 等人,2017)。也许是出于这个原因,CIFAR-10 和 CIFAR-100(Krizhevsky,2009)已经成为许多人在现实图像背景下对神经网络进行基准测试的首选数据集。实际上,这正是几个流行的架构展示其能力之处(Huang 等人,2017;Gastaldi,2017)。

在 CIFAR-10 中,10 类里每一类都有 6,000 个样本,而 CIFAR-100 中,100 类里每一类只有 600 个样本。这导致了这些任务间巨大的难度差异;CIFAR-100 可能比 ImageNet 更难。如果有能提供关于任务难度的另一个里程碑的数据集,那这个数据集就会很有用。ImageNet-32 是 CIFAR 的替代品,但这实际上引出了一个比 ImageNet 更具挑战性的问题,因为下采样图像的信息容量显著更低。此外,大部分基准数据集会不均匀地分割训练集、验证集和测试集(CIFAR 中不存在验证集)。而我们需要大小相同的分割,因为它们才可以提供更有原则的泛化性能。

为了克服现有基准数据集的缺点,我们提出了 CINIC-10:CINIC-10 既不是 ImageNet 也不是 CIFAR-10。CINIC-10 是 CIFAR-10 通过添加下采样的 ImageNet 图像扩展得到的。CINIC-10 具有以下几个理想特质:

  • CINIC-10 有 270,000 张图像,是 CIFAR 的 4.5 倍。
  • 图像大小与 CIFAR 中的一样,也就是说可以用 CINIC-10 替代 CIFAR-10
  • 它具有大小相同的训练、验证和测试分割。在一些实验设置中,可能需要一个以上的训练数据集。尽管如此,通过大小相同的数据集分割,可以公正地评估泛化性能。
  • 可以将训练子集和验证子集结合在一起得到更大的训练集
  • CINIC-10 中的图像来源于 CIFAR 和 ImageNet。这些图像的分布不一定相同,这就呈现出了新的挑战:分布转移。换言之,我们可以在类别相同的情况下,了解在 CIFAR 图像上训练得到的模型比在 ImageNet 图像上训练得到的模型好多少。

细节

  • CINIC-10 中共有 270,000 张图像,将这些图像平均分割为三个子集:训练集、验证集和测试集。
  • 在每个子集(90,000 张图像)中有十类(与 CIFAR-10 中的类别相同)。每个子集的每个类别中有 9,000 张图像。使用推荐的数据分割(平均分为三等份)的情况下,CINIC-10 的训练样本数量是 CIFAR-10 的 1.8 倍。CINIC-10 被设计为可以直接和 CIFAR-10 交换。
  • 还可以将训练集和验证集结合在一起,组成更大的训练集。在这种情况下,CINIC-10 的训练样本量是 CIFAR-10 的 3.6 倍。
  • 可以根据下列代码计算(r,g,b)通道的平均值和标准差:
cinic_mean_RGB = [0.47889522, 0.47227842, 0.43047404]
cinic_std_RGB = [0.24205776, 0.23828046, 0.25874835]

将 CINIC-10 保存下来,以便和 PyTorch 数据加载器一起使用。文件夹结构如下所示:

train/

train/airplane

train/automobile

train/...

valid/

valid/...

test/

test/...

基准

用两种方式对 CINIC-10 进行基准测试:(1)建议的三等份分割法,在训练子集上训练,在测试子集上测试;(2)将训练集和验证集结合,在结合的数据集上训练,然后在测试集上测试。

我们从以下地址复制了模型定义。将 epoch 设定为 300,初始学习率为 0.1,动量乘数为 0.9,权值衰减乘数为 0.0001,batch size 为 64。学习率按余弦方式降到 0。

定义地址:https://github.com/kuangliu/pytorch-cifar/

在训练子集上训练的结果

在训练子集和验证子集结合得到的新数据集上训练得到的结果

与 CIFAR-10 模型进行比较,用不同种子训练 5 次。列出这些运行结果的误差,包括标准差:

样本

下图是从 CINIC-10 和 CIFAR-10 中随机挑选的样本,将其进行比较。显而易见,CINIC-10 噪声更大,因为 Imagenet 中的样本没有审查过。

飞机

CIFAR-10

CINIC-10

CIFAR-10

CINIC-10

论文:CINIC-10 Is Not ImageNet or CIFAR-10

论文链接:https://arxiv.org/abs/1810.03505

摘要:在这篇简短的技术报告中介绍了 CINIC-10 数据集,这个数据集可以作为 CIFAR-10 的扩展替代方案。将 从 CIFAR-10 中挑选的图像以及从 ImageNet 数据库下采样得到的图像结合在一起,编译出了 CINIC-10。我们提出了编译数据集的方法,说明了类别不同的样本图像,给出了库中每一部分的像素分布,还为那些众所周知的模型给出了一些标准基准。关于下载、使用和编译的一些细节可以从相关的 github 库中找到。

本文分享自微信公众号 - 机器之心(almosthuman2014)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-10-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 教程 | 如何使用深度学习硬件的空余算力自动挖矿

    机器之心
  • 专栏 | 当Faster RCNN遇到FPGA,自动驾驶开始飞了

    当今的自动驾驶行业是一个百舸争流的局面,总体来看,还是西方引导东方的探索摸索,以 google 为主的以激光雷达为主的流派和以 Tesla 为主的机器视觉流派引...

    机器之心
  • 业界 | 谷歌推出72-qubit量子处理器Bristlecone,意图实现「量子霸权」

    机器之心
  • NLP01(自然语言处理)第一章 绪论

    任意时间、任意地点、任意语言的自由通讯无时无刻不在改变着人们的思维方式和生活方式 1.语言是思维的载体,是人类交流思想、表达情感最自然、最直接、最方便的工具 ...

    种花家的奋斗兔
  • 10大最受欢迎的国外业务流程管理(BPM)软件

    最好的BPM软件是最重要的大型业务解决方案,因为业务竞争力取决于流程管理。业务流程管理(BPM)是使组织的工作流程更加高效,有效并适应业务环境变化的系统化过程。...

    Blue姐
  • kubernetes-issue-1:ephemeral-storage引发的pod驱逐问题

    A.0/1 nodes are available: 1 node(s) had taints that the pod didn't tolerate.

    千里行走
  • NLP笔记:浅谈字符串之间的距离

    故事起源于工作的一个实际问题,要分析两个文本序列间的相似性,然后就想着干脆把一些常见的字符串相似性内容一并整理一下好了。

    codename_cys
  • 高企认定干货 | 高新技术企业申报常见问题汇总(一)

    2017年的高新申报工作已经圆满结束了,并且已经进入第二批名单公示阶段。在项目结束后,小编总结了在今年的高新申报常见的问题,一起来看看这些误区您有没有不小心踩着...

    高新企业认定网
  • 10-2 控制进程

    见贤思齊
  • laravel5实现微信第三方登录功能

    最近手头一个项目需要实现用户在网站的第三方登录(微信和微博),后端框架laravel5.4。

    砸漏

扫码关注云+社区

领取腾讯云代金券