在数据为王的人工智能时代如何收集机器学习数据

2023-11-02

文本首发于AI柠檬博客,原文链接:https://blog.ailemon.net/2017/02/17/how-to-collect-data-for-machine-learning/


我最近因为学习机器学习并且想要做一些实践项目而打算收集一些数据来做机器学习,但是发现,数据不是你想找,想找就能找的。在机器学习方面,用于训练的数据对于整个机器学习进程的重要意义自然不言而喻,而数据问题涉及到收集、存储、表示以及规模和错误率等多个方面。关于数据,我想谈一谈数据的收集问题。

 

如何收集数据呢?我们绝大部分情况下,收集数据的途径无非以下几种:

 

一、在网上收集下载公开的免费数据

这是很多人的第一反应,当然,这是很正常的,既免费又好的数据谁不想要?然而实际情况并不乐观,免费数据要么是难以寻找,要么是数据量太小,要么就是不符合需求。比如,我想做中文的自然语言处理方面的一些机器学习,然而浏览了大量的网站之后,发现所能找到的仅有的数据都是关于英文的数据,而用来做中文方面的中文数据难以寻找。有些网站写着免费下载中文数据,然而那里并没有数据。

如果是纯文本的数据还好说,自己写一个爬虫程序,然后运行。比如,如果是实现新闻文本分类的,那么从各大新闻网站直接爬取即可。即使这样,很多想要的功能还是难以实现,比如做机器翻译,需要中英文文本对照,自然状态下并没有这样的数据。

 

二、购买专业数据公司的数据

这种方法的优劣我不做评价,毕竟你有数据我有钱,大家都高兴。专业的数据公司国内互联网上就有一家算得上是挺知名的,还有各个大公司大企业等,他们自身因为在所在行业的地位,通过各种手段能够收集到大量的数据。他们有足够的人手来管理数据,所以数据的质量一般都是有保证的。这个方法其实当然是很不错的,只要你有钱就行

我看过那家数据公司的数据购买价格,数据量稍微量多一点就是上万元的价格,作为一名普通的程序猿,购买数据的话基本上可以几个月不吃不喝了。

不过,在语音识别方面的大多数数据集都是有版权的,收集的公司因为这些数据获得了大量的利益,但在这一领域里,许多可用的数据集都是比较旧的。

 

三、自己根据需要和实际情况制造或从身边收集数据

既然购买数据辣么贵,辣么我们自己搞定行不行?O(∩_∩)O

在所需数据量不大的情况下,比如只是几十或者几百个,完全可以通过这种方法来获得数据,然后自己就安心地去训练机器去吧。优点很明显,成本低,随意性高;但是缺点也是很突出的,一个人的精力是有限的,个人的力量不可能收集成千上万乃至几十万几百万的数据量,而实际机器学习的应用往往就是需要如此之多的数据。少量的数据做一些简单的模型(如线性回归或者特征较少的对数几率回归等)尚可,对于类似于使用神经网络实现图像识别的机器学习任务,这种方法显然不合适。

 

四、自己出钱让别人根据需求一起帮你收集所需要的数据

这种方法相比上面那一种来说,最重要的一点就在于人多力量大,众人拾柴火焰高嘛。当然别人不是白白帮你的,你需要给他们一些报酬,不过相比于购买数据,如果你给每个人的报酬合适的话,成本也算很低了。

这样子确实比较兴师动众,你一个人为了做一些实验,然后让一大群人来帮你,前提也是能有一群人愿意帮你,只要你人缘好,然后能说动他们,不过缺点也正是在于此,而且还需要注意数据的质量。不过这种方法综合下来算是成本较低的,但是需要付出多种类型的成本,除了钱以外,还有比如时间成本、人力组织成本以及人际关系网络等。

 

我们还有其他的收集数据的方法,只不过一般情况下并不可行。比如,我们自己开发一款浏览器或者新闻APP来收集用户的阅读偏好,通过这些数据来实现一个推荐系统,或者拍照APP收集用户拍摄的照片,并分类,实现一个图像识别和分类的系统等。为了做语音识别,通过已有的可用API和软件,进行文字转语音或者语音转文本从而得到训练数据,再用这些数据来训练机器学习模型。类似的方法还有很多,但是基本上要么是不现实(如通过有大量用户的APP收集数据),要么是不太正义(比如APP收集数据很多情况下侵犯个人隐私),要么就是不符合“科研精神”(数据是造出来的而不是来源于真实世界中)。

但是,长期下去仅仅依靠以上的方法也总归不是个事啊。开源软件是一个大社区,那里有着来自世界各地的计算机软件高手写的各种各样的代码,只要我们遵守开源协议,将程序下载、编译、安装,然后我们就可以尽情的自由使用了,这个过程很容易,然而在人工智能方面却遇到了问题。

