文章目录

      • Introduction
        • NIST Special Database 19
        • Modified NIST (MNIST)
        • Extended MNIST (EMNIST)
      • Federated Extended MNIST (FEMNIST)[^femnist]

Introduction

众所周知,MNIST手写数字数据集是机器学习的"Hello world!"级别的数据集,入门必定少不了它。但是很多人只知道MNIST是手写数字图片的数据集,并不清楚这个数据集和它的来源(NIST SD19)以及其衍生的数据集(EMNIST, FEMNIST)的关系。这里我会对这几个数据集做十分简短的介绍,并附上官网和原文链接,有需要的可以直接去看第一手资料。

NIST Special Database 19

NIST Special Database 19 实际上的名字叫做 NIST Handprinted Forms and Characters Database(NIST手写表格与字符数据库)。NIST全称为 National Institute of Standards and Technology (美国国家标准与技术研究院),因此NIST实际上是一个机构而不是某一个数据集,不过我们通常简称 NIST SD 19 这个数据集为 NIST数据集。
NIST SD 19这个数据集有两个版本,第一版1是1995年发布的,第二版2是2016年发布的,第二版实际上只是对第一版的文件格式做了一些调整,使得使用者更加方便能够用到数据,而从数据量来说并没有提升。
NIST SD 19包含62种字符(0-9,a-z,A-Z),采集自3699个手写表格(也就是3669个writer)。表格由几部分组成:数字digits,大写字母Upper,小写字母lower 以及一段宪法序言Constitution。
联邦EMNIST数据集 (FEMNIST)

官网上提供了几种数据集的划分方式,包括:1.hsf_page,2.by_write,3.by_merge,4.by_field,5.by_class。
详情可以参考NIST SD 19官网3给出的Users’ Guide。

Modified NIST (MNIST)

从NISTSD19数据集导出的子集,只包含digits部分,而且调用接口比第一版的NISTSD19更加友好,因此使用广泛。

Extended MNIST (EMNIST)

从NISTSD19数据集导出的子集,包含了字母和数字,比MNIST的内容更多。而且对NISTSD19的接口进行了包装以兼容MNIST的接口,因此能够方便迁移到使用过MNIST数据集的模型上进行测试。

Federated Extended MNIST (FEMNIST)4

FEMNIST官网:https://leaf.cmu.edu
github:https://github.com/TalwalkarLab/leaf

FEMNIST是FL的Benchmark “LEAF” 里的其中一个开源数据集,该数据集基于EMNIST进行划分,可以选择iid或non-iid的划分方式,non-iid的划分是基于不同writer的,因此能够实现更加贴合实际的non-iid分布。

可以将 leaf 项目 clone 下来,执行 leaf-master/data/femnist 里的 preprocess.sh ,注意文件里的 get_data.sh 会从 amazonaws.com 下载数据集(而该网址正是 NIST SD 19 数据下载的网址),当下载不太顺畅时可以考虑先从网址把这两个数据包下载下来到本地,再把 get_data.sh 中下载数据的两行命令注释掉,再执行 preprocess.sh。

femnist 可以通过设置 preprocess.sh 的参数来实现对数据集的不同划分, preprocess.sh 参数如下:

  • -s:

    • ‘iid’ 设置成为iid分布,在iid的情况下,所有用户会从所有数据中等概率抽样,因此所有用户都服从同一分布。
    • ‘niid’ 设置成为non-iid分布,每个用户的数据分布根据原始数据中的writer来划分,因为假设原始数据中不同writer的分布式不一样的(这里主要还是关于特征分布的偏差,即字体风格),因此按照这种根据writer来划分的方式得到的用户数据分布也是non-iid的。
  • --iu
  • --sf:采样数据量
  • -k:每个用户的最少数据量,低于该数据量的用户将会被删除
  • -t

    • ‘user’ 将用户划分为train/test两种,即有部分用户是训练用户,有部分用户是测试用户
    • ‘sample’ 将每个用户的本地数据集划分为train/test集
  • --tf:训练样本占总数据量的百分比,默认0.9
  • --smplseed:数据采样seed
  • --spltseed:划分数据seed

其他更详细的细节可参考femnist原版markdown。


  1. P. Grother, “NIST special database 19 handprinted forms and characters database,” National Institute of Standards and Technology, Tech. Rep., 1995 ↩︎

  2. P. Grother and K. Hanaoka, “NIST special database 19 handprinted forms and characters 2nd Edition,” National Institute of Standards and Technology, Tech. Rep., 2016. [Online]. Available: http://www.nist.gov/srd/upload/nistsd19.pdf ↩︎

  3. https://www.nist.gov/srd/nist-special-database-19 ↩︎

  4. S. Caldas, et al., “LEAF: A Benchmark for Federated Settings,” 2018,arXiv:1812.01097 ↩︎

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。