DeepMind 发布星际争霸强化学习课程

此前,跨象乘云介绍了:Pysc2 —— 基于 Python 的星际争霸 II 机器学习环境,这是 DeepMind 和暴雪合作开发星际争霸 II 到强化学习研究的一个丰富环境,为强化学习代理提供了与星际争霸 II 进行交互的界面,获得观察结果并发送动作。

很长时间以来,因为星际争霸这个游戏包含非常多的状态和动作空间,以及只有部分可观察和多玩家的特点,这个游戏一直被机器学习界认为是人工智能的下一个『大挑战』。

于是,一个由澳大利亚开发人员、机器学习工程师和研究人员组成的团队 —— StarAi 就基于星际争霸开发了一个机器学习课程!

课程特色

大多数强化学习课程都是采用高度数学化的方法学习的,但是这个课程使用更加人性化工具 —— 『故事』,来解释基本的强化学习概念。不能自己动手创造的东西你是不会明白的!所以课程提供了易于实际操作的练习,与步骤详解,以帮助学习。

学习方法

所有练习都在谷歌实验室中执行,直接在浏览器中就可以操作,而与硬件无关。所以你所需要的只是一个谷歌帐户和 Chrome 浏览器。学习的步骤就是先观看演讲材料,然后尝试进行练习。当然课程官方就像高中老师一样,也是要求你在自己实际操作很多遍之后如果还不能解决再看答案,不要直接看答案!

而对于基础较好的技术人员,如果想深入了解的话,课程还提供了Sutton & Bartos 的优秀教科书《An Introduction for each week’s material》中相关章节的链接。课程一共六周,每一部分都包含视频讲解、PPT、课后练习和答案,非常完善!赶紧上手进行学习吧!

课程链接

https://www.starai.io/course/

新一代 MNIST 数据集 – QMNIST

在机器学习研究中,MNIST 手写数字图像数据集已经作为基准使用了二十余年。该数据集虽然经典,但也存在测试集过小等问题。近日,来自 Facebook 和纽约大学的研究者重建并扩展了该数据集,在测试集中新增了 50,000 个样本。MNIST 作者之一的 Yann LeCun 在推特中表示

如果多次使用原版的 MNIST 测试集,你的模型可能在测试集上已经过拟合了。是时候在新增的样本上试一下了。

MNIST 数据集
MNIST 数据集

MNIST 是一个由 Yann Lecun 等人创建的手写数字图像数据集,是研究者研究机器学习、模式识别等任务的高质量数据库。它包含训练集和测试集,训练集包含 60,000 个样本,测试集包含 10,000 个样本。

MNIST 数据集抽取自 NIST 数据库。NIST 手写字符集第一个分区的发布要早一年,其训练集是由 2,000 名人口普查局雇员手写的,而测试集更加有挑战性,是由 500 名在校生手写的。

LeCun、Cortes 和 Burges 的其中一个目的是创建一个分布相似的训练集和测试集。据他们描述,这个过程产生了两个 60,000 个样本的集合。然后通过下采样将测试集样本数降低到 10,000 个,可能是因为用当时的电脑处理这样一个数据集会非常慢。剩余的 50,000 个样本从此就丢失了。

20 多年来,MNIST 数据集都被认为是标准的机器学习基准。在过去的十年来,许多研究者都表达过这个数据集已经被过度使用的观点。尤其是其测试集过小,只有 10,000 样本,这引起了很多担忧。数以百计的论文都依据这同一个测试集,得到的性能越来越高。那么模型是否已经在测试集上过拟合?我们还能否相信在该数据集上取得的新结论?机器学习数据集到底能用多久?

为了解决原版 MNIST 测试集过小等问题,来自 Facebook 和研究者决定重建该数据集。QMNIST 的 GitHub 页上提供了 Pytorch 平台的 QMNIST 数据加载器,需要将数据集下载至与 pytorch.py 相同的文件夹下将网络下载选项设置为 download=’True’。

from qmnist import QMNIST

# the qmnist training set, download from the web if not found
qtrain = QMNIST('_qmnist', train=True, download=True)