人工智能是数据驱动的,我们有开源的TensorFlow, Caffe, CNTK, Torch等人工智能引擎,但是,没有数据就没有机器学习模型,也就等于没有了软件,因为引擎仅仅是引擎,不能成为成品,而且软件的定义是程序+数据,二者缺一不可。我们通常所理解的软件仅仅指程序,那是狭义的软件,这也是以前数据“不重要”的特性导致的,然而现在不同了,仅仅有代码我们的程序无法发挥作用,所以我们需要新的开源模式,将数据也包含进来,其相关的信息也需要一同开源。(详见参考链接【1】)

 

不过,总是等待也不是办法,就我已经搜集到的信息,我想分享一些人工智能方面开源的数据集,部分内容鉴于原作者因为版权问题禁止转载,我就写到一起,列出来一个列表。这个列表里面的数据如果不出意外应该都是免费的。

 

通用

Open Datasets for Deep Learning:深度学习专用公开数据集

https://deeplearning4j.org/opendata

 

计算机视觉

 

CIFAR 10 & CIFAR 100: 32×32 彩色图像,可用于模式分类。

https://www.cs.toronto.edu/~kriz/cifar.html

 

ImageNet: 图像数据集。

http://image-net.org/

 

LSUN:

http://lsun.cs.princeton.edu/2016/

 

PASCAL VOC: 通用图像识别分类

http://host.robots.ox.ac.uk/pascal/VOC/

 

SVHN: 门牌号码数据集,来自谷歌街景地图。可用于做数字识别。

http://ufldl.stanford.edu/housenumbers/

 

MS COCO: 图像识别分类用数据集。

http://mscoco.org/

 

Labeled Faces in the Wild: 打了标签和框出了面部区域的人脸数据。

http://vis-www.cs.umass.edu/lfw/

 

自然语言处理

 

搜狗中文自然语言处理数据集

http://www.sogou.com/labs/resource/list_pingce.php

 

百度新闻rss:可通过长时间直接抓取来获得文本数据。

https://www.baidu.com/search/rss.html

 

WikiText:来自维基百科文章中的大型语言建模语料库。

http://metamind.io/research/the-wikitext-long-term-dependency-language-modeling-dataset/

 

Question Pairs:从包含重复/语义相似性标签的 Quora 发布出来的第一个数据集。

https://data.quora.com/First-Quora-Dataset-Release-Question-Pairs

 

SQuAD: 斯坦福大学的问答数据集(The Stanford Question Answering Dataset)

https://rajpurkar.github.io/SQuAD-explorer/

 

CMU Q/A Dataset: CMU的问答数据集

http://www.cs.cmu.edu/~ark/QA-data/

 

Maluuba Datasets: 自然语言理解研究的数据集。

https://datasets.maluuba.com/

 

Billion Words: 大型语言建模数据集。

http://www.statmt.org/lm-benchmark/

 

Stanford Sentiment Treebank: 文本情感分析数据集。

http://nlp.stanford.edu/sentiment/code.html

 

20 Newsgroups: 文本分类经典数据集中的一个。

http://qwone.com/~jason/20Newsgroups/

 

Reuters: 旧的,纯粹基于分类的数据集与来自新闻专线的文本。常用于教程。

https://archive.ics.uci.edu/ml/datasets/Reuters-21578+Text+Categorization+Collection

 

IMDB:一个用于二元情感分类的更旧更小的数据集。

http://ai.stanford.edu/~amaas/data/sentiment/

 

UCI’s Spambase: 来自著名的 UCI 机器学习库较久的经典垃圾电子邮件数据集。由于数据集的策划细节,这可以是一个学习个性化过滤垃圾邮件的有趣基线。

https://archive.ics.uci.edu/ml/datasets/Spambase

 

语音数据

 

LibriSpeech:文本和语音500 小时的有声读物数据集。

http://www.openslr.org/12/

 

VoxForge:带口音的语音数据集,特别是对于如期望对不同口音或腔调的语音有鲁棒性需求的系统很有用。不过貌似没有找到中文语音数据。

http://www.voxforge.org/

 

CHIME:包含噪声的语音识别数据集。

http://spandh.dcs.shef.ac.uk/chime_challenge/data.html

 

TED-LIUM:TED 演讲的语音转录数据集。1495 份 TED 演讲的语音记录,并且这些语音记录有对应的全文本。

http://www-lium.univ-lemans.fr/en/content/ted-lium-corpus

 

参考链接:

【1】《人工智能的开源模式已经过时,我们需要新的开源模式》

http://www.jiqizhixin.com/article/2218

 

补充评论:

  1. AI橙子说:

https://github.com/caesar0301/awesome-public-datasets

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在数据为王的人工智能时代如何收集机器学习数据 的相关文章

