CIFAR-10+ImageNet=?CINIC-10!

栏目: 数据库 · 发布时间: 6年前

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

CINIC-10 可以直接替代 CIFAR-10。由于 CIFAR-10 太小(太简单),而ImageNet又太大(太难),所以我们将 CINIC-10 编译为基准数据集。虽然ImageNet32 和ImageNet64 比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+ImageNet=?CINIC-10!

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

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

CIFAR-10+ImageNet=?CINIC-10!

样本

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

飞机

CIFAR-10

CIFAR-10+ImageNet=?CINIC-10!

CINIC-10

CIFAR-10+ImageNet=?CINIC-10!

CIFAR-10

CIFAR-10+ImageNet=?CINIC-10!

CINIC-10

CIFAR-10+ImageNet=?CINIC-10!

论文:CINIC-10 Is NotImageNetor CIFAR-10 

CIFAR-10+ImageNet=?CINIC-10!

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

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

理论 CIFAR ImageNet 计算机视觉 数据集

相关数据

神经网络 技术

Neural Network

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

来源:机器之心

Alex网络 技术

AlexNet

AlexNet是一个卷积神经网络的名字,最初是与CUDA一起使用GPU支持运行的,AlexNet是2012年ImageNet竞赛冠军获得者Alex Krizhevsky设计的。该网络达错误率大大减小了15.3%,比亚军高出10.8个百分点。AlexNet是由SuperVision组设计的,由Alex Krizhevsky, Geoffrey Hinton和Ilya Sutskever组成。

来源: ImageNet Classification with Deep Convolutional Neural Networks

Computer Vision

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

来源:机器之心

图网 技术

ImageNet

ImageNet 是一个计算机视觉系统识别项目, 是目前世界上图像识别最大的数据库。

来源: ImageNet 官网

学习率 技术

Learning rate

在使用不同优化器(例如随机梯度下降,Adam)神经网络相关训练中,学习速率作为一个超参数控制了权重更新的幅度,以及训练的速度和精度。学习速率太大容易导致目标(代价)函数波动较大从而难以找到最优,而弱学习速率设置太小,则会导致收敛过慢耗时太长

来源:Liu, T. Y. (2009). Learning to rank for information retrieval. Foundations and Trends® in Information Retrieval, 3(3), 225-331. Wikipedia

基准 技术

baseline

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

来源: Google ML Glossary

动量 技术

Momentum

优化器的一种,是模拟物理里动量的概念,其在相关方向可以加速SGD,抑制振荡,从而加快收敛

来源: An overview of gradient descent optimization algorithms

验证集 技术

Validation set

验证数据集是用于调整分类器超参数(即模型结构)的一组数据集,它有时也被称为开发集(dev set)。

来源: Wikipedia

批次规模 技术

batch size

一个批次中的样本数。例如,SGD 的批次规模为 1,而小批次的规模通常介于 10 到 1000 之间。批次规模在训练和推断期间通常是固定的;不过,TensorFlow 允许使用动态批次规模。

来源: Google ML glossary

深度学习 技术

Deep learning

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

来源: LeCun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning. nature, 521(7553), 436.


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

PHP+MySQL八大动态Web应用实战

PHP+MySQL八大动态Web应用实战

Jono Bacom / 吴连河、李剑 / 电子工业出版社 / 2008-6 / 68.00元

本书详细介绍了利用PHP+MySQL开发常见类型Web应用程序的完整设计和编码技术,并对整体设计与关键代码给予了细致、深入的剖析。其内容注重实践,提供了翔实完整的实战代码;思路独树一帜,突破过多描述语言细节的窠臼;行文风趣幽默,轻松调侃中将项目的完整设计过程分析得一清二楚。书中的示例项目完整而实用,读者甚至无需任何改动即可在实际中加以运用。. 本书适合对PHP/MySQL有初步了解但缺乏完整......一起来看看 《PHP+MySQL八大动态Web应用实战》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

SHA 加密
SHA 加密

SHA 加密工具