# the qmnist testing set, do not download.
qtest = QMNIST('_qmnist', train=False)

# the first 10k of the qmnist testing set with extended labels
# (targets are a torch vector of 8 integers)
qtest10k = QMNIST('_qmnist', what='test10k', compat=False, download='True')

# all the NIST digits with extended labels
qall = QMNIST('_qmnist', what='nist', compat=False)

它与标准的 Pytorch MNIST 数据加载器兼容。

GitHub地址项目 GitHub 地址

开源NLP(自然语言处理)库对比

自然语言处理NLP)在越来越多的AI应用程序中至关重要。如果您正在构建聊天机器人,搜索专利数据库,将患者与临床试验相匹配,对客户服务或销售电话进行评级,从财务报告中提取事实,必须从自由文本中提取准确信息。在开发和生产中,最受欢迎的 NLP 库列表如下:

显然,NLP 领域还有更多的库。但是,这些库更通用,涵盖更多功能,而不只是专注于特定用例。例如,gensim 是一个 NLP 库,一开始是为构建文本主题模型而创建的,不能用于完整的 NLP 管道。此前,Maziyar Panahi 和 David Talby 提供了一个选择开源 NLP 库的备忘单。在本文的分析中,我们只考虑提供如下核心功能集合的库:

  • 句子检测
  • 单字/单词的细粒度单位化
  • 词干提取
  • 语法标记
  • 词性(POS)
  • 命名实体识别(NER)
  • 依赖分析器
  • 训练特定域的语言模型

以及,提供以下的部分或全部功能:

  • 文本匹配
  • 日期匹配
  • 文本分块
  • 拼写检查
  • 情绪检测
  • 很多其他功能!

这里比较的所有五个库都有一些可以定义的 NLP 数据管线的概念 – 因为大多数 NLP 任务需要组合这些功能中的某些,来获得有用的结果。这些管线,可以是『传统』的管线,也可以是基于深度学习的管线。

传统 NLP 与深度学习 NLP 对比
传统 NLP 与深度学习 NLP 对比

这是最受欢迎的 NLP 库的功能比较:

名称 SparkNLP NLTK SpaCy CoreNLP
句子检测
细粒度单位化
词干提取
语法
磁性标注
命名实体识别
依赖分析
文本匹配
日期匹配
段落分解
拼写检查
情绪检测
预训练模型
训练模型

可视化神器 Altair 登场 – 2

图表的扩展

Altair 的另一个美妙之处就是,我们可以从现有的图表中创建新的图表。例如,我们现在要加入新的数据 income,我们唯一需要做的就是告诉 Altair:用 income 作为y轴,代码如下所示:

categorical_chart = alt.Chart(data).mark_circle(size=200).encode(
x='population:Q',
y='income:Q',
color='country_id:N')

population
population

如果想添加数据提示的功能(tooltip,鼠标悬停在数据上时,会显示该数据的详细信息),只需要增加一行代码:

categorical_chart = alt.Chart(data).mark_circle(size=200).encode(
x='population:Q',
y='income:Q',
color='country_id:N',
tooltip=['country_id', 'population', 'income']))

Altair 的迷人之处

在接触 Altair 之前,我们常常持有一种的怀疑态度:这些可视化工具的包装器真的好用吗?通常来讲,包装是一个坏主意,就拿 ggplot2 来说,它的很多包装器都没有被 Python 社区广泛采用。这些包装器很难创建功能完整的版本,而且它们的更新也常常不及时。然而 Altair 却不一样:

  • Altair 的 API 非常全面。
    这就要感谢 Jake Vanderplas(JVP)伟大的设计,凡是 Vega-Lite 能够做的,Python 就可以做。这是因为 Altair 只是一个 Python API,它能够生成有效的 Vega-Lite jsons,而 API 是以编程的方式生成的,因此在 Vega-Lite 的新版本发布后,Altair 能够全面而且快速的更新,这一切都显得如此美妙。
  • 直观且具有符合 Python 习惯的接口。
    就像使用其他的 Python 库一样,我们需要一些时间来习惯。但 Altair 的精彩之处在于,它所有的设置都符合人类的推理方式,这样我们就能很快的了解它内部的运作原理,并且因此而变得高效。
  • 互动性强。
    Vega-Lite 交互性非常强大,我们不仅能够使用一行代码来添加 tooltips,还能将图的选择区与另一个可视化图关联。
  • 高度灵活性。
    Altair的marks可以理解为图表构建中的模块。如下图所示,我们用圆圈标记、线标记和文本标记的组合来构建一个图。最终的代码可读性强,而且易于修改,这对于 matplotlib 来说是很难的。

Altair 的主要缺点

  • 没有 3d 绘图。
    如果3d可视化对您的工作很重要,那么 Altair 不太适合您。
  • Altair 不是 D3.js。
    就像许多的高级可视化框架一样,Altair 也不是 100% 可定制的,在某些时候,我们会遇到一些无法用Altair制作的图表。(注:D3.js 是一个 JavaScript 库,用于在 Web 浏览器中生成动态的交互式数据可视化。 它利用了广泛实施的 SVG,HTML5 和 CSS 标准,具有高度的可定制性)
  • 统计支持较差。
    如果需要对数据进行线性回归的话,还是推荐用 Seaborn 来进行快速可视化。

国内第一部 AI 本科专业教育培养体系

5 月 6 日,人工智能学院院长周志华教授在微博上分享了最新出炉的《南京大学人工智能本科专业教育培养体系》(简称《培养体系》),这是南大在 AI 本科专业人才培养方面的初步探索成果,还成为了国内第一本 AI 本科专业教育培养体系的著作。

阿里诠释国家『智能+』战略报告

2019 年两会政府工作报告,正式提出了 “智能+” 的重要战略:“深化大数据、人工智能等研发应用。打造工业互联网平台,拓展‘智能+’,为制造业转型升级赋能。”

如何把握从 “互联网+” 向 “智能+” 的演进?如何理解智能经济的经济学含义?如何感知 “智能+” 向社会经济各个领域、各大产业的扩散进程?如何想象智能时代的就业与生活?智能化又将给经济治理带来哪些机遇和挑战?

鉴于社会各界对 “智能+” 的广泛关注,2019 年 3 月 12 日,阿里巴巴研究团队发布了关于 “智能+” 的重磅报告:《从连接到赋能:“智能+” 助力中国经济高质量发展》。报告从四个方面展开:

  • 从 “互联网+” 到 “智能+”;
  • “智能+” 推动产业创新发展;
  • “智能+” 让生活更美好;
  • “智能+” 助力全球化与经济治理。

全文 PDF 下载。

AI 分布式框架 Ray

随着机器学习算法和技术的进步,出现了越来越多需要在多台机器并行计算的机器学习应用。然而,在集群计算设备上运行的机器学习算法目前仍是专门设计的。尽管对于特定的用例而言(如参数服务器或超参数搜索),这些解决方案的效果很好,同时 AI 领域之外也存在一些高质量的分布式系统(如 Hadoop 和 Spark),但前沿开发者们仍然常常需要从头构建自己的系统,这意味着需要耗费大量时间和精力。

UC Berkeley AI 研究院内的研究员,发布的分布式系统 Ray。开发者称,Ray 专门为人工智能应用设计,通过这款框架,运行于笔记本电脑上的原型算法仅需加入数行代码就可以转化为高效的分布式计算应用。近日,该框架已被开源。Ray 的目标之一在于:让开发者可以用一个运行在笔记本电脑上的原型算法,仅需添加数行代码就能轻松转为适合于计算机集群运行的(或单个多核心计算机的)高性能分布式应用。这样的框架需要包含手动优化系统的性能优势,同时又不需要用户关心那些调度、数据传输和硬件错误等问题。

与深度学习框架的关系:Ray 与 TensorFlow、PyTorch 和 MXNet 等深度学习框架互相兼容,在很多应用上,在 Ray 中使用一个或多个深度学习框架都是非常自然的(例如,UC Berkeley 的强化学习库就用到了很多 TensorFlow 与 PyTorch)。