随机推荐

  • 【操作系统】王道考研 p27 管程

    管程 知识总览 为什么要引入管程 为了简化PV 管程的定义和基本特征 管程的特点 用管程解决生产者消费者问题 Java总类似管程的机制 总结
  • 百万秒级Id随机生成器不重复

    package com careye common base import com careye common tool IDManager import java util HashMap import java util Map imp
  • OSI与TCP/IP模型区别

    OSI与TCP IP模型区别 1 OSI分七层 而TCP IP分四层 它们都有网络层 或称互联网层 传输层和应用层 但其他的层并不相同 2 OSI模型的网络层同时支持无连接和面向连接的通信 但是传输层上只支持面向连接的通信 TCP IP模型
  • 关于PHP流不得不说的那些事

    关于PHP流不得不说的那些事 相信不少PHP开发者或多或少都见过类似于 php input 或者 php output 这样的内容 很多人都知道这两个的作用一个是接收的 POST 请求中的原始 body 内容 另一个其实和 echo 之类的
  • (短信服务)java SpringBoot 阿里云短信功能实现发送手机验证码

    一 阿里云准备工作 1 阿里云短信服务 注册账号 阿里云官网 https www aliyun com 点击官网首页注册按钮 2 阿里云短信服务 设置短信签名 阿里云提供测试的签名 暂时可以跳过 注册成功后 点击登录按钮进行登录 登录后进入
  • 华为OD机试 - 全量和已占用字符集(Java)

    题目描述 给定两个字符集合 一个是全量字符集 一个是已占用字符集 已占用字符集中的字符不能再使用 要求输出剩余可用字符集 输入描述 输入一个字符串 一定包含 前为全量字符集 后的为已占用字符集 已占用字符集中的字符一定是全量字符集中的字符
  • 【WIN7】基本【网络参数配置】

    可视化界面 步骤 控制面板 网络和Internet 网络和共享中心 连接 本地连接 属性 Internet协议版本4 TCP IPv4 属性 需要手动更改的有 IP地址 子网掩码 默认网关 DNS服务器 示例 IP地址 192 168 1
  • Java:贪心排序,求学校的位置

    解题思路 用双重for循环计算每个点到其它点的路径之和 取路径之和最小且位置最小的点为学校 import java util 求无向完全图的单源最短路径 public class Main public static void main S
  • 高精度加法(C语言实现)

    高精度 是学C语言漫长的路上必须要学的一类程序 gt gt gt 高精度模板 加 减 乘低精高精 除低精高精 有余数 高精阶乘 200000以内 C语言实现 注释多多 lt lt lt gt gt gt 高精度加法 C语言实现 lt lt
  • Android Studio 引入JSONObject 以及其依赖包的那些坑 JAVA

    我用Android Studio开发app 自己写接口 需要使用json 于是涉及到Json的使用 然而在使用过程中也踩到了不少坑 1 JSONObject 包的引用 一种是 import org json JSONObject 但是引用之
  • Mybatis使用实例

  • Tensorflow TypeError 'pred' must not be a Python bool

    如果你也在搭建TensorFlow 环境 并想训练一个简单物体识别模型 我遇到的问题可能对有所帮助 如果不是则请忽略 前提 models 我是直接下载最新的master分支 TensorFlow是直接用Anaconda 装的 1 6 开始训
  • Mac突然连不上WiFi解决步骤

    事件描述 上午用图书馆无线看电视过程中 莫名就网断了 开始以为是图书馆网问题 后来手机开热点也无法连接 去年刚买Mac时也出现过这种问题 后来换了主板 心慌还以为又要去修理了o o 开始无用尝试部分 1 打开设置 网络 位置 更改为自动 2
  • css居中显示代码怎么写,div居中代码 DIV水平居中显示CSS代码

    div居中代码 DIV水平居中显示CSS代码 2018 09 07 div居中代码 DIV水平居中显示CSS代码 如何使用CSS让DIV居中显示 让div水平居中有哪些CSS样式呢 需要的主要css代码有两个 一个为text align c
  • MySQL 计划任务(事件定时器)详解

    1 事件概述 在MySQL 5 1中新增了一个特色功能事件调度器 Event Scheduler 简称事件 它可以作为定时任务调度器 取代部分原来只能用操作系统的计划任务才能执行的工作 另外 更值得一提的是 MySQL的事件可以实现每秒钟执
  • 2021-10-30 can 中断接收数组 fifo

    1 转 File usart2 c Author qianxin chen qq com Version V0 0 1 Date 20 February 2020 Brief This file provides all the usart
  • OnTriggerEnter与OnCollisionEnter详解

    1 测试OnTriggerEnter和OnCollisionEnter的区别 测试 如果两个物体A B 两者都有碰撞体collider Box Collider Sphere Collider Capsule Collider等 A B都有
  • Linux / OpenWRT / 目录功能说明

    一 目录树 注意 上图中 蓝色是原始文件的目录结构 红色是编译之后的目录结构 二 原始目录 1 config 存放着整个系统的配置文件 2 include openwrt 的 Makefile 都存放在这里 文件名为 mk 这里的文件是在
  • robustlearn

    本文提出了 鲁棒关键微调 通过 微调 对抗训练模型的 非鲁棒关键性模块 充分利用其冗余能力提升泛化性 对抗训练 Adversarail Training 增强了模型对抗鲁棒性 但其代价往往是泛化能力的下降 本文提出了 鲁棒关键微调 Robu
  • 在数据为王的人工智能时代如何收集机器学习数据

    文本首发于AI柠檬博客 原文链接 https blog ailemon net 2017 02 17 how to collect data for machine learning 我最近因为学习机器学习并且想要做一些实践项目而打算收集一