从算法、硬件到研究社区,回顾2016年机器学习领域主要进展
机器之心原创
作者:微胖、吴攀
人工智能圣杯虽然遥远,但这并不妨碍机器学习继续在2016年高歌猛进,其中,深度学习仍是最亮眼的明星。机器学习的重大进展离不开三个核心内容:算法(或软件)、硬件和数据。本文仅从算法(或软件)、硬件角度梳理2016年机器学习领域(主要是深度学习)主要进展。考虑到技术进步离不开研究社区的协力与开放,本文第三部分也对2016年研究社区重大事件进行了梳理。
一、算法(或软件)
能够自主学习的机器、人与机器的自然交流一直是我们追求的人工智能圣杯。2016年,GANs 以及深度强化学习取得的进展让人类距离自主学习机器又近了一步。NLP 领域里的一些重大进展,比如机器翻译,也使得人与机器的交流更加顺畅。
1、生成模型
生成对抗网络(GANs)让我们距离无监督学习圣杯又近了一步。有学者指出2016年是深度学习的分水岭,这要归功于生成模型的突破性研究。
生成式对抗网络早在2014年由 Ian Goodfellow 提出。2016年,GAN 开始显示出真正潜力,进展非常迅速,相继出现了条件生成对抗网络(Conditional Generative Adversarial Nets)和信息生成对抗网络(InfoGAN),深度卷积生成对抗网络(Deep Convolutional Generative Adversarial Network, DCGAN)等,更加优化的 GAN 模型已经解决了之前限制深度学习发展的一些难题。
InfoGAN 模型由 OpenAI 研究员在 8 月提出。InfoGAN 能够以无监督的方式生成包含数据集相关信息的表征。例如,当被应用于 MNIST 数据集的时候,它能够在不需要人工标记数据的情况下推断出数字的类型(1、2、3……)、生成的样本的转动(rotation)与宽度(width)。
GAN 的另一种延展是被称为 Conditional GAN 的模型。这些模型能够生成考虑了外部信息(类标签、文本、其它图像)的样本,并使用它来迫使 G 生成特定类型的输出。
DCGAN ,该网络从一个高斯分布中选取 100 个随机数作为输入(将这些输入成为代码,或隐变量,用红色表示),然后输出一张图像(在这种情况下是右侧的 64x64x3 的图像,用绿色表示)。随着代码的逐步改变,生成的图像也在改变——这说明该模型已经学会了用来描述世界的模样的特征,而不仅仅是记得某些样本。
StackGAN。模型本质就是 Conditional GAN,只不过它使用了两层 Conditional GAN 模型,第一层模型 P(X1|z, c) 利用输入的文字信息 c 生成一个较低分辨率的图片。之后第二层模型 P(X|c,,X1) 基于第一层生成的图片以及文字信息生成更加优化的图片。文中给出的实验效果非常的惊人,可以生成 256x256 的非常真实的图片。
PPGN。GAN 不光自身有变种和优化,也能被其它算法融合吸收,发挥强大效果。2016 NIPS 会前几天发布的 Plug & Play Generative Networks(PPGN,即插即用生成网络)的最新进展((Nguyen et al, 2016) 就是生成模型领域 State-of-the-art 论文。 PPGN是融合了包括 GAN 在内的很多算法和技巧的新算法,整合了对抗训练、CNN 特征匹配、降噪自编码、Langevin采样等,它从 ImageNet 中生成了 227x227 的真实图片,是目前在这个数据集上跑得最惊人的一套算法。PPGN 生成的图像同类差异化大,可根据指定生成不同类别的图像、多类化,生成的图像清楚分辨率高。
WaveNet。2016年9月,谷歌 DeepMind 发布博客介绍他们在文本转语音系统上取得的重大进展。DeepMind 表示,他们最新的深度生成模型 WaveNet 将机器语音合成的表现与人类之间水平的差距至少缩减了 50%,也是目前文本到语音环节最好的深度生成模型。
计算机发出声音,最常用的 TTS 方法可能是拼接式语音合成(Concatenative Synthesis),这种机械式方法使得计算机输出音频经常产生语音毛刺、语调的诡异变化、甚至结巴,无法调整语音的强调性音节或情绪。另外一种方法是参数化方法,利用数学模型对已知的声音进行排列、组装成词语或句子来重新创造音频,能让机器输出的音频听起来不那么机器化。这两种技术的共同点是简单、机械地将语音片段拼接起来,而不是从零开始创造出整个音频波形。
WaveNet 正是一种从零开始创造整个音频波形输出的技术。WaveNet 利用真实的人类声音剪辑和相应的语言、语音特征来训练其卷积神经网络(convolutional neural networks),让其能够辨别这两方面(语言和语音)的音频模式。使用中,对WaveNet 系统输入新的文本信息,也即相对应的新的语音特征,WaveNet 系统会重新生成整个原始音频波形来描述这个新的文本信息。
2016年,DeepMind 还发表了强大的图像生成模型 PixelRNN (PixelRNN 利用 RNN 建模图像像素关系,突破传统)、PixelCNN 以及视频生成模型 VPN (Video Pixel Network) 。
2、深度强化学习
强化学习和使用深度神经网络的深度学习可以很漂亮地互相补充,强化学习与深度学习结合的方法出现强劲势头。
AlphaGo。2013年以来,DeepMind 团队相继在 NIPS 和 Nature上发表了用深度强化学习玩 Atari 游戏的论文。2016年1月,DeepMind AlphaGo 在围棋大战中击败欧洲冠军。一个多月后,AlphaGo 再次震惊世界:4比1击败了世界顶级围棋选手李世石。
AlphaGo 使用深度卷积网络,将棋盘当做一张 19×19 的输入「图像」(每个位置一个像素)进行处理。网络把当前局面作为输入,预测/采样下一步的走棋,尽量让机器落子向量接近人类高手的落子结果。但是,只用策略网络(policy network)不行,因为策略网络没有价值判断功能,加了搜索之后,计算机才有价值判断的能力,因此,AlphaGo 综合了深度神经网络和 MCTS 。AlphaGo 利用强化学习进行训练,通过与自己对抗,逐步改善策略来挑选行动(策略网络),以评估谁将获胜(价值网络,另一深度卷积网络)。价值网络的作用是减少搜索的深度,所以,AlphaGO 搜索深度并不是特别深,它并不是一下子搜索出直达比赛末尾的300多步,而是搜索更少的步数,比如20多步,并评估这些位置,而不是一路评估到底,看谁最终能赢。
AlphaGo 在蒙特卡洛树搜索框架下,利用深度学习和强化学习进行训练和评估,实现巨大突破。在游戏上取得了不错的成果后,深度强化学习也逐渐被引入NLP领域,比如较为热点的研究方向基于强化学习的文本生成技术(NLG)。另外,加州大学伯克利分校副教授 Pieter Abbeel 正在研究将深度强化学习应用到机器人上,比如 BRETT 在学习提升自己在家务劳动中的表现。
VIN。2016年 NIPS 最佳论文是一篇强化学习论文 Value iteration Network。这篇论文介绍了一个能学习设计策略,而不是完全被动遵循策略的神经网络。同时,这种新的强化学习观并不是基于模型的(model-free)。VIN 的目的主要是解决深度强化学习泛化能力较弱的问题。传统的深度强化学习(比如 deep Q-learning)目标一般是采用神经网络学习一个从状态(state)到决策(action)的直接映射。神经网络往往会记忆一些训练集中出现的场景。所以,即使模型在训练时表现很好,一旦我们换了一个与之前训练时完全不同的场景,传统深度强化学习方法就会表现的比较差。
作者提出,不光需要利用神经网络学习一个从状态到决策的直接映射,还要让网络学会如何在当前环境下做长远的规划(learn to plan),并利用长远的规划辅助神经网络做出更好的决策。
在文章中,我们提出了一种特殊的网络结构(value iteration module),这种结构和经典的规划算法 value iteration 有着相同的数学表达形式。利用这种数学性质,VIN 将传统的规划算法(planning algorithm)嵌入了神经网络,使得网络具有长期规划的能力。VIN 中所使用的特殊结构 value iteration module,在很多问题上都可以直接加入现有的强化学习框架,并用来改进很多现有模型的泛化能力。
3、NLP 方面的重要进展
实现人机流畅的交流需要解决一些问题,比如文本理解,问题回答以及机器翻译等。
(1)机器翻译
GNMT。2016年 9 月底,谷歌在 arXiv.org 上发表了论文Google`s Neural Machine Translation System: Bridging the Gap between Human and Machine Translation,介绍了谷歌的神经机器翻译系统(GNMT),该系统实现了机器翻译领域的重大突破。11 月,谷歌再发论文宣布了其在多语言机器翻译上的突破:实现了 zero-shot 翻译。
传统统计机器翻译(Statistical Machine Translation, SMT)技术,SMT 方法的最大特点是基于数据驱动的机器学习方法,只要提供足够数量的双语句对,在很短时间内可以自动构建一套统计机器翻译系统,翻译性能超过基于规则的方法。2013年提出了神经机器翻译(Neural Machine Translation, NMT)技术。其思路与传统 SMT 方法完全不同,它采用神经网络直接实现两个句子之间的自动翻译,完全没有规则方法和 SMT 方法的从小片段组装成大片段翻译的过程。2014年,Cho 和 Sutskever 提出了 Encoder-Decoder 架构的神经网络机器翻译系统。2015年,Yoshua Bengio 团队进一步加入了Attention 的概念。Bengio 团队的这个工作也奠定了后续很多NMT商业系统的基础,也包括 Google 这次发布的GNMT。GNMT 基本框架仍然是带 Attention 模块的 Encoder-Decoder。
尽管有这些进步,但 NMT 的速度和准确度还没能达到成为 Google Translate 这样的生产系统的要求。谷歌新论文描述了我们怎样克服了让 NMT 在非常大型的数据集上工作的许多挑战,以及谷歌如何打造了一个在速度和准确度上都已经足够能为谷歌的用户和服务带来更好的翻译的系统。
ByNet。DeepMind 提出了线性时间的神经机器翻译 ByNet。
我们提出了一种用于序列处理(sequence processing)的神经架构。ByteNet 是一种两个扩张的卷积神经网络(dilated convolutional neural networks)的堆叠;其中一个网络用于编码源序列(source sequence),另一个网络用于解码目标序列(target sequence)——这个过程中目标网络动态展开从而生成可变长度输出。ByteNet 有两个核心特性:它在与序列长度成线性的时间上运行;它能保留序列的时间分辨率(temporal resolution)。ByteNet 解码器在字符级的语言建模上获得了顶尖水平,并超越了之前循环神经网络取得的最好结果。ByteNet 也在原始的字符级机器翻译(raw character-level machine translation)上获得了接近最好的神经翻译模型(运行在二次时间(quadratic time)中)所能取得的顶尖表现。由 ByteNet 学习到的隐含架构能反映出序列之间的预期对应。
(2)文本理解
JMT。Salesforce 的 MetaMind (http://metamind.io/) 建立了一个叫做 Joint Many-Tasks(JMT)的模型,目标是要创造出一个可以学习五个常见自然语言处理任务的模型:
词性标注(Part-of-speech tagging)。指对句子中的每个词都指派一个合适的词性,比如说名词、动词、形容词等。
词块分析(Chunking)。也叫做浅层句法分析(shallow parsing),其中涉及到很多任务,像是寻找名词和动词词组等。
依存关系分析(Dependency parsing)。识别词语之间的语法关系(比如说形容词修饰名词)。
语义相关度(Semantic relatedness)。衡量两个句子之前的语义相关程度,其结果是用一个实值分数来表示的。
文字蕴含(Textual entailment)。确定前提的句子是否包含一个表示假设的句子。可能出现的句子关系包括:蕴含、矛盾 和中立。
这个模型背后的魔力就在于它是端对端训练的。也就是说,它能够让两个不同层面的处理兵种,这样浅层任务(不那么复杂的)可以得到改善,从深层(较复杂的任务)中得出结论。我们之前的想法是只用浅层来改进深层的任务,而不是用其他的方式,所以这个采用不同的方式与之前的思路比较来说是一个新的想法。除了词性标注之外,这个模型在其他方面都取得了很好的成绩。
(3)问题回答
DCN。MetaMind 同样提出了称之为 Dynamic Coattention Network (DCN) 的新模型来解决疑问解答问题,该模型建立在相当直观的思路之上。想象下给你了一篇长文并问你一些问题,你是想先看文章再听问题呢,还是更想先听问题再开始阅读文章?一般提前知道问题是怎么样的就会知道看文章要注意些什么,如果不知道问题,那么你就会将你的注意力平均分配并记下每一点可能会被提问的细节。DCN 也是在做这样一件事,首先它生成一个内部表征,这个内部表征是基于文本并且由系统将要回答的问题做为约束条件,然后就是按照可能的回答列表迭代,直到收敛到最后的回答。
(4)语音识别
2016年10月19日的一篇论文Achieving Human Parity in Conversational Speech Recognition 中,微软人工智能与研究部门的一个研究者和工程师团队报告他们的语音识别系统实现了和专业速录员相当甚至更低的词错率(WER),达到了 5.9%,而上个月这一数字还是 6.3%。 5.9% 的词错率已经等同于人速记同样一段对话的水平,而且这是目前行业标准 Switchboard 语音识别任务中的最低记录。这个里程碑意味着,一台计算机在识别对话中的词上第一次能和人类做得一样好。
受到机器学习集成技术(machine learning ensemble techniques)的启发,该系统使用了一系列卷积和循环神经网络。I-vector 建模和 lattice-free MMI 训练为所有声学模型架构带来了显著的提升。使用了多个前向和反向运行 RNNLM 的语言模型重新计分(Language model rescoring)与基于后验的词系统结合为系统性能带来了 20% 的增益。最好的单个系统使用 ResNet 架构声学模型和 RNNLM rescoring,在 NIST 2000 Switchboard 任务上实现了 6.9% 的词错率。结合系统取得了 6.3% 的词错率,代表了在这一基准任务上对先前成果的改进。
LipNet。来自牛津大学、Google DeepMind 和加拿大高等研究院(CIFAR)的研究人员发表了一篇具有重要价值的论文,提出了 LipNet——一种可以将可变长度的视频序列映射成文本的模型,其使用了时空卷积、一个 LSTM 循环网络和联结主义的时间分类损失(connectionist temporal classification loss)。它是第一个将深度学习应用于模型的端到端学习的模型,可以将说话者的嘴唇的图像帧序列映射到整个句子上。这个端到端的模型在预测句子前不再需要将视频拆分成词。在 GRID 语料库上,LipNet 实现了 93.4% 的准确度,超过了经验丰富的人类唇读者和之前的 79.6% 的最佳准确度,将自动唇读技术的前沿水平推进到了前所未有的高度。在不久的将来,这一视频识别应用会非常有用。
4、可微神经计算机
迈向通用人工智能的又一重要成果。除了深度强化学习,DeepMind 另一重要研究领域是记忆(memory),特别是如何将神经网络的决策智能和有关复杂结构化数据的存储、推理能力结合起来的难题。
2016年 10 月,DeepMind 在 Nature发表了一篇论文Hybrid computing using a neural network with dynamic external memory,该论文介绍了一种记忆增强式的神经网络(memory-augmented neural network)形式——被称为可微神经计算机(differentiable neural computer),研究表明其可以学习使用它的记忆来回答有关复杂的结构化数据的问题,其中包括人工生成的故事、家族树、甚至伦敦地铁的地图。研究还表明它还能使用强化学习解决块拼图游戏(block puzzle game)问题。
DNC 解决一个移动块问题
人工神经网络非常擅长感官信号处理、序列学习和强化学习,但由于缺乏外部记忆(external memory),它们在表征变量和数据结构以及长时间存储数据上的能力却很有限。这里我们介绍一种名叫可微神经计算机(DNC: differentiable neural computer)的机器学习模型,该模型由一个可以读写外部记忆矩阵(external memory matrix)的神经网络构成,这类似于传统计算机中的随机存取存储器(RAM)。它既可以和传统计算机一样使用它的记忆(memory,注:对应于传统计算机的「内存」)表征和操作复杂的数据结构,也能和神经网络一样从数据中学习这么做的方法。当使用监督学习进行训练时,我们发现 DNC 可以成功回答设计用来模仿自然语言中的推理和推断问题的合成问题。我们表明 DNC 可以学习寻找特定点之间的最短路径和推断随机生成的图中所缺少的链接等任务,然后还能将这些任务泛化到交通网和家族树等特定的图上。当使用强化学习进行训练时,DNC 可以完成移动块拼图任务,其中变化的目标又符号的序列指定。总而言之,我们的结果表明 DNC 有能力解决对没有外部读写记忆的神经网络而言难以解决的复杂的结构化任务。
5、深度学习与其他机器学习技术的融合
Deep Sequential Networks 与 side-information 结合起来以获取更加丰富的语言模型。在 A Neural Knowledge Language Model 论文中,Bengio 的团队将知识图谱和 RNNs 结合起来。
交流知识是语言的一个主要目的。但是,目前的语言模型在编码或解码知识的能力上还存在显著的限制。这主要是因为它们是基于统计共现(statistical co-occurrences)获取知识的,但大部分描述知识的词基本上都不是被观察到的命名实体(named entities)。在这篇论文中,我们提出了一种神经知识语言模型(NKLM: Neural Knowledge Language Model ),该模型结合了知识图谱提供的符号知识(symbolic knowledge)与 RNN 语言模型。在每一个时间步骤,该模型都能够预测被观察到的词应该是基于哪种事实。然后,就会从词汇库生成或从知识图谱中复制出一个词。我们在一个名叫 WikiFacts 的新数据集上训练和测试了这个模型。我们的实验表明,NKLM 能在生成远远更小量的未知词的同时显著提升困惑度(perplexity)。此外,我们发现其中被取样的描述包含了曾在 RNN 语言模型中被用作未知词的命名实体。
在 Contextual LSTM models for Large scale NLP Tasks 这篇研究中, Deepmind 提出了CLSTM (语境LSTM ,Contextual LSTM),是当前 RNN LSTM 的延伸,将语境特征(比如 ,主题 topics )吸收进了模型。另外,语言模型的注意力和记忆建模方面也很多有趣研究,比如 Ask Me Anything: Dynamic Memory Networks for NLP(ICML)。
二、硬件
随着深度学习算法变得越来越复杂、所使用的数据集变得越来越大,对专用硬件的需求也正变得越来越大。2016 年,面向人工智能的平台成了计算硬件开发的一个主要的新方向。这一年,除了英特尔和英伟达这两家芯片巨头在人工智能方向连绵不断的高调动作,掌握核心科技的创业公司也在尽力改变着市场格局(尽管其中大部分有潜力的都被收购了),此外,就连谷歌这样的互联网也从中看到了发展的空间。
传统芯片厂商方面,英伟达借助 GPU 和深度学习算法的高度契合而顺势发展,股价飞涨,可以说是 2016 年人工智能计算硬件领域的最大赢家。可以预见,英伟达将在整个2017年继续占据主导地位,因为他们拥有最丰富的深度学习生态系统。
体量更大的巨头英特尔自然也不会等着这个新市场被竞争对手占领,而收购似乎是个更快捷的追赶方法。2016 年,英特尔收购了多家人工智能创业公司,其中包括计算机视觉创业公司 Movidius 和深度学习芯片创业公司 Nervana 等。到 11 月份,有了 Nervana 和 2015 年收购的 FPGA 厂商 Altera 加持的英特尔公布了其人工智能路线图,介绍了该公司在人工智能芯片市场上的公司战略和产品生态系统。
另外顺便一提,在这一领域存在感差很多的 AMD 在 2016 年年底也终于发力,宣布推出了其首款基于VEGA GPU 架构的机器学习芯片。这款芯片的研发旨在大幅提升计算机在处理深度神经网络相关工作上的表现,能够更高效且更轻松执行相关工作。新的 Radeon Instinct 加速芯片将给从事深度学习训练和推论的研究机构更强劲的 GPU 来开展深度学习相关研究。
此外,高通在 2017 年年初的 CES 开幕之前披露了其最新的 Snapdragon 835 的相关信息,除了其它方面的性能提升,在机器学习方面,其新增的功能包括支持客户生成神经网络层、同时还支持谷歌的机器学习架构 TensorFlow。高通表示,Hexagon 682是首个支持TensorFlow和Halide 架构的移动 DSP。
另外,DSP 供应商 CEVA、FPGA 供应商 Xilinx 和处理器技术提供商 Imagination 等厂商也都已经在机器学习领域进行了布局。
互联网巨头似乎也从计算硬件领域发现了新的机会。2016 年 5 月,谷歌发布了一款新的定制化设计的芯片张量处理单元(TPU/Tensor Processing Unit),这款芯片是专门为基于谷歌已经开源的 TensorFlow 机器学习框架而量身定制的。亚马逊已经宣布了他们的基于FPGA的云实例。这是基于Xilinx UltraScale +技术,在单个实例上提供了6800个DSP片和64 GB内存。微软也通过 Project Catapult 表明了对 FPGA 的支持。另外,这一年 IBM 在神经形态计算上的进展也得到了很大的关注,甚至可能预示着一种人工智能发展的新方向。
在这场竞赛中,创业公司也并未落后太远。该领域已经流入了 5.89 亿美元的风险投资和私募基金。前 NASA 局长创建的 Knuedge 在销声十几年后再次出现在大众面前,宣布完成了 1 亿美元的融资。Mobileye ,一家向宝马、沃尔沃、通用、特斯拉等汽车公司提供 ADAS 的公司在自动驾驶汽车领域处于领导地位。 Wave Computing、Kneron 以及中国的寒武纪和深鉴科技等公司都在努力开发自家的深度学习专用芯片平台。而这些公司在 2016 年同样也取得了相当不俗的表现,比如源自中科院计算机研究所的寒武纪就在 2016 年推出的寒武纪 1A 处理器,据称这是世界首款商用深度学习专用处理器。
学术界也并未避开这一领域。最近,MIT 的研究人员展现了比手机 GPU 快 10 倍的芯片 Eyeriss,能够在手机本地运行深度学习算法。
创业公司 | 投资方 | 产品描述 |
Mobileye(199 年)耶路撒冷, 5.15 亿美元, IPO) | Fidelity Investments, Goldman Sachs, Blackrock | 为自动驾驶汽车设计基于深度学习的计算机视频 ASICs |
Nervana Systems(2014 年,圣地亚哥,2400 万美元,被英特尔收购) | In-Q-Tel, Lux Capital, Draper Fisher Jurvetson | 为基于深度学习系统的芯片设计定制的 ASIC。 |
Knuedge(2005 年,圣地亚哥,1亿美元,处于早期阶段) | 未知 | 为机器学习应用和 HPC 数据中心设计神经形态芯片。 |
Movidius(2005 年,圣马特奥,8650 万美元,E 轮) | West Summit Capital, Robert Bosch Venture Capital | 为 IoT 设备设计深度学习视觉处理芯片。 |
Teradeep(2014 年,圣克拉拉,未知,早期阶段) | Xilinx 科技公司合伙人 | 为 IoT 设计基于深度学习的嵌入式计算机视觉系统。 |
CoreViz(2014 年,帕罗奥图,未知,早期阶段) | Graph Ventures | 为数据中心、汽车、手机系统设计低能耗的视觉处理芯片。 |
创业公司一栏中的记录方式为(创立年份、城市、融资、公司所处阶段),该表只展示了一些主要的投资者。
三、研究社区
1、开放
世界上最大的科技公司,顶尖大学甚至 DARPA 都在开源他们的人工智能系统。
谷歌。2016年3月,谷歌宣布加入开放计算项目(Open Compute Project),通过这个项目,将其服务器和数据中心的解决方案开源。5月,谷歌开源最精确自然语言解析器 SyntaxNet。6月,新开源「宽度&深度学习」框架。8月,Google Research 发布博客称开源了在 Annotated English Gigaword 上进行新闻标题生成任务的 TensorFlow 模型代码。12月,谷歌开源了一款用于交互式可视化和高维数据分析的网页工具Embedding Projector,其作为 TensorFlow 的一部分,能带来类似 A.I. Experiment 的效果。同时,谷歌也在 projector.tensorflow.org 放出了一个可以单独使用的版本,让用户无需安装和运行 TensorFlow 即可进行高维数据的可视化。12月,谷歌还开源了机器阅读理解数据集 MC-AFP。
Facebook。2016年6月,Facebook 发布最新开源 Torchnet工具包。这个工具包可快速建立有效且可重复使用的学习系统,从而促进深度学习协同发展,加速人工智能研究。Facebook 的图像识别功能一直为人所赞叹,也是一些专业人士介绍相关技术的范例。8月,Facebook 官方发布博客称开源 DeepMask 分割构架、SharpMask 分割精炼模块、MultiPathNet 的代码。FastText是 Facebook 开发的一款快速文本分类器,提供简单而高效的文本分类和表征学习的方法,性能比肩深度学习而且速度更快。8月,Facebook 官方博客发文称开源 fastText。9月,Facebook 开源重磅项目 CommAI-env,一个开发基于通信的人工智能系统的平台。12月,Facebook 宣布开源 TorchCraft,它在星际争霸与深度学习环境 Torch 之间架起了一道桥梁。TorchCraft 可让每个人编写出星际争霸人工智能玩家Bot。另外,Facebook 还开源了围棋人工智能系统 DarkForest。
微软。2016年1月,微软发布了深度学习工具包 CNTK。7月,微软创建的 Malmo 项目将 Minecraft 作为高级人工智能研究的测试平台,在开源许可下开放给了 GitHub 上从新手到老手等所有程序员。在此之前,这一系统只对很少的计算机科学家开放过私人预览,它被设计用于帮助研究者开发先进的、更为普遍能做像学习、对话、决策以及完成复杂任务等工作的人工智能。这一系统将会帮助研究者们开发用于强化学习的新技术和新方法。目前微软现在正努力让 Malmo 可以在 Universe 中使用。10月,微软开放了LightGBM(Light Gradient Boosting Machine),一个基于决策树算法的快速的、分布式的、高性能 gradient boosting(GBDT、GBRT、GBM 或 MART)框架,可被用于排行、分类以及其他许多机器学习任务中。12月,微软发布数据集 MS MARCO。其背后的团队声称这是目前这一类别中最有用的数据集,因为这个数据集是基于匿名的真实数据构建的。通过将该数据集免费开放给更多的研究者,该团队希望能够促进机器阅读领域的研究突破,就像之前研究者已经在图像识别和语音识别领域所取得颠覆性突破一样。
谷歌、微软、Facebook 等传统的人工智能技术巨头之外,百度近来也加入到了技术开源的浪潮之中。2016年1月,百度宣布开源人工智能代码,百度硅谷实验室已经向 GitHub 上传了 Warp-CTC C 代码库。与此同时,百度在一篇博客文章中鼓励开发者试用这些代码。继 9月 PaddlePaddle 之后,百度又宣布开源了一项深度学习基准 DeepBench。
2016年12月,DeepMind 开源3D人工智能训练平台。DeepMind Lab 是一个类全3D游戏平台,为基于智能体的人工智能研究量身打造。和 Malmo 类似,也允许研究者创建迷宫,让不同算法学习如何寻路,获得奖励。DeepMind 正在尝试将「更自然的元素」(如起伏的地形和植物)整加入到这个虚拟世界中。开源后,DeepMind 希望在其他研究者的帮助下,这个平台能够更加复杂,从而训练更聪明的训练算法。
两天以后,OpenAI 发布了一个「元平台」Universe 。它允许人工智能程序在其中与最初为人类玩家设计的十几款 3D 游戏互动,另外,这个环境还包含了一些网络浏览器与手机 app。相比 DeepMind Lab 的 3D 世界,OpenAI 的元平台 Universe 则更进一步。通过为同一个人工智能程序提供多种不同类型的环境,这一平台或许可以解决领域内最棘手的问题:如何创建一个可以解决任何新问题的算法。
大学方面。2016年9月,伯克利大学和 Adobe 在 Github 上开源了新的深度学习图像编辑工具 iGAN。神经机器翻译是近段时间以来推动机器翻译发展的主要推动力。2016年12月,哈佛大学自然语言处理研究组(Harvard NLP)宣布开源了其研发的神经机器翻译系统 OpenNMT,该系统使用了 Torch 数学工具包。该研究组在官网上表示该系统已经达到生产可用的水平(industrial-strength)。
DARPA 已经向开源机器学习技术迈出了一大步。事实上,DARPA XDATA项目产生了一个目前最先进的机器学习、可视化和其他技术的目录,任何人都可以下载、使用和修改这些技术以打造定制化的人工智能工具。
下面简单列出了 2016 年最受欢迎的深度学习工具:
TensorFlow,来自谷歌,地址:https://github.com/tensorflow/tensorflow
Keras,来自 François Chollet,地址:https://github.com/fchollet/keras
CNTK,来自微软,地址:https://github.com/Microsoft/CNTK
MXNet,来自 DMLC,被亚马逊采用,地址:https://github.com/dmlc/mxnet
Theano,来自蒙特利尔大学,地址:https://github.com/Theano/Theano
Torch,来自 Ronan Collobert, Koray Kavukcuoglu, Clement Farabet,被 Facebook 广泛使用,地址:https://github.com/torch/torch7