与其他分布式系统的关系:目前的很多流行分布式系统都不是以构建 AI 应用为目标设计的,缺乏人工智能应用的相应支持与 API,UC Berkeley 的研究人员认为,目前的分布式系统缺乏以下一些特性:

  • 支持毫秒级的任务处理,每秒处理百万级的任务;
  • 嵌套并行(任务内并行化任务,例如超参数搜索内部的并行模拟,见下图);
  • 在运行时动态监测任意任务的依赖性(例如,忽略等待慢速的工作器);
  • 在共享可变的状态下运行任务(例如,神经网络权重或模拟器);
  • 支持异构计算(CPU、GPU 等等)。
开源的人工智能框架
开源的人工智能框架

一个嵌套并行的简单例子。一个应用运行两个并行实验(每个都是长时间运行任务),每个实验运行一定数量的并行模拟(每一个同时也是一个任务)。

Ray 有两种主要使用方法:通过低级 API 或高级库。高级库是构建在低级 API 之上的。目前它们包括 Ray RLlib,一个可扩展强化学习库;和 Ray.tune,一个高效分布式超参数搜索库。

PyTorch 更新,正式支持TensorBoard

与 2018 年 12 月正式发布的 Pytorch1.0 相比,这次发布的 1.1 版本提高了性能,并增加了新的模型理解和可视化工具,来提高可用性,还提供了新的 API。

其中,最重要的功能是支持 TensorBoard,它是谷歌为 TensorFlow 打造的可视化工具,能够帮助开发人员评估和调试模型。

根据 Facebook 介绍,在开发这一功能的时候,他们与谷歌有非常密切的合作。

其他的更新还有:

  • Jit 编译器:改进了Just-in-time (JIT) 编译。包括各种错误的修复以及 TorchScript 中扩展的功能,例如对字典、用户类和属性的支持。
  • 新 API:支持布尔张量,更好地支持自定义循环神经网络。
  • 分布式训练:改进了常见模型(如CNN)的性能,增加了对多设备模块的支持,包括在仍使用分布式数据并行(DDP)的情况下跨 GPU 分割模型的能力,以及对并非所有参数都用于每次迭代的模块的支持(如控制流,如自适应 SoftMax 等)。

关于本次更新,Pytorch在下面的GitHub文档中进行了详细的解释,请收好传送门:

https://github.com/pytorch/pytorch/releases/tag/v1.1.0

对于这次更新,PyTorch 的产品经理 Joe Spisa 表示,他们并不是要将 PyTorch 变成金钱,而是希望 PyTorch 拥有一个社区。

他表示,现在这个社区正开始从一个以研究为中心的社区向生产型的社区转变,而且转变速度也在快速增长。

PyTorch 路线图的下一步是,以更少的比特数运行神经网络,实现更快的 CPU 和 GPU 性能,并支持 AI 从业者创建命名张量维数。

现在,Pytorch 使用一个简单的 “from torch.utils.TensorBoard import SummaryWriter” 命令来支持TensorBoard。

旷视发布最大物体检测数据集

在 4 月 16 日的智源学者计划启动暨联合实验室发布会上,旷视科技发布了通用物体检测数据集Objects365,包含 63 万张图像,远超 ImageNet、COCO 等数据集。另外,还开办了针对此数据集的 CVPR Workshop 竞赛。数据集包括人、衣物、居室、浴室、厨房、办公、电器、交通、食物、水果、蔬菜、动物、运动、乐器 14 个大类,每一类都有数十个小类。

机器学习算法概述

作为 AI 的重要分支,机器学习在推荐系统、在线广告、金融市场分析、计算机视觉、语言学、生物信息学等诸多领域都取得了巨大的成功。机器学习并不是像我们字面理解的那样,让冷冰冰的机器去学习,或者狭义的理解为让机器人去学习。机器学习,从本质上来说,可以理解为算法学习(Algorithm Learning)、模型学习(Model Learning)或者叫函数学习(Function Learning)。本文提供《10 种机器学习算法介绍》PPT 下载。

机器学习算法大致可以分为三类 ——

  • 监督学习算法 (Supervised Algorithms):在监督学习训练过程中,可以由训练数据集学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。该算法要求特定的输入/输出,首先需要决定使用哪种数据作为范例。例如,文字识别应用中一个手写的字符,或一行手写文字。主要算法包括神经网络、支持向量机、最近邻居法、朴素贝叶斯法、决策树等。
  • 无监督学习算法 (Unsupervised Algorithms):这类算法没有特定的目标输出,算法将数据集分为不同的组。
  • 强化学习算法 (Reinforcement Algorithms):强化学习普适性强,主要基于决策进行训练,算法根据输出结果(决策)的成功或错误来训练自己,通过大量经验训练优化后的算法将能够给出较好的预测。类似有机体在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能获得最大利益的习惯性行为。在运筹学和控制论的语境下,强化学习被称作“近似动态规划”(approximate dynamic programming,ADP)。

高盛人工智能报告中文版

人工智能是信息时代的尖端科技。计算的飞跃建立在人类告知计算机如何表现的基础上,计算建立在计算机学习如何表现能够对每个行业有意义的基础上。

与此同时,人工智能、机器人和自动驾驶己成为流行文化的前沿,甚至是政治表述。 但是,我们去年的研究让我们相信这不是一个失败的开端,而是一个拐点。 我们将在这个报告里看到,宏观(更多更快的计算和更多数据的爆炸式增长)和更加微观方面(在深度学习方面的有益进展, 智能硬件和开源方面的增长)的拐点的原因。

高盛《人工智能报告中文版》下载

Google发布端到端AI平台

Google 端到端 AI 平台是一个为开发人员和数据科学家提供的端到端的服务,可用于模型的构建、测试和部署。AI 平台上汇集了谷歌云上现有和今天新推的工具,开发者可以构建完整的数据 pipeline 来提取、标记数据,并且用现存的分类、物体识别和实体提取模型、AutoML 工具或云机器学习(Cloud Machine Learning )引擎来训练和部署自定义模型。在这个 AI 平台上,训练和部署一站式配齐,能帮助开发者能在每个开发阶段安全转移模型,并且操作方便,点击一下就可以部署了。

Machine learning development: the end-to-end cycle
Machine learning development: the end-to-end cycle

《工业大数据白皮书》2019版

近日,由中国电子技术标准化研究院、全国信息技术标准化技术委员会大数据标准工作组主编,工业大数据产业应用联盟联合主编,联想集团等多家联盟成员企业参编的《工业大数据白皮书(2019版)》发布。

工业大数据白皮书(2019版)》基于工业大数据技术、产业发展现状,重点围绕『工业数据管理』这一热点议题,提炼了当前工业领域数据管理的重要方法,完善了工业大数据标准体系,为推动工业大数据落地应用和战略部署提供标准化支撑。

人工智能的现状与未来(无水印版 PPT)

人工智能引领新的工业革命,需要正确理解其技术核心、学科定位、架构演进,当前深度学习和知识图谱成其左膀右臂,象征人类智谋的智能博弈在围棋后的下一个高地在哪里?走向人机融合的未来,人工智能将向什么方向演进发展,人类社会将面临哪些变革,需要我们从不同维度不断去研究思考。下载链接

LaTeX 代码数学神器

这是一个帮你快速把数学公式图片转成 LaTeX 代码的工具,名为 Snip,可以免费下载使用。操作非常简单!下载工具之后,只需要一个快捷键,把数学公式截图下来,它就能给你LaTeX代码,你也可以直接在任务栏中修改代码,然后复制、粘贴,写出自己的公式。而且,这一工具不仅仅适用于用电脑打出来的公式,你自己手写的公式,也可以识别出来。

Convert images to LaTeX
Convert images to LaTeX

更好的是,这个工具适用于 Mac、Windows、Ubuntu 系统,适用于所有支持 LaTeX 的编辑